如何从apk获取引用的内部库的版本

时间:2013-01-04 14:00:53

标签: android version apk

我已经通过maven + eclipse创建了apk。

它是一个单独的文件,并且具有mvn dependencies给出的库的内部引用。在我的机器人上,一切都很好,但我需要在runtime version of referenced libs中显示。我知道如何显示我的应用程序的版本(来自androidManifest.xml),但问题是获取其他used library的版本,这在某种程度上包含在我的apk中。

在apk中我没有看到我引用的罐子,我想它是由class.dex制作的。

我找到了从jar lib获取版本的方法,但它不适用于apk。

我们是否可以在internal reference library

找到run-time?的版本

1 个答案:

答案 0 :(得分:1)

让我重新提一下你的问题。 您开发了一个使用第三方库的移动应用程序,您的目标是从APK中找到该第三方库的版本。 如果我理解正确的话, 然后我最近遇到了类似的要求。 首先,第三方jar的清单将包含版本信息。 当您构建APK时,包含版本信息的清单信息将不会与APK的AndroidManifest文件合并。 AndroidManifest架构似乎没有提供此功能。 在我们的例子中,我们发布了库,所以一个可能的解决方案是我们可以将版本信息添加到库的Android Manifest文件中的activity元素内的元数据元素中,这样在构建apk时它将复制库中的activity元素android清单到应用程序的android清单。这样我们就可以将库的版本信息传递给主APK的Android Manifest。 可能是我们可以请求修改Android清单的架构,以提供包含内部库的版本信息。 请检查以下链接。 https://developer.android.com/guide/topics/manifest/manifest-element.html

另一个解决方案可能是可以使用jarsigner在构建APK后插入自定义条目(包含第三方库版本的信息到APK的清单文件中)。 这又不是一个标准的解决方案。