0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android硬件通讯之HIDL介绍

哆啦安全 来源:Android开发编程 2023-03-08 15:52 次阅读

一、前言

HIDL的全称是HAL interface definition language(硬件抽象层接口定义语言),是AndroidFramework 与Android HAL之间的接口。HIDL 旨在用于进程间通信 (IPC),进程之间的通信采用 Binder 机制;

Android O(8.0)版本之后,底层实现有了比较大的变化,最显著的一个方面就是HIDL机制的全面实施。今天我们介绍下。

二、HIDL 设计目的

Android O(8.0)之前系统的升级牵扯多方协作,极为麻烦,HIDL机制的推出就是将frameworkhal层分开,使得框架部分可以直接被覆盖、更新,而不需要重新对 HAL 进行编译,这样在系统升级时,OEM厂商 跳过SoC厂商,先对framework进行升级。

2.1、8.0 之前

frameworkhal紧紧耦合存在于system.img中,因此在版本升级时需要:OEM厂商适配frameworkSoC厂商适配hal, 之后将修改打包到system.img,生成 OTA 升级包,推送到手机进行 OTA 升级

2.2、8.0 之后

frameworkhal进行了解耦,framework存在于system.imghal存在于vendor.img,进行版本升级时,分为两次升级:

framework升级:OEM 厂商适配 framework,将修改打包到 system.img, 生成OTA 升级包,推送到手机进行 OTA 升级(framework 发生改变,hal 层未变)。

hal升级:SoC 厂商适配 hal, 将修改打包到 vendor.img, 生成OTA 升级包,推送到手机进行OTA升级(framework发生改变,hal 层发生改变)。

三、HIDL机制演进

3.1 老版本 Framework 与 HAL 的通信框架

旧版的系统架构中, Android Framework 层与 Hal 层是打包成一个system.img的,且 Framework 与 hal 层之间是紧密耦合的,通过链接的方式使用相应的硬件so库。它们之间的架构一般有如下两种方式:

7c322bbe-bb08-11ed-bfe3-dac502259ad0.png

3.2 HIDL 类型介绍

为了解决两者之间这种紧耦合所带来的弊端,google 引入 HIDL 来定义 Framework 与 HAL 之间的接口,可以用下图来描述:

7c6aa372-bb08-11ed-bfe3-dac502259ad0.png

事实上虽然 google 推出了这种机制,但是很多厂商没有很快的跟上节奏,因此为了向前兼容, google 定义了三种类型:

7c8d8cc0-bb08-11ed-bfe3-dac502259ad0.png

① 是 Treble Project 之前使用的实现架构,使用的是传统 HAL 和旧版 HAL

② 直通模式,passthrough mode。如图所示,Framework 和 HAL 层工作在同一个进程当中,下面的 HAL 是使用 HIDL 封装后的库,是直通式 HAL。这些库文件也可用于 ③ 绑定模式

③ 绑定模式,binderized mode。是直通式 HAL binder 化,变为绑定式 HAL。Framework 和 HAL 层工作在不同的进程,之间通过 Binder 进行 IPC

④ 纯绑定式。相对于 ③ 来说,绑定式 HAL 中并不包含直通式 HAL,因此称为纯绑定式

上述可总结为

7cb0d752-bb08-11ed-bfe3-dac502259ad0.jpg





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3851

    浏览量

    125639
  • soc
    soc
    +关注

    关注

    38

    文章

    3745

    浏览量

    215678
  • IPC
    IPC
    +关注

    关注

    3

    文章

    306

    浏览量

    51348
  • HAL
    HAL
    +关注

    关注

    2

    文章

    68

    浏览量

    12471

原文标题:Android的硬件通讯之HIDL介绍

文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Android系统与应用开发内容介绍

    建立,为后面的Android移植打好基础。1、PXA270硬件平台介绍2、安装交叉编译工具链与其他相关工具3、移植bootloader到PXA270硬件平台4、移植Linux内核到PX
    发表于 07-13 14:03

    Android介绍

    Android介绍:HTC G1操作界面Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序 —— 移动电话工作所需的全部软件,而且
    发表于 08-15 14:10

    Android系统开发蓝牙开发案例分析

    主题:Android系统开发蓝牙设备访问技术要点分析及经典案例课程内容:本专题围绕Android中蓝牙技术及设备访问要点进行介绍,为您解决蓝牙开发过程中经常遇到的问题,最后以“智能医
    发表于 07-24 16:32

    Android手机操控ARM开发板外围硬件设备【创科之龙】原创

    Android手机操控ARM开发板外围硬件设备【创科之龙】Aiku致力于打造一个真正从实战开发和实用性非常强的教程。手把手教你android智能手机零死角远程操控2440开发板外围硬件
    发表于 01-12 22:31

    干货!Android蓝牙驱动开发经验

    干货!Android蓝牙驱动开发经验目录一 Bluetooth基本概念1二 Android Bluetooth架构12.1 Bluetooth架构图12.2 Bluetooth代码层次结构3三
    发表于 02-29 15:53

    AndroidsettingsWifi学习

    AndroidsettingsWifi学习
    发表于 11-02 10:52

    Androidwifi分析(上)

    Androidwifi分析(上)
    发表于 11-02 10:53

    基于Android的平板和具备USB控制功能的微处理器之间建立通讯介绍方案

    和具备USB控制功能的微处理器之间建立这样的通讯介绍一个基本的方案。  USB主控的一个关键特点是能为USB装置(或从设备)供电,并提供了一个非常丰富的通信协议,支持传输相对大量的数据。然而,就协议
    发表于 06-05 05:00

    嵌入式扩展板模块按键硬件介绍

    蓝桥杯嵌入式扩展板模块按键硬件介绍Button.cButton.c函数实现的讲解Button.h总结硬件介绍U1S1这是我见到过最NB的
    发表于 12-20 06:06

    IMX8mq Android 11 BSP很快失败,无法解析JSON:* 9330行怎么解决?

    /.intermediates/system/libhidl/transport/manager/1.0/android.hidl.manager@1.0_genc++_headers/gen -Iout
    发表于 03-22 07:45

    Android平台简易即时通讯方案

    论文简单介绍Android平台的特性,主要阐述了基于Android平台简易即时通讯(IM)的作用和功能以及实现方法。
    发表于 02-21 10:27 5005次阅读
    <b class='flag-5'>Android</b>平台简易即时<b class='flag-5'>通讯</b>方案

    Verilog HIDL的RTL设计风格指南资源下载

    Verilog HIDL的RTL设计风格指南资源下载
    发表于 04-13 10:09 9次下载

    Android智能硬件开发之串口通信介绍

    串口通信是Android智能硬件开发所必须具备的能力,市面上类型众多的外设基本都是通过串口进行数据传输的,所以说不会串口通信根本就做不了智能硬件开发。
    的头像 发表于 07-03 16:27 3566次阅读

    Android Q打通应用层到HAL层(HIDL服务实现)

    AndroidQ 打通应用层到HAL层—(HAL模块实现)这篇文章中我们已经实现了自己的HAL,本篇我们实现一个HIDL服务,通过这个服务来调用HAL模块的函数
    的头像 发表于 02-21 10:28 2115次阅读

    基于Android平台的个性通讯

    电子发烧友网站提供《基于Android平台的个性通讯录.doc》资料免费下载
    发表于 10-30 11:32 0次下载
    基于<b class='flag-5'>Android</b>平台的个性<b class='flag-5'>通讯</b>录