从这些命名大概可以猜出它与 32 位或 64 位软件有关,部分确实可以这样理解,更准确的说法是:arm64-v8a 和 armeabi-v7a 这些信息表示手机处理器和其支持指令集的对应 ABI (应用二进制接口)。 简单来说就是使用不同 ABI 的软件包,它们支持在不同手机处理器上运行,请见下面表格介绍。
• armeabi-v7a: ARM v7 目前主流版本 • arm64-v8a: 64位支持 所谓的ARMv8架构,就是在MIPS64架构上增加了ARMv7架构中已经拥有的的TrustZone技术、虚拟化技术及NEON advanced SIMD技术等特性,研发成的。 64位ARMv8架构中包含两个执行状态:AArch32(也就是我们常说的ARMv7)和AArch64(ARMv8)。AArch64执...
armeabi-v7a: 是Android 操作系统使用的一种应用二进制接口(ABI),针对 ARMv7-A 架构进行优化。 包括用于 Android 应用程序开发的库和工具链,通常用于编译基于 ARMv7 的 Android 应用。 arm64-v8a: 是针对 ARMv8-A 架构设计的 ABI,也被称为 AArch64。 用于支持运行在 ARM64 硬件上的 Android 应用程序,提供...
接着是arm64-v8a和armeabi-v7a了,通常情况下arm64-v8a可以覆盖armeabi-v7a安装,而后者不能覆盖前者,需要卸载arm64-v8a才能安装armeabi-v7a。最后面两个版本几乎没有手机在用了,也忽略掉。
普通手机用户,建议下载arm64-v8a(第8代、64位ARM处理器)版本,能够发挥手机最佳性能(只要本型号手机支持8G运存或8G以上就是64位处理器)。如果是很老的手机,也有可能不是64位处理器,那么就选择armeabi-v7a,几乎通用所有手机,而且也兼容64位处理器。
所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,因此似乎移除其他ABIs的.so文件是一个减少APK大小的好技巧。但事实上并不是:这不只影响到函数库的性能和兼容性。 x86设备能够很好的运行ARM类型函数库,但并不保证100%不发生crash,特别是对旧设备。64位设备(arm64-v8a, x86_64, mip...
对于ARM 架构,32 位库位于armeabi-v7a中。 对应的 64 位库则位于arm64-v8a中。 对于x86 架构,32 位库位于x86中,64 位库则位于x86_64中。 1、使用APK 分析器查找原生库 APK 分析器是一款可用于对所构建的 APK 进行各方面评估的工具。针对我们目前所讨论的情况,我们将使用该工具查找原生库,以确定是否具备...
v7a表示第7代及以上32位ARM处理器,而v8a表示第8代64位ARM处理器。因此,v8a软件可以在64位ARM处理器上运行,而v7a软件只能在32位ARM处理器上运行。目前,国内Android应用生态正在向64位架构过渡,同时移动芯片平台也将逐步弱化对32位应用的支持。因此,开发者需要根据用户设备的处理器类型选择相应的ABI进行编译,以保证...
开发中出现找不到.so不对的Bug,原因是测试机是64位的,而arm64-v8a中的.so是32位的。 配置生成arm64-v8a的.so文件: 在jni/Application.mk中写入:APP_ABI := armeabi armeabi-v7a arm64-v8a,重新编译就可以了,如果没有这个文件就在jni目录下新建一个。
所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,因此似乎移除其他ABIs的.so文件是一个减少APK大小的好技巧。但事实上并不是:这不只影响到函数库的性能和兼容性。 x86设备能够很好的运行ARM类型函数库,但并不保证100%不发生crash,特别是对旧设备。64位设备(arm64-v8a, x86_64, mip...