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.
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.
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.
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.
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.