编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

安卓系统架构

    介绍安卓的系统架构前,我们先上一张android系统架构图

android系统架构图

    从以上的android系统架构图中,我们应该很容易的看出,Android 大致可以分为四层架构,五块区域。从下至上依次为Linux内核层、系统运行库层、应用程序框架层以及应用程序层。

1. Linux 内核层

    Android 系统是基于 Linux 2.6 内核的,这一层为 Android 设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi 驱动、电源管理等。以及核心系统服务如安全性、内存管理、进程管理、网路协议等。

2. 系统运行库层

    从安卓系统图可知,系统运行库层分为系统库(Libraries)和安卓运行时(Android Runtime)。

    系统库

    这一层通过一些 C/C++库来为 Android 系统提供了主要的特性支持,是连接应用程序框架层与Linux内核层的重要纽带。其主要分为如下:

    Surface Manager:执行多个应用程序时候,负责管理显示与存取操作间的互动,另外也负责2D绘图与3D绘图进行显示合成。

    Media Framework: 多媒体库,基于PacketVideo OpenCore;支持多种常用的音频、视频格式录制和回放,编码格式包括MPEG4、MP3、H.264、AAC、ARM。

    SQLite:小型的关系型数据库引擎

    OpenGL|ES:根据OpenGL ES 1.0API标准实现的3D绘图函数库

    FreeType:提供点阵字与向量字的描绘与显示

    WebKit:一套网页浏览器的软件引擎

    SGL:底层的2D图形渲染引擎

    SSL:在Andorid上通信过程中实现握手

    Libc:从BSD继承来的标准C系统函数库,专门为基于embedded linux的设备定制

    Android运行时

    它主要提供了一些核心库,能够允许开发者使用 Java 语言来编写 Android 应用,其运行时分为核心库和Dalvik虚拟机两部分。

    核心库

    核心库提供了Java语言API中的大多数功能,同时也包含了Android的一些核心API,如android.os、android.net、android.media等等。

    Dalvik虚拟机

    Dalvik虚拟机使得每一个 Android 应用都能运行在独立的进程当中,并且拥有一个自己的 Dalvik 虚拟机实例。相较于 Java 虚拟机,Dalvik 是专门为移动设备定制的,它针对手机内存、CPU 性能有限等情况做了优化处理

3. 应用框架层

    应用程序框架层是我们从事Android开发的基础,这一层主要提供了构建应用程序时可能用到的各种 API,Android 自带的一些核心应用就是使用这些API完成的, 开发者也可以通过使用这些API来快速的构建自己的应用程序,当然也可以通过继承而实现个性化的拓展。

    活动管理器(Activity Manager):管理各个应用程序生命周期以及通常的导航回退功能

    窗口管理器(Window Manager):管理所有的窗口程序

    内容提供器(Content Provider):使得不同应用程序之间存取或者分享数据

    视图系统(View System):构建应用程序的基本组件

    通告管理器(Notification Manager):使得应用程序可以在状态栏中显示自定义的提示信息

    包管理器(Package Manager):Android系统内的程序管理

    电话管理器(Telephony Manager):管理所有的移动设备功能

    资源管理器(Resource Manager):提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等

    位置管理器(Location Manager):提供位置服务

    XMPP服务(XMPP Service):提供Google Talk服务

4. 应用层

    所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等程序(这些应用程序都是可以被开发人员开发的其他应用程序所替换的),或者是你从 Google Play 上下载的小游戏,当然还包括你自己用java语言开发的程序。

未经允许不得转载: 技术文章 » 移动开发 » 安卓开发 » 安卓系统架构