Author: Lauren Darcey & Shane Conder
Audience: Intermediate Android programmers
Reviewer: Harry Fairhead
A second volume on Android development - it has to be more advanced than the first.
The first volume in this set, see my review, suffered from being disorganized and not treating the simpler material at all well. This second volume should have an easier time of it, however, as the preliminaries have been dealt with and the authors can dive in to the more advanced material which seems to be what they do best.
The book is divided into five major sections. The first is about advanced design principles but it is really just a collection of general topics - threading and asynchronous, services, SQLite, content providers, intents and notifications. Each is covered in its own chapter but they are very short chapters. Most books on Android would deal with these topics and so this is not particularly advanced information.
Part II is about the UI and here we learn about menus, using input including softkey boards and gestures, accessibility and best practices for tablet and Google TV.
Part III is on the common Android APIs - Networking, Web including WebView, location based APIs, multimedia APIs, telephony, sensors, Bluetooth, USB, and WiFi. As before most of the chapters are very short and as a result the treatment isn't "in depth". Indeed if you were expecting a Bluetooth example all you get is a "how to check that Bluetooth is supported" and a brief note on how a connection might be made. The phrase "see the Android SDK class documentation" occurs a lot which isn't in itself a bad thing but it is when there are no accompanying code snippets.
Part IV deals with graphics. Starting from the basics of drawing on the screen using the canvas it then goes on to basic animation techniques. Then on to 3D graphics with OpenGL ES and how to make things go faster with the NDK. At best these chapters get you started on the topics - you do get as far as creating a 3D textured cube but there isn't much help on how to structure a larger application. It is a reasonable if fast and not very deep introduction.
Part V is titled "Maximizing Android's Unique Features" - and it might make you wonder what these are. The first unique feature is the creation of app Widgets, and working with intents. Next we have a chapter on application search, working with cloud to device messaging and finally managing user accounts and data. I'm not sure I would call these topics "unique features" but this doesn't really matter.
The final part is "Advanced Topics In Application Publication And Distribution". The topics covered are: internationalizing your app, third party in-app billing, Google analytics and obfuscation and other app protection techniques. Not sure these are particularly advanced but they are legitimate topics.
Overall, this is not a book for the beginner because it assumes everything in Volume 1. It might suit the intermediate Android programmer, but only if you want an overview of a topic. In general the coverage isn't deep and you can find out as much from the documentation. The book covers mostly topics you would find in the second half of almost any book on Android and so the real advantage is that it is easier to carry about.
This is a better book that Volume 1 in that it gives you a taster of a lot of more advanced APIs but the amount of explanation provided varies greatly and the topics aren't arranged in a particularly logical way. Somethings are motivated, explained and and example provided. Others are simply presented as if you already know about them and sometimes with a short example.
It might serve the reader as a guide to what is available in the Android APIs before they seek out more detailed information and guidance. Not an essential Android text.