本文汇总了开发中常用的adb命令,熟悉这些命令在某些场景会极大的提高开发效率,绝对的干货。文中所有参数以$开头,实际使用时替换为真正参数即可。
一、启动/关闭类
1.启 动activity
1.1 隐式action方式:
adb shell am start -a ${your_action_name}
1.2 显示activity方式:
adb shell am start -n ${your_package_name}/${your_activity_name}
显式(-n)与隐式(-a)的指令也适用于服务和广播。
1.3 添加启动参数:
如果要添加启动参数则在以上命令后面继续添加如下配置:
string 类型: –es {value}
int 类型: –ei {value}
boolean类型: –ez {value}
多个参数以空格分隔,其他参数类型可自行google查阅,此方式也适用于service和广播,举个栗子
adb shell am start -a com.xxxx.business.action --es name 'zhangsan' --ei age 18
2.发送广播
adb shell am broadcast -a ${broad_action_name}
3.启动服务
adb shell am startservice -n ${your_package_name}/${your_service_name}
//停止服务
adb shell am stopservice -n ${your_package_name}/${your_service_name}
4.启动安装应用对话框
adb shell am start -a android.intent.action.VIEW -d ${your_apk_file_absolute_path} -t application/vnd.android.package-archive
比如路径是sdcard 则参数可为 file:///sdcard/test.apk
5.强制退出进程
adb shell am force-stop ${your_package_name}
二、调试类
1.打开/关闭布局边界
简直是调整UI问题的神器啊有木有
//打开
adb shell setprop debug.layout true
//关闭
adb shell setprop debug.layout false
2.切换window大小和density
做适配的时候太常用了,根本不用拿着那么多机器调试,但是前提是只能调低而不能调高,因此选择一款分辨率最高的机器测试就好了。
//调整屏幕分辨率
adb shell wm size 1920x1080
//调整density
adb shell wm density 240
3.截图
你是不是觉得AS里的一个按钮已经很好用了,我还是觉得太麻烦,而且最新的AS3.0已经不支持4.4及以前的机型了。所以干脆来个脚本吧,相当给力。
#!/bin/sh
#截图
ls_date=`date +%Y%m%d%H%M%S`
//截图
adb shell /system/bin/screencap -p /sdcard/screenshot_${ls_date}.png
#从SD卡导出到本机当前目录
adb pull /sdcard/screenshot_${ls_date}.png .
4.抓log
这就属于常规操作了,基本上都会吧,我常用的配置如下
//线程、进程名称在涉及到多应用间调试是很关键的信息
adb logcat -v threadtime > log_xxxx.txt
4.检查服务存活性
不用说,一行命令打印service是否存活对调试而言简直不能更方便
加上|grep可支持模糊查询
adb shell dumpsys activity services |grep ${your_service_name}
5.打印activity stack情况
有了这个命令,你还担心透明的activity嘛,打印出的信息已经涵盖了所有stack 及其task及其中activity的所有状态信息。另外dumpsys 指令相当强大,还能打印cpu、battery等硬件的信息。
adb shell dumpsys activity activities
由此命令再加上一个参数可直接打印顶层activity名称
adb shell dumpsys activity | grep mFocusedActivity
6.打印window情况
同activity类似
adb shell dumpsys window -w
由此命令再加上一个参数可直接打印顶层activity名称
adb shell dumpsys activity | grep mFocusedActivity
7.清除全部应用数据
adb shell pm clear ${your_package_name}
8.打印apk包信息
如果apk未安装
aapt dump badging ${your_apk_file_path}
如果已经安装
adb shell dumpsys package ${your_package_name}
9.打印manifest内容
aapt dump xmltree ${your_apk_file_path} AndroidManifest.xml
10.杀死执行包名的进程
adb shell am force-stop ${your_package_name}
11.打印设置所有属性信息,这些信息在system/build.prop文件中
adb shell getprop
三、性能优化
1.GPU呈现模式,帧率的重要指标
adb shell setprop debug.hwui.profile visual_bars (柱形图)
adb shell setprop debug.hwui.profile visual_lines (折线图)
2.过渡绘制
//执行完后需要杀死进程重启
adb shell setprop debug.hwui.overdraw show
//关闭过度绘制 重新打开界面生效
adb shell setprop debug.hwui.overdraw false
3.打印内存信息
adb shell procrank|grep ${your_package_name}
adb shell dumpsys meminfo ${your_package_name}(更详细一些)