CpuArch
‘armeabi-v7a’表示32位cpu架构, ‘arm64-v8a’表示64位, ‘x86’是只模拟器或特定rom。
桌面端处理器架构(Intel 酷睿core i3 - i9/Xeon E、Amd 锐龙ryzen/霄龙epyc)都是x86架构。基于复杂指令集(CISC)。高功耗,高性能
可分为:x86-32(又名x86);x86-64(又名x64);
关于x86的32位架构(常被称为i386、x86),请见“**IA-32**”。
关于基于x86的64位处理器(x64)架构(向前兼容于16位及32位的x86架构,常称AMD64或 Intel 64),请见“**x86-64**”。
移动端处理器架构(ios Axx,骁龙,麒麟,三星Exynos)则是基于ARM架构的。基于精简指令集(RISC) 低功耗,性能上限不如复杂指令集的x86架构
可分为v7版本及以前,为32位;v8及以后,为64位;
架构支持
Android系统目前支持以下七种不同的CPU架构:
每一个CPU架构对应一个ABI:
CPU架构: | ARMv5 | ARMv7 (从2010年起) | x86 (从2011年起) | MIPS (从2012年起) | ARMv8 | MIPS64 | x86_64 (从2014年起) |
ABI: | armeabi | armeabi-v7a | x86 | mips | arm64-v8a | mips64 | x86_64 |
所有的x86、x8664、armeabi-v7a、arm64-v8a设备都支持armeabi架构的.so文件,x86设备能够很好的运行ARM类型函数库,但并不保证100%不发生crash,特别是对旧设备。
64位设备(arm64-v8a, x8664, mips64)能够运行32位的函数库,但是以32位模式运行,在64位平台上运行32位版本的ART和Android组件,将丢失专为64位优化过的性能(ART,webview,media等等),并只能最大使用4G虚拟内存 阿里Patron 。
目前国内的 Android App 大多数还是32位架构,仅提供了 arm-v7a 的动态链接库(包大小、维护成本等等),市面上大多数手机都是64位的 CPU,App 通常都运行在兼容模式下,只可以使用完整的 4GB 虚拟内存,且丢失专为64位优化性能。
可以通过gradle配置
1 | android { |
比如:国内拼多多、京喜都是只保留了 armeabi_v7a,微信 arm64_v8a, 国外facebook、instagram等则已是 arm64_v8a了