HAL层分析——初步了解HAL

HAL层是Android系统中连接kernel和framework的关键组件。它通过hw_module_t、hw_module_methods_t和hw_device_t结构实现模块化。HAL_MODULE_INFO_SYM定义了模块属性,包括标签、名称和作者。hw_module_methods_t提供open方法,用于打开设备。hw_device_t则包含设备操作方法。HAL层的存在使Android商业化成功,但也限制了其开源发展。当涉及芯片厂商敏感数据时,HAL层封装了这些细节,导致Android不能完全开源。
摘要由CSDN通过智能技术生成

      HAL是kernel与framework中间的一层。下面通过分析来说明HAL在android架构中起了什么作用,它如何把framework和kernel联系起来,承上启下。它的存在为什么使得android架构被linux踢出linux内核树。注意,HAL的存在仅仅使得android商业化的成功,却限制了android的开源发展,它对于开发本身而言并不是必要的。

    

1、     HAL层实现架构(通过源代码来先看一下)

分析HAL架构需要了解三个结构

struct  hw_module_t;                        //模块类型

struct  hw_module_methods_t;        //模块方法

struct  hw_device_t;                         //设备类型

下面从源码中来看看他们的作用是什么~~~

在Hardware.h文件(/hardware/libhardware/include/hardware/hardware.h),有如下定义

(1) structhw_module_t;                      //模块类型

/* Every hardware module must have a data structure named HAL_MODULE_INFO_SYM

 * and the fields of this data structure mustbegin with hw_module_t

 * followed by module specific information.*/

typedef struct hw_module_t {… …}

(2) struct hw_module_methods_t     //模块方法

              typedefstruct hw_module_methods_t {

    /** Open aspecific device */

    int(*open)(const struct hw_module_t* module, const char* id,

           struct hw_device_t** device);

} hw_module_methods_t;

(3) struct 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值