• 第九章 硬件抽象层:HAL 读后感


    Android HAL层,即硬件抽象层,是Google响应厂家“希望不公开源码”的要求推出的新概念
    1,源代码和目标位置
    源代码: /hardware/libhardware目录,该目录的目录结构如下:
    /hardware/libhardware/hardware.c编译成libhardware.so,目标位置为/system/lib目录
    2,HAL层的实现方式
    JNI->通用硬件模块->硬件模块->内核驱动接口
    具体一点:JNI->libhardware.so->xxx.xxx.so->kernel
    具体来说:android frameworks中JNI调用/hardware/libhardware/hardware.c中定义的hw_get_module函数来获取硬件模块,
    然后调用硬件模块中的方法,硬件模块中的方法直接调用内核接口完成相关功能
    3硬件模块
    硬件模块的开发主要是完成/hardware/libhardware/include/hardware目录下对应的头文件中的内容,主要是硬件模块头文件和hardware.h中
    的结构体中定义了一些函数指针,调用内核提供的接口将具体的函数实现,然后编译成指定名称的动态链接库放到/system/lib/hw目录下即可。
    用一句话来概括:硬件模块的开发就是定义一个hardware.h中定义的hw_module_t结构体,结构体名称为宏HAL_MODULE_INFO_SYM,然后实现结构体
    的相关内容即可。
    4,内核驱动
    主要是要向用户层开放接口,让硬件模块和内核可以交互。

  • 相关阅读:
    团队-科学计算器-成员简介及分工
    提交错误
    《结对-结对编项目作业名称-需求分析》
    对软件工程课程的期望
    自我介绍
    课堂作业0
    selenium+Java刷新浏览器
    不要焦虑~~
    JAVA代码实现得到指定文件夹下的文件名
    安全检测检查清单(IOS版APP)
  • 原文地址:https://www.cnblogs.com/mayue777/p/5638309.html
Copyright © 2020-2023  润新知