adb
adb devices 查询模拟器/设备实例
adb -s <serialNumber> <command> 发送命令
adb install <path_to_apk> 安装软件
adb -s emulator-5556 install aaa.apk 给某设备安装软件
adb forward tcp:6100 tcp:7100 从主机端口转发到模拟器端口转发
adb -s 192.168.246.101:5555 shell < sniffer
adb pull <remote> <local> 从模拟器或者设备中复制文件或目录
dab push <local><remote> 将文件或目录复制到设备或模拟器
示例:dab push foo.txt /sdcard/foo.txt
adb 命令列表:
Category | Command | Description | Comments |
Options | | 仅仅通过USB接口来管理abd. | 如果不只是用USB接口来管理则返回错误. |
| 仅仅通过模拟器实例来管理adb. | 如果不是仅仅通过模拟器实例管理则返回错误. | |
| 通过模拟器/设备的允许的命令号码来发送命令来管理adb (比如: "emulator-5556"). | 如果没有指定号码,则会报错. | |
General | | 查看所有连接模拟器/设备的设施的清单. | 查看 Querying for Emulator/Device Instances获取更多相关信息. |
| 查看adb所支持的所有命令。. | | |
| 查看adb的版本序列号. | | |
Debug | | 将日志数据输出到屏幕上. | |
| 查看bug的报告,如 | | |
| 查看指定的设施的可用的JDWP信息. | 可以用 | |
Data | | 安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径). | |
| 将指定的文件从模拟器/设施的拷贝到电脑上. | | |
| 将指定的文件从电脑上拷贝到模拟器/设备中. | | |
Ports and Networking | | 用本地指定的端口通过socket方法远程连接模拟器/设施 | 端口需要描述下列信息:
|
| 通过USB运行ppp:
需要提醒你的不能自动启动PDP连接. | | |
Scripting | | 查看adb实例的序列号. | 查看 Querying for Emulator/Device Instances可以获得更多信息. |
| 查看模拟器/设施的当前状态. | ||
| 如果设备不联机就不让执行,--也就是实例状态是 | 你可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其它命令的. 示例如下: adb wait-for-device shell getprop 需要提醒的是这些命令在所有的系统启动启动起来之前是不会启动adb的 所以在所有的系统启动起来之前你也不能执行其它的命令. 比如:运用 adb wait-for-device install <app>.apk 上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生. | |
Server | | 选择服务是否启动adb服务进程. | |
| 终止adb服务进程. | | |
Shell | | 通过远程shell命令来控制模拟器/设备实例. | 查看 获取更多信息 for more information. |
| 连接模拟器/设施执行shell命令,执行完毕后退出远程shell端l. |
adb [-d|-e|-s{<serialNumber>}] shell <shellCommand> 使用shell执行一条命令
adb [-d|-e|-s{<serialNumber>}] shell 进入shell ,使用ctrl+D 或exit命令退出shell
kill-server 终止dab server
logcat
adb logcat --help 查看帮助
adb logcat [选项] [过滤项]
选项
--"-s"选项 : 设置输出日志的标签, 只显示该标签的日志;
--"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;
--"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;
--"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;
--"-v"选项 : 设置日志的输出格式, 注意只能设置一项;
--"-c"选项 : 清空所有的日志缓存信息;
--"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;
--"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;
--"-g"选项 : 查看日志缓冲区信息;
--"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;
--"-B"选项 : 以二进制形式输出日志;
过滤项
-- V : Verbose (明细);
-- D : Debug (调试);
-- I : Info (信息); 默认
-- W : Warn (警告);
-- E : Error (错误);
-- F: Fatal (严重错误);
-- S : Silent(Super all output) (最高的优先级, 可能不会记载东西);
示例
adb logcat -s System.out 输出System.out标签的信息
adb logcat -f /sdcard/log.txt 输出到手机文件上,可以使用&后台运行
adb shell ps | grep logcat 查找进程
adb shell ps | findstr "logcat" 查找进程,windows平台命令
adb logcat > log
ctrl C
more log 使用more log 查看日志信息
adb logcat -d -v /sdcard/mylog.txt 日志保存在手机指定位置
adb logcat -v time 查看日志输出时间
adb logcat -v threadtime 日志输出时间和线程信息
adb logcat -v brief 默认的日志格式
adb logcat -v process 进程优先级日志信息
adb logcat -v tag 标签优先级日志信息
adb logcat -v raw 只输出日志不输出其它信息
adb logcat -v time time格式输出
adb logcat -c 清空
adb logcat -d 缓存输出
adb logcat -t 5 最近5行
adb logcat -g 查看日志缓冲区
adb logcat -b 加载日志缓冲区
adb logcat -B 二进制形式输出日志
adb logcat *:E 显示Error以上级别日志
adb logcat string:D *:S 标签为string,优先级为Debug级别以上的
adb logcat | grep string 管道过滤字符串,不管是不是标签
adb logcat | grep -i string 忽略大小写
adb logcat | grep "^..ABC" 正则表达式过滤