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

Android深度探索第九章

时间:2016-07-08 11:49:47      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

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

  在传统的Linux系统中Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑代码。

  Google为Android加入HAL主要有以下目的:

    (1)统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂不统一的接口;

    (2)解决了GPL版权问题。由于Linux内核基于GPL协议,而Android基于Apache Licence 2.0协议。因此Google玩了个穿越,将原本位于Linux驱动中的敏感代码向上移了一个层次。这样这些敏感代码就摆脱了GPL协议的束缚,那些不想开源的Linux驱动作者也就没必要开源。

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

  Android HAL的源代码存储位置并不固定,一般会存储在<Android源代码目录>/hardware目录中。

Android深度探索第九章

标签:

原文地址:http://www.cnblogs.com/swjlinux/p/5652753.html

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