我在我的应用程序中实现了插件系统。插件作为独立应用程序存在。
从主应用程序中的插件访问可绘制对象的最佳方法是什么?
你有几个选择:
ContentProvider - 不一定需要基于SQLite
数据库。
清单属性android:sharedUserId
来自文档:
将与其他应用程序共享的 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(); }
我认为 ContentProvider 是您的最佳选择。它们专门设计用于“在多个应用程序之间共享数据”。这是来自 developer.android 的参考:http: //developer.android.com/reference/android/content/ContentProvider.html 这里是详细指南: http ://www.vogella.com/articles/AndroidSQLite/article .html