我想开发一个支持动态加载和卸载包的android应用程序。因此,我正在考虑使用 OSGI 实现框架。
我最好的 OSGI 实现选择是什么?
最好,我说的是文档(资源的可用性)、与 Android API 的兼容性以及对在 Android 应用程序中嵌入 OSGI 的支持。
在搜索时,我发现了两个看起来不错的实现:
1-阿帕奇菲利克斯
2-鲢鱼
有什么建议么?谢谢。
两者都适用于Android。就像 Balazs 在评论中指出的那样,Dalvik 和 JVM 之间有很多细微的差别,其中一些在进行 OSGi 风格的代码动态加载时确实会咬到你。从记忆中,您还必须担心无法两次加载同一个类(即使它们被私人打包在不同的包中)。但是,由于您可能是从头开始设计应用程序,因此您可能可以解决这些问题。
您还可以在此处找到一些信息:适用于 Android 的 OSGi 容器
一个棘手的方面是,Android 也是一个移动的目标。Android 的第一个版本没有公开让 Felix 运行所需的类加载器方法,因此我们必须进行一些逆向工程。不过,很难预测未来的 Android 版本会带来什么。事情可能会破裂。您是要选择自己的 Android 版本并将其部署到目标设备,还是代码需要在现有设备上运行?