One of my main resolutions for after I would get done with my PhD thesis was to get deeper into the details of the architecture and the underlying mechanisms of
Android. Now that my defense was completed successfully (with only a few minor improvements pending), I am ready for what I believe will be an exciting journey.
As a researcher in software engineering for context-aware systems, Android seems to be a unique opportunity. Here is what I believe makes the
Android platform stand out from the rest of the mobile platforms:
- It is open. This is a huge difference from its main competition, particularly the iPhone. While the latter is an excellent platform, and probably the state-of-the-art in the current arena of smart-phone hardware, its future is a bit uncertain. As a closed platform, the iPhone might face great challenges in attracting developers and end-users when other platforms (like the Android) catch-up with it.
- Its architecture is well thought. With a layered structure that facilitates platform independence (i.e., the Linux kernel), powerful common libraries (e.g., realizing accelerated graphics and security protocols) and a runtime layer that allows development in Java (one of the most successful and widely mastered programming languages). With this, building for Android is a breeze and fun process!
- It features reusable and replaceable components. This means that anyone can develop applications that feature web-browser and map views (among others) without having to develop them. It also means that any developer is free to enter an open market and compete with others (including Google itself) on providing the best core applications, like a phone manager or contacts manager.
- It features an open market. While all registered applications must qualify a set of rules in order to be listed, these are much more relaxed and open in comparison to iPhone's market-place, which prohibits listing applications that compete with those from Apple.
- It provides good developer tools. The Android SDK is of free to download and use (as expected), while the developers can also benefit from a great deal of online resources.
- It is Google-backed. As the search giant is the core promoter in the Open Handset Alliance, the Android users can feel safe that the web-apps they are so accustomed to (like GMail, GCalendar, etc) will always be supported on their devices. Furthermore, building on their great legacy with organizing the world's information, the Android users can expect more innovative applications and functionality in their phones, assisting them to organize their own, mobile world.
I recommend the following three tutorials for anyone who needs to get a quick (but very intuitive) look into Android:
Part 1 of 3 - Architecture Overview
Part 2 of 3 - Application lifecycle
Part 3 of 3 - APIs
Update October 13, 2009: Just read this interesting post on Slashdot.