Android系统架构师安卓系统的体系机构,Android的系统架构和其他操作系统一样,采用了分层的架构,共分为4层,从高到低分别是Android应用层,Android应用架构层,Android系统运行层和Linux内核层。
1. 应用程序
顶层中有所有的Android应用程序,包括通讯录、浏览器等,你写的应用程序也被安装在这层;所有的的应用程序都是使用Java语言编写的。
2. 应用框架层
这一层主要提供构建应用程序是可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用API来构建自己的应用程序
活动管理者(Activity Manager):控制应用程序生命周期和活动栈的所有方面
内容提供器(Content Providers):允许程序之间发布和分享数据。
资源管理器(Resource Manager):提供对非代码嵌入资源的访问,如字符串、颜色设置和用户界面布局。
通知管理器(Notification Manager):允许应用程序显示对话框或者通知给用户
视图系统(View System):一个可拓展的视图集合,用于创建应用程序用户界面
3. 系统运行库层
1) 程序库
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。他们通过Android应用程序框架为开发者提供服务,以下是一些核心库:
- 系统C库(libc):一个从BSD继承来的标准C系统函数库,他是专门为基于embedded linux的设备定制的媒体库(Media Framework):基于Packet Video opencore; 该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括 MPEG4。H264、MP3、AAC、AMR、JPG、PNG。
- Surface Manager:对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
- SGL:底层的2D图形引擎
- 3D libraries:基于OpenFLES1.0 APLs实现,该库可以使用硬件3D加速或者使用高度优化3D软加速
- FreeType:位图(bitmap)和矢量(vector)字体显示
- SQLite:一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。
2) Android运行库
Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该个税文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由java编译器编译,然后通过SDK中的”dx”工具转化成 .dex格式由虚拟机执行
Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
4. Linux内核层
Android系统基于Linux2.6内核,这一层为Android设备各种硬件提供了底层驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,WIFI驱动,电源管理等
区别DVM与JVM
- 首要差别
1Dalvik:基于寄存器,编译和运行都会更快些
JVM:基于栈,编译和运行都会慢一些
- 字节码的区别
Dalvik:执行.dex格式的字节码,是对.class文件进行压缩后产生的,文件变小
JVM:执行.class格式的字节码
- 运行环境的区别
Dalvik: 一个应用启动都运行一个单独的虚拟机运行在一个单独的进程中
JVM:只能运行一个实例,也就是所有应用都运行在同一个JVM中
本帖附件
乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站