一、简介
-
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
-
一、简介
-
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
-