我创建了一个用于应用程序分发的应用程序。它会下载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。