It can be seen that the Android system architecture is four-tier structure, from the upper layer to the lower level are the application layer, the application framework layer, the System runtime layer and the Linux kernel layers , respectively, described as follows:
(1) Appliacation
The Android platform is not just an operating system, it also contains many applications such as SMS SMS client programs, Phone Dialer, image browser, web browser, and more. These applications are written in the Java language, and these applications can be replaced by other applications developed by the developer, which is different from the system software that other mobile operating systems solidify within the system, more flexible and more personalized.
(2) Application Framework
The application framework layer is the foundation of our Android development, and many of the core applications are implemented through this layer to implement its core functionality, which simplifies the reuse of components, and allows developers to use the components they provide for rapid application development, as well as to personalize the expansion through inheritance.
A:activity Manager
Manage individual application lifecycles and common navigation fallback capabilities
B:window Manager
Manage all the Windows programs
C:content Provider
Enables access to or sharing of data between different applications
D:view System
Building the basic components of an application
E:notification Manager
Enables applications to display custom prompts in the status bar
f:package Manager
Program Management in Android system
G:telephony Manager
Manage all your mobile device features
H:resource Manager
Provides various non-code resources used by the application, such as localized strings, pictures, layout files, color files, etc.
I:location Manager
Provide location services
J:xmpp Service
Provide Google Talk services
(3) system run-level library
As can be seen, the system runtime layer can be divided into two parts, the system library and the Android runtime , respectively, described as follows:
A: System Library
The system library is the support of the application framework and is an important link between the application framework layer and the Linux kernel layer. It is mainly divided into the following several:
When executing multiple applications, you are responsible for managing the interaction between the display and access operations, as well as the 2D drawing and 3D drawing for display compositing.
Multimedia library, based on PacketVideo Opencore, supports a variety of commonly used audio, video format recording and playback, the encoding format includes MPEG4, MP3, H, AAC, ARM.
A small relational database engine
3D drawing function Library implemented according to OpenGL ES 1.0API Standard
Provide the description and display of dot matrix and vector word
A set of web browser software engines
The underlying 2D graphics Rendering engine
Handshake during communication on Andorid
Standard C system function library from BSD inheritance, specifically tailored for embedded Linux-based devices
b:android Run-time
Android applications are written in the Java language, and the program executes in the Android runtime, which runs at the core libraries and Dalvik virtual machines in two parts.
The core library provides most of the functionality in the Java language API, as well as some of Android's core APIs, such as Android.os, Android.net, Android.media, and so on.
Android programs are different from J2ME programs, each Android application has a proprietary process, and not many programs run in a virtual machine, but each Android program has an instance of a Dalivik virtual machine, and in that executes in the instance. Dalvik virtual machine is a register-based Java Virtual machine, rather than a traditional stack-based virtual machine, and the use of memory resources to optimize and support the characteristics of multiple virtual machines. It is important to note that unlike the j2me,android program that executes in a virtual machine is not a compiled bytecode, instead the Java bytecode is converted to an intermediate code in DEX format by the conversion tool DX.
(4) Linux Kernel layer
Android is based on the Linux2.6 kernel, and its core system services such as security, memory management, process management, network protocols, and driver models all depend on the Linux kernel.
Android System Architecture