【发布时间】:2012-03-10 03:04:09
【问题描述】:
我想开发一个支持插件并为这些插件提供数据的应用程序。在我看来,在 Android 上实现这个插件架构的正确方法是主应用一个 apk,每个插件一个 apk。
但是由于主应用程序和每个插件都在不同的 apk 中,我无法轻松地将(数据)对象从一个应用程序传递到另一个应用程序,应用程序在不同的进程中运行,即使它们在一个进程中运行(可以是实现)他们有不同的类加载器,这不起作用。目前,我看到两种有前途的方法可以将数据从我的主应用程序获取到我的插件:
- 将主应用程序声明为
ContentProvider。在我看来,这似乎是预期的方法,因为它正是我想要实现的:向另一个进程提供内容/数据。 - 创建我的数据对象
Parcelable并使用AIDL或-如果我不需要多线程-使用Messenger-方法来推动它们。在我看来,这种方法似乎更容易,因为我可以使用关心后台数据库的 ORM 库。我以前从未使用过 ContentProviders,但乍一看,我认为使用 ContentProvider 有点像手动构建 SQL 查询(如果我错了请告诉我),我想避免这项工作!李>
现在我想知道我是否遗漏了任何优点或缺点,以及这两种方法之间是否存在显着的性能差异。您更喜欢哪种解决方案?为什么要这样做?
提前致谢!感谢任何回复!
【问题讨论】:
标签: android ipc android-contentprovider aidl