1

このステートメントの意味とその意味は何ですか。

オブジェクトは、プロセス全体で参照カウントされます。

これは、追加のメモセクションにあるAndroidプロセス間ドキュメントからのものです。

ガベージコレクションと関係がありますか(各プロセスが独自のオブジェクトを収集しません)?

4

1 に答える 1

1

@mparaz から提供されたリンクを読みました。このリンクでは、Google フレームワーク エンジニアの Diane Hackborn が Android Binder について説明しています。

これは私がリンクから理解したものです:

Android Binder は、Android のコアのすべての側面 (UI からシステムのベース レベルまで) に非常に緊密に統合されているもう 1 つのカーネル内 IPC メソッドです。プロセス管理の側面とプロセス間通信を組み合わせます。これは、一部の Linux プロセス制御メカニズムをバイパス/再実装するカーネル モジュールとして記述されています。

私が理解できる限りでは、このタイプのプロセス間通信を使用すると、通信しているアプリケーションもシャットダウンし、そのアプリケーションがシャットダウンされない限り、アプリケーションがシャットダウンした場合でも、オブジェクトがガベージ コレクションされることを確認できないようです。他のアプリケーションと同じ方法で通信したことはありません (これも、自分のものでない限り、決して確信できません)。

したがって、基本的に、この方法でオブジェクトを渡す場合、オブジェクトのガベージ コレクションに依存するべきではないように思えます。それ以外は、通常どおり続行できます。

EDIT 1:関連する注意事項として、IPCのこのメソッドを手動で閉じる必要がある場合があるようです(放棄するのではなく)。そうしないと、アプリケーションがクラッシュする可能性があります(LicenseCheckerのonDestroy()メソッドを呼び出してIPC接続を閉じるを参照)。

于 2012-08-21T08:02:33.313 に答える