A Developer’s Experience with Android- Part 2: The Code
Despite my aforementioned enthusiasm for the phone’s functionality, I was a bit skeptical about developing for Android, especially when I heard that we needed to write Java code to access some of the functionality and for making a test application. I haven’t written a lot of code in Java. In addition, it didn’t seem straightforward for us to build our code like we usually do. The examples showed how to write java programs in a tool called Eclipse, and the sample code was built using a pre-made makefile structure which assumes that you put your application in a certain folder. The C++ support looked limited and we were unsure if the communication between our native code and java would work well enough to be able to call all our APIs and give real-time performance for the communication with the components that need to be written in Java.
But the more I have learned about Android, the more positive I have become. This is also the case with my other colleague who works with Android. It was easy to install the SDK, NDK and the Eclipse tool by following the instructions on the Android developer web pages. It was also easy to start making a java test application by looking at the included examples, and the java language itself is fairly easy to understand for an experienced C++ programmer. In addition, Eclipse actually tells you what you are doing wrong while you write the code and gives suggestions on how you should do it instead! Overall, I found that Eclipse is a very useful and powerful tool to work with. The Android plug-in for it is also really good. Executing an application on a device and debugging it works great- much better than when developing for Windows Mobile in VS2005, which has a really slow communication between a device and the host PC.
When I started developing for Android, I was positively surprised by all the functionality that is available to a developer. Android is obviously made for application developers and I’m impressed by the performance of 3rd party applications on Android phones. Functionality which is commonly not available or hard to implement on most mobile phone OSs is available through well designed APIs. The APIs are not always well documented on the Android developer site, which is something that Google obviously needs to improve, but overall it is pretty easy to understand what each function does. I really think that the fact that the phone manufacturers and operators don’t “own” the OS is a path to success. The number of available applications is one of the reasons for the success of the iPhone, but Android has the advantage of being supported by a number of phone manufacturers, and by being more open than OSX. In the end, users choose a phone because they want cool features and open access to a number of applications, just like they are used to on a PC. I guess I’m becoming more and more of and Android fan!






