zoukankan      html  css  js  c++  java
  • 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层測试

     

  • 相关阅读:
    Understanding String Table Size in HotSpot
    Java性能优化之JVM GC(垃圾回收机制)
    为什么新生代内存需要有两个Survivor区
    jmap命令详解
    JVM GC 机制与性能优化
    JVM1.6 GC详解
    jstat命令详解
    锁的性能相关
    JAVA AQS源码分析
    kafka的安装 (单机)
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8428081.html
Copyright © 2011-2022 走看看