码迷,mamicode.com
首页 > 其他好文 > 详细

第九章:硬件抽象层:HAL

时间:2016-07-03 18:57:39      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

HAL(硬件抽象层)是建立在Linux驱动之上的一套主程序,这套主程序并不属于Linux内核,而是属于Linux内核层之上的应用层,GoogleAndroid增加HAL测主要目的除了尽量避免应用程序直接访问Linux驱动外,还有一个重要原因,就是保护“私人财产”,对于那些既想发布基于AndroidLinux驱动程序,又不想将核心业务逻辑公开的企业和个人。HAL简直就是福音。HAL并不是Linux内核的一部分,而是位于Android的系统运行库层,Android并没有要求源代码开源,HAL属于Android,所以也不需要开源。HAL架构基本原理就是在Android系统中使用程序库(。So文件)调用位于内核空间的Linux驱动(一般通过设备文件访问)。然后Android应用程序(APK文件)可以通过NDK程序访问HAL中的程序库,或直接在Android应用程序中访问HAL中的程序库(直接使用java代码访问)。编写一款支持HALLinux驱动程序的步骤:第一步:编写Linux驱动;第二步:编写HAL Library;第三部:编写service Library。高版本的Android系统为HAL增加了Stub,就是为每一个HAL共享库指定一个ID,再利用这个ID配合一定的规则找到Linux共享库,这样Linux共享库更换文件名,移动位置都很方便。

 

第九章:硬件抽象层:HAL

标签:

原文地址:http://www.cnblogs.com/dongchao1/p/5638537.html

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