By Jay Levinsohn, BreathEasy Technology Lead and Yuying Zhang, Lead Developer, RTI International.
Read all the BreathEasy blog posts.The Android platform is a relatively new open source specification for mobile operating systems. The Android operating system software, hardware to run it and “apps” are all growing very rapidly. In fact, Android phones have taken over the number two position in SmartPhone sales, over taking the Apple iPhone. How does one develop for this platform and the moving target it presents?
There are a number of development paths that one can use to create programs or “apps” for Android based applications. Development is supported for Windows based PCs, Apple Macs and Linux-based machines (e.g. Ubuntu-based), and they have free software tools, so cost is not really a factor. The RTI developers on this project are experienced Windows and .Net developers, so the choice of the Windows platform was the logical and comfortable place for us to start.
Windows-based Development Options
In Windows there are a number of options, including Google’s visual App Inventor and the most often recommended and widely used Eclipse.
App Inventor is designed to allow rapid application development with minimal coding and provides a visual environment with drag and drop placement of controls on the screen. It looks very interesting, however it is still in Beta and not widely available so it was not a viable candidate.
Eclipse is a general Java development environment, which is a visual shell that ties together a number of developer tools. It also allows the addition of modules to support Android development. The components that are needed to start development in Eclipse are:
- Java SE Development Kit - JDK 6
- Eclipse IDE for Java Developers
- Android SDK
- Install the ADT Plug-in for Eclipse
Early Findings on the Development Environment
As of this writing, the tools provided in Eclipse and the Android API seem to allow the development of complex programs. The API provides access to the hardware components of interest (GPS, camera, accelerometer, compass, power control), good support for a SQL file system (SQLite) that allows use of complex data base structures that can be shared among applications and support for web data transfers. There are also useful online samples, with source code that help with the learning curve for both systems.
Additionally, there is a very active and rapidly growing online community of developers, a good emulator (albeit somewhat hard to configure) that allows development without Android hardware and a bridge program (adb) to connect a real Android phone to a PC for file transfers, actually running UNIX commands on the Android and making screen shots or projecting Android images for training. At first blush, there appears to be fewer screen controls that are typically used in Windows apps but those provided are adequate.
Overall the Eclipse development system is not as polished, not as visual, nor does it seem to be as strong as Visual Studio, but it certainly provides a good development base.

Comments