Sunday, January 19, 2014

Book Review: Embedded Android

Just finished reading Embedded Android, a book with deep technical details about the Android platform. Loved it: read my review to find out why.

A few years ago, I downloaded the Android Open Source code (AOSP) to take a look. The download took a long time, and the contents had a confusing directory structure. I could see some familiar directories, but I had no idea what the remaining code did. I understand the Linux filesystem hierarchy and kernel-user space divide and daemons. But Android had none of that, so it made it very difficult for me to transfer any of my understanding. My standard Linux skills were falling short, and the system felt strange and unfamiliar.

"Embedded Android", by Karim Yaghmour covers deep technical details about Android that no other book currently covers. Most Android books give you details about Android programming: Activity/Service/BroadcastReceiver. Karim's book answers questions such as:
  1. How does an activity start up?
  2. How does a package get installed?
  3. Who starts the ActivityManager?
  4. How can you interface with the ActivityManager on the console?
  5. How does the Android system boot up?
  6. Which service does what?
  7. How do I get busybox on there?
Frequently, I marvelled over how clearly something was explained: like the boot process and how the init.rc is structured. Or how detailed the explanation on the build process was. And I kicked myself for not having read this book three years ago -- excusable since this book was written last year.

This book is for advanced Android programmers and Android device makers. This book is for Android programmers who understand Linux and want to see where the lines between Linux and Android blur. If you have ever downloaded the AOSP, you would benefit from reading this book.

Nothing is perfect. The editing on this book could have been better. There are some winding passages and unfocussed sections of text. And some sections could do with expanded explanation. The detailed material makes up for these minor issues. The author has laboriously dug through the AOSP code to make sense of the system, and his depth of understanding makes the book a pleasure to read.

The chapter on Android Framework (chapter 7) was brilliant. The book provides documentation for components that have none. This book explains what Android really is, and how it ticks.

Worth every penny.

(I do not receive evaluation copies of books. The reviews written here are out of my own reading, done in my own time, on my own dime. I try to read the entire book before writing a review.)

(Image courtesy: O'Reilly Media)