- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章Android系统结构
第二章 Android 系统构架
Android系统结构图
1.应用层
Java语言编写的运行在虚拟机上的程序。
Email、SMS、日历、地图等等。
2.应用框架层
Google发布的核心应用所使用的API框架,开发人员可以使用这些框架来开发自己的应用程序。
丰富和可以扩展的View
内容提供器(Content Providers)
资源管理器(Resource Manager)
通知管理器(Notification Manager)
活动管理器(Activity Manager)
窗口管理器(Window Manager )
3.系统运行库
Bionic系统C库:C语言标准库,通过Linux来调用。
MediaFramework:Android系统多媒体库,基于Packetvideo Opencore,支持常见格式的多媒体文件的操作。
SGL:2D图形引擎库。
SSL:安全套接字层,为通信提供支持。
SQLite:关系数据库。
Webkit:Web浏览器引擎。
3.系统运行库(continue)
每个java程序都运行在Dalvik虚拟机之上。
每个Android应用程序都有自己的进程,Dalvik虚拟机只执行.dex的可执行文件。
每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例。
3.系统运行库(continue)
Dalvik和JVM
JVM运行的是Java字节码,Dalvik运行的是专有的文件格式.dex(Dalvik Executable)。
Java SE将Java程序编译成.class,然后打包为jar,之后JVM从jar中读取字节码;Android应用程序使用Java编程,在编译成.class文件后,通过dx工具将.class文件转换为.dex文件,之后Dalvik从中读取指令和数据。
3.系统运行库(continue)
Dalvik特征(1)
专有的dex文件格式。
对所有的.class文件整合,除去冗余信息,减小文件尺寸和IO操作,提高查找速度。
增加新操作码支持
文件结构简洁,使用对齐等长的指令
尽量扩大只读结构的大小,提高跨进程的数据共享
3.系统运行库(continue)
Dalvik的特征(2)
Dex文件的优化
调整所有字段的字节序(little_endian)
对齐结构中的每一个域
验证dex文件中所有的类
对一些特定的类和方法里的操作进行优化
3.系统运行库(continue)
Dalvik的特征(3)
基于寄存器。相对于基于堆栈实现的虚拟机,代码执行效率高。(但在通用性上存在问题)
一个应用,一个虚拟机实例,一个进程。
每一个Android应用程序都运行在一个Dalvik虚拟机实例中,每一个虚拟机实例都是一个独立的进程空间。虚拟机的线程机制、内存管理、同步和互斥操作等都依赖地城操作系统。所有Android应用线程对应一个Linux线程,因此可以更多的依赖操作系统提供的机制。不同的应用在不同的进程空间,对于不同来源的应用,都使用不用的linux用户在运行,增加安全性和独立性。
4.Linux内核层
Android的核心层系统服务是基于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等,都是依赖于该内核。
作为硬件和软件栈的抽象层。
4.Linux内核层
提供移动设备相关的驱动
Display Driver
Keyboard Driver
Flash Memory Driver
Camera Driver
Audio Driver
Bluetooth Driver
Power Management
Binder IPC(虚拟设备文件,提供IPC支持)
基本空间划分
从操作系统的角度,Android的就是一个Linux程序的集合,包括了进程空间(用户空间)、内核空间。由于Android的应用又是在Dalvik中执行,如果更深入涉及到JNI Native部分。那么用户空间划分为Dalvik和C++空间。
基本空间划分
OMS介绍
OMS (Open Mobile System),即面向移动互联网的开放型移动智能终端软件平台。
包括Linux2.6内核的下层操作系统,上层应用层、中间件、Java虚拟机、硬件参考设计以及基于Webkit的各类应用。
文档评论(0)