2

一、安装卸载应用及查看当前activity或权限等


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

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

adb install -r apk路径 ------覆盖安装apk

adb uninstall com.xx    ----- 卸载apk

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

adb shell dumpsys window windows | findstr "Current"

------获取包名及当前页面的activity

aapt dump badging apk路径

------查看apk包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息,比较常用的命令

如下

package:name='com.xxx'versionCode='90700'versionName='9.7.0'

sdkVersion:'19'

targetSdkVersion:'28'

uses-feature:'android.hardware.camera'

uses-permission:'android.permission.USE_FINGERPRINT'

uses-permission:'android.permission.CALL_PHONE'

二、判断设备屏幕和网络状态等

adb shell dumpsys

查看设备锁屏或黑屏状态

adb shell dumpsys window policy|findstr mScreenOnFully

若为true,即为点亮状态 若为false,即为黑屏状态

查看网络连接状态

adbshelldumpsys wifi |findstr "Wi-Fi is "

结果有两种

连接WiFi状态

Wi-Fiisenabled

未连接WiFi状态

Wi-Fiisdisabled

查看包信息 Package Information

adb shell dumpsys package

查看内存使用情况Memory Usage

adb shell dumpsys meminfo

adb shell dumpsys display | findstr DisplayDeviceInfo

其他常用参数命令

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---------查看进程信息

三、adb shell am获取APP启动时间

am(ActivityManager) 可用于启动时间测试(实际APP测试不能以此作为判断标准 )

adb shell am start -W com.xx/.home.activity.HomeActivity

adb shell am start -W com.xx/.activity.launch.LaunchActivity

如果只关心某个应用自身启动耗时,参考TotalTime;

如果关心系统启动应用耗时,参考WaitTime;

如果关心应用有界面Activity启动耗时,参考ThisTime。

四、adb shell wm查看模拟屏幕分辨率和密度


命令查看屏幕尺寸

#方法一

adb shell dumpsys window displays |head -n 3

输出类似如下信息:

WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)

Display:mDisplayId=0

init=1080x1920 440dpicur=1080x1920app=1080x1920rng=1080x1025-1920x1865

1080x1920就是屏幕分辨率。

#方法二

adb shell wm size

修改及重置size和desity

adbshellwm size 1080x1920

#设置分辨率1080x1920

adbshellwm size reset

#重置分辨率

adbshellwm density 480

#设置density 480

adbshell wm desity reset

#重置desity

五、adb shell monkey稳定性测试

adb shell monkey常用组合

adb shell monkey -pcom.xx--ignore-crashes --ignore-timeouts --ignore-security-exceptions --pct-syskeys0--throttle200500000>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”),意思是”应用没有响应“。

六、adb shell pm查看应用相关信息


adb shell pm 相关命令

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

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

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

adb shell pm list packages test

adb shell pm list packages |findstr test  ----比如要查看包名包含字符串 test 的应用

七、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

八、adb shell dumpsys耗电测试


(一)、测试APP是否过量耗电

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

(二)、在低电耗模式和应用待机模式下进行测试

目的: 为确保用户获得良好的体验,您应在低电耗模式和应用待机模式下全面测试您的应用。

在低电耗模式下测试

使用Android6.0(API级别23)或更高版本的系统映像配置硬件设备或虚拟设备。

将设备连接到开发计算机并安装您的应用。

运行您的应用并使其保持活动状态。

运行以下命令,强制系统进入闲置模式:

$ adbshelldumpsys deviceidle force-idle

准备就绪后,运行以下命令,使系统退出闲置模式:

$ adbshelldumpsys deviceidle unforce

执行以下命令,重新激活设备:

$ adbshelldumpsys battery reset

在重新激活设备后观察应用的行为。确保应用在设备退出低电耗模式时正常恢复。

在应用待机模式下测试

使用Android 6.0(API 级别23)或更高版本的系统映像配置硬件设备或虚拟设备。

将设备连接到开发计算机并安装您的应用。

运行您的应用并使其保持活动状态。

运行以下命令,强制应用进入应用待机模式:

$adb shell dumpsys battery unplug

$adb shell am set-inactive

使用以下命令模拟唤醒您的应用:

$adb shell am set-inactive

$adb shell am get-inactive

在唤醒应用后观察它的行为。确保应用从待机模式正常恢复。您应特别检查应用的通知和后台作业是否继续按预期运行。

adb shell ps查看进程信息

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命令可根据个人需求自行封装脚本,下节会分享monkeyscript脚本应用,敬请期待!

image
九、参考

https://developer.android.goo...


Echo
12 声望3 粉丝