ADB,全称是 Android Debug Bridge,是 Android 开发/测试人员不可缺少神器,也是 Android 机主的神器玩具。
在 macOS 安装 ADB
- 下载 platform-tools 相关文件:https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
- 存放到易找的位置,比如“下载”文件夹
- 解压 platform-tools-latest-darwin.zip ,解压后会得到一个 platform-tools 文件夹
- 在 platform-tools 文件夹单击右键 > 服务 > 新建位于文件夹位置的终端窗口
- 在终端中输入所需的命令,这种方式比较便捷,但是输入命令时需要用
./adb
(需要注意不是adb
)
连接手机并检查是否安装成功可以使用
- 用数据线将手机和电脑链接
- 手机打开“开发者选项”并开启USB调试
- 将手机的连接模式改为“文件传输(MTP)”
- 执行命令
./adb devices
,如果有返回设备ID就表示操作成功,可以去执行其他命令
在 Windows 安装 ADB(步骤待完善)
- 下载 platform-tools 相关文件:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
- 存放到易找的位置,比如“下载”文件夹
- 解压 platform-tools-latest-darwin.zip ,解压后会得到一个 platform-tools 文件夹
- 打开 platform-tools 文件夹,按住 Shift 键并点击右键选择 建立命令窗口(具体名字忘记了)
- 使用相关命令执行想要的操作
常用 ADB 命令
应用相关操作
com.app.packages.1px
修改为具体的包名(请替换你自己的包名)安装应用
便于执行可以放到好找的目录,并将 app.apk
修改为具体的路径和文件名
adb install app.apk
卸载应用
adb uninstall com.app.packages.1px
卸载应用但是保留数据和缓存文件
adb uninstall -k com.app.packages.1px
保留数据和缓存文件,重新安装、升级
adb install -r com.app.packages.1px
清除应用数据与缓存
adb shell pm clear com.app.packages.1px
示例:清除 Google Play 的应用数据和缓存
adb shell pm clear com.android.vending
强制停止app
adb shell am force-stop com.app.packages.1px
查看正在运行的 Services
adb shell dumpsys activity services com.app.packages.1px
查看app的详细信息
- App版本、App版本号
adb shell dumpsys package services com.app.packages.1px
或
adb shell dumpsys package com.app.packages.1px
打开指定app、关闭指定app
以下示范打开系统设置,可以修改包名打开对应app
adb shell am start com.android.settings
以下示范关闭系统设置,可以修改包名打开对应app
adb shell am force-stop com.android.settings
获取当前打开app的名称、包名、Activity
adb shell dumpsys window | grep mCurrentFocus
系统相关
系统相关信息
adb shell getprop
查看系统的某一个信息
adb shell getprop ro.build.version.release
# 查看屏幕分辨率 [720x1600]
adb shell wm size
# 查看屏幕密度 [420](Override density 指的是修改后的屏幕密度)
adb shell wm density
# 电池状态 电量相关属性
adb shell dumpsys battery
# Android 系统版本 | [12,13]
adb shell getprop ro.build.version.release
# 系统 SDK API 版本
adb shell getprop ro.build.version.sdk
# 默认地区?SIM 卡地区
adb shell getprop persist.sys.localedefault
# 时区 [America/Manaus]
adb shell getprop persist.sys.timezone
# SIM 卡运营商 [China Mobile HK,]
adb shell getprop ril.wfc.default_spn
# ! 手机型号 [返回空]
adb shell getprop ro.boot.em.model
# 手机序列号(以下方式二选一) | RFCR90VFKBY
adb shell getprop ro.serialno
adb get-serialno
# Android ID [51b9be38bac2c569]
adb shell settings get secure android_id
# 手机制造商 | samsung
adb shell getprop ro.product.manufacturer
# 产品品牌? | [samsung]
adb shell getprop ro.product.brand
# 手机型号 内部代号 | [SM-N9600]
adb shell getprop ro.product.model
# 产品代码? | [SM-N9600ZPDTGY]
adb shell getprop vendor.ril.product_code
# 设备名称 | a32xsq
adb shell getprop ro.product.name
# 查询芯片位数 | arm64-v8a
adb shell getprop ro.product.cpu.abi
# 启动器? | [N9600ZHS8FUG3]
adb shell getprop ro.bootloader
# [en-GB]
adb shell getprop ro.product.locale
# 语言地区? | [pt-BR]
adb shell getprop persist.sys.locale
# 手机内存信息
adb shell cat /proc/meminfo
# 手机内部储存
adb shell df /data
# 手机储存信息
adb shell df
# 查询 IP
adb shell ifconfig | grep Mask
# 查询连接的WiFi
adb shell ifconfig wlan0
#
adb shell getprop persist.sys.localenosim
#
adb shell getprop persist.sys.locale
#
adb shell getprop
#
adb shell getprop
#
adb shell getprop
#
adb shell getprop
修改配置(需要 Root)
修改语言
adb shell setprop persist.sys.locale 'th-TH'
截图
adb 截图直接保存到电脑
截图文件会保存到 命令符&终端 当前目录
adb shell screencap -p > 1.png
adb 截图直接保存到电脑(方法二)
截图文件会保存到 命令符&终端 当前目录
adb exec-out screencap -p > jietu_.png
adb 屏幕截图先保存到手机再发送到电脑
# 截屏
adb shell screencap -p /sdcard/sc.png
# 将图片导出到电脑,图片会导出到 adb 所在的目录
adb pull /sdcard/sc.png
控制 WiFi
# 开启 WiFi
adb shell svc wifi enable
# 关闭 WiFi
adb shell svc wifi disable
查看设备是否已 root
adb shell
su
当提示符为 $
则表示没有root。 当提示符为 #
则表示已 root。
其他操作
查看所有安装包
adb shell pm list packages
查看全部设备
adb devices
List of devices attached
3831434983574235 device
EASOPRVS79H6MFMN device
12.1.22.44:6666 device
device 表示状态,offline
未连接或无响应、device
已链接、no device
没有设备或模拟器
device 前面一段内容为serialNumber
相当于设备的名字,通过serialNumber
可以指定操作对应设备,具体命令-s <serialNumber>
下面示范了,指定给EASOPRVS79H6MFMN
安装app.apk
adb -s EASOPRVS79H6MFMN install app.apk
查看 adb 的版本
adb version
常见报错提示
# 链接了多个设备,命令未指定设备
adb: more than one device/emulator
# 没有配置 adb 环境(可尝试 ./adb 开头跑命令)
zsh: command not found: adb
操作设备
重启手机
adb reboot
重启到 Recovery 系统模式(卡刷模式)
adb reboot recovery
重启到 Fastboot 模式(线刷模式)
adb reboot bootloader
系统功能包名
包名 | 功能名称 | note |
---|---|---|
com.android.settings | 系统设置 | – |
相关链接
参考文档
通过 ADB 启用调试模式 DebugView 查看原始事件数据
请将 com.qq.test 换为所需调试的APP包名
adb shell setprop debug.firebase.analytics.app com.qq.test
然后打开 Firebase 中的 DebugView (在分析里面)
‘Debug Device’ 选择自己的设备,就可以看到具体的事件数据