码迷,mamicode.com
首页 > 移动开发 > 详细

安卓移植和驱动开发第九章心得体会

时间:2016-07-08 13:42:23      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

HAL ( Hardware Abstraction Layer,硬件抽象腔,〉是建立在Linux驱动之上的一套翻字库。这套程序 j率并不属于 Linux 内核, 而是属于 Linux 内核层之上的应用层。 Google 为 Android 增加 HAL 的主要目 的除了尽量避免应用程序直接访问 Linux 驱动外,还有一仓重要原因,那就是保护 “私人财产”。-对于 那些既想发布茬子·Android,的Linux驱动程序,又不想将核心业务逻辑公开的企业或个人,这时候HAL显得非常重要了。

在传统的 Linux.系统中Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑有码。对于访问硬件寄存器的代码,并没有什么秘密可言,因为这都是调用的 Linux 内核的标准函数〈如 ioad32·iowrite32等)进行的标准操作。比也架构比较简单,其基本原理就是在Android系统中使用程序库 Cso文件) 调用位守内核空间的Linux驱动 〈一般通过设备文件访问)。 然后沟通1droid面用程序{APK文件〉,也可以通过NDK程序访问HAL中的程序库,或者也可以直接在安卓的程序中进行访问。

编写支持 HAL 的 Linux 驱动程序的步骤:1. 编写 Linux 驱动 2.编写 HAL Library 3.编写 Service Library 。

在Android.系统中使用 Linux驱动有两种方式。 一种是通过传统的方式直接与Limux驱动交互。例如, 直接读写设备文件的数据。另外→种是 Android特有的,就是通过 HAL模块HAL模块本质就是通过Linux共享库与Linux驱动交互,然后应用程序再访问 Linux.共享库。早期的HAL模块应用程序直接按访问Linux共字库的方式调用。而高版本的Android系统为HAL I曾加了Stub换句话说还就是为每一个 HALi共享库指定一个id, 再利用这个id 配合一定的规则 找到 Linux共享库,这样 Linux 共享库更换文件名,移动位置都很方便。

http://www.cnblogs.com/suntao123/

安卓移植和驱动开发第九章心得体会

标签:

原文地址:http://www.cnblogs.com/suntao123/p/5652958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!