adb常用命令汇总

场景

  • adb devices ------查看连接设备

  • adb install 路径 ------安装apk

  • adb shell pm clear com.xx ------清除app数据数据

  • adb logcat |findstr START

------获取待测APP的包名,启动待测APP,日志中cmp和反斜杠/之间的信息即为包名

  • adb logcat | findstr Displayed

------adb获取当前页面的activity

  • adb shell dumpsys window windows |grep -E 'com.xx'

------adb获取当前页面的activity

  • aapt dump badging apk路径
  • ------查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息

adb shell pm 相关命令

adb shell pm list packages ------列出所有应用

adb shell pm list packages -s ------列出系统应用

adb shell pm list packages -3 ------列出第三方应用

比如要查看包名包含字符串 test 的应用列

adb shell pm list packages test或

adb shell pm list packages |grep test

adb shell dumpsys

  • adb shell dumpsys window policy|findstr mScreenOnFully 判断设备是否锁屏和黑屏状 若为true,即为点亮状态 若为false,即为黑屏状态

  • adb shell dumpsys activity---------------查看ActvityManagerService 所有信息

  • adb shell dumpsys activity activities----------查看Activity组件信息

  • adb shell dumpsys activity services-----------查看Service组件信息

  • adb shell dumpsys activity providers----------查看ContentProvider组件信息

  • adb shell dumpsys activity broadcasts--------查看BraodcastReceiver信息

  • adb shell dumpsys activity intents--------------查看Intent信息

  • adb shell dumpsys activity processes---------查看进程信息

补充如下

linux:

adb shell dumpsys activity | grep "mFocusedActivity"

windows:

adb shell dumpsys activity | findstr "mFocusedActivity"

  • adb shell dumpsys package

包信息 Package Information

  • adb shell dumpsys meminfo

内存使用情况Memory Usage

  • adb shell dumpsys display | findstr DisplayDeviceInfo

adb shell am

am(ActivityManager) 响应时间测试(实际APP测试不能以此作为判断标准 )

adb shell am start -W com.wuba/.home.activity.HomeActivity
adb shell am start -W com.wuba/.activity.launch.LaunchActivity
如果只关心某个应用自身启动耗时,参考TotalTime;
如果关心系统启动应用耗时,参考WaitTime;
如果关心应用有界面Activity启动耗时,参考ThisTime。

adb shell monkey

常用组合

adb shell monkey -p com.xx --ignore-crashes --ignore-timeouts --ignore-security-exceptions --pct-syskeys 0 --throttle 200 500000 >sdcard/huaweimonkey0725.txt

其中com.xx指包名,如何获取adb logcat | findstr Displayed

200 为延迟时间--throttle,单位毫秒

500000为事件数

0为系统事件百分比 --pct-syskeys

--ignore-crashes 忽视应用 crash 报错,不指定该参数时,

应用出现 crash,monkey 会自动停止发送事件,指定该参数后,

mongkey 会在 crash 后也一直发送事件,知道所有事件发送完成

--ignore-timeouts 忽视超时导致的错误,即ANR的错误

--ignore-security-exceptions 忽视权限方面的错误

--monitor-native-crashes 监控由 C/C++ 代码引起的 crash

--ignore-native-crashes 忽视由 C/C++ 代码引起的 crash

--kill-process-after-error 当出现错误后杀掉应用的进程

--hprof 指定该选项后,monkey会在发送事件完成后生成性能

报告,报告一般存放于/data/misc目录下

如何停止monkey

adb shell

ps | grep monkey

返回来的第一个数字,即是monkey的进程号

shell 7772 185 277516 22244 ffffffff 4010a58c S com.Android.commands.monkey

kill 命令结束进程继续输入:

kill 7772[刚才查到的进程号

如何获取monkey日志

adb shell monkey执行完查看崩溃日志 【Android】抓取log(anr)

第一步:adb shell

第二步:cd /data/anr(如果有anr目录继续执行第三步,如果没有

会提示没有此目录,那就不需要在去traces.txt文件了)

第三步:ls(查看存在的traces.txt 文件)

第四步:Ctrl+C退出,然后输入adb pull /data/anr/traces.txt E: 把traces.txt文件导入到E盘

ANRs (“Application Not Responding”),意思是”应用没有响应“。

monkey问题定位

monkey日志分析
monkey问题分类
monkey问题原因
monkey问题解决
monkey问题复测

adb shell ps

执行完adb shell ps

USER PID PPID VSIZE RSS WCHAN PC NAME

fu0_a349 31658 481 2405608 180692 ffffffff 00000000 S

USER: 进程的当前用户;

PID : 毫无疑问, process ID的缩写,也就进程号;

PPID :process parent ID,父进程ID

VSIZE : virtual size,进程虚拟地址空间大小;

RSS : 进程正在使用的物理内存的大小;

WCHAN :进程如果处于休眠状态的话,在内核中的地址;

PC : program counter,

NAME: process name,进程的名称

adb shell wm

命令查看屏幕尺寸

如何获取 方法一
adb shell dumpsys window displays |head -n 3 输出类似如下信息:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays) Display: mDisplayId=0 init=1080x1920 440dpi cur=1080x1920 app=1080x1920 rng=1080x1025-1920x1865

1080x1920 就是屏幕分辨率。
方法二 adb shell wm size

如何获取 (1)修改分辨率 adb shell wm size 1080x1920 adb shell wm size reset (2) 修改dpi adb shell wm density 480 adb shell wm desity reset

adb logcat

adb logcat | findstr Displayed

------adb获取当前页面的activity adb logcat 主要功能 logcat (四类log buffer是main,radio,system,events)

  • adb logcat -v time > logcat.txt //默认是-b main -b system
  • adb logcat -v time -b main //main log
  • adb logcat -v time -b radio //radio log
  • adb logcat -v time -b system //system log
  • adb logcat -v time -b events

通过tcp命令连接手机(非USB连接)

  • 首先通过USB线唤醒server,adb start -server,
  • 之后执行adb tcpip 5555,重置端口号:5555 ,
  • 查找手机IP后,执行adb connect ip + 连接成功后可以断开手机,执行adb -s 10.252.221.202:5555 shell monkey -p com.wuba -v 1000 等相关任务

补充:server与client通讯端口5037, adb server会与emulator交互,使用的端口有两个,一个是5554专用与emulator实例的连接,那么数据可以从emulator转发给IDE控制台,另一个则是5555,专门与adb daemon连接为后面调试使用

测试APP是否过量耗电

adb shell logcat -v time 导出log中sending alarm行不含待测应用包名。若存在,则需要关注type为0和2的sending alarm是否频繁,若出现多次则说明有可能会造成过量耗电。

原文地址:https://www.cnblogs.com/echoqi/p/10476078.html