CpuArch

image-20210615211220037

‘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
2
3
4
5
6
7
android {
defaultconfig {
ndk {
abiFilters "armeabi-v7a"
}
}
}

比如:国内拼多多、京喜都是只保留了 armeabi_v7a,微信 arm64_v8a, 国外facebook、instagram等则已是 arm64_v8a了

Author

white crow

Posted on

2021-06-15

Updated on

2024-03-25

Licensed under