• HAL 分析


    Framework&Application
    ------------------------------------
    External lib&Runtime
    ------------------------------------
    HAL
    Sensor stub   stub stub
    ------------------------------------
    Linux Device Driver
    ------------------------------------


    图上是现在Android HAL 的所在位置,从这张架构图我们知道,HAL 的目的是为了把 Android framework 与 Linux kernel 完整隔开。让 Android 不至过度依赖 Linux kernel,有点像是kernel independent的意思,让 Android framework 的开发能在不考虑驱动程序的前提下进行发展。



    HAL module架构
    struct hw_module_t;
    struct hw_module_methods_t;
    struct hw_device_t;



    hw_module_methods_t

    ---------------------------

    open


    ()
          \
           \
            \
             hw_module_t
             ----------------
            tag:uint32_t
            , , , , ,
                 \
                  \
                   \
                    \
                     hw_device_t
                     ---------------
                     close()




    HAL 使用方法
    举Sensor为列子

    1Native code通过hw_get_module调用获取HAL stub
    hw_get_module (SENSOR_HARDWARE_MODULE_ID, (const hw_module_t**)&module)

    2)通过继
    hw_module_methods_tcallbackopen设备:
    module->methods->open(module,
                
    SENSOR_HARDWARE_MODULE_ID, (struct hw_device_t**)device);
    3)通过继承 hw_device_tcallback来控制设备:
    sSensorDevice->set_on(sSensorDevice, sensor);
    sSensorDevice->set_off(sSensorDevice, sensor);

  • 相关阅读:
    计蒜客 跳跃游戏2
    计蒜客 跳跃游戏
    2018 计蒜之道-初赛 第一场 A-百度无人车
    poj 3625 (最小生成树算法)
    poj 3623(贪心)
    poj2386(dfs搜索水题)
    poj 2761 主席树的应用(查询区间第k小值)
    POJ 2456 编程技巧之------二分查找思想的巧妙应用
    POJ 1995(有关快速幂运算的一道水题)
    1441:【例题2】生日蛋糕
  • 原文地址:https://www.cnblogs.com/yuzaipiaofei/p/4124511.html
Copyright © 2020-2023  润新知