1.Android系统框架从高层到低层分为五层,分别是应用程序层(Application)、应用程序框架层(Application Framework)、系统运行库层(Libraris和Android Runtime)、Linux内核层(Linux Kernel)
2.各层的功能
(1)应用程序层
a.应用程序主要是通过使用Java调用应用程序框架层(Application Framework)所提供的API编写
b.也可以要通过使用Java通过JNI的方式,配合Android NDK来开发原生的应用程序,这样可以提供应用程序的效率,难度将大大增大。
注:Android NDK,即 Native Development Kit,NDK是一系列工具的集合,帮助开发者快速开发C/C++的动态库,并能自动将so和Java应用一起打包成apk。NDK提供了一份稳定、功能有限的API头文件声明
Android NDK编程入门 http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html
(2)应用程序框架层
应用程序框架层为开发人员提供了可以完全访问核心应用程序所使用的API框架。
应用程序框架层提供的组件有:Activity Manager、Window Manager、Content Providers、View System、Notification Manager、Resource Manager、
Hardware Services(Telephony Manager、 Location Manager 、Blutooth Service、 WIFI Service 、USB Service、 Sensor Serice)
(3)系统运行库层
包括程序库和Android运行库两部分
a.程序库
Android包含一些C/C++库,这些库能被Android系统的不同组件使用,它们通过应用程序框架为开发者提供服务;
核心库的功能介绍
Surface Manager 对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的无缝融合
Media Framework 基于PacketVideo OpenCORE,该库支持多种格式的音频和视频的回放和录制,同时支持静态图像文件。编码格式包括MPEG4\H.265\MP3\AAC\AMR\JPG\PNG
SQLite 轻型关系型数据库引擎
OpenGL ES 该类可以使用硬件3D加速或者使用高度优化的3D软加速
SGL 底层的2D图形引擎,Android使用sika作为其核心的图形引擎
FreeType Bitmap和vector字体显示
Webkit 最新的Web浏览器引擎,支持Android浏览器和一个可嵌入的Web视图
SSL 安全通信相关技术处理,为网络通信提供安全及数据完整性的一种完全协议
Libc Android并没有采用glibc作为C库,而是Google自己开发的Bionic Libc。它从BSD继承了标准的C系统函数库,是专门为基于嵌入式Linux设备定制的
b.Android运行时库
包括核心库和Dalvik虚拟机两部分
核心库提供了Java语言核心库的大多数功能,这里主要通过JNI的方式向应用程序框架层提供调用底层程序库的接口
Dalvik虚拟机是为了同时高效地运行多个VMse而实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式的文件针对最小内存使用做了优化
(4)Linux内核层
内核作为一个抽象层,存在于软件栈层和硬件层之间,Android对内核进行了增强,主要表现在
硬件时钟(Alarm) 内存分配与共享(Ashmem) 低内存管理器(Low Memory Killer) Kernel调试 日志设备(Logger) Android IPC机制(Binder) 电源管理(Power Management)
2.各层的功能
(1)应用程序层
a.应用程序主要是通过使用Java调用应用程序框架层(Application Framework)所提供的API编写
b.也可以要通过使用Java通过JNI的方式,配合Android NDK来开发原生的应用程序,这样可以提供应用程序的效率,难度将大大增大。
注:Android NDK,即 Native Development Kit,NDK是一系列工具的集合,帮助开发者快速开发C/C++的动态库,并能自动将so和Java应用一起打包成apk。NDK提供了一份稳定、功能有限的API头文件声明
Android NDK编程入门 http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html
(2)应用程序框架层
应用程序框架层为开发人员提供了可以完全访问核心应用程序所使用的API框架。
应用程序框架层提供的组件有:Activity Manager、Window Manager、Content Providers、View System、Notification Manager、Resource Manager、
Hardware Services(Telephony Manager、 Location Manager 、Blutooth Service、 WIFI Service 、USB Service、 Sensor Serice)
(3)系统运行库层
包括程序库和Android运行库两部分
a.程序库
Android包含一些C/C++库,这些库能被Android系统的不同组件使用,它们通过应用程序框架为开发者提供服务;
核心库的功能介绍
Surface Manager 对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的无缝融合
Media Framework 基于PacketVideo OpenCORE,该库支持多种格式的音频和视频的回放和录制,同时支持静态图像文件。编码格式包括MPEG4\H.265\MP3\AAC\AMR\JPG\PNG
SQLite 轻型关系型数据库引擎
OpenGL ES 该类可以使用硬件3D加速或者使用高度优化的3D软加速
SGL 底层的2D图形引擎,Android使用sika作为其核心的图形引擎
FreeType Bitmap和vector字体显示
Webkit 最新的Web浏览器引擎,支持Android浏览器和一个可嵌入的Web视图
SSL 安全通信相关技术处理,为网络通信提供安全及数据完整性的一种完全协议
Libc Android并没有采用glibc作为C库,而是Google自己开发的Bionic Libc。它从BSD继承了标准的C系统函数库,是专门为基于嵌入式Linux设备定制的
b.Android运行时库
包括核心库和Dalvik虚拟机两部分
核心库提供了Java语言核心库的大多数功能,这里主要通过JNI的方式向应用程序框架层提供调用底层程序库的接口
Dalvik虚拟机是为了同时高效地运行多个VMse而实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式的文件针对最小内存使用做了优化
(4)Linux内核层
内核作为一个抽象层,存在于软件栈层和硬件层之间,Android对内核进行了增强,主要表现在
硬件时钟(Alarm) 内存分配与共享(Ashmem) 低内存管理器(Low Memory Killer) Kernel调试 日志设备(Logger) Android IPC机制(Binder) 电源管理(Power Management)