📜 ⬆️ ⬇️

Android architecture

Author of translation and source: Maxim Yudin

Android is a set of open source mobile software from Google, which includes an operating system and a set of basic middleware applications.

Developing applications for the Android platform will require a set of API tools and libraries - the Android SDK, the latest version of which you can find here .
')
The figure below shows the architecture of the Android OS.




Application Level (Applications)

The composition of Android includes a set of basic applications: email and SMS clients, a calendar, various maps, a browser, a program for managing contacts and much more. All applications running on the Android platform are written in the Java language.

Application Framework

Android allows you to use the full power of the API used in kernel applications. The architecture is built in such a way that any application can use the already implemented capabilities of another application, provided that the latter opens access to the use of its functionality. Thus, the architecture implements the principle of multiple use of OS components and applications.

The basis of all applications is a set of systems and services:
1. The View System is a rich set of views with extensible functionality that serves to build the appearance of applications, including such components as lists, tables, input fields, buttons, etc.
2. Content Providers are services that allow applications to access data from other applications, as well as provide access to their data.
3. Resource Manager ( Resource Manager ) is designed to access string, graphic and other types of resources.
4. The Notification Manager allows any application to display custom notifications in the status bar.
5. The Activity Manager manages the application life cycle and provides a system for navigating the history of work with activities.

Libraries Level

The Android platform includes a set of C / C ++ libraries used by various OS components. For developers, access to the functions of these libraries is implemented through the use of the Application Framework. Below are some of them:
1. System C library - BSD-implementation of the standard C system library (libc) for embedded devices based on Linux.
2. Media Libraries - libraries based on PacketVideo's OpenCORE, designed to support playback and recording of popular audio and video formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.).
3. Surface Manager - the surface manager controls access to the display subsystem of 2D and 3D graphic layers.
4. LibWebCore is a modern web browser engine that provides all the power of an embedded Android browser.
5. SGL - engine for working with 2D-graphics.
6. 3D libraries - 3D graphics engine based on the OpenGL ES 1.0 API.
7. FreeType - a library designed to work with fonts.
8. SQLite is a powerful lightweight engine for working with relational databases.

Runtime level (Android Runtime)

The composition of Android includes a set of kernel libraries that provide most of the functionality of the core libraries of the Java language.

The platform uses an optimized, register-oriented virtual machine Dalvik, in contrast to it, the standard Java virtual machine is stack-oriented. Each application runs in its own process, with its own instance of the virtual machine. Dalvik uses the Dalvik Executable (* .dex) format optimized for minimal memory usage by the application. This is provided by such basic Linux kernel functions as threading and low-level memory management. The Java bytecode on which your applications are written is compiled into a dex format using the dx utility included in the SDK.

Linux Kernel Level (Linux Kernel)

Android is based on Linux OS version 2.6, thus the system provides kernel services to the platform, such as memory and process management, security, networking and drivers. The core also serves as a layer of abstraction between hardware and software.

Source: https://habr.com/ru/post/16770/


All Articles