基于LinuxAndroid OS 平台应用浅析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于LinuxAndroid OS 平台应用浅析

基于LinuxAndroid OS 平台应用浅析   摘要 Android是由Google开发的基于Linux平台的开源手机操作系统。Android操作系统和其它操作系统一样,采用了分层的架构。   关键词 Android系统架构;虚拟机;Linux   中图分类号TN929 文献标识码A 文章编号 1674-6708(2011)42-0207-02   1 Android系统架构简介   Android作为软件平台标准,形成完整的系统须有硬件的运算能力支持才行。Android软件平台包含Java Application、Application Framework、Libraries、Runtime与Linux OS等层。每一层内含多个独立组件完成不同功能,Android在各组件与层之间订出标准界面。不同应用产品可以依功能需要加入软件或硬件组件整合成不同产品,Android系统就如同积木堆栈一样存放不同的软件或硬件组件来实现不同的应用产品。   1.1Android系统架构各层特点   应用程序(Applications):依据使用者的期望而将Android框架里的组件及Library组件组合而成的高阶服务。   应用框架( Application Framework):结合Applications与Libraries的幕后主架构。   Android Runtime:Dalvik虚拟机执行.dex类型的可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的 dx 工具转化成.dex格式由虚拟机执行。   Libraries:Android已提供了一些C++链接库。例如,SQLite数据库系统、OpenGL 3D绘图系统、媒体库、LibWebCore等。   Linux核心:Android依赖Linux 来提供核心的服务,例如内存管理、进程(Process)管理、线程(Thread)管理、网络(Network)协议栈、驱动(Driver)模型等。   对于软件开发者的着力点在于:链接库层(*.SO)。基于*.SO往下衔接到Driver和硬件组件,以*.SO来提升硬件的价值。基于*.SO往上衔接到Google支持的Java抽象类别和界面,再衔接到成千上万的应用层Java子类别,享受*.SO + 硬件组件无限复制的商机。基于上述的分析,Android平台的开发要点是:开发*.SO发挥自身硬件产品的特色;然后嵌入于Android框架层。   1.2Android系统的特点与其他系统的对比   在智能手机软硬件供应链上之前属于单纯的垂直产业链,手机上关键软硬件,如操作系统、中介软件、人机接口的软件组成、核心SoC与平台设计等关键技术,大多被国外大厂掌握。由Google提供的Android软件平台采取开放源码,不同软件层的厂商都可以清楚地看到其与其它层接口,就其专精部分深入开发,其研发成果可以再挂回Android平台作功能展示。不同硬件或是模块厂商通过定义清楚的标准接口直接对Android软件进行开发,然后对开发的产品再以模块的方式整合在Android系统中,创造差异化嵌入式产品。由于Android的开源性,移动装置软硬件供应链将产生进一步的垂直分工。   1.3 Android虚拟机(Dalvik)与APK   一个Dalvik虚拟机实例里只有一个Android应用在运行,并且每一个虚拟机实例都是一个独立的进程空间。虚拟机依赖底层操作系统实现线程机制,内存分配和管理,Mutex等。所有Android应用的线程都对应一个Linux线程,因而虚拟机可以更多的依赖操作系统的线程调度和管理机制。   不同的进程空间里运行不同的应用程序,并且不同来源的应用都使用不同的Linux用户来运行,由此可以最大程度的保护应用的安全和独立运行。Zygote是一个虚拟机进程,也是一个虚拟机实例的孵化器,系统要求执行一个Android应用程序时,Zygote就会调度一个子进程来执行应用程序。   Zygote进程是在系统启动时产生的,该进程会完成虚拟机的初始化,库的加载,预置类库的加载和初始化等操作,当Android系统需要一个新的虚拟机实例时。Zygote通过复制自身,最快速的提供一个虚拟机实例。而且对于一些只读的系统库,所有得虚拟机实例都和Zygote共享一块内存区域,节省了内存开销。   APK(应用程序包)被发布到手机上后在运行前会对其中的DEX文件进行优化,优化后的文件被保存到缓存区域(优化后的格式被称为DEY),虚拟机直接执行DEY文件。如果应用包文件没有发生改变,DEY文件不会被重新产生。Android应用程序开发用Java语言,编译时和

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档