The Android operating system is a stack of software components, which can be roughly divided into five parts and four main layers in the architecture diagram.
At the bottom of all the layers is Linux-Linux 3.6, which includes about 115 patches. It provides basic system functions, such as process management, memory management, device management (such as camera, keyboard, monitor). At the same time, the kernel handles all the tasks that Linux is good at, such as networking and a large number of device drivers, thus avoiding the inconvenience of being compatible with a large number of peripheral hardware interfaces. Above the Linux kernel layer is a collection of a series of libraries, including the open source Web browser engine Webkit, the well-known libc library, the SQLite database for warehouse storage and application data sharing, the library for playing and recording audio and video, and the SSL library for network security. This category includes Java-based libraries developed specifically for Android. Examples of this category library include application framework libraries, such as user interface construction, graphics, and database access. Some of the core Android libraries available to Android developers are summarized as follows: Having seen the core Java-based libraries in the Android runtime, it’s time to take a look at the Java-based libraries in the Android software stack. This is the third part of the architecture, the second layer from the bottom up. This section provides key components called the Dalvik virtual machine, which is similar to the Java virtual machine, but is specifically designed and optimized for Android. The Dalvik virtual machine makes it possible to use Linux core functions such as memory management and multithreading in Java. The Dalvik virtual machine allows each Android application to run in its own independent virtual machine process. The Android runtime also provides a series of core libraries to write Android applications using the standard Java language for Android application developers. The application framework layer provides many advanced services for applications in the form of Java classes. Application developers are allowed to use these services in applications. Activity Manager-controls all aspects of the application life cycle and activity stack. Content provider-allows data to be published and shared between applications. Explorer-provides access to non-code-embedded resources such as strings, color settings, and user interface layouts. Notification Manager-allows the application to display dialog boxes or notify users. View system-an extensible collection of views used to create an application user interface. There are all the Android applications at the top level. The application you write will also be installed on this layer. These applications include address books, browsers, games, etc.
3.6.1. Linux kernel ¶
3.6.2. Program library ¶
3.6.3. Android library ¶
android.app
-providing access to the application model is the cornerstone of all Android applications.
android.content
-facilitate content access, publishing, and message delivery between applications and between application components.
android.database
-used to access data published by content providers, including SQLite database management classes.
android.opengl
-Java API of API for OpenGL ES 3D image rendering.
android.os
-provides applications with the ability to access annotated operating system services, including messages, system services, and inter-process communication.
android.text
-render and manipulate text on the device display.
android.view
-the basic building block of the application user interface.
android.widget
-A rich collection of preset user interface components, including buttons, tags, lists, layout management, radio buttons, etc.
android.webkit
A collection of classes that allow applications to be provided with built-in Web browsing capabilities 3.6.4. Android Runtime ¶
3.6.5. Application framework ¶
3.6.6. Application program ¶