• 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中的程序库。

  • 相关阅读:
    动态图片 Movie android-gif-drawable GifView
    X5SDK 腾讯浏览器内核
    AS 自动生成选择器 SelectorChapek
    Genymotion 模拟器 VirtualBox
    360加固保 安全防护 多渠道打包
    Thread 如何安全结束一个线程 MD
    面试题 HashMap 数据结构 实现原理
    nGrinder3.4 性能测试框架安装
    java内存泄漏的定位与分析
    JVM总结-内存监视手段及各区域内存溢出解决
  • 原文地址:https://www.cnblogs.com/Avril-j/p/5641261.html
Copyright © 2020-2023  润新知