Programming Android provides a good, comprehensive view of Android application architecture, but for someone already familiar with java, it starts slowly…reeeeeeeeaallly slowly. There are sections on installation of the Android SDK, basic concepts of standard java (like its type system), a long introduction to Eclipse…even a section on the preferred location to store java source code.
To be fair, the book proclaims at the very beginning that it’s written for people of all backgrounds, not just java, and it’s got to cover the basics for those who might, say, know iOS but not server-side java. But for me, the book didn’t really get interesting until it launched into a detailed description of concurrency and serialization on Android. From there, it kept going at a fast clip all the way into advanced topics, like NFC, sensors, and audio and video.
Layout, which some Android references get bogged down in, is explained conceptually in the context of MVC architecture. The book doesn’t spend time introducing all the standard view classes or going through their properties. You’ll find a good description of how Android measures and arranges UI components, but you won’t find simplistic code examples for the onMeasure() method.
The book goes through the Android framework and advocates how it thinks a non-trivial app should be organized. It keeps mobile issues like battery life, connectivity, and asynchronicity in the forefront of all its discussions, and it provides extended examples on things like how to write your own content provider and how to incorporate Google maps.
Programming Android is really not for beginners. If you want simple code examples to get up to speed on basic concepts, you’re better off starting with the online dev guide and other resources. But if you’re interested in deeper discussions of architectural issues as well as of more advanced Android APIs, this book should have what you want. Just don’t be afraid to skip the beginning if you’ve done much java before.
[Note: free review copy provided by O’Reilly]