总结一下工作中常用的adb命令,便于以后查找,发现新的用法是便于追加。
一、log相关
1、log中显示时间 :adb logcat -v time
2、按照TAG过滤:adb logcat -s yourTag
3、过滤出来包含某个关键字的log:adb logcat | grep your_key_words
4、过滤掉包含某个关键字的log:adb logcat | grep -vE “^…dalvikvm|CameraHal” log中不包含dalvikvm和CameraHal
5、当连有多个设备时,过滤指定设备的log:adb -s 82WJEUJBVD logcat
6、无线调试 :adb tcpip 5555 ( 5555为端口号,可以自由指定)–>adb connect ip:port
二、启动相关
1、adb shell am 启动activity有两种方式:
按照action启动 : adb shell am -a your_action
按照包名/类名启动:adb shell am -n app的主包名/类名的全路径
2、adb shell 启动service
adb shell am startservice com.package.name/.servicename
3、关闭指定包名的app
adb shell am force-stop com.hisign.id_verification
三、进程相关
1、查看进程
adb shell ps / adb shell ps | grep “com.XXX”
2、杀死指定包名的后台进程(前台正在显示的进程杀不掉)
adb shell am kill com.hisign.id_verification
3、杀死全部的后台进程
adb shell am kill-all
四、屏幕相关
1、adb 屏幕截图
adb shell screencap -p “/sdcard/screen.jpg” // 保存到sdcard下面名为screen.jpg的文件
2、adb 分辨率
adb shell wm size
3、adb 获得设备的dpi
adb shell wm density
4、顺便再总结一下常用的dpi和资源文件夹的对应关系
160dpi–>mdpi 1dp = 1px
240dpi–>hdpi 1dp = 1.5px
320dpi–>xhdpi 1dp = 2px
480dpi–>xxhdpi 1dp = 3px
5、录屏
adb shell screenrecord /sdcard/lixm.mp4
6、启动service
adb shell am startservice -n com.hisign.updateservice/com.hisign.updateservice.service.MyService
五、ADB命令的执行
private void executeCmd() {
Process process = null;
DataOutputStream os = null;
try {
//String cmd1 = "chmod 777 /dev/video0";
//String cmd2 = "chmod 777 /dev/video1";
String cmd1 = "input tap 123 456";
String cmd2 = "input text 789";
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(cmd1 + "\n");
os.writeBytes(cmd2 + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (os != null) {
os.close();
}
process.destroy();
} catch (Exception e) {
e.printStackTrace();
}
}
}