TSM - Book review: Android Apps with Eclipse

Silviu Dumitrescu - Line manager@Telenav

This review is about a very popular topic nowadays, Android Applications. There are many clients, like mobile devices, which use this platform. The mobile device client is much more as a rich client.

We can use mobile devices as thin clients, in a browser, but the purpose of this review is to introduce those programming elements which transform the mobile device in a platform where we can develop and run standalone applications. The next step forward, working with Android, is to develop real rich clients, for enterprise applications: working offline or online, with a backend module running on a middleware. This part is not included in this review.

The book Android Apps with Eclipse by Onur Cinar, presents an introductive survey about how to install, configure, write and run Android applications. It is not about Android API or programming techniques, it is just a detailed overview about how to use Eclipse Android Development Toolkit (ADT).

In my opinion the audience of this book is general. Of course, some skills about Java language in general are welcome, but not mandatory. It is a book easy to read. After all the installations are done, the part of installation covers 40% of this book, all you have to do is to paste the code into Eclipse IDE and run it. I recommend you to study the code thoroughly because you can find further examples of coding or some extension points for your future work.

The book is organized in 10 chapters and presents some applications. One of this is "Movie Player". In this book all the examples are developed using Android 2.3.3, probably the most popular version of Android, beside the fact that it was released in 2011. Further versions are discussed in the book, the latest being Android 4.0.4, released in February 2012.

As it is well known, the Android platform is the property of Google and represents an open standard for mobile devices. As the statistics presented in this book show, Android has a 48% share of the mobile phone market.

Android is more a complete software stack for mobile devices than an operating system. Android relies on Linux as operating system and on Java Virtual Machine for user applications. An Android application is formed by a set of components, and these components can be accessed by both the platform and by other applications. This allows interoperability between applications.

The most important component of an Android application is the activity, which corresponds to a display screen. Users can interact with applications only through activities. An operation on an activity is called intent, and can provide new activities. The background work of an application is done by the services. There are so many components inside of the Android architecture, but I allow the reader the pleasure of getting this information from Chapter 2. On the other hand, Android platform provides multiple ways of data storage, including SQLite databases.

The next two chapters, 3 and 4, are about Eclipse IDE and further installing methods depend on the operating systems. In my opinion, those of my readers which are familiar with Eclipse IDE can skip these two chapters. For the others, it is a very good way to master Eclipse.

Chapter 5 is about installing ADT developer tools and exploring it, including Android Emulator.

Starting with Chapter 6 we start to use the Android Developer Tool. The first application is the movie player. We are also introduced in manifest editor, layout editor, and resource editor. After that we will find the implementation of classes involved in this project.

Chapter 7 is about Android Native Development Kit (NDK) which is designed to allow developers to implement portions of application in native machine code. NDK provides: C library, minimal C++ library, Math library, Open GL graphic library and more. This chapter includes a guide for installing NDK and Sequoyah (a plug-in that provides a complete mobile development environment).

Chapter 8 extends the project of movie player to play AVI movies. Android NDK is being used there, because AVI libraries come with open source solutions implemented in C/C++.

The last two chapters are about Android scripting. The first one presents the theoretical part and the second one some extension points for the "Movie Player". Android scripting is a handy tool for simple tasks. Scripting does not require compilation and in consequence packing and deploying. This book presents Scripting Layer for Android (SL4A). There are various interpreters for Android like Perl, Python, Rhino, etc.

As I mentioned before, behind its simplicity, this book is a perfect guide for beginners, but not only for them. With a lot of screen shots and valuable code, it offers good publicity to using Android.

As always, I am interested in discussions with my readers and that"s why I invite each of you to initiate and take part in them.

Pleasant reading!