Android HIDL接口
C++
函数参数
.hal
文件中列出的参数会映射到 C++ 数据类型。未映射到基元 C++ 类型的参数会通过常量引用进行传递。
对于具有返回值(具有 generates
语句)的每个 HIDL 函数,该函数的 C++ 参数列表中都有一个附加参数:使用 HIDL 函数的返回值调用的回调函数。有一种情况例外:如果 generates
子句包含直接映射到 C++ 基元的单个参数,则使用回调省略(回调会被移除,而返回值则会通过正常的 return
语句从函数返回)。
函数返回值
传输错误和返回类型
generates
语句可以产生三种类型的函数签名:
- 如果只有一个作为 C++ 基元的返回值,
generates
返回值会由Return<T>
对象中函数的值返回。 - 如果情况更复杂,
generates
返回值则会通过随函数调用本身一起提供的回调参数返回,而函数则返回Return<void>
。 - 如果不存在
generates
语句,函数则会返回Return<void>
。
举例:
report (int32_t number,bool result) generates (StatusCode status);
将执行的结果StatusCode status,通过回调函数返回给相应的进程。
generates
语句是定义一个回调的,可以不使用generates
,将结果作为返回值给到调用者。
比如:StatusCode report (int32_t number,bool result);
HIDL支持将结构体或者类作为函数的返回值。
比如:struct StatusCode report (int32_t number,bool result);
没有返回值的函数
没有 generates
语句的函数的 C++ 签名将不会在参数列表中有任何回调参数。它的返回类型将为 Return<void>.
单向函数
以 oneway
关键字标记的函数是异步函数(其执行不会阻塞客户端),而且没有任何返回值。oneway
函数的 C++ 签名将不会在参数列表中有任何回调参数,而且其 C++ 返回值将为 Return<void>
。
如果不关心是否调用成功,就使用oneway。
参考:https://source.android.com/devices/architecture/hidl-cpp/functions
Android HIDL接口相关推荐
- Android R(11)为自定义HIDL接口添加DMFCM(六)
为自定义HIDL接口添加DM&&FCM(六) 1.概览 引入HIDL的一个重要原因是Android团队想要将Android Framework和Android vendor之间的代 ...
- android添加hidl,android hidl
1.定义.hal接口文件,如: 在vendor/sprd/interface中新建目录hello,其中定义好hidl接口,如: 1 package [email protected]1.0;2 3 i ...
- Android HIDL第一个HelloWorld demo
原址 写在前面 程序员有个癖好,无论是学习什么新知识,都喜欢以HelloWorld作为一个简单的例子来开头,咱们也不例外. OK,咱这里都是干货,废话就不多说啦,学习HIDL呢咱们还是需要一些准备工作 ...
- Android HIDL 简介
Android HIDL 简介 Qidi 2017.08.01 (Markdown & Haroopad) 注意:本文基于 Android 8.0 进行分析. 0.特别声明 本文是在 HIDL ...
- Android11添加AIDL系统服务及HIDL接口服务
软件平台:Android11 硬件平台:QCS6125 直接上需求:首先添加自定义系统服务并且开机自启动:其次该服务要调用HW层service的方法. 前半部分之前添加过N次,不是难点,后半部分的实现 ...
- Android HIDL HAL 接口定义语言详解
1. HIDL 概述 在 Andoird 8.0 版本框架代码中,加入了 HIDL(HAL 接口定义语言),HIDL 的出现是为了将用户层和 HAL 层分割开,它指定了 HAL 和用户之间的接口,让用 ...
- Android HIDL学习 - HelloWord入门(整理1)
Android HIDL学习(整理1) 概述 入手准备 实例应用 1.HIDL接口文件定义 2. 生成HAL相关文件 3. 实现HAL服务端的共享库 4. Hal server端启动注册程序 5.HI ...
- Android HIDL passthrough模式与binderized
关于HIDL的设计 HIDL的设计目的是为了能够在不重新编译HALs的情况下能够替换framework.HALs将由供应商或SOC制造商构建,并放在设备的vendor下的分区中,而framework框 ...
- MTK Android HIDL层添加hash值
情况描述: 在 vendor/mediatek/proprietary/hardware/interfaces/ 目录下新增加了 HIDL的接口 package: vendor.mediatek.ha ...
最新文章
- PyTorch 自动微分
- 20172304 结对编程--四则运算实验总结
- opencv 将图片合成为视频流(AVI格式)
- mysql 开发进阶篇系列 22 磁盘I/O问题(从linux操作系统上优化)
- 希捷服务器硬盘savvio,2.5英寸进军万转!希捷Savvio硬盘评测
- 微信WebView关闭后本地cookie无法清除问题
- jms.jar 2.0_JMS 2.0中JMSContext的类型
- 转移到ios下载安卓_安卓和IOS角色互转 和平精英跨系统角色转移服务将上线
- 再等等!华为折叠屏手机Mate X预计在7月底至8月初开售
- UI设计字体素材|设计中字母间距指南
- 51单片机的前世今世
- Matlab 根据状态方程,绘制相轨迹
- 二等分计算机打印机尺寸,[有赞零售] 【教程贴】打印机如何设置一等分、二等分、三等分打印尺寸...
- 求边长为一的正方体中,面对角线组成的正四面体体积.
- 计算机系统结构名词解释及简答题参考
- 【英语竞赛】听力速记
- 【阿里云高校计划】在线Linux学习
- 猿创征文|聊一聊我在字节跳动做项目质量改进的经验
- 手写实现一个本地缓存
- Android开发之漫漫长途 XII——Fragment 详解