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 参数来实现。
相关推荐
惜.己17 小时前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
西电研梦1 天前
考研倒计时30天丨和西电一起向前!再向前!
人工智能·考研·1024程序员节·西电·西安电子科技大学
惜.己1 天前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
·云扬·1 天前
Java IO 与 BIO、NIO、AIO 详解
java·开发语言·笔记·学习·nio·1024程序员节
网安_秋刀鱼2 天前
PHP代码审计 --MVC模型开发框架&rce示例
开发语言·web安全·网络安全·php·mvc·1024程序员节
HUODUNYUN2 天前
小程序免备案:快速部署与优化的全攻略
服务器·网络·web安全·小程序·1024程序员节
惜.己2 天前
Jmeter的后置处理器(二)
测试工具·github·1024程序员节
惜.己2 天前
Jmeter中的断言(一)
测试工具·jmeter·1024程序员节
cainiao0806053 天前
《物理学进展》
1024程序员节·核心期刊·知网期刊·职称评审
FFDUST3 天前
C++ —— string类(上)
c语言·开发语言·数据结构·c++·stl·1024程序员节