Android's system architecture is based on the Linux kernelThe Android system consists of the application layer, the application framework layer, the function library and the runtime, and the Linux kernel.
-Application Layer
The application layer includes a range of system core programs such as phone, Browser (browser) Apps, contacts, SMS.
-Application Framework Layer
Provides a number of APIs that developers can use to develop their own applications, simplifying the architectural design of program development.
Activity Manager Event Manager, which manages the program life cycle and provides common navigation fallback functionality
Window Manager Manager, manage all Windows programs
Content providers, which allows one app to access data from another app, or share their own data
View System Views manager for building applications such as lists, tables, text boxes, and buttons
Notification Manager Notification Manager to set the prompts displayed in the status bar
Package Manager Pack manager for the management of programs within the Android system
Telephoney Manager Phone manager for managing contacts and communications records.
Resource Manager Explorer, used to provide access to non-code resources such as local strings, graphics and layout files, etc.
Location Manager Position Manager to provide information such as the user's current location
XMPP Service,service Service
-Function library and runtime
The library mainly provides some class libraries that are required for Android programs to run. These class libraries are typically written in C + + languages.
Libc:c Language standard library, the system's lowest level library, C standard library through the Linux system call Surface Manager: Manages the display subsystem and provides seamless integration of 2D and 3D layers for multiple applications. SQLite: Relational database OpenGL| support for es:3d effects Media Framework: based on PacketVideo Opencore, the library supports a variety of commonly used audio, video format playback and recording, while supporting still image files. The encoding format includes MPEG4, H. the , MP3, AAC , AMR, JPG, PNG Webkit:web Browser enginesgl:2d Graphics Engine library SSL: at TCP/ support for data communication between IP protocol and various application layer protocolsFree Type:bitmap and vector images
Android runtime Android run, 5.0 including the runtime and Dalvik virtual machine two parts (picture is not updated), after 5.0 added art,. The core library provides most of the functionality included in the Java language Core Library, which is responsible for running programs, Dalvik virtual machines (just-in-time mode, dynamic compile execution-Program Runtime Compilation), which are written specifically for mobile devices, and are more efficient and consume less memory. ART (ahead-of-time mode, precompiled execution, pre-compilation at install time), which would have been compiled earlier at the time of the program runtime, would speed up the program's run rate, but the program using this method would be more space-consuming because of a subset of the compiled files.
-Linux kernel
Android Core system services (such as security, memory management, process management, network protocol stacks and drive models, etc.) based on the Linux2.6 core
The Linux kernel is also a layer of abstraction between hardware and software stacks, and as a mobile device system, Android is more of a need for mobile device-related drivers.
Display Driver: Show driver, Linux-based frame buffer driver
Camera Driver: Driver for the V412, Linux-based drive
Bluetooth Driver: bluetooth® driver, wireless transmission technology based on IEEE 802.15.1 standard
Flash memory Driver:flash Flash drive, MTD-based flash driver
Binder (IPC) Driver: features a separate device node that provides inter-process communication
USB Driver:usb Interface Driver
Keypad Driver: Keyboard driver, keyboard driver as input device
WiFi Driver: IEEE 802.11 standard-based driver
Audio Drivers: Voice drive, ALSA-based Advanced Linux sound System driver
Power Management: Energy management, such as battery level
Android Learning System Framework