adb的使用命令有很多,某些不常用的命令基本都是搜一下就能直接使用,下面罗列一些在工作中比较常用的命令

APK安装/获取命令

adb install  <-r>  <-g>  <文件路径>   -r表示强制覆盖安装,-g表示授予所有运行时权限 
adb install-multiple <apk文件1> <apk文件2> 当导出apk有多个资源文件时使用
adb shell dumpsys activity | findstr mFocus 获取当前焦点的应用activity名
adb shell pm path <应用包名>  获取应用所在路径
adb pull <应用所在路径>  提取应用到当前文件夹   后面加文件路径的话就是提取到某个路径下

查看屏幕分辨率/屏幕密度

adb shell wm size  获取当前屏幕分辨率
adb shell wm size 1200x2000      调整分辨率至1200x2000   
adb shell wm density     获取屏幕密度

一般用于看一些应用的显示/布局差异,比如三方应用的在不同分辨率下的现象是不一样的,有些应用的显示清晰度也会受到限制。值得注意的是,低分辨率往高分辨率调,受屏幕分辨率限制是不会生效的。

屏幕密度比如说设置里调整显示的大小,此时会通过调整屏幕密度来达到调整屏幕大小的效果。目前遇到的圆角动画也是根据屏幕密度来计算的。附上px和dp的计算公式:px = dp * (densityDpi / 160);dp = px / (densityDpi / 160)

获取手机权限

adb root  获取手机root权限
adb remount     获取remount权限,允许修改手机system分区下的文件,重启后生效

获取屏幕上的点击操作

adb shell settings put system show_touches 1 打开当前触点   0关闭
adb shell settings put system pointer_location 1  打开屏幕报点   0关闭
adb shell getevent -lt    触摸查看是否有touch回显
adb shell settings put secure clock_seconds 1 让时钟精确到秒 0关闭

一般用于解决定屏/冻屏类问题或者让测试打开后方便观察操作步骤,有些问题不太好确认时间点的,可以让时钟精确到秒,方便日志定位

日志相关命令

adb bugreport  导出bugreport日志

adb pull /sdcard/debuglogger     

adb pull /data/debuglogger 

MTK项目导出log命令 一般以下两条路径二选一
adb pull /sdcard/Logs    高通项目导出log命令

adb pull /data/aee_exp aee_exp_system 

adb pull /data/vendor/aee_exp aee_exp_vendor

导出db命令
adb shell setprop persist.log.tag.NetworkPolicy V 开启NetworkPolicy log

adb shell am dumpheap {packages_name} /data/local/tmp/1.hprof

adb pull /data/local/tmp/1.hprof

adb命令获取内存快照

在有hprof-conv程序的文件夹内执行 hprof-conv 1.hprof 1_mat.hprof 对文件进行转换
通过Memory Analyze Tool 工具进行分析 或者通过AS的profile里的heap deap进行分析

获取系统信息的adb命令

adb shell settings get global  <全局变量>   获取全局变量
adb shell cat/proc/dma_heap/all_heaps  抓取GPU内存占用
adb shell cat proc/进程号/oom_score  获取进程的oom权重
adb shell "cat /proc/vmstat|grep oom_kill"  查看是否有oom kill   不等于0就是有
adb shell ps -A | findstr -iE "systemui"  获取进程的进程号
adb shell cat /proc/<PID>/status 获取进程的cpu绑定核心
adb shell setenforce 0    设置SELINUX为宽容模式
adb shell cat proc/aed/generate-oops  触发KE,可以用于抓取全局dump
adb shell find -name "file"  查找某个文件位置/so库位置
adb shell kill -3 <进程号>  打印指定Java进程的trace信息
adb shell debuggerd -b <进程号>    打印指定Native进程的traces信息,-b表示在控制台输出
adb shell am hang --allow-restart  触发手机hang机
adb shell dd if=/dev/urandom of=/sdcard/Documents/testfile bs=1M count=20480  内存填充命令一次填充20G,用于分析内存紧张问题
adb shell "dumpsys activity top | grep '#[0-9]: ' | tail -n 1"  查看当前界面的Fragment,Settings中用的比较多

adb shell dumpsys   

dumpsys window 

dumpsys cpuinfo     

dumpsys meminfo 

dumpsys package <package_name>

dumpsys activity   

dumpsys activity | grep "mResume"     

dump系统信息,常见的有以下几种

查询WMS服务相关信息

查询CPU情况

查询内存情况

查看应用的详细信息

查询AMS服务相关信息

过滤关键字查找当前Activity

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐