I have been developing software using Java since 2001 eventually . If I was about to describe my developer profile I would say mostly a J2EE guy, writing code based on various J2EE web frameworks, EJBs and lately business processes. Learning Android was a true challenge for me. I have been constantly trying to keep in touch with the platform as a developer. The beauty of Android is it's Java centric approach (you write Java) so despite the fact I don't have such a phone I knew that this was the platform that I should target first if I ever wanted to enter the mobile development world - fast and flexible enough.I have tried some other resources in the past but it did not work out for me very well. I was lacking a significant amount of free time so the learning activity was a bit tiring and I could not invest a lot of energy going through quite generic material or investing know how time on a platform that was rapidly evolving.
When I started reading the book - I was a bit skeptic I have to be honest, would it work for me this time? I really wanted to grasp the big picture and then based on my experience I would manage to find my way in the complexities of the platform when needed. To my surprise this book was exactly a great fit for me! The main idea behind this book is to introduce you the basic building blocks through a very concrete example and then depending on your experience you could leverage this introductory knowledge further on. Despite the fact that the book would not be a bad fit for a junior developer I truly believe that prior knowledge of Java (medium to senior) would act as a 'learning booster' for any potential reader.
I really enjoyed the very first chapters, (2 The Stack, 4 Main Building Blocks,6 Android User Interface) very well written and easy to grasp. I got a very concise view of the basic things on the platform - far better comparing to other resources or material in the previous years.
Based on these first basic chapters you feel confident enough to continue on more specific - platform centric features such as the Threading Architecture, The Preferences mechanism, the Data base layer component or access to the low level device features through Android's abstraction layer.
The writing style is very good and the pace the author is extending and updating his sample application reasonably balanced for any developer with any prior java development experience.
I would highly recommend the book to any Java developer especially for those that already have some experience either on Swing (UI development) or server side. This book keeps its promise on transferring a significant amount of Android Platform knowledge which then can be extended or leveraged depending on your needs and your free time to invest. After a few days reading through, I feel comfortable enough to produce some worth demo-ing small examples and that is very good for my standards at the moment. The examples are based on the Android 2.2/2.3 but I don't find it restrictive and I consider it quite up to date - since it's overall approach is to cover the basic building blocks rather than specific version technicalities.