我们希望开发可扩展的 Android 应用程序,并且正在寻找一种处理插件的方法。
您认为最好的方法是什么:
使用 Android 的 PackageManager。这里的问题是,PM 在设计时并没有考虑到插件,所以我们必须自己实现诸如依赖检查之类的功能。
使用现有的 Java 框架,例如 JPF(Java 插件框架)或 OSGi。OSGi 对我们来说看起来太大了,并且没有太多关于 Android 上的 JPF 的可用信息。
其他想法?
“插件”到底是什么意思?有了Intent
andIntentFilter
概念,你已经可以做很多我称之为“插件”的事情。例如,您可以允许其他应用程序在您的上下文菜单中添加条目。
一种不同的方法可能是使用 OSGi 框架。我不确定您是否熟悉它,但它允许您使用组件(称为捆绑包)构建应用程序,并且无需停止其他组件即可安装、更新和卸载这些组件。OSGi 被大量用于创建完全模块化的应用程序,或者为现有应用程序创建插件机制。
OSGi 有几个开源实现。Apache Felix 在 Android 上开箱即用,将其嵌入到您的应用程序中也相当容易。
如果您有兴趣,我可以提供更多指示,因此请随时跟进此答案。