オープンソースアプリ用のプラグインシステムを実装したいのですが、それは非常に大きくなり、少数のユーザーだけが必要とする多くの機能を備えているためです。userAはfeature7とfeature24を必要とし、userBはfeature39とfeature24を必要とするため、さまざまなアプリをリリースすることは適切なソリューションではありません。
プラグインアーキテクチャの良い例はどこにありますか?
これが私がプラグインにできることを望んでいることです:
- 特定の画面のレイアウトを再定義します(収縮したXMLをロードしますか?)
- クラスのメソッドを再定義します(load dex class?、AOP?)
たとえば、プラグインの1つが特定の画面にボタンを追加する必要があり、このボタンをクリックすると、アプリのデータベースの値が増加します。私の知る限り、これはコンテンツプロバイダーとインテントでは実行できません。
コアアプリのコードがいたるところにたくさんのフックがある複雑なものになるのは避けたいです。
プラグインの形式は、SDカード上のファイル、アプリ、またはその他のものである可能性があります。