38

私はラジオストリーミングアプリをプログラミングしています。AIDLインターフェース技術を使用してサービスと通信することにより、「ラジオ再生」をリモートサービスとして実行します。しかし、私は1つのことを本当に理解していません。

AIDL インターフェイス パラメータ値の「out」とは何ですか?

このような:

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

メソッドがアクティビティから呼び出されたときにリモートにデータを送信する「in」を理解しています。

「アウト」とは何ですか?なぜ同じメソッドで「イン」と「アウト」が必要なのですか? それら(「アウト/インアウト」)はどの場合に使用されますか? なぜString[]「アウト」なのですか?

助けてください..

4

2 に答える 2

54

AIDLではoutタグは出力専用パラメーターを指定します。言い換えれば、これは入力時に興味深いデータを含まないパラメータですが、メソッド中にデータが入力されます。

たとえば、バイト配列をコピーするメソッドは次のように指定できます。

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

inoutタグは、パラメーターが入力と出力の両方で意味を持つことを示します。例えば:

void charsToUpper(inout char[] chars);

すべてのパラメーターの内容をマーシャリング(シリアル化、送信、受信、および逆シリアル化)する必要があるため、これは重要です。in/out タグを使用すると、Binder はマーシャリング ステップをスキップしてパフォーマンスを向上させることができます。

于 2011-03-24T18:05:43.033 に答える