2017-02-27 5 views
0

私はライブラリベースのAndroid Appを再構築することを検討しているので、各ライブラリの機能をビルド時に提供するのではなく、開発者がプラグインを単独で書くことができるようにするAppとSDK。APKベースのサービスベースのプラグイン

独立したDLLをサポートする.NETのUnity依存性注入フレームワークとは異なり、Androidでこれを達成する方法はたくさんありませんでした。私が見つけたました:

  1. APKベースのアプローチ: http://blog.raffaeu.com/archive/2015/05/31/android-plugin-application.aspx

  2. サービスベースのアプローチ: http://androidsrc.net/creating-android-app-plugin-architecture-tutorial/

私の質問されています。これを達成する追加的な方法はありますか? (注:Google PlayのToSの法律の方法)

また、上記の2つのアプローチのどちらが優れていると思いますか?

+1

1と2は不可能な限り不可能ですAPKのないサービスがあります。どのIPCオプション(アクティビティ、サービス、受信者、プロバイダ)もプラグインシステムの一部を形成できます。 – CommonsWare

+0

ありがとう、なぜdownvote?これは無知な人がいくつかの無知を示​​す質問をすることができる場所ではありません。 :)あなたのコメントを回答として投稿してください。私はそれを受け入れます。ありがとうございました。 –

+1

"しかし、なぜdownvote? - 私は質問をdownvoteしませんでした。私が推測しなければならないのは、あなたがPlayストアのToSを参照したためであり、[アプリ配信チャンネルに関する質問は、話題外であるとみなされる](http://meta.stackoverflow.com/questions/272165/are-developer-トピック中心の質問に関するアプリケーションストアのトピック)。また、「優秀」とは意見を求めることを意味し、それも話題外であると考えられています。 – CommonsWare

答えて

3

一般に、アプリが他の開発者のプラグインを受け入れる場合、そのプラグインはPlayストアやその他のチャンネルを介してAPKファイルの形式で配布されます。これらのプラグインは、たとえば、あなたのものとは異なる権限を必要とする場合があり、Androidデバイス上で一流の市民である場合にのみ実行できます。

したがって、プラグインは、文書化され、サポートされているいくつかのIPCメカニズムを通じて、あなたとやりとりする他のアプリです。大きな4つのAndroidコンポーネント—アクティビティ、サービス、受信者、プロバイダ—はすべて、プラグインに関連する可能性があります。それは本当にあなたがプラグインが何をしたいのか、あなたのアプリからそれができるようにプラグインが必要とするものに依存します。要約では、それらのうちのどれを使用するかを教えてくれません。

個人的には、私がこのようなことをするつもりなら、ベースアプリと少なくとも3つのプラグインを作成します。これらのプラグインを書くときに「自分の犬の食べ物を食べる」という行為は、IPCの仕組みがどのようなものかを導くのに役立ちます。最終的に、プラグインの機能をメインアプリに直接焼いても、「本当の」プラグインがあれば、SDK、セキュリティモデルなどの形状に役立ちます。

関連する問題