android - Android 实现 OSGI 的最佳选择

标签 android osgi apache-felix osgi-bundle

我想开发一个支持动态加载和卸载包的Android应用程序。因此,我正在考虑使用OSGI实现框架。

我最好的 OSGI 实现选择是什么?

最好的情况是,我谈论的是文档(资源的可用性)、与 Android API 的兼容性以及对在 Android 应用程序中嵌入 OSGI 的支持。

在搜索时,我发现了两个似乎不错的实现:

1- Apache Felix

2- Knopflerfish

有什么建议吗?谢谢。

最佳答案

两者都适用于 Android。就像 Balazs 在评论中指出的那样,Dalvik 和 JVM 之间存在相当多的细微差别,其中一些在执行 OSGi 风格的代码动态加载时确实会造成困扰。根据内存,您还必须担心无法两次加载同一个类(即使它们私有(private)地打包在不同的包中)。但是,由于您可能是从头开始设计应用程序,因此您可能可以解决此类问题。

您还可以在这里找到一些信息:OSGi container for Android

但一个棘手的方面是,Android 也是一个不断变化的目标。 Android 的第一个版本没有公开让 Felix 运行所需的类加载器方法,因此我们必须进行一些逆向工程。不过,很难预测 Android 的 future 版本会带来什么。事情可能会破裂。您要选择自己的 Android 版本并将其部署到您的目标设备上,还是代码需要在现有设备上运行?

关于android - Android 实现 OSGI 的最佳选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17954781/

相关文章:

android - 如何获得所选国家的国定假日

java - OSGi 服务引用为空(从启动器到 bundle 的服务)

servlets - Tomcat Apache ServiceMix 集成问题

osgi - 使用 Context Loader 加载资源失败并出现 NullPointerException

android - 在 CountdownTimer 上获取剩余时间并将剩余时间用作分数 android

java - 使用 SimpleDateFormat 但小时值倒退 3 小时

java - 将 Payara (Glassfish) 连接池与 Hibernate 结合使用

osgi - 如何安装 postgresqljdbc 以在 Karaf OSGi 中工作?

apache-felix - OSGi 和传递依赖

android - 当 GPS 提供商没有提供正确的位置更新时,更改 Android 中的位置提供商