zoukankan      html  css  js  c++  java
  • 为什么要在Android中加入HAL

     

    为什么要在Android中加入HAL

            在传统的Linux系统中Linux驱动一般有两种类型:访问硬件寄存器的代码和业务逻辑代码。对于访问硬件寄存器的代码,并没有什么秘密可言。因为这都是调用的Linux内核的标准函数进行的标准操作。而Linux驱动的业务逻辑部分对于有些企业或个人并不像将源代码公开。尽管这些Linux驱动都是免费给用户使用的,但由于这些Linux驱动的实现涉及一些技术专利或商业机密,如果公开源代码会有很大的麻烦。但作为Linux驱动,又不得不公开源代码。这是由于Linux内核采用了GPL协议,而GPL协议要求所有使用基于GPL协议的源代码的程序必须开源。

            Goole为了满足这些不想开源的Linux驱动作者的要求,在Android层次结构中的系统运行层增加了一个HAL

    Android HAL的架构

     

    HAL 模块的存放路径和命名规则

        HAL模块(so文件)通常放在/system/lib/hw目录。

        HAL模块库文件的存放路径有两个:/system/lib/hw/vendor/lib/hwhw_get_module函数会先从/system/lib/hw目录根据库文件命名规则寻找库文件。如果/system/lib/hw目录未找到库文件,hw_get_module会按同样的规则在/vendor/lib/hw目录中寻找。

    HAL模块库文件的命名规则是ID.suffix.so。其中ID通过hw_get_module函数的id参数指定。Suffix(后缀)通过属性文件指定。

     

     

    http://www.cnblogs.com/cherry-blossom/

  • 相关阅读:
    音频重采样48kk转16k
    ld: symbol(s) not found for architecture x86_64问题解决
    麦克风啸叫抑制解决方案之移频法
    gcc makefile 模板
    mysql 分组加序号
    java微信公众号JSAPI支付以及所遇到的坑
    appium新手入门(1)—— appium介绍
    一次完整的JVM堆外内存泄漏故障排查记录
    mysql 批量更改表名
    爬虫技术
  • 原文地址:https://www.cnblogs.com/cherry-blossom/p/5632761.html
Copyright © 2011-2022 走看看