科普:安卓APK版本v7a和v8a的区别

编辑:King 阅读:11698 时间:2021-11-28 16:57:26

armeabi默认选项,32位,支持基于ARM*v5TE的设备,支持软浮点运算(不支持硬件辅助的浮点计算),支持所有ARM*设备,armeabi-v7a32位,支持基于ARM*v7的设备,支持硬件FPU指令,支持硬件浮点运算。

armeabi-v8a64位,支持基于ARM*v8的设备,支持硬件FPU指令,支持硬件浮点运算不同手机由于cpu的不同,使用不同的驱动。

ABI:指应用基于哪种指令集来进行编译,ABI总共有四种,分别是armeabi、armeabi-v7a、mips、x86,它们都是表示cpu的类型。

为了减小apk体积,只保留armeabi和armeabi-v7a两个文件夹,并保证这两个文件夹中.so数量一致。

对只提供armeabi版本的第三方.so,原样复制一份到armeabi-v7a文件夹。

早期的Android系统几乎只支持ARMv5的CPU架构,现在支持7种!

Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7(从2010年起),x86(从2011年起),MIPS(从2012年起),ARMv8,MIPS64和x86_64(从2014年起),每一种都关联着一个相应的ABI。

应用程序二进制接口(ApplicationBinaryInterface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。

在Android系统上,每一个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64- v8a,mips64,x86_64。

总之不管有多少版本,可以简单认为:v7a是32位cpu适用,而v8a是64位cpu适用。

回到顶部