一、简介
Android 设备 CPU 类型,通常称为 ABIs:
armeabi: 第 5 代、第 6 代的 ARM 处理器,早期的手机用的比较多。armeabi-v7a: 第 7 代及以上的 ARM 处理器。arm64-v8a: 第 8 代 64 位 ARM 处理器,2016年 之后中高端的手机,比如 骁龙8系列、麒麟9系列、联发科1000+ 等。x86: 平板、模拟器用得比较多。x86_64: 64 位的平板。 常说的 骁龙865、麒麟990 不是 CPU 而是 SoC(System On Chip),SoC 除了 CPU 外,还有 GPU,还有可选的浮点数加速器,专用于深度模型的加速器,等等。除此以外,SoC 还包括运存,基带芯片等等一系列集成式的东西,比电脑上的 CPU 集成度更高。
二、查看设备或模拟器支持的 cpu 类型
方法一:下载 Devcheck,安装后,在系统信息这一栏中点击,可以查看当前的架构。
方法二:查看手机的 SOC,查找该 SOC 的信息,比如 A55+A76,然后去查找对应的 ARM 信息。
方法三:配置好 adb 环境,通过 adb 查询,该方案需提前准备:
1、首先将手机与电脑连接。
2、打开手机的开发者模式 并 开启USB调试,这里每个手机的位置不完全相同,请自行百度。
3、查询需要 adb,如果本地有安卓环境,存在 adb,可以直接使用本地的即可,不需要下载 ADB Kits,附:Mac 安卓(Android) 配置 adb 路径配置。
如果没有安卓环境,则需要下载 ADB Kits,解压安装包,并在当前文件下打开 cmd(Windows窗口的文件夹下输入 cmd 就可以直接定位到当前路径);如果用不了,可以看看 单纯搭建 adb 环境与使用。
然后打开命令行,输入以下代码查看手机 CPU 的 ABIs(操作过程中手机可能会弹窗 usb 调试授权,选择授权即可)
只有一台设备或模拟器连接
# 查看设备列表
$ adb devices
* List of devices attached
* 76fbaa2d device
# 只有一台设备或模拟器连接,可以直接执行会输出 cpu 类型
# 如果有环境,可以使用 adb 环境变量全局指令
# 如果没有环境,可以进入下载的 ADB Kits 文件件,使用 adb 指令
$ adb shell getprop ro.product.cpu.abi
# 查看打印的字符
arm64-v8a
多台设备或模拟器连接
# 查看设备列表
$ adb devices
* List of devices attached
* 76fbaa2d device
* 127.0.0.1:6555 device
# 如果多台设备或模拟器连接,需要指定输出某一台设备的 cpu 类型
$ adb -s 76fbaa2d shell getprop ro.product.cpu.abi
$ adb -s 127.0.0.1:6555 shell getprop ro.product.cpu.abi
# 查看打印的字符
arm64-v8a
输出设备支持的更多 cpu 架构类型
# 查看设备列表
$ adb devices
* List of devices attached
* 76fbaa2d device
* 127.0.0.1:6555 device
*
# 只有一台设备或模拟器连接,可以直接执行会输出所支持的所有 cpu 类型
$ adb shell getprop ro.product.cpu.abilist
# 如果多台设备或模拟器连接,需要指定输出某一台设备的 cpu 类型
$ adb -s 76fbaa2d shell getprop ro.product.cpu.abilist
$ adb -s 127.0.0.1:6555 shell getprop ro.product.cpu.abilist
# 查看打印的字符
arm64-v8a,armeabi-v7a,armeabi
三、查看 apk 支持的 cpu 类型
细节:
如果使用 apktool 没有找到 lib 文件夹或 aapt 也没有输出对应内容,这通常意味着该 APK 文件可能不包含原生库(native libraries),而是一个纯 Java 应用。纯 Java 应用不依赖于特定的 CPU 架构,因此不会包含特定的 CPU ABI 文件夹,它可以在任意 Android 设备上运行而不依赖于特定的 CPU ABI。
方法 1:使用 apktool【推荐】
apktool 是另一个强大的工具,能够反编译 APK 文件。你可以使用它来查看 APK 的详细信息,包括支持的 ABI。
原本安装 apktool,只要安装好 Java Development Kit (JDK) 会自带。但是可以简单来 按这篇文章下载好脚本包执行指令即可,包含 apktool 安装使用。
使用命令反编译 APK,推荐按上面附带文章中的方式执行指令。
$ apktool d path/to/your/app.apk
查看反编译后的文件:在反编译的目录中,查看 AndroidManifest.xml 文件,通常可以找到支持的 ABI 信息。
如果在 AndroidManifest.xml 文件没有看到,查看 apktool 反编译后的 lib 目录,展开该目录通常会包含针对不同 ABI 的文件夹,如:
lib/armeabi-v7a/lib/arm64-v8a/lib/x86/lib/x86_64/ 这些文件夹的存在表示 APK 支持对应的 CPU ABI。
方法 2:使用 aapt 工具
aapt 是 Android SDK 中的一个工具,可以用于分析 APK 文件。以下是使用 aapt 查看 APK 支持的 CPU ABI 的步骤:
确保已安装 Android SDK:aapt 工具通常包含在 Android SDK 的 build-tools 目录下。附:aapt 与 aapt2 的区别与安装
打开终端或命令提示符。
运行以下命令:
$ aapt dump badging path/to/your/app.apk | grep native-code
将 path/to/your/app.apk 替换为你的 APK 文件的实际路径。
查看输出:该命令的输出将包含类似于以下内容的信息:
$ native-code: 'armeabi-v7a' 'arm64-v8a' 'x86' 'x86_64'
这表示该 APK 支持的 CPU ABI 列表。
方法 3:使用 APK 分析器(Android Studio)
如果你更喜欢图形界面,可以使用 Android Studio 提供的 APK 分析器,但是好像需要知道证书账号密码。
打开 Android Studio。在菜单中选择 Build > Analyze APK...。选择要分析的 APK 文件,然后点击 OK。在 APK 分析器中,你可以查看 APK 的详细信息,包括支持的 CPU ABI。查找 ABI 或 Native Libraries 部分,查看支持的 ABI 列表。
四、扩展
其他指令
查看连接的手机设备,未连接会报错,报错参考。
$ adb devices
# 如果设备显示错误,可以通过重启 adb 服务来刷新
$ adb kill-server
$ adb start-server
参考文章
armeabi-v7a arm64-v8a armeabi x86 x86_64区别
如何查看 Android 手机 CPU 类型是 armeabi,armeabi-v7a,还是 arm64-v8a