armeabi是32位还是64位架构?APK64位兼容性合规咨询
关于armeabi架构的32/64位兼容性问题解答
先给你一个明确的结论:armeabi是纯32位的ARM架构,完全不支持64位指令集,也不存在对64位的原生兼容。
下面结合你的疑问详细解释:
- 你提到的通过解压APK查看
lib文件夹来识别支持架构的方法是完全靠谱的。APK的lib目录下的每个子文件夹,就对应了它原生支持的CPU架构。如果你的apportable SDK生成的APK里只有armeabi文件夹,那说明这个安装包只针对32位ARM设备编译。 - 从架构本身来说,armeabi是基于ARMv5TE的早期32位指令集,而64位ARM架构对应的标准目录是
arm64-v8a(基于ARMv8-A指令集),二者是完全独立的指令体系。64位安卓设备虽然能通过系统自带的兼容层运行32位APK,但这并不是原生支持,而且这种运行方式也不符合Google在2019年开始推行的要求——所有新应用及更新必须提供64位版本,只提供armeabi的APK是无法满足这个合规要求的。 - 如果你需要符合Google的64位要求,得调整apportable SDK的编译配置,让它生成包含
arm64-v8a架构的APK,而不是仅保留armeabi。
另外要注意区分一个常见误区:64位设备能运行32位APP,是系统兼容层的作用,不是armeabi架构本身支持64位,这两者不能混为一谈。
内容的提问来源于stack exchange,提问作者Domagoj Šalković




