プラグインをサポートし、これらのプラグインにデータを提供するアプリケーションを開発したいと考えています。このプラグイン アーキテクチャを Android に実装する正しい方法は、メイン アプリ用に 1 つの apk と、プラグインごとに 1 つの apk になるようです。
しかし、メインアプリとすべてのプラグインが異なるapkにあるため、(データ)オブジェクトを一方から他方に簡単に渡すことができず、アプリケーションは異なるプロセスで実行され、たとえ1つのプロセスで実行されたとしても(これは達成可能です)、異なるクラスローダーがあり、これは機能しません。現在、メイン アプリからプラグインにデータを取得するための有望な方法が 2 つあります。
- メインアプリを として宣言し
ContentProvider
ます。これは、コンテンツ/データを別のプロセスに提供するという、私が達成したいことを正確に行うため、意図したアプローチのように思えます。 - データオブジェクト
Parcelable
を作成し、それらをプッシュするAIDL
か、マルチスレッドが必要ない場合はMessenger
アプローチを使用します。私の意見では、バックグラウンドでデータベースを気にする ORM ライブラリを使用できるため、このアプローチはより簡単に思えます。以前に ContentProvider を使用したことはありませんでしたが、最初に見たとき、ContentProvider を使用することは SQL クエリを手動で作成することに少し似ていると思いました (間違っている場合は教えてください)。
ここで、長所と短所を見逃していないかどうか、およびこれら 2 つのアプローチに顕著なパフォーマンスの違いがあるかどうかを知りたいと思います。また、どのソリューションを希望しますか? また、その理由は何ですか?
前もって感謝します!どんな返信でも大歓迎です!