[caption id="" align="alignleft" width="125" caption="firstPress Android Essentials by Apress"][/caption]
Apress's firstPress books are written as short and succinct as possible to engage the reader and provide them a starting point in a given technology. They are intented to be released and read as close to the technology release as possible to gain the maxiumum experience in the shortest amount of time. Unfortunately in some cases, this rapid-release structure doesn't pan out so well, which is a flaw that this book suffers from. Thankfully this flaw does not render the book completely useless.
From the beginning of Android Essentials, it's clear that Chris Haseman is passionate about mobile development and very excited about Android and its possibilities. He provides clear instructions and walks the reader through each part of an Android application, as well as providing hints and tricks within the Eclipse environment to make Android development even easier. While it's not an instuction book on how to write Java, as Chris points out early on, most developers with a basic understanding of the language should be able to power their way through the examples and concepts. Chris doesn't hold the readers hand through Java structure or development, but he progresses at a comfortable pace that should allow for any referential reading that may be necessary.
The example code is where the reader may experience the most frustration. All code in the book was written using the M5-RC15 version of the Android SDK, which is two steps below the current release, 1.0-R2. While it may still be possible to run the M5 version of the SDK in a currect Eclipse installation, it is much easier and recommended to use the latest release so that any applications developed will work with current handsets. This means that only the first project in the book will actually build and launch correctly and all the others require small to moderately large adjustments. Anything from 'add a line here and change that line there' to 'completely re-build this function from scratch' is needed to get each example running. From a learning standpoint, this is where the book doesn't hold up well. It can be difficult at best to find the correct solution, and even a web search may only yield a few hand-made solutions with the tag 'your mileage may vary'.
Interestingly, this is can also be a saving factor for this book. Not everyone prefers to read a book where all the answers are laid out and available for download. Part of the enjoyment of development is knowing that you have created something for a purpose, and using this book's code examples and the provided instruction is a great launching pad to discover your own way to build the same applications. So while it may take some extra time to make the examples work, the personal effort will usually leave a more lasting impression than just retyping the code into your favorite editor and verifying that the application does what it should.
Overall, I think that Android Essentials is a fair starting point for the beginning Android developer. For a serious developer, it's a good book for idea reference, and for a beginner it's a good start to see what is possible with Android. My final recommendation would be to wait and hope for an updated release of this book, or at least the code it contains. While I do enjoy discovering my own way through a particular application, more reliable starting code would have allowed me to spend more time developing my own applications instead of repairing another developer's.