在安卓上使用服务加载器

2022-09-04 22:28:53

我对Java和Android开发非常陌生,并且正在学习我试图从一个应用程序开始,以像munin一样收集统计信息和信息。我正在尝试在我的应用程序中加载“插件”。这些插件已经在应用程序中,但我不想单独调用它们,而是能够迭代它们。我试图使用serviceloader,但永远无法将META-INF /服务放入我的apk中。所以我想知道是否可以在android上使用serviceloader感谢
编辑:我正在询问java.util.ServiceLoader,我认为它应该,但我无法弄清楚如何将我的服务文件夹放入apk上的META-INF


答案 1

有针对此问题的开放错误报告。查看 https://code.google.com/p/android/issues/detail?id=59658


答案 2

META-INF文件夹被ApkBuilder故意从APK中排除;ApkBuilder中唯一的评论.java是“我们需要排除其他一些文件夹(如/ META-INF)”,但没有其他解释。

即使用蚂蚁添加META-INF,如果你想使用Proguard,你仍然会遇到麻烦,它拒绝替换META-INF/services/*文件的内容或重命名它们(这是另一个故事,作者想让Proguard保持不可知)。

但是,使用maven的人可能希望检查 https://github.com/pa314159/maven-android-plugin(名为“modified”的分支),该分支试图解决这两个问题。它是我一个月前为我自己的Android项目修改的原始“android-maven-plugin”的分支。

它还为Proguard-4.7提供了补丁。

希望这有帮助,欢迎任何反馈。


推荐