Awesome-ADB
adb服务
启动服务
停止服务
设备
eg: adb -s 47dbxxxxxxxx
1 2
   | adb -s device_id adb get-serialno
   | 
 
重启
正常重启
重启到bootloader(刷机模式)
重启到recovery(恢复模式)
monkey测试
1 2
   | adb shell monkey -p packagename 1000 adb shell monkey -f /sdcard/xxx.script
   | 
 
查看进程
1 2 3
   | adb shell ps adb shell kill pid adb shell ps -x pid
   | 
 
查看service
查看系统当前内存使用情况
1 2
   | adb shell cat /proc/meminfo adb shell dumpsys meminfo package
   | 
 
查看CPU使用情况
1 2 3 4 5 6 7
   | adb shell top adb shell top -m 3 adb shell top -m 3 -n 1 adb shell cat /proc/cpuinfo adb shell cat /proc/stat adb shell cat /proc/meminfo adb shell cat /system/build.prop
   | 
 
Activity调试
启动应用
1 2 3
   | adb shell am start xxx.xxx.xxx/xxx.xxx.xxx.MainActivity adb shell am start -n packagename/packagename.activity adb shell am start -n com.android.camera/.Camera
   | 
 
停止目标应用
1
   | adb shell am start -S com.android.camera/.Camera
   | 
 
带参数传递
1
   | adb shell am start xxx.xxx.xxx/xxx.xxx.xxx.MainActivity -e argus_name value
   | 
 
启动隐式Intent
 -a表示action,-c表示category,-d表示data_uri,-e表示添加额外key-value信息
1
   | am start -a "android.intent.action.VIEW" -d "https://www.baidu.com" 
   | 
 
启动拨号器拨打10086
1
   | am start -a android.intent.action.CALL -d tel:10086
   | 
 
播放音频文件
1
   | am start -a "android.intent.action.VIEW" -t "audio/mp3" -d "file:///storeage/sdcard0/1.mp3"
   | 
 
播放视频文件
1
   | am start -a android.intent.action.VIEW -d "file:///mnt/sdcard/test.3gp" -t "video/*" 
   | 
 
使用am发送广播
可以在后面添加-e来添加额外信息
1
   | adb shell am broadcast -a "our.specified.action"
   | 
 
恢复出厂设置
1
   | adb shell am broadcast -a android.intent.action.MASTER_CLEAR
   | 
 
重启手机
1
   | adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
   | 
 
启动一个服务
1
   | adb shell am startservice "xxx.xxx.xxx/xxx.xxx.xxx.MyService"
   | 
 
停止应用
1
   | adb shell am force-stop package
   | 
 
查看当前Activity名称
1
   | adb shell dumpsys activity | findstr "mFocusedActivity"
   | 
 
启动monitor
监控crash和ANR
安装apk
安装
1 2
   | adb install xxx.apk adb -s xxxx install xxx.apk
   | 
 
覆盖安装
1
   | adb uninstall -r xxx.apk
   | 
 
卸载应用
卸载
卸载时保留数据和缓存目录
1
   | adb uninstall -k package
   | 
 
查看设备应用
查看设备所有应用包名
1
   | adb shell pm list packages
   | 
 
列出指定包名对应的apk路径
1
   | adb shell pm path packagename
   | 
 
清空指定包名对应的应用的数据和缓存文件
1
   | adb shell pm clear packagename
   | 
 
文件管理
1 2
   | adb push 电脑文件路径 /sdcard adb pull /sdcard/file 电脑文件路径
   | 
 
删除
-f 强制删除文件不需要确认
-r 递归删除文件夹内文件
-i 删除文件前需要确认
1
   | adb shell rm /sdcard/text.txt
   | 
 
创建目录
指定 -p递归创建目录
1
   | adb shell mkdir -p /sdcard/temp/test/
   | 
 
创建文件
1
   | adb shell touch /sdcard/text.txt
   | 
 
复制文件
1
   | adb shell cp /sdcard/text.txt /sdcard/test/
   | 
 
移动文件
移动同一目录下文件相当于重命令文件
1
   | adb shell mv /sdcard/1.txt /sdcard/2.text
   | 
 
向屏幕输入一些信息
其中%s表示空格
1
   | adb shell input text "insert%syour%stext%shere"
   | 
 
模拟屏幕点击事件
1
   | adb shell input tap 500 14500
   | 
 
模拟手势滑动事件
从屏幕坐标(100,500)开始,滑动到(100,1450)结束,整个过程耗时100ms
1
   | adb shell input swipe 100 500 100 1450 100
   | 
 
模拟长按操作
也就是两个坐标点相同,耗时超过500ms
1
   | adb shell input swipe 100 500 100 500 500
   | 
 
模拟点击实体按键的命令
该命令表示调低音量,数字25是KeyEvent类里面定义的一个事件常量,该类定义了将近300个事件常量
1
   | adb shell input keyevent 25
   | 
 
dumpsys
查看dumpsys能提供的查询服务
常用服务名
activity
ActivityManagerService(AMS相关信息)
package
PackageManagerService(PMS相关信息)
window
WindowManagerService(WMS相关信息)
InputManagerService(IMS相关信息)
power
PowerManagerService(PMS相关信息)
prostats
ProcessStatsService(进程统计)
battery
BatteryService(电池信息)
alarm
AlarmManagerService(闹钟信息)
meminfo
MemBinder(内存)
查看电池信息
adb shell dumpsys battery
查看Activity信息
1
   | adb shell dumpsys activity
   | 
 
直接使用以上命令会得到非常长的信息,一般会选择下面八个命令进行查询
1 2
   | dumpsys activity intents dumpsys activity broadcasts(广播)
   | 
 
可缩写成dumpsys activity prov
1
   | dumpsys activity providers
   | 
 
可缩写成dumpsys activity perm
1
   | dumpsys activity permissions
   | 
 
可缩写成dumpsys activity s
1
   | dumpsys activity services
   | 
 
1
   | dumpsys activity recents
   | 
 
可缩写成dumpsys activity a
1
   | dumpsys activity activities
   | 
 
1
   | dumpsys activity processes
   | 
 
如果内容还是太多,可以使用grep过滤
1
   | adb shell dumpsys activity | grep -i 'run'
   | 
 
查看App有哪些进程
1
   | adb shell dumpsys activity p com.quark.browser | grep -i 'ProcessRecord' | grep -i 'PID'
   | 
 
查看内存使用情况
1
   | adb shell dumpsys meminfo com.quark.browser
   | 
 
其他
申请root权限
查看手机上所有的包名
1 2
   | adb shell cd data/data ; ls
   | 
 
Linux多个命令行一起执行可以用“;”或者“&&” 进行分割
退出
屏幕截图
1
   | adb shell screencap /sdcard/screen.png
   | 
 
录制视频
适用于4.4及以上的设备
1
   | adb shell screenrecord /sdcard/demo.mp4
   | 
 
bugreport
1
   | adb bugreport > d:/xxx.log
   | 
 
重定向
执行该命令后所有发往宿主机1314端口的消息、数据都会转发到Android设备的8888端口上,因为可以通过远程的方式控制Android设备
1
   | adb forward tcp:1314 tcp:8888
   | 
 
列出输入法
获取设备分辨率
查看Android设备的参数信息
查看某信息
1
   | adb shell getprop ro.build.version.sdk
   | 
 
快速创建大文件
1
   | dd if=/dev/zero of=hello.txt bs=1024000 count=1
   | 
 
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
   | if =输入文件(或设备名称)。
  of =输出文件(或设备名称)。
  ibs = bytes 一次读取bytes字节,即读入缓冲区的字节数。
  skip = blocks 跳过读入缓冲区开头的ibs*blocks块。
  obs = bytes 一次写入bytes字节,即写入缓冲区的字节数。
  bs = bytes 同时设置读/写缓冲区的字节数(等于设置ibs和obs)。
  cbs = byte 一次转换bytes字节。
  count=blocks 只拷贝输入的blocks块。
  conv = ASCII 把EBCDIC码转换为ASCIl码。
  conv = ebcdic 把ASCIl码转换为EBCDIC码。
  conv = ibm 把ASCIl码转换为alternate EBCDIC码。
  conv = block 把变动位转换成固定字符。
  conv = ublock 把固定位转换成变动位。
  conv = ucase 把字母由小写转换为大写。
  conv = lcase 把字母由大写转换为小写。
  conv = notrunc 不截短输出文件。
  conv = swab 交换每一对输入字节。
  conv = noerror 出错时不停止处理。
  conv = sync 把每个输入记录的大小都调到ibs的大小(用NUL填充)。
   | 
 
查看磁盘使用情况
打开前置摄像头
1
   | adb shell am start -a android.media.action.IMAGE_CAPTURE --ei android.intent.extras.CAMERA_FACING 1
   | 
 
打开后置摄像头
1
   | adb shell am start -a android.media.action.IMAGE_CAPTURE --ei android.intent.extras.CAMERA_FACING 0
   | 
 
SVC命令
设置屏幕的常亮,true保持常亮,false不保持,usb当插入usb时常亮,ac当插入电源时常亮
1
   | svc power stayon [true|false|usb|ac]  
   | 
 
打开/关闭数据流量
打开/关闭wifi
修改系统配置
1 2
   | ## 修改后,如果没在AndroidManifest做设置,会触发onConfigurationChanged事件 adb shell settings put system font_scale 2.0
   | 
 
开启【调试GPU过度绘制】
1
   | adb shell setprop debug.hwui.overdraw show
   | 
 
关闭【调试GPU过度绘制】
1
   | adb shell setprop debug.hwui.overdraw false
   |