根据官方提供的系统架构图显示,Android系统架构分为四层:

Applications(应用程序层)

Application Framework(应用框架层)

System RunTime Layer(系统运行库层):

             Libraries(系统库)和Android RunTime(Android运行时)

Linux Kernel(Linux内核层)

 1.应用程序层

Android会自带一些核心应用程序,包括Home(主屏)、E-mail客户端、SMS/MMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有程序都是使用Java语言开发,通过调用应用程序框架层(Application Framework)所提供的API来完成。当然也可以使用Java通过JNI方式,配合Android NDK来开发原生的应用程序,这样可以提高应用程序的效率,但是开发难度加大,且Android NDK提供的功能有限。

2.应用程序框架层

为开发人员提供了可以完全访问核心应用程序所使用的API框架。

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

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

Content Providers(内容提供器):不同应用程序间的数据共享和访问

View System(视图系统):list(列表)、grid(网格)、text box(文本框)等

Notification Manager(通知管理器):在状态栏显示自定义的提示信息

Package Manager(包管理器):管理Android系统中的所有应用程序

Resource Manager(资源管理器):提供资源供应用程序使用

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

XMPP Service(XMPP服务):提供Google Talk服务,是一种通讯服务

Telephony Manager(电话管理器):电话拨打和接听等相关服务

3.系统运行库层

(1)Libraries(系统库)

    系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。

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

    Media Framework:基于PacketVideo OpenCORE,该库支持多种格式的音频和视频的回放和录制,同时支持静态图像文件。编码格式包括MPEG4、H264、MP3、AAC、AMR、JPG、PNG

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

    Opengl ES:支持OpenGL ES1.x和OpenGL ES 2.0。标准实现的3D绘图函数库以及3D加速

    SGL:底层的2D图像引擎,使用skia作为核心图像引擎

    FreeType:位图和矢量字体的显示

    Webkit:Web浏览器引擎

    SSL:为网络通信提供安全以及数据完整性的一种协议

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

(2)Android RunTime(Android运行时)

    由Core Libraries(核心库)和Dalvik虚拟机组成。

    核心库:

    核心库提供了Java语言API中的大多数功能,主要通过JNI的方式向应用程序框架层提供调用底层程序库的接口。同时也包含了Android的一些核心API,如android.os、android.net、android.media等等。

   Dalvik虚拟机:

   Android程序不同于J2me程序,每个Android应用程序都有一个专有的进程,并且不是多个程序运行在一个虚拟机中,而是每个Android程序都有一个Dalivik虚拟机的实例,并在该实例中执行。Dalvik虚拟机是一种基于寄存器的Java虚拟机,而不是传统的基于栈的虚拟机,并进行了内存资源使用的优化以及支持多个虚拟机的特点。需要注意的是,不同于J2me,Android程序在虚拟机中执行的并非编译后的字节码,而是通过转换工具dx将Java字节码转成dex格式的中间码。

4.Linux内核层

    Android是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模块等。对内核增强主要表现在以下方面:

    Alarm(硬件时钟)

    Ashmem(内存分配与共享)

   Low Memory Killer(低内存管理器)

   Kernel Debugger(Kernel调试)

   Logger(日志设备)

   Binder(Android IPC机制)

   Power Management(电源管理)


注释:内容来自《Android技术内幕》

更多相关文章

  1. Mono for Android(安卓)(2)-- Android应用程序初认识
  2. Android4.4 Activity启动流程
  3. Android(安卓)cursor query方法详解
  4. Android: Android(安卓)Architecture
  5. Android开发者指南(10) —— Android(安卓)API Levels
  6. 【Android(安卓)Api 翻译4】android api 完整翻译之Contacts Pro
  7. Android完全退出应用程序
  8. android卸载应用工具类
  9. Android(安卓)Studio插件大全

随机推荐

  1. adb Not running as root. Try "adb root
  2. Android的快速开发框架afinal
  3. Android(安卓)线程超时的例子
  4. android scaleType的属性
  5. Android中Message机制的灵活应用
  6. 工作环境搭建(9) - CentOS7命令行安装And
  7. (转载自diycode)2017 Android(安卓)面试
  8. android 横竖屏限制如何配置
  9. android里发送mail的几种方式
  10. Maven开发Android指南 2 配置android-mav