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
|