Android 简明教程
Android - Architecture
Android 操作系统是一个软件组件堆栈,大致分为五个部分和四层主要层,如下面的体系结构图所示。
Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown below in the architecture diagram.

Linux kernel
底层是 Linux - Linux 3.6,有大约 115 个补丁。它提供了一个设备硬件间的抽象层,并包含所有必要的硬件驱动,如摄像头、键盘、显示器等。此外,内核处理 Linux 真正擅长的所有事情,例如网络和大量设备驱动,它们消除了与外围硬件交互的麻烦。
At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. This provides a level of abstraction between the device hardware and it contains all the essential hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware.
Libraries
在 Linux 内核的顶部是一组库,包括开源的浏览器引擎 WebKit、著名的 libc 库、SQLite 数据库(这是存储和共享应用程序数据的一个有用存储库)、播放和录制音频和视频的库、负责 Internet 安全的 SSL 库等。
On top of Linux kernel there is a set of libraries including open-source Web browser engine WebKit, well known library libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video, SSL libraries responsible for Internet security etc.
Android Libraries
此类别涵盖那些特定于 Android 开发的基于 Java 的库。此类别中的库示例包括应用程序框架库以及有助于用户界面构建、图形绘制和数据库访问的库。可供 Android 开发者使用的某些关键核心 Android 库摘要如下:
This category encompasses those Java-based libraries that are specific to Android development. Examples of libraries in this category include the application framework libraries in addition to those that facilitate user interface building, graphics drawing and database access. A summary of some key core Android libraries available to the Android developer is as follows −
-
android.app − Provides access to the application model and is the cornerstone of all Android applications.
-
android.content − Facilitates content access, publishing and messaging between applications and application components.
-
android.database − Used to access data published by content providers and includes SQLite database management classes.
-
android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
-
android.os − Provides applications with access to standard operating system services including messages, system services and inter-process communication.
-
android.text − Used to render and manipulate text on a device display.
-
android.view − The fundamental building blocks of application user interfaces.
-
android.widget − A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.
-
android.webkit − A set of classes intended to allow web-browsing capabilities to be built into applications.
在涵盖了 Android 运行时中的基于 Java 的核心库后,现在应该将注意力转向 Android 软件堆栈这一层中包含的基于 C/C++ 的库。
Having covered the Java-based core libraries in the Android runtime, it is now time to turn our attention to the C/C++ based libraries contained in this layer of the Android software stack.
Android Runtime
这是架构的第三部分,位于自底部的第二层上。此部分提供了一个称为 Dalvik Virtual Machine 的关键组件,它是一种专门为 Android 设计和优化的 Java 虚拟机。
This is the third section of the architecture and available on the second layer from the bottom. This section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android.
Dalvik VM 利用了 Java 语言固有的 Linux 核心特性,如内存管理和多线程。Dalvik VM 使每个 Android 应用程序都能在其自己的进程中运行,并拥有其自己的 Dalvik 虚拟机实例。
The Dalvik VM makes use of Linux core features like memory management and multi-threading, which is intrinsic in the Java language. The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine.
Android 运行时还提供了一组核心库,从而使 Android 应用程序开发人员可以使用标准 Java 编程语言编写 Android 应用程序。
The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.
Application Framework
应用程序框架层以 Java 类形式向应用程序提供许多高级服务。允许应用程序开发人员在其应用程序中使用这些服务。
The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications.
Android 框架包括以下关键服务 −
The Android framework includes the following key services −
-
Activity Manager − Controls all aspects of the application lifecycle and activity stack.
-
Content Providers − Allows applications to publish and share data with other applications.
-
Resource Manager − Provides access to non-code embedded resources such as strings, color settings and user interface layouts.
-
Notifications Manager − Allows applications to display alerts and notifications to the user.
-
View System − An extensible set of views used to create application user interfaces.