アプリケーションにプラグインシステムを実装しました。プラグインはスタンドアロンアプリケーションとして存在します。
メインアプリケーションのプラグインからドローアブルにアクセスするための最良の方法は何ですか?
アプリケーションにプラグインシステムを実装しました。プラグインはスタンドアロンアプリケーションとして存在します。
メインアプリケーションのプラグインからドローアブルにアクセスするための最良の方法は何ですか?
いくつかのオプションがあります:
ContentProviderSQLite
-データベースに基づいている必要はありません。
マニフェスト属性android:sharedUserId
ドキュメントから:
他のアプリケーションと共有される Linux ユーザー ID の名前。デフォルトでは、Android は各アプリケーションに固有のユーザー ID を割り当てます。ただし、この属性が 2 つ以上のアプリケーションで同じ値に設定されている場合、同じ証明書によって署名されている場合、それらはすべて同じ ID を共有します。同じユーザー ID を持つアプリケーションは、互いのデータにアクセスでき、必要に応じて同じプロセスで実行できます。
http://developer.android.com/guide/topics/manifest/manifest-element.html#uidを参照してください
PackageManager.getResourcesForApplication()を使用して、アプリケーションに関連付けられたリソースを取得します。
使用法:
PackageManager pm = getPackageManager(); try { Resources resources = pm.getResourcesForApplication("com.example.app"); int id = resources.getIdentifier("ic_launcher", "drawable", "com.example.app"); Drawable d = resources.getDrawable(id) } catch (NameNotFoundException e) { e.printStackTrace(); }
ContentProvider が最良の選択だと思います。これらは、「複数のアプリケーション間でデータを共有する」ように特別に設計されています。これは developer.android からのリファレンスです: http://developer.android.com/reference/android/content/ContentProvider.html そしてここに詳細なガイドがあります: http://www.vogella.com/articles/AndroidSQLite/article .html