文章目录
1. 应用相关
1.1 APK安装
1.2 查看所有包名
adb shell pm list packages
adb shell pm list packages -f (包括路径)
1.3获取包名对应的APK路径
adb shell pm path packageName
1.4 dumpsys
强大的dump工具, 可以输出很多系统信息. 例如window, activity, task/back stack信息, wifi信息等。
常用dumpsys:
指令 | 说明 | 备注 | 细分参数 |
---|---|---|---|
activity | 输出app组件相关信息 | 还可以用细分参数获得单项内容 | activites, service, providers, intents, broadcasts, processes |
meminfo | 输出每个App的内存使用和系统内存状态 | 可以指定包名, 例如adb shell dumpsys meminfo com.anly.githubapp | / |
window | 输出当前窗口相关信息 | / | policy, animator, tokens, windows |
alarm | 输出当前系统的alarm信息 | / | / |
cpuinfo | 输出当前的CPU使用情况 | / | / |
diskstats | 输出当前的磁盘使用状态 | / | / |
batterystats | 电池使用信息 | / | / |
package | package相关信息, 相当于pm功能的集合 | 输出诸如libs, features, packages等信息 | / |
例子:
adb shell dumpsys activity
查看当前resume的是哪一个activity:
adb shell dumpsys activity | grep mFocusedActivity
1.4 查看当前上焦点应用的信息
adb shell dumpsys window | findstr mCurrentFocus
2 内存
2.1 抓取hprof文件
adb shell am dumpheap [PROCESS] [FILE-NAME]
eg: adb shell am dumpheap com.starcor.hunan /data/anr/12.hprof
2.2查看设备分配给应用的最大内存
adb shell getprop dalvik.vm.heapsize
应用正常获取到的最大堆内存大小
adb shell getprop dalvik.vm.heapstartsize
adb shell getprop dalvik.vm.heapgrowthlimit
应用申请了largeheap获取到的最大堆内存大小
2.3查看Java进程内存排行
adb shell procrank
dumpsys meminfo可以查看native进程和java进程,而procrank只能查看java进程
2.4查看RAM使用
adb shell cat /proc/meminfo
3模拟事件
3.1 按键
adb shell input keyevent <keycode>
3.2 输入
adb shell input text 字符串
**注意:**不支持中文
3.3 鼠标点击
adb shell input tap X Y
鼠标滑动
adb shell input swipe X1 Y1 X2 Y2
4 设备
4.1 截屏
adb shell screencap -p /sdcard/screencap.png
4.2 设置手机IMEI/IMSI/手机号/SIM卡序列号
adb shell setprop persist.nox.modem.imei 352462010682470
adb shell setprop persist.nox.modem.imsi 460000000000000
adb shell setprop persist.nox.modem.phonumber 15605569000
adb shell setprop persist.nox.modem.serial 89860000000000000000
4.3 查看设备信息
adb shell getprop ro.product.model
模糊查找:
adb shell getprop | grep product
也可以直接查找 /system/build.prop 文件
4.4 修改mac地址
setprop persist.nox.wifimac xxx 修改mac地址
setprop persist.nox.modem.phonumber 138111111111 手机号,生成一个随机11位数字
setprop persist.nox.model ABC001 手机型号,英文加数字随机
setprop persist.nox.manufacturer XiaoMi 手机制造商英文随机
setprop persist.nox.brand Mi 手机品牌英文随机
5. 常见问题处理
端口异常
- 报错信息:
Unable to start adb server: error: protocol fault (couldn't read status): Connection reset by peer
- 问题原因:
大多数情况是5037端口被占用。5037为adb默认端口。 - 解决办法:
查看哪个程序占用了adb端口,结束这个程序,然后重启adb就可以了。
使用命令:netstat -aon|findstr "5037"
找到占用5037端口的进程PID。
使用命令:tasklist|findstr “5440” 通过PID找出进程。
结束此进程,再通过adb start-server
启动adb就行了