本文为像高手一样使用ADB命令行(1)的一个补充和扩展,ADB的6个高级应用场景。

局域网无线调试

  1. 手机通过USB数据线连接电脑(PC或Mac或Linux);
  2. 执行以下命令
    1
    2
    adb tcpip 5555
    adb connect IP:5555

  1. IP为手机的IP地址;
  2. 电脑与手机应处于同一个局域网中。

检查设备是否具有root权限

关键代码如下:

1
2
adb shell
su

观察命令提示符是否由$变为了#,有,则表示具有root权限;否则,则不具有。

更改ADB运行端口

方案一

使用-P参数,启动时指定,关键代码:

1
adb -P 12345 start-server

方案二

设定环境变量,关键代码:

1
2
3
# 以下代码适用于Mac和Linux
export ANDROID_ADB_SERVER_PORT=12345
adb start-server

对于Windows用户(以Windows 10为例),可通过下面步骤添加环境变量:

此电脑——右键点击——属性——高级系统设置——环境变量——在用户变量或者系统变量中(均可)——新建,填入正确的变量名ANDROID_ADB_SERVER_PORT和预期设置的值12345即可。

部分手机连接计算机不能被识别

前提

请确保手机已经打开了开发者选项,并且勾选了USB调试,如果没有请通过下面步骤完成设置(不同手机略有不同,部分国产手机的开发者选项可在高级功能或者辅助功能中找到):
系统设置——关于——连续多次点击版本号——即可在设置中多出一项开发者选项,点击进入其中,然后勾选USB调试即可。

尝试通过下面的命令重启adb server:

1
2
adb kill-server
adb start-server

如果以上步骤完成了之后,手机还是不能被识别到(现象表现为执行adb devices的时候列表为空),那么就应该尝试去手动添加Vendor ID到Android的配置文件中了。

配置文件位置

Linux/Mac OS X用户

1
~/.android/adb_usb.ini

Windows用户

1
C:\Users\USERNAME\.android\adb_usb.ini

将其Vendor ID写入其中即可。

常见Vendor ID

机型 Vendor ID
魅族MX4 0x2a45
红米Note 0x2717

获取Vendor ID的方法

对于Linux用户,可执行lsusb即可看到,如图:
Linux用户获取Vendor ID

对于Mac用户,可点击屏幕左上角的苹果图标,然后按住option键,点击System Information...,然后选择USB,点击对应设备,即可看到其Vendor ID,如图:
Mac OS X用户获取Vendor ID

Windows用户可通过USBView去查看,过程略。

启动Monkey进行应用压力测试

Monkey是运行于模拟器或手机上的一个程序,通过生成伪随机的大量的系统级的用户事件流来模拟操作,包括单击、触摸、手势等。从而为正在开发中的应用程序通过随机响应进行压力测试。

最简单使用monkey的方式是通过下面的命令行,它可以运行指定的应用程序并向其发送500个伪随机事件。

1
adb shell monkey -v -p your.package.name 500

更多、更详细的Monkey的使用,请参考官方文档

启用logcat查看日志

基本语法:

1
[adb] logcat [<option>] ... [<filter-spec>] ...

可以通过adb直接调用

1
adb logcat

或者在shell中调用

1
$ logcat

logcat日志过滤优先级:

V — 明细 (最低优先级)(verbose)
D — 调试(debug)
I — 信息(info)
W — 警告(warning)
E — 错误(error)
F — 严重错误(fatal)
S — 无记载 (最高优先级,没有什么会被记载)(silent)

过滤器的基本格式为tag:优先级,例如:

1
adb logcat ActivityManager:I MyApp:D *:S

以上的命令解释:

  1. 对于ActivityManager输出级别为I以及更高优先级的Log;
  2. 对于MyApp输出D以及更高优先级的Log;
  3. 其他的内容,不输出。