我在我的应用程序中实现了插件系统。插件作为独立应用程序存在。
在主应用程序中从插件访问drawables的最佳方法是什么?
答案 0 :(得分:7)
你几乎没有选择:
ContentProvider - 并非绝对需要基于SQLite
数据库。
清单属性android:sharedUserId
来自docs:
将与其他人共享的Linux用户ID的名称 应用。默认情况下,Android会为每个应用程序分配自己的应用 唯一的用户ID。但是,如果将此属性设置为相同的值 对于两个或更多应用程序,它们将共享相同的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(); }
答案 1 :(得分:0)
我认为ContentProvider是您的最佳选择。它们专门用于“在多个应用程序之间共享数据”。 以下是developer.android的参考资料: http://developer.android.com/reference/android/content/ContentProvider.html 这是一个详细的指南: http://www.vogella.com/articles/AndroidSQLite/article.html