Architecture of the Android system

Source: Internet
Author: User

Architecture of the Android system

Android's system architecture, like its operating system, employs a layered architecture. From the architecture diagram, Android is divided into four tiers, from the high-level to the lower layer, which are application layer, application framework layer, system run-level and Linux core.
1. Application
Android is published with a range of core application packages, including email clients, SMS short message programs, calendars, maps, browsers, contact management programs, and more. All applications are written in the Java language.
2. Application Framework
Developers also have full access to the API framework used by the core application. The architectural design of the application simplifies the reuse of components, and any application can publish its block of functionality and any other application can use its published block of functionality (subject to the security restrictions of the framework). Similarly, the application reuse mechanism also makes it easy for users to replace program components.
Hidden behind each app is a series of services and systems, including;
* Rich and extensible view (views) that can be used to build applications, which include lists (lists), grids (grids), text boxes (texts boxes), buttons (Buttons), and even web browsers that can be embedded.
* Content Providers allows 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, and layout files.
* Notification Manager (Notification Manager) enables applications to display customized prompts in the status bar.
* Activity Manager is used to manage the application lifecycle and provide common navigation fallback functionality.
For more details and how to write an application from scratch, refer to how to write an Android app.
3. System Runtime Library
1) Program Library
Android contains a few/C libraries that can be used by different components of the Android system. They provide services to developers through the Android application framework. Here are some core libraries:
* System C Library-a standard C system function library (LIBC) inherited from BSD, which is specifically tailored for embedded Linux-based devices.
* Media Library-based on PacketVideo Opencore; The 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.
* Surface Manager-manages the display subsystem and provides seamless integration of 2D and 3D layers for multiple applications.
* Libwebcore-an up-to-date web browser engine with support for Android browser and an embeddable Web view.
* SGL-The underlying 2D graphics engine
* 3D Libraries-based on OpenGL ES 1.0 APIs, the library can use hardware 3D acceleration (if available) or use highly optimized 3D soft acceleration.
* FreeType-Bitmap (BITMAP) and vector (vectors) font display.

* SQLite-A lightweight relational database engine that is available and powerful for all applications.
2) Android Runtime
Android includes a core library that provides most of the functionality of the Java programming language core library.
Each Android application runs in its own process and has a separate instance of the Dalvik virtual machine. Dalvik is designed as a device that can run multiple virtual systems at the same time and efficiently. Dalvik Virtual Machine Execution (. dex) Dalvik executable, which is optimized for small memory usage. While the virtual machine is a register-based, all classes are compiled by the Java compiler and then converted to. dex format by the "DX" tool in the SDK to be executed by the virtual machine.
Dalvik virtual machines rely on some of the features of the Linux kernel, such as threading mechanisms and underlying memory management mechanisms.
4.Linux kernel
Android's core system services rely on the Linux 2.6 kernel, such as security, memory management, process management, network protocol stacks, and drive models. The Linux kernel also acts as an abstraction layer between the hardware and the software stack.

Architecture of the Android system

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.