Android深度探索(卷一)HAL与驱动开发 第九章

通过学习Android深度探索(卷一)HAL与驱动开发的第九章让我知道了HAL硬件抽象层,为什么要在Android中加入HAL和Android HAL架构。

HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层,其主要目的除了尽量避免应用程序直接访问Linux驱动外,还有一个重要原因,那就是保护“私人财产”。

在传统的Linux系统中Linux驱动一般有两种类型的代码:访问硬件寄存器代码和业务逻辑代码。所以加入HAL的主要原因就是:1、统一硬件的调用接口,由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂、不统一的接口;2、解决了GPL版权问题,由于Linux内核基于GPL协议,而Android基于apache licence2.0协议,而HAL将原本位于Linux驱动中的敏感代码向上一了一个层次;3、针对一些特殊的要求,对于有些硬件,可能需要访问一些用户的空间资源,或在内核空间不方便完成的工作以及特殊需求,在这种情况下,可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。

HAL架构的基本原理就是在Android系统中使用程序库调用位于内核空间的Linux驱动,然后Android应用程序可以通过ndk程序访问HAL中的程序库,或直接在Android应用程序中访问HAL中的程序库。

转载于:https://www.cnblogs.com/Avril-j/p/5641261.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值