Android底层驱动开发(一)

1   Android为什么要加入硬件抽象层HAL

A    统一硬件调用接口,所以利用HAL屏蔽linux驱动的复杂不统一的接口


B   解决GPL版权问题,由于linux内核基于GPL协议,这个GPL协议需要开源,而Android遵守Apache License2.0协议,这个协议不要求开源,因此google玩了个穿越,将原本位于Linux驱动中的敏感代码(业务逻辑代码)向上移动了一层,这样这些敏感代码就拜托了GPL协议的束缚,那些不想开源的linux驱动作者不想开源现在就可以不用开源了。


C   针对一些特殊要求。对于有些硬件,可能要访问用户空间资源,在内核不方便完成工作需求,在这种情况下,可以利用位于用户空间的HAL代码来辅助linux驱动完成一些工作。


2   Android HAL架构


    目前HAL存在两种构架,位于libhardware_legacy目录下的“旧HAL架构”和位于libhardware目录下的“新HAL架构”。两种框架如下图所示:

 

3   Android底层驱动开发流程

第一步: 编写简单的linux驱动

第二步:编写HAL层代码

第三步:编写JNI层代码

第四步:编写调用JNI的Java库

第五步:Android的APP层测试

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值