赞
踩
主流 CPU 架构大致分为两种
英国 ARM 公司开发的一种 CPU 架构,特点是低功耗,主要应用在移动设备领域
arm 处理器分为以下三种:
armeabi:第 5 代、第 6 代基于 32 位的处理器,简称 arm,早期的 Android 手机用得比较多,现在已经被淘汰
armeabi-v7a:第 7 代基于 32 位处理器,简称 v7,目前低端的 Android 设备用得比较多,现在占有率比较低
arm64-v8a:第 8 代基于 64 位处理器,简称 v8,目前高端的 Android 设备用得比较多,是目前最主流的处理器
美国因特尔公司开发的一种 CPU 架构,特点是高性能,主要应用在 PC 设备领域
x86 处理器分为以下三种:
这两种处理器早期的 Android 平板用得比较多,现在已经被淘汰,现在的 Android 平板用的都是 arm 的处理器
x86:基于 32 位处理器
x86_64:新一代基于 64 位处理器,兼容 32 位应用程序
有着向下兼容属性,新一代的处理器兼容旧一代的 so 库,但是旧一代的处理器不兼容新一代的 so 库。arm 的处理器无法兼容 x86 架构的 so 库,而大多数 x86 的处理器却可以兼容 arm 的部分架构(armeabi、armeabi-v7a)
根据向下兼容的策略,arm64-v8a 的设备会优先从 arm64-v8a 目录获取,如果 arm64-v8a 目录不存在就从 armeabi-v7a 目录获取,如果 armeabi-v7a 目录不存在就从 armeabi 目录获取,如果还是不存在会直接抛出异常。还有一种特殊的情况需要我们留意,如果我们的 apk 包中有某种架构的 so 目录,系统就认为应用适配了这种 CPU 架构,会直接从对应的 so 目录中读取 so 文件,如果这个文件不存在会直接抛出异常,所以要保证不同 so 目录的文件数量要保持一致。
由于 x86 架构在 Android 设备占有率极低,所以现在只考虑 arm 架构。arm64-v8a 是目前主流设备的处理器,但是还有部分 armeabi-v7a 处理器的设备,从兼容性上考虑,arm64-v8a 的设备兼容 armeabi-v7a 的 so 库,但是 armeabi-v7a 的设备无法兼容 arm64-v8a 的 so 库,所以建议同时保留 armeabi-v7a 和 arm64-v8a 的 so 库,如果对设备的覆盖率要求极高的情况下,建议只保留 armeabi 和 arm64-v8a 的 so 库。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。