前言
最近,各大应用市场都在推动应用支持 64 位架构,你的 App 已经支持了吗?
在这篇文章里,我将带你完成 64 位架构的的适配工作。同时会带你建立关于 ABI 的基本认识,并为你带来我的 Gradle 插件 EasyPrivacy,帮助你检测工程中的 64 位适配问题。如果能帮上忙,请务必点赞加关注,这真的对我非常重要。
https://github.com/pengxurui/EasyPrivacy
目录
1
概述
1.1 CPU 和 ABI 的关系
CPU 架构是 CPU 厂商定义的 CPU 规范,目前主流的 CPU 架构分为两大类:
复杂指令集(CISC): 例如 Intel 和 AMD 的 X86 架构;
精简指令集(RISC): 例如 IBM 的 PowerPC 架构、ARM 的 ARM 架构。
应用二进制接口(Application Binary Interface, ABI)定义了机器代码和操作系统的交互,与我们熟知 API 会以一个接口源码实体存在不同,ABI 更应该理解为一种规范。ABI 包含信息详见 Android ABI —— 官方文档。
https://developer.android.google.cn/ndk/guides/abis
1.2 Android 支持 的 ABI
不同的 Android 设备使用不同的 CPU,不同 CPU 支持的 ABI 也不同。目前,Android 设备支持的 ABI 类型如下:
ABI |
描述 |
armeabi |
第 5 代、第 6 代的ARM 处理器,基本退出历史舞台 |
armeabiv-v7a |
第 7 代及以上的 ARM 处理器,正在逐步退出历史舞台 |
arm64-v8a |
第 8 代、64 位 ARM 处理器,目前是主流 |
x86 / x86_64 |
一般是模拟器 |
不同 CPU 支持的 ABI 情况如下:
提示: 通过 Build.SUPPORTED_ABIS 可以得到设备支持的 ABI 列表,并且是按照偏好排序的。