ADB常用命令

摘下红花送伊人
红花似火绾青丝
红花啊红花,绾起伊人的青丝
伊人笑靥如花

摘下白花送伊人
白花如雪别心口
白花啊白花,别在伊人的心口
伊人皎洁如月
伊人皎洁如月


73547799_p0.jpg


基本与应用


查看设备

1
2
3
$ adb devices 
# List of devices attached
# cf264b8f device

进入shell

1
2
$ adb shell
# OnePlus3T:/ $ ll

以 root 权限运行(手机需要 root)

1
2
3
4
5
adb root
# restarting adbd as root


# adbd cannot run as root in production builds

无线连接(需要借助 USB 线)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 找到 IP地址(ifconfig/ip addr/ip link)
OnePlus3T:/ $ ifconfig

# 让设备在 任意 端口监听 TCP/IP 连接
root@arch ~ -># adb tcpip 8848

# 断开连接
# 通过 IP 地址连接设备
adb connect <device-ip-address[:port]>

root@arch ~ -># adb connect 192.168.1.3:8848
# connected to 192.168.1.3:8848

# 查看设备是否出现
root@arch ~ -># adb devices
# List of devices attached
# 192.168.1.3:8848 unauthorized

断开无线连接

1
2
3
adb disconnect <device-ip-address>

root@arch ~ -># adb disconnect 192.168.1.3:8848

查看应用列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER]
# -s 只显示系统应用
# -3 只显示第三方应用
# <FILTER> 包名包含 <FILTER> 字符串


root@arch ~ -># adb shell pm list packages -3
# package:com.github.shadowsocks
# package:com.chenupt.day
# package:org.telegram.messenger
# package:com.niksoftware.snapseed

root@arch ~ -># adb shell pm list packages -s
# package:com.oneplus.calculator
# package:net.oneplus.weather
# package:com.android.cts.priv.ctsshim

root@arch ~ -># adb shell pm list packages bili
# package:com.hypergryph.arknights.bilibili
# package:com.bilibili.comic
# package:com.digitalsky.girlsfrontline.cn.bili
# package:tv.danmaku.bili

安装/卸载 APK

1
2
3
4
5
6
7
8
9
# adb install [-lrtsdg] <path_to_apk>
# -l 将应用安装到保护目录 /mnt/asec
# -r 允许覆盖安装
# -t 允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用
# -s 将应用安装到 sdcard
# -d 允许降级覆盖安装
# -g 授予所有运行时权限

# 详细 : <https://github.com/mzlogin/awesome-adb#%E5%AE%89%E8%A3%85-apk>
1
2
3
4
# adb uninstall [-k] <packagename>
# <packagename> 表示应用的包名,-k 参数可选,表示卸载应用但保留数据和缓存目录

root@arch ~ -># adb uninstall com.bilibili.comic

清除应用数据与缓存

1
2
# adb shell dumpsys package <packagename>
root@arch ~ -># adb shell pm clear com.bilibili.comic

查看应用详细信息

1
root@arch ~ -># adb shell dumpsys package com.bilibili.comic

查看应用安装路径

1
2
3
4
# adb shell pm path <PACKAGE>

root@arch ~ -># adb shell pm path com.bilibili.comic
# package:/data/app/com.bilibili.comic-VefU-I3Sq3yFa7hzXBuAXg==/base.apk

强制停止应用

1
2
3
# adb shell am force-stop <packagename>

root@arch ~ -># adb shell am force-stop com.taobao.taoba

文件管理


复制设备里的文件到电脑

1
2
3
# adb pull <设备里的文件路径> [电脑上的目录]

root@arch ~ -># adb pull /sdcard/Pictures ~/Pictures

复制电脑里的文件到设备

1
2
3
# adb push <电脑上的文件路径> <设备里的目录>

root@arch ~ -># adb push ~/Documents/Python/hello.py /sdcard/Python

模拟按键/输入

1
2
3
4
5
6
7
8
# input [<source>] <command> [<arg>...]

# adb shell input keyevent <keycode>

# 亮屏
root@arch ~ -># adb shell input keyevent 224

# 详细: <https://github.com/mzlogin/awesome-adb#%E6%A8%A1%E6%8B%9F%E6%8C%89%E9%94%AE%E8%BE%93%E5%85%A5>

实用功能

截图保存到电脑

1
root@arch ~ -># adb exec-out screencap -p > sc.png

录制屏幕

1
2
3
4
5
6
7
8
9
10
# 录制屏幕以 mp4 格式保存到 /sdcard
adb shell screenrecord /sdcard/filename.mp4

# 按 Ctrl-C 停止
# 默认录制时间和最长录制时间都是 180 秒

# --size WIDTHxHEIGHT 视频的尺寸,比如 1280x720,默认是屏幕分辨率。
# --bit-rate RATE 视频的比特率,默认是 4Mbps。
# --time-limit TIME 录制时长,单位秒。
# --verbose 输出更多信息。

Top && ps

1
2
3
root@arch ~ -># adb shell top

root@arch ~ -># adb shell ps

查看进程 UID

1
2
3
4
# adb shell dumpsys package <packagename> | grep userId=

root@arch ~ -># adb shell dumpsys package com.bilibili.comic | grep userId=
# userId=10203

基本的 linux命令(ls/cat/df/rm/…)

Ref