For anyone interested in how the internals of Android work, the new 4th edition of Tanenbaum's Modern Operating Systems book is out and includes about 50 pages on Android that I had the privilege of contributing. Topics in the book include:
- What Android is, its design goals its relationship to Google, and a brief history of its early development.
- What wake locks are, why they exist, and how they work.
- The design and purpose of the Android out-of-memory killer.
- Dalvik's role in Android.
- Binder IPC, from the kernel module to user space: the execution flow of IPCs, what Binder objects are and how they are transported across processes, the core Binder classes (IBinder, Binder, Parcel), AIDL and how it fits on top of the architecture.
- Structure of an Android application.
- How the activity manager runs applications, and the models behind activities, services, receivers, and content providers.
- Intents and intent resolution.
- How activities, content providers, and intents work together to create major Android features such as sharing and fine-grained URI-based permissions.
- The design of Android's application sandboxes and how it leverages Linux's core security features.
- How processes are launched and initialized, and how their lifecycle is managed by the system.
Note that this is part of an operating system design book, so this is not generally material that will be of interest to developers implementing code on top of Android -- there is little discussion of actual APIs or how to implement things using Android, nor does it delve much into the actual code implementation of the system. It does however have a wealth of information on many of the core designs in Android and the reasons Android works the way it does.
- What Android is, its design goals its relationship to Google, and a brief history of its early development.
- What wake locks are, why they exist, and how they work.
- The design and purpose of the Android out-of-memory killer.
- Dalvik's role in Android.
- Binder IPC, from the kernel module to user space: the execution flow of IPCs, what Binder objects are and how they are transported across processes, the core Binder classes (IBinder, Binder, Parcel), AIDL and how it fits on top of the architecture.
- Structure of an Android application.
- How the activity manager runs applications, and the models behind activities, services, receivers, and content providers.
- Intents and intent resolution.
- How activities, content providers, and intents work together to create major Android features such as sharing and fine-grained URI-based permissions.
- The design of Android's application sandboxes and how it leverages Linux's core security features.
- How processes are launched and initialized, and how their lifecycle is managed by the system.
Note that this is part of an operating system design book, so this is not generally material that will be of interest to developers implementing code on top of Android -- there is little discussion of actual APIs or how to implement things using Android, nor does it delve much into the actual code implementation of the system. It does however have a wealth of information on many of the core designs in Android and the reasons Android works the way it does.
View 25 previous comments
That's awesome! Congrats!Apr 8, 2014
Nooooo! I'm just finishing up an OS class that used the third edition!Apr 8, 2014
For those of you who don't want to pay $100+ and/or would prefer an ebook version, I found this book to be pretty good: http://shop.oreilly.com/product/0636920021094.do
I imagine the textbook is much more in depth, though.Apr 8, 2014
+Dianne Hackborn first congrats on the contribution to one of the BEST OS book out there. However, 50 pages is really just an overview. I would love to purchase an more in-depth android internals book from you. would buy in a heart-beat! I like to see some of the background and trade studies done for android's design.Apr 8, 2014
$135 😐Apr 8, 2014- +Kam-Yung Soh hey 12 th chapter is missing did you observe that....thanks for the link though.Sep 10, 2014
Add a comment...