如何确定APK是否与设备支持的ABI兼容?

时间:2018-01-24 11:16:17

标签: android android-ndk android-package-managers

我创建了一个用于分发应用的应用。 它下载apk文件并提示用户安装它们。 如果我仅为x86_x64分发带有本机代码的应用,则它不会安装在arm / arm64设备上。 软件包安装程序说该应用程序与该设备不兼容。

在提示用户之前,有没有办法确定兼容性? 由于Api Level 21,我可以使用Build.SUPPORTED_ABIS来确定设备的CPU可以处理哪种ABI。 但是我如何从APK中知道它是否包含本机代码?

在我的电脑上,我可以用“aapt d --values badging vlc-arm64.apk”来完成 这提供了“native-code:'arm64-v8a'” 但我没有抓住Android设备。 有没有等价的?

1 个答案:

答案 0 :(得分:0)

感谢小费,我认为可能有更优雅的方式。 但您建议的解决方案有效。 我正在使用ZipInputStream迭代zip存档并检查以lib / xxxx / fileZ开头的所有路径并保存xxxx部分,这是apk支持的ABI。如果apk没有任何包含的库,则每个具有最小sdk的Android设备都支持apk。