Author: Jeff Friesen
Publisher: Apress, 2010
Aimed at: Budding Android programmers
Pros: A useful Java refresher course
Cons: Little on Android or mobile apps
Reviewed by: Harry Fairhead
This is another one of those great ideas for a book. A lot of people want to write Android apps, Android is generally programmed in Java so let's have a book on Java for all those potential Android programmers. That is what this book is all about. It is an introduction to Java so that you can write an Android program - only it isn't quite what it claims.
The first problem with the book is that it jumps into Java and starts explaining it in great detail. Almost nothing is held back so that you can learn the basics and progress on to the fine detail - it's all there in a strictly logical format. This makes is unsuitable for the beginner. It is even fairly unsuitable for any programmer who is unfamiliar with a modern object-oriented language such as C++ or C#. It is, however, a very reasonable way to present Java to a programmer who has let their Java get a little rusty. That is, if you know Java but just need to brush up your knowledge so that you can get on with programming Android then this book is a reasonable refresher course. However, you do need to be warned that even in this case the example programs are often long and there is a lot of listing of the obvious to use up some space.
A second, and for many potential readers, a bigger problem is that despite the title referring to Android there is very little reference to Android program development. So to be clear - this is not a book about Android development but one about Java. You might forgive this oversight but there isn't even much attempt to tailor the books coverage of Java to suit the sorts of things that you might want to do in an Android App. It really is mostly just a book about Java.
Chapters 1 through 5 simply present the core Java language and object-oriented ideas. Chapters 6 through 10 extend the coverage to the core Java APIs - Maths, wrapper, references, reflection, strings, threads, collections, concurrency and localization. The final chapter deals with I/O without any mention of the particular problems the Android environment presents.
The conclusion has to be that this is a book that best serves as a refresher course for someone who already knows Java and it most definitely isn't about Android in any way. It isn't even a particularly good Java refresher course because the examples are over long and there is a lot of listing of things that can be found in the documentation just as easily.