一、概述
ADB 的全称为 Android Debug Bridge,字面意思就是安卓调试桥,ADB 是一个“客户端-服务器端“的关联程序,其中客户端是你用来操作的电脑, 服务器端是 Android 设备。ADB 是 Android SDK 里的一个工具,用这个工具可以直接操作管理 Android 模拟器或者真实的 Andriod 设备。简单点说,它是 Android 系统提供的一套工具,通过它,我们可以在电脑上建立一个连接到手机的通道,然后可以在电脑上向手机发送一些指令,完成一些我们需要做的工作。
它的主要功能有:
1)运行设备的 shell (命令行)
2)管理模拟器或设备的端口映射
3)计算机和设备之间上传/下载文件
4)将本地 apk 软件安装至模拟器或 Android 设备
二、ADB 常用命令介绍
1. 查看设备: 查看当前连接的设备
命令:
adb devices
命令示例:
2. 查看 adb 版本
命令:
adb version
命令示例:
3. 安装 APK
命令:
adb install
命令示例:
返回 Success 说明安装成功
还可加入如下参数:
参数 |
含义 |
-r |
允许覆盖安装。 |
-s |
将应用安装到 sdcard。 |
-d |
允许降级覆盖安装。 |
4. 卸载软件
命令:
adb uninstall <包名>
命令示例:
如果卸载时包名错误会有如下提示:
可以使用如下命令,
列出手机装的所有 app 的包名: adb shell pm list packages
列出除了系统应用的第三方应用包名: adb shell pm list packages -3
因此,卸载此应用的命令应为:
如果加 -k 参数,为卸载软件但是保留配置和缓存文件
5. 登录设备 shell
命令:
adb shell
adb shell
命令示例:
登录设备的 shell,后面加
6. 从电脑上发送文件到设备
命令:
adb push <本地路径> <远程路径>
命令示例:
将电脑上的文件 D:\workspace\soc\NXP\iMX8\Android\image\GPS\gps.default.so 发送到设备 /data
7. 从设备上下载文件到电脑
命令:
adb pull <远程路径> <本地路径>
命令示例:
将设备中的文件 /data/gps.default.so 发送到电脑的 当前目录下
8. 显示帮助信息
命令:
adb help
命令示例:
9. 重新挂载
命令:
adb remount
命令示例:
重新挂载系统分区,用于读写
10. 启动和关闭 server
命令:
adb start-server
adb kill-server
命令示例:
没有错误提示说明执行成功
11. 重启设备
命令:
adb reboot 重启设备
adb reboot recovery 重启设备到 Recovery 模式
adb reboot bootloader 重启设备到 Fastboot 模式
12. 查看 Android log
命令:
[adb] logcat [] ... [] ..
输出 log 到文件中:
adb logcat > log
- -b 加载一个可使用的日志缓冲区供查看,比如 event 和 radio . 默认值是 main 。具体查看 Viewing Alternative Log Buffers.
- -c 清除屏幕上的日志.
- -d 输出日志到屏幕上.
- -f 指定输出日志信息的 ,默认是 stdout .
- -g 输出指定的日志缓冲区,输出后退出.
- -n 设置日志的最大数目 .,默认值是 4,需要和 -r 选项一起使用。
- -r 每 时输出日志,默认值为16,需要和 -f 选项一起使用.
- -s 设置默认的过滤级别为
- -v 设置日志输入格式,默认的是 brief 格式
常用用法列举如下:
① 按级别过滤日志
Android 的日志分为如下几个级别:
- V —— Verbose(最低,输出得最多)
- D —— Debug
- I —— Info
- W —— Warning
- E —— Error
- F —— Fatal
- S —— Silent(最高,啥也不输出)
按某级别过滤日志则会将该级别及以上的日志输出。
命令:
adb logcat *:W
命令示例:
会将 Warning、Error、Fatal 和 Silent 日志输出。
② 按 tag 和级别过滤日志
命令:
adb logcat ActivityManager:I MyApp:D *:S
命令示例:
表示输出 tag ActivityManager 的 Info 以上级别日志,输出 tag MyApp 的 Debug 以上级别日志,及其它 tag 的 Silent 级别日志(即屏蔽其它 tag 日志)。
③ 清空日志
命令:
adb logcat -c
13. 查看 Kernel log
命令:
adb shell dmesg
命令示例:
中括号里的 [1076.189766] 代表内核开始启动后的时间,单位为秒。
通过内核日志我们可以做一些事情,比如衡量内核启动时间。
14、查看bug报告
命令:
adb bugreport
15、模拟按键 / 输入
在 adb shell 里有个很实用的命令叫 input,通过它可以做一些有趣的事情。
input 命令的完整 help 信息如下:
比如使用 adb shell input keyevent 命令,不同的 keycode 能实现不同的功能,常用的按键如下:
keycode |
含义 |
3 |
HOME 键 |
4 |
返回键 |
5 |
打开拨号应用 |
6 |
挂断电话 |
24 |
增加音量 |
25 |
降低音量 |
26 |
电源键 |
27 |
拍照(需要在相机应用里) |
64 |
打开浏览器 |
82 |
菜单键 |
85 |
播放/暂停 |
86 |
停止播放 |
87 |
播放下一首 |
88 |
播放上一首 |
122 |
移动光标到行首或列表顶部 |
123 |
移动光标到行末或列表底部 |
126 |
恢复播放 |
127 |
暂停播放 |
164 |
静音 |
176 |
打开系统设置 |
187 |
切换应用 |
207 |
打开联系人 |
208 |
打开日历 |
209 |
打开音乐 |
210 |
打开计算器 |
220 |
降低屏幕亮度 |
221 |
提高屏幕亮度 |
223 |
系统休眠 |
224 |
点亮屏幕 |
231 |
打开语音助手 |
276 |
如果没有 wakelock 则让系统休眠 |
下面是 input 命令的一些用法举例。
电源键
命令:
adb shell input keyevent 26
执行效果相当于按电源键。
菜单键
命令:
adb shell input keyevent 82
HOME 键
命令:
adb shell input keyevent 3
返回键
命令:
adb shell input keyevent 4
音量控制
增加音量:
adb shell input keyevent 24
降低音量:
adb shell input keyevent 25
静音:
adb shell input keyevent 164
媒体控制
播放/暂停:
adb shell input keyevent 85
停止播放:
adb shell input keyevent 86
播放下一首:
adb shell input keyevent 87
播放上一首:
adb shell input keyevent 88
恢复播放:
adb shell input keyevent 126
暂停播放:
adb shell input keyevent 127
点亮/熄灭屏幕
可以通过上文讲述过的模拟电源键来切换点亮和熄灭屏幕,但如果明确地想要点亮或者熄灭屏幕,那可以使用如下方法。
点亮屏幕:
adb shell input keyevent 224
熄灭屏幕:
adb shell input keyevent 223
滑动解锁
如果锁屏没有密码,是通过滑动手势解锁,那么可以通过 input swipe 来解锁。
命令(不同的设备对应的坐标可能会不同):
adb shell input swipe 300 1000 300 500
参数 300 1000 300 500 分别表示起始点x坐标 起始点y坐标 结束点x坐标 结束点y坐标。
输入文本
在焦点处于某文本框时,可以通过 input 命令来输入文本。
命令:
adb shell input text hello
评论