Android System Architecture

Source: Internet
Author: User

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) Application layer

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 layer

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 (activity Manager)

Manage individual application lifecycles and common navigation fallback capabilities

b) Window Manager (window manager)

Manage all the Windows programs

c) Content Provider (content provider)

Enables access to or sharing of data between different applications

d) View system (view systems)

Building the basic components of an application

e) Notification Manager (Notification Manager)

Enables applications to display custom prompts in the status bar

F) Package Manager (bundle manager)

Program Management in Android system

g) Telephony Manager (phone manager)

Manage all your mobile device features

h) Resource Manager (Resource Manager)

Provides various non-code resources used by the application, such as localized strings, pictures, layout files, color files, etc.

i) Location Manager (position Manager)

Provide location services

j) XMPP Service (XMPP services)

Provide Google Talk services

3) System Runtime Library layer

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:

1.Surface Manager:

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.

2.Media Framework:

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.

3.SQLite:

A small relational database engine

4.opengl| Es:

3D drawing function Library implemented according to OpenGL ES 1.0API Standard

5.FreeType:

Provide the description and display of dot matrix and vector word

6.WebKit:

A set of web browser software engines

7.SGL:

The underlying 2D graphics Rendering engine

8.SSL:

Handshake during communication on Andorid

9.LIBC:

Standard C system function library from BSD inheritance, specifically tailored for embedded Linux-based devices

b) Android Runtime

Android applications are written in the Java language, and the program executes in the Android runtime, which runs at the core library and the Dalvik virtual machine in two parts.

1. Core Library

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.

2.Dalvik Virtual Machine

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 the Dalivik virtual machine and executes it in that 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

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.