Android平台移植应该做两步工作.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【IT168技术】Android系统的移植工作的目的是为了在特定的硬件上运行Android系统。在移植的过程中,把握关键要点,减少工作量是一个重要的方面。从工作的角度,通常的方法为,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。   移植方面主要的工作有两个部分:   Linux驱动   Android系统硬件抽象层   Linux中的驱动工作在内核空间,Android系统硬件抽象层工作在用户空间,有了这两个部分的结合,就可以让庞大的Android系统运行在特定的硬件平台上。   Android移植的主要工作如图1-4所示。 ▲图1-4 Android移植的主要工作   在具有了特定的硬件系统之后,通常在Linux中需要实现其驱动程序,这些驱动程序通常是Linux的标准驱动程序,在Android平台和其他Linux平台基本上是相同的。主要的实现方面是Android系统中的硬件抽象层(Hardware Abstract Layer),硬件抽象层对下调用Linux中的驱动程序,对上提供接口,以供Android系统的其他部分(通常为Android本地框架层)调用。   提示:Android硬件抽象层的接口是本地移植层的接口,不属于标准API,不具有向前或者向后兼容性。   在Android系统需要移植的内容,主要包含了以下的各个部分:   显示部分(Display)   包括framebuffer驱动+Gralloc模块(可选择是否实现)   用户输入部分(Input)   包括Event驱动+EventHub(Android标准内容)   多媒体编解码(Codec)   包括硬件Codec驱动+Codec插件(如OpenMax)   3D加速器部分(3D Accelerator)   包括硬件OpenGL驱动+OpenGL插件   音频部分(Audio)   包括Audio驱动+Audio硬件抽象层   视频输出部分(Video Out)   包括视频显示驱动+Overlay硬件抽象层   摄像头部分(Camera)   包括Camera驱动(通常是v4l2)+Camera硬件抽象层   电话部分(Phone)   Modem驱动程序+RIL库   全球定位系统部分(GPS)   包括GPS驱动(通常为串口)+GPS硬件抽象层   无线局域网部分(WIFI)   包括Wlan驱动和协议+WIFI的适配层(Android标准内容)   蓝牙部分(Blue Tooth)   包括BT驱动和协议+BT的适配层(Android标准内容)   传感器部分(Sensor)   包括Sensor驱动+Sensor硬件抽象层   震动器部分(Vibrator)   包括Vibrator驱动+Vibrator硬件抽象层(Android标准内容)   背光部分(Light)   包括Light驱动+ Light硬件抽象层   警告器部分(Alarm)   包括Alarm驱动和RTC系统+用户空间调用(Android标准内容)   电池部分(Battery)   包括电池部分驱动+电池的硬件抽象层(Android标准内容)   Android中具有很多组件,但并不是每一个部件都需要移植,对于一些纯软的组件,就没有移植的必要。对于一些部件,例如浏览器引擎,虽然需要下层网络的支持,但是并非直接为其移植网络接口,而是通过无线局域网或者电话系统数据连接来完成标准的网络接口。   Android的移植主要可以分成几个类型:基本图形用户界面(GUI)部分,包括显示部分和用户输入部分;和硬件相关的加速部分,包括媒体编解码和OpenGL;音视频输入输出环节,包括音频,视频输出和摄像头部分;连接部分,包括无线局域网,蓝牙,GPS;电话部分;附属部件:包括传感器、背光、振动器等。   除了以上的移植方面,电源管理也是非常重要的一个方面,它和Android的各个子系统都有关系。   Android系统主要需要移植部件如图1-5所示。 ▲图1-5 Android系统主要需要移植部件   对于大部分子系统,硬件抽象层和驱动程序都需要根据实际系统的情况实现,例如:传感器部分、音频部分、视频部分、摄像头部分、电话部分。也有一些子系统,硬件抽象层是标准的,只需要实现Linux内核中的驱动程序即可,例如:输入部分、振动器部分、无线局域网部分、蓝牙部分等。对于有标准的硬件抽象层的系统,有的时候通常也需要做一些配置工作。   时至今日,随着Android系统的发展,它已经不仅仅是一个移动设备的平台,也可以用于消费类电子和智能家电,例如:上网本、电子书、数字电视、机顶盒、

文档评论(0)

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

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

1亿VIP精品文档

相关文档