This chapter offers a 9,000-foot overview of the Android platform. Although you’re concerned primarily with writing Android applications, understanding the layout of the system will help you understand what you can or cannot easily do with Android.
By the end of this chapter, you’ll understand how the whole system works, at least from a high level. You should be able to identify each of the main layers of the platform and have a general understanding of its purpose.
The Android operating system is like a cake consisting of various layers. Each layer has its own characteristics and purpose—but the layers are not always cleanly separated and often seep into one another.
As you read through this chapter, keep in mind that we are concerned only with the big picture of the entire system and will get into the nitty-gritty details later on. Figure 3-1 shows the parts of the Android stack.
Android is built on top of the Linux kernel. Linux is a great operating system, and is the poster child of open source. Its kernel has been hardened and tightened over the years by many engineers continually improving it. Many users depend on Linux every day (often unknowingly).
There are many good reasons for choosing Linux as the base of the Android stack. Some of the main ones are its portability, security, and features: