学習バインダーアプリケーション層

1バインダーはじめ
、セキュリティと安定性の考慮事項については、Androidのは、間接的にしかソケット、パイプ、共有メモリおよび他の方法を介して通信する、アプリケーション間の直接アクセスを許可していません。プロセス間通信機構は、Androidに固有のバインダー、その本質を達成するために、ドライバ層を介してプロセス間で共有メモリを実現することです。
プロセス間のアクセスは、このようなパッケージ名のロック画面、ロック画面をインポートし、プロジェクトのディレクトリ・インターフェースを呼び出すことができますSystemUIソースファイルなどの簡単な関数呼び出しを、意味するものではありません、これは、2つのプロセス間の双方向通信はではなく、単に完全SystemUIのコンパイル、書き込み時の機能、本質やSystemUIの内部でプログラムを実行します。(動的リフレッシュ処理Bを用いて、実時間でこれらのデータ)の処理Bのために、2つのプロセス間の通信ので、データの処理Aはリアルタイムでアクセスすることを、互いのリソースにアクセスするための手段を実行していました。この操作を達成するために、プロセスはA-Bのために設計することができ、>通信のBは、呼び出しインタフェースを作るために、サブスレッドを開きます。ため、プロセスにおいて、サブスレッドの複数のデータ・リソースを共有することができます。基本的に、バインダーの通信は、そうすることです。クライアントは、バインダーを伝えるためにサーバに要求するたびに、この要求のためのバインダー子スレッドを開くの過程でサービスを終了します。システムは、16までの同時に実行されている各サブスレッド・サーバー・プロセスのためのバインダーを設定されています。場合に例外的な状況、バインダーサブスレッドがバインダーを終了することができないにつながる異常呼、バインダーときに16以上のコールが多数発生している間、サービス・プロセスに直接カトンANRをもたらすであろう。これは、システムのプロセスsystem_serverあり、それはシステム全体カトンでも電話の再起動が発生しますサービスプロセスで発生した場合、ANR様々なアプリケーションモジュールが表示されます。ActivityManagerService / PowerManagerService / PackageManagerServiceおよび他のシステムサービスは16バインダーsystem_serverプロセス現れるが充填されているようsystem_serverプロセス、およびアプリケーション層アプリこれらのサービスを頻繁にコールを実行しているので、広範な現象が発生します。この分析から、安定性の問題を分析する際に行うことができます。

2Binderの症状
2.1バインダーは、2つの方法で実装
2つの方法で実装サーバ側バインダーオブジェクトであり、実際には
AIDLによって実現2.1.1
ステータスバー管理サービスには、例えば、サーバは通常、以下:
StatusBarManagerServiceはIStatusBarService.Stubを拡張します{

おすすめ

転載: blog.csdn.net/qq_42894864/article/details/104075614