AIDL接口参数值中的“In / out / inout”?

我正在编程一个广播stream应用程序。 我通过使用AIDL接口技术与服务进行通信来运行“广播”作为远程服务。 但是我不是很了解一件事。

AIDL接口参数值中的“out”是什么?

喜欢这个:

String doSomething(in String a, out String[] b); 

我明白“in”,即从活动调用该方法时将数据发送到远程。

“out”是什么,为什么我们需要“in”和“out”相同的方法? 在哪种情况下(“out / inout”)被使用? 为什么是String[] “out”?

请帮忙..

Solutions Collecting From Web of "AIDL接口参数值中的“In / out / inout”?"

在AIDL中 , out标签指定了一个仅输出参数。 换句话说,这是一个参数,其中不包含有关input的有趣数据,而是在方法中填充数据。

例如,复制一个字节数组的方法可能是这样指定的:

 void copyArray(in byte[] source, out byte[] dest); 

inout标签表示该参数对input和输出都有意义。 例如:

 void charsToUpper(inout char[] chars); 

这很重要,因为每个参数的内容都必须被编组 (串行化,传输,接收和反序列化)。 input/输出标签允许活页夹跳过编组步骤以获得更好的性能。