2011-01-15 18 views
30

私はラジオストリーミングアプリをプログラミングしています。私はAIDLインタフェース技術を使ってリモートサービスとして "ラジオ再生"を実行し、サービスと通信します。しかし、私は本当に一つのことを理解していません。AIDLインタフェースパラメータ値の "In/out/inout"?

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

:メソッドは、アクティビティから呼び出されたとき

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

私は「中」を理解し、それがリモートにデータを送信しています。

"out"とは何ですか?同じ方法で "in"と "out"が必要な理由は何ですか?どのような場合(「アウト/インアウト」)使用されていますか? String[]が「出る」のはなぜですか?

助けてください.. AIDL

+3

私はグッドがあなたの質問に徹底的に答えたと思います。彼の答えをチェックするといいだろう。 –

答えて

45

outタグは出力専用パラメータを指定します。言い換えれば、それは入力上の興味深いデータを含まないが、メソッド中にデータでいっぱいになるパラメータです。例えば

、バイトの配列は次のように指定されるかもしれないコピー方法:

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

inoutタグは、パラメータは入力と出力の両方に意味を持つことを示しています。たとえば、次の各パラメータの内容は(シリアライズは、送信、受信、および非直列化)marshalledなければならないので

void charsToUpper(inout char[] chars); 

これは重要です。イン/アウトタグを使用すると、Binderはマーシャリングステップをスキップしてパフォーマンスを向上させることができます。

+1

AIDLリンクがダウンしています。正しいものは[AIDL](http://developer.android.com/guide/components/aidl.html)です。 – kaneda

関連する問題