adb 和 shell、Logcat 常用命令

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 -d 仅仅通过USB接口来管理abd. 如果不只是用USB接口来管理则返回错误.
-e 仅仅通过模拟器实例来管理adb. 如果不是仅仅通过模拟器实例管理则返回错误.
-s <serialNumber> 通过模拟器/设备的允许的命令号码来发送命令来管理adb (比如: "emulator-5556"). 如果没有指定号码,则会报错.
General devices 查看所有连接模拟器/设备的设施的清单. 查看 Querying for Emulator/Device Instances获取更多相关信息.
help 查看adb所支持的所有命令。.  
version 查看adb的版本序列号.  
Debug logcat [<option>] [<filter-specs>] 将日志数据输出到屏幕上.  
bugreport 查看bug的报告,如dumpsys ,dumpstate ,和logcat 信息。  
jdwp 查看指定的设施的可用的JDWP信息. 可以用 forward jdwp:<pid> 端口映射信息来连接指定的JDWP进程.例如: 
adb forward tcp:8000 jdwp:472 
jdb -attach localhost:8000
Data install <path-to-apk> 安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径).  
pull <remote> <local> 将指定的文件从模拟器/设施的拷贝到电脑上.  
push <local> <remote> 将指定的文件从电脑上拷贝到模拟器/设备中.  
Ports and Networking forward <local> <remote> 用本地指定的端口通过socket方法远程连接模拟器/设施 端口需要描述下列信息:
  • tcp:<portnum>
  • local:<UNIX domain socket name>
  • dev:<character device name>
  • jdwp:<pid>
ppp <tty> [parm]... 通过USB运行ppp:
  • <tty> — the tty for PPP stream. For exampledev:/dev/omap_csmi_ttyl.
  • [parm]...  &mdash zero or more PPP/PPPD options, such as defaultroute ,local , notty , etc.

需要提醒你的不能自动启动PDP连接.

 
Scripting get-serialno 查看adb实例的序列号. 查看 Querying for Emulator/Device Instances可以获得更多信息.
get-state 查看模拟器/设施的当前状态.
wait-for-device 如果设备不联机就不让执行,--也就是实例状态是 device 时. 你可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其它命令的. 示例如下:
adb wait-for-device shell getprop
需要提醒的是这些命令在所有的系统启动启动起来之前是不会启动adb的 所以在所有的系统启动起来之前你也不能执行其它的命令. 比如:运用install 的时候就需要Android包,这些包只有系统完全启动。例如:
adb wait-for-device install <app>.apk
上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生.
Server start-server 选择服务是否启动adb服务进程.  
kill-server 终止adb服务进程.  
Shell shell 通过远程shell命令来控制模拟器/设备实例. 查看 获取更多信息 for more information.
shell [<shellCommand>] 连接模拟器/设施执行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 [选项] [过滤项]

选项

[plain]  view plain  copy
  1. --"-s"选项 : 设置输出日志的标签, 只显示该标签的日志;  
  2.   
  3. --"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;  
  4.   
  5. --"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;  
  6.   
  7. --"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;  
  8.   
  9. --"-v"选项 : 设置日志的输出格式, 注意只能设置一项;  
  10.   
  11. --"-c"选项 : 清空所有的日志缓存信息;  
  12.   
  13. --"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;  
  14.   
  15. --"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;  
  16.   
  17. --"-g"选项 : 查看日志缓冲区信息;  
  18.   
  19. --"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;  
  20.   
  21. --"-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"  正则表达式过滤

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 -d 仅仅通过USB接口来管理abd. 如果不只是用USB接口来管理则返回错误.
-e 仅仅通过模拟器实例来管理adb. 如果不是仅仅通过模拟器实例管理则返回错误.
-s <serialNumber> 通过模拟器/设备的允许的命令号码来发送命令来管理adb (比如: "emulator-5556"). 如果没有指定号码,则会报错.
General devices 查看所有连接模拟器/设备的设施的清单. 查看 Querying for Emulator/Device Instances获取更多相关信息.
help 查看adb所支持的所有命令。.  
version 查看adb的版本序列号.  
Debug logcat [<option>] [<filter-specs>] 将日志数据输出到屏幕上.  
bugreport 查看bug的报告,如dumpsys ,dumpstate ,和logcat 信息。  
jdwp 查看指定的设施的可用的JDWP信息. 可以用 forward jdwp:<pid> 端口映射信息来连接指定的JDWP进程.例如: 
adb forward tcp:8000 jdwp:472 
jdb -attach localhost:8000
Data install <path-to-apk> 安装Android为(可以模拟器/设施的数据文件.apk指定完整的路径).  
pull <remote> <local> 将指定的文件从模拟器/设施的拷贝到电脑上.  
push <local> <remote> 将指定的文件从电脑上拷贝到模拟器/设备中.  
Ports and Networking forward <local> <remote> 用本地指定的端口通过socket方法远程连接模拟器/设施 端口需要描述下列信息:
  • tcp:<portnum>
  • local:<UNIX domain socket name>
  • dev:<character device name>
  • jdwp:<pid>
ppp <tty> [parm]... 通过USB运行ppp:
  • <tty> — the tty for PPP stream. For exampledev:/dev/omap_csmi_ttyl.
  • [parm]...  &mdash zero or more PPP/PPPD options, such as defaultroute ,local , notty , etc.

需要提醒你的不能自动启动PDP连接.

 
Scripting get-serialno 查看adb实例的序列号. 查看 Querying for Emulator/Device Instances可以获得更多信息.
get-state 查看模拟器/设施的当前状态.
wait-for-device 如果设备不联机就不让执行,--也就是实例状态是 device 时. 你可以提前把命令转载在adb的命令器中,在命令器中的命令在模拟器/设备连接之前是不会执行其它命令的. 示例如下:
adb wait-for-device shell getprop
需要提醒的是这些命令在所有的系统启动启动起来之前是不会启动adb的 所以在所有的系统启动起来之前你也不能执行其它的命令. 比如:运用install 的时候就需要Android包,这些包只有系统完全启动。例如:
adb wait-for-device install <app>.apk
上面的命令只有连接上了模拟器/设备连接上了adb服务才会被执行,而在Android系统完全启动前执行就会有错误发生.
Server start-server 选择服务是否启动adb服务进程.  
kill-server 终止adb服务进程.  
Shell shell 通过远程shell命令来控制模拟器/设备实例. 查看 获取更多信息 for more information.
shell [<shellCommand>] 连接模拟器/设施执行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 [选项] [过滤项]

选项

[plain]  view plain  copy
  1. --"-s"选项 : 设置输出日志的标签, 只显示该标签的日志;  
  2.   
  3. --"-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;  
  4.   
  5. --"-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;  
  6.   
  7. --"-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;  
  8.   
  9. --"-v"选项 : 设置日志的输出格式, 注意只能设置一项;  
  10.   
  11. --"-c"选项 : 清空所有的日志缓存信息;  
  12.   
  13. --"-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;  
  14.   
  15. --"-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;  
  16.   
  17. --"-g"选项 : 查看日志缓冲区信息;  
  18.   
  19. --"-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;  
  20.   
  21. --"-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"  正则表达式过滤

猜你喜欢

转载自blog.csdn.net/sun___shine/article/details/52131676