我创建了一个用于应用程序分发的应用程序。它下载apk文件并提示用户安装它们。如果我发布的应用程序只有x86_x64的原生代码,它不会安装在arm / arm64设备上。软件包安装程序显示该应用程序与设备不兼容。
有没有办法在提示用户之前确定兼容性?从Api级别21开始,我就可以使用Build.SUPPORTED_ABIS来确定设备的中央处理器可以处理哪种类型的ABI。但是我如何从APK中知道它是否包含本机代码呢?
在我的电脑上,我可以使用"aapt d --values badging vlc-arm64.apk“,它会给出"native-code: 'arm64-v8a'”,但我的安卓设备上没有aapt。有没有等价物?
发布于 2018-01-25 00:43:39
谢谢你的建议,我想也许有一个更优雅的方法。但是你建议的解决方案是可行的。我使用ZipInputStream遍历压缩文件,检查以lib/ xxxx /fileZ开头的所有路径,并保存xxxx部分,这是apk支持的ABI。如果apk没有任何包含的库,那么每个只有最低sdk的Android设备都支持apk。
https://stackoverflow.com/questions/48421171
复制相似问题