android aild 传递多个参数, in ,out,inout

在 HIDL 和 AIDL 中,方法参数的传递方式有所不同。HIDL 使用 generates 关键字来表示方法的返回值,而 AIDL 使用 inoutinout 关键字来表示参数的传递方向。

HIDL 中的 generates

在 HIDL 中,generates 关键字用于指定方法的返回值。例如:

cpp 复制代码
VehicleVariantCodingValue getSingleValue(string key) generates(StatusCode status, VehicleVariantCodingValue value);

在这个例子中,getSingleValue 方法接受一个 string 类型的参数 key,并返回两个值:StatusCode 类型的 statusVehicleVariantCodingValue 类型的 value

AIDL 中的 inoutinout

在 AIDL 中,参数的传递方向通过 inoutinout 关键字来指定:

  • in:表示参数是输入参数,调用者将数据传递给被调用者。
  • out:表示参数是输出参数,被调用者将数据传递回调用者。
  • inout:表示参数既是输入参数又是输出参数,调用者将数据传递给被调用者,被调用者也可以修改数据并传递回调用者。

在 AIDL 中,方法的返回值通常是 void,而多个返回值通过 out 参数来实现。例如:

aidl 复制代码
void getSingleValue(in String key, out StatusCode status, out VehicleVariantCodingValue value);

在这个例子中,getSingleValue 方法接受一个 String 类型的输入参数 key,并通过 out 参数返回两个值:StatusCode 类型的 statusVehicleVariantCodingValue 类型的 value

示例

HIDL 方法定义
cpp 复制代码
VehicleVariantCodingValue getSingleValue(string key) generates(StatusCode status, VehicleVariantCodingValue value);
对应的 AIDL 方法定义
aidl 复制代码
void getSingleValue(in String key, out StatusCode status, out VehicleVariantCodingValue value);

解释

  1. HIDL 中的 generates

    • generates 关键字用于指定方法的返回值。
    • 在这个例子中,getSingleValue 方法返回两个值:StatusCodeVehicleVariantCodingValue
  2. AIDL 中的 inout

    • in 表示输入参数,调用者将数据传递给被调用者。
    • out 表示输出参数,被调用者将数据传递回调用者。
    • 在这个例子中,getSingleValue 方法接受一个 String 类型的输入参数 key,并通过 out 参数返回两个值:StatusCodeVehicleVariantCodingValue

总结

  • HIDL 使用 generates 关键字来指定方法的返回值。
  • AIDL 使用 inoutinout 关键字来指定参数的传递方向。
  • 在 AIDL 中,方法的返回值通常是 void,而多个返回值通过 out 参数来实现。
相关推荐
学传打活2 天前
古代汉语是源,现代汉语是流,源与流一脉相承。
微信公众平台·1024程序员节·汉字·中华文化
学传打活7 天前
【边打字.边学昆仑正义文化】_19_星际生命的生存状况(1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
unable code14 天前
[HNCTF 2022 WEEK2]ez_ssrf
网络安全·web·ctf·1024程序员节
unable code15 天前
[NISACTF 2022]easyssrf
网络安全·web·ctf·1024程序员节
unable code16 天前
BUUCTF-[第二章 web进阶]SSRF Training
网络安全·web·ctf·1024程序员节
开开心心就好17 天前
进程启动瞬间暂停工具,适合调试多开
linux·运维·安全·pdf·智能音箱·智能手表·1024程序员节
仰泳之鹅18 天前
【51单片机】第一课:单片机简介与软件安装
单片机·嵌入式硬件·51单片机·1024程序员节
海海不瞌睡(捏捏王子)19 天前
C#知识点概要
java·开发语言·1024程序员节
小浣熊熊熊熊熊熊熊丶20 天前
飞牛NAS 安装 Teslamate 教程(docker版)
1024程序员节
程高兴20 天前
模糊PID控制的永磁同步电机矢量控制系统-SIMULINK
matlab·1024程序员节