A Android's system architecture
1. Application
Core applications, such as email clients, SMS short message programs, calendars, maps, browsers, contact management programs, are released with the Android system. These applications are written in Java.
2. Application Framework
Developers can use it to develop applications, including:
• Rich and extensible view (views): Can be used to build applications that include lists (lists), grids (grids), TextBox (text boxes), buttons (buttons), and even web browsers that can be embedded.
• Content Providers: Enables applications to access data from another application, such as a contact database, or share their own data
• Resource Manager (Resource Manager): Provides access to non-code resources, such as local strings, graphics, layout files (layoutfiles)
• Notification Manager (Notification Manager): Enables applications to display customized prompts in the status bar
• Activity Manager: Used to manage the application lifecycle and provide commonly used navigation fallback features
When we develop an Android application, it is done for the underlying application framework. In this sense, the applications on the Android system are completely equal, whether it is a program provided by an Android system or a program provided by an ordinary developer, it is possible to access the API framework provided by Andorid.
3. Class Library
A number of C + + core libraries to facilitate developer application development. In general, Android app developers cannot call these class libraries directly, but they can be called through the application framework.
• System C Library (LIBC): specifically tailored for embedded Linux-based devices
• Media Library: Supports a variety of commonly used audio, video format playback and recording, while supporting still image files. Encoding formats include MPEG4, H. MP3, AAC, AMR, JPG, PNG
Surfacemanager: Management of display subsystems with seamless integration of 2D and 3D layers for multiple applications
Webkit/libwebcore:web browsing engine, supports Android browser and an embeddable Web view
SGL: The underlying 2D graphics engine
3d libraries: 3D engine based on OpenGL ES 1.0 APIs
FreeType: Bitmap (bitmap) and vector (vectors) font display
SQLite: Lightweight relational database engine
4. Android Runtime Environment
Android Core Library: Provides most of the functionality of the Java library
Dalvik virtual machines: relies on some features of the Linux kernel, such as threading mechanisms and underlying memory management mechanisms. While virtual machines are register-based, the Dalvik operates in a concise, efficient byte code format that enables multiple applications to be executed in parallel with low-cost and no-application interference, and each Android application runs in its own process, with a separate Dalvik The virtual machine instance. The executable file in the Dalvik virtual machine is a. dex file that is optimized for small memory usage. All classes are compiled by the Java compiler, and then converted to. dex format by the "DX" tool in the SDK and executed by the virtual machine.
5. Linux Kernel
The Linux kernel acts as an abstraction layer between the hardware and the software stack. Android Core System Services: Security mechanisms, memory management, process management, networking, hardware drivers