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



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

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

在我的电脑上,我可以使用" aapt d --values badging vlc-arm64.apk "这给了" native-code: ' arm64-v8a '"但我在安卓设备上没有aapt。有等价物吗?

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

最新更新