Android was developed with ease-of-use in mind for end users. The open platform is designed for customization and the ability to run on multiple devices. It's great, but developing for multiple devices requires some planning.
Planning Tools
Fortunately, Android has built-in tools to ensure users see only apps
compatible with their device when browsing the Android's App store. Using a combination of device-level filtering and market filters, apps are only shown to users capable of running them to prevent unintended errors and lessen the possibility of incompatibilities with other functions. Understanding available hardware options is essential when developing for Android devices. Take care to
future-proof and provide
backwards compatibility whenever possible to avoid rewriting your code to work with multiple devices of differing configurations.
Development
Set up your development environment as instructed at
developer.android.com. You'll install the SDK and emulator during this step. The
ADT plugin for
Eclipse is recommended but other IDEs can also be used. You can even develop on a text editor and execute scripts from the command line if you prefer. Ensure your development environment meets
technical requirements for running the SDK before you begin. Step-by-step instructions for installing and using the SDK starter package are available
here.
Security
Since Android is a truly open platform, you've got to pay careful attention to security at every stage of development. The multilayered approach to Android security was designed with developers in mind.
Security controls were designed to lessen your burden. The application sandbox also helps protect end users from security risks. Review and follow security recommendations outlined
here before beginning your project. Starting with version 3.0 (Honeycomb), more
enterprise features have been added to the Android core. Security certification support, full disk encryption, stronger password requirements, and improved app compatibility between phones and tablets.
Version 4.0 (Ice Cream Sandwich) introduces better network usage control, secure credential management with the introduction of a keychain API, data encryption API, VPN client API, and device policy management for camera use in secure areas.
The Useful UI
Don't neglect
user interface design. Providing familiar controls in familiar locations within your app will result in a better experience for your users. In many respects,
developing for mobile devices is similar to Web development. This is good news for Web developers looking to transition into mobile app development.
Testing and Debugging
Follow the Testing Fundamentals provided at
developer.android.com/topics/testing. You can test using the
Eclipse ADT plugin or with
other IDEs. While using emulators will give an idea of how your app will perform, you still must test it on a
physical device.
To Market
You can
publish and distribute your app through the App store, on your own website, or via email. Offering your app through email is recommended for early user testing before your production release on the Android app market.