At the bottom of the Android stack is the Linux Kernel. It never really interacts with the users and developers, but is at the heart of the whole system. Its importance stems from the fact that it provides the following functions in the Android system: Hardware Abstraction Memory Management Programs Security Settings Power Management Software Other Hardware Drivers (Drivers are programs that control hardware devices.) Support for Shared Libraries Network Stack
The next layer in the Android architecture includes Android’s native libraries. Libraries carry a set of instructions to guide the device in handling different types of data. For instance, the playback and recording of various audio and video formats is guided by the Media Framework Library. Open Source Libraries: Surface Manager: composing windows on the screen SGL: 2D Graphics Open GL|ES: 3D Library Media Framework: Supports playbacks and recording of various audio, video and picture formats. Free Type: Font Rendering WebKit: Browser Engine libc (System C libraries) SQLite Open SSL
Application Framework Layer Our applications directly interact with these blocks of the Android architecture. These programs manage the basic functions of phone like resource management, voice call management etc.
Application Layer The applications are at the topmost layer of the Android stack. An average user of the Android device would mostly interact with this layer (for basic functions, such as making phone calls, accessing the Web browser etc.). The layers further down are accessed mostly by developers, programmers and the likes. Several standard applications come installed with every device, such as: SMS client app Dialer Web browser Contact manager
Activity Manager: Manages the activity life cycle of applications. To understand the Activity component in Android in detail
Content Providers: Manage the data sharing between applications. Our Post on Content Provider component describes this in greater detail
Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application. Location Manager: Location management, using GPS or cell tower Resource Manager: Manage the various types of resources we use in our Application
Native Libraries Layer
Located on the same level as the libraries layer, the Android runtime layer includes a set of core Java libraries as well. Android application programmers build their apps using the Java programming language. It also includes the Dalvik Virtual Machine.
Glasp is a social web highlighter that people can highlight and organize quotes and thoughts from the web, and access other like-minded people’s learning.