问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Android ADB shell命令

创作时间:
作者:
@小白创作中心

Android ADB shell命令

引用
CSDN
1.
https://blog.csdn.net/weixin_42145792/article/details/143974649

如何利用ADB查询app的性能数据

一、内存

在Android系统中,每个APP内存包括两部分:

  • 与其他进程共享内存(shared drity)

  • APP独占的私有内存(private dirty)

在行业内,我们通常会使用PSS(USS+共享的内存)来判断APP的内存开销

查看指令为:adb shell dumpsys meminfo 应用包名或者 adb shell procrank

二、CPU

  CPU测试,主要关注的是cpu的占用率。很多时候,我们玩手机时,会出现发热发烫,那是因为CPU使用率过高,CPU过于繁忙,会使整个手机无法响应用户,整体性能降低,用户体验就会很差,也容易引起ANR(application not responding, 主线程(UI线程)如果在规定时内没有处理完相应工作,就会出现ANR)等等一系列问题。

静态不超过5%,后台静默不超过1%,一般运行状态不超过30%,高负荷运行不超过75%,峰值不超过90%。

2.1 获取指定应用的CPU占用情况

adb shell dumpsys cpuinfo | grep packagename

可以看出第一行CPU 占用率 4.9%,这个过程是在用户(user)中花 1.5% 的时间,并在内核空间(kernel)花费 3.4% 的时间

2.2 获取实时的连续数据

adb shell top -d 1

-t 显示进程名称

-s 按指定行排序

-n 在退出前刷新几次

-d 刷新间隔 「-d 1」每隔1s获取cpu占用

-m 显示最大数量

运行效果

2.3cpu运行的枚举场景

2.3.1 空闲状态下的应用CPU消耗情况(程序运行后按home键挂后台)

在空闲时间(切换至后台)的消耗,基本没大应用使用cpu

预期应用对应的CPU占用率=0%

2.3.2 中等规格状态下的应用CPU消耗情况(程序执行普通操作时的cpu占用)

在运行一些应用的情况下,cpu已占50%的情况下,观察应用程序占用cpu的情况

预期应用对应的CPU占用率≤30%

2.3.3 中等规格状态下长时间的应用CPU消耗情况

预期应用对应的CPU占用率≤30%

2.3.4 满规格状态下的应用CPU消耗情况

在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)

预期应用对应的CPU占用率≤50%

2.3.5 针对性的场景测试

2.4 问题排查

我们在面对问题如:APP操作时出现发烫、卡顿、ANR现象,排查是否是CPU问题时:

如果是ANR,则在logcat文件里搜索ANR in,以及adb pull 拉取trace文件

如果没有ANR则使用上述方法获取到CPU占用率,如果某个场景CPU占用率走势异常,峰值存在异常均值大于基线,则可以使用traceview查看分析Trace文件,反馈给RD解决

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号