zoukankan      html  css  js  c++  java
  • 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中的程序库。

  • 相关阅读:
    ID控制tab切换
    jQuery控制图片的hover效果
    popup效果
    第一篇博客
    Java面试中hashCode()与equals(Object obj)方法关系的准确回答
    小福bbs凡事预则立
    编译cppunit
    EasyUI Datagrid数据网格
    发送邮件
    京东笔试
  • 原文地址:https://www.cnblogs.com/Avril-j/p/5641261.html
Copyright © 2011-2022 走看看