android-doc-adb

搭建

  • 下载对应平台的adb
  • 添加adb目录到环境变量
  • 命令行输入adb检测是否配置完成

安装busybox

默认adb进入是只有部分命令的,需要安装busybox。

  • 下载busybox
  • 命令行上传busybox到sdcard adb push E:\file-android\busybox /mnt/sdcard

使用

查看设备

1
adb devices

安装软件

1
2
3
# -r,它是更新安装的意思,
# -s ,安装到sdcard.
adb install [-s -r] <apk文件路径>

卸载软件

1
2
# -k,为卸载软件但是保留配置和缓存文件.
adb uninstall [-k] <包名>

上传文件

从电脑上发送文件到设备

1
adb push <本地路径> <远程路径>

下载文件

从设备上下载文件到电脑  

1
adb pull <远程路径> <本地路径>

同步更新

如果不指定目录,将同时更新 /data 和 /system/

1
2
3
4
adb sync [ <directory> ]

# 例如
adb sync /data/

显示帮助信息

1
adb help

重新挂载

重新挂载系统 分区 用于读写

1
adb remount

启动和关闭

1
2
adb start-server
adb kill-server

重启设备

1
adb reboot [bootloader|recovery]

日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 优先级
V —— Verbose(最低,输出得最多)
D —— Debug
I —— Info
W —— Warning
E —— Error
F —— Fatal
S —— Silent(最高,啥也不输出)

# -v格式
brief : <priority>/<tag>(<pid>): <message>
process : <priority>(<pid>) <message>
tag : <priority>/<tag>: <message>
raw : <message>
time : <datetime> <priority>/<tag>(<pid>): <message>
threadtime : <datetime> <pid> <tid> <priority> <tag>: <message>
long : [ <datetime> <pid>:<tid> <priority>/<tag> ]


# 选项
--"-s"选项 : 设置输出日志*:s的标签, 只显示该标签的日志;
--"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
--"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
--"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
--"-v"选项 : 设置日志的输出格式, 注意只能设置一项;
--"-c"选项 : 清空所有的日志缓存信息;
--"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
--"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
--"-g"选项 : 查看日志缓冲区信息;
--"-B"选项 : 以二进制形式输出日志;

# 原型
adb logcat
adb logcat [<option>] ... [<filter-spec>] ...
adb logcat [选项...] [过滤项...],
adb logcat <tag>[:priority]

# 例子
# 清理日志缓存信息
adb logcat -c

# 需要打印日志详细时间的简单数据
adb logcat -v time

# 需要打印级别为Error的信息
adb logcat *:E

# 需要打印时间和级别是Error的信息
adb logcat -v time *:E

# 将日志保存到电脑固定的位置,比如D:\log.txt
adb logcat -v time >D:\log.txt

# 过滤只显示标签jswrapper的信息
adb logcat -v time -s jswrapper:* >D:\log.txt

shell

1
2
3
4
5
6
7
8
# 登录shell
adb shell

# 非登录方式远程调用
adb shell <command命令>  

# 例如
adb shell cat /proc/kmsg

问题

乱码

1
2
3
4
5
6
7
# 显示当前的字符编码
chcp

# 对比代码页表,可知936对应的字符编码集为简体中文(GB2312).

# 更换字符编码为utf8
chcp 65001

相关链接

官网下载地址
busybox下载地址
adb命令使用参考