APP性能---用adb命令测试Android中APP的FPS

        FPS是测试APP流畅度的一个重要参数,以下介绍用adb命令查看APP的FPS方法步骤;

        备注:现在有很多平台工具可以测试APP/H5的FPS等性能参数,比如腾讯的PerfDog、Argus,在前面也有记录过;

PerfGog测试FPS等性能参数

Argus测试FPS等性能参数

以下主要介绍adb查看FPS的方法:

1、打开设置--系统--开发人员选项--GPU呈现模式分析--在屏幕上显示为线型图;


备注:如果没有打开GPU呈现模式分析开关,在dump的数据中没有Draw Prepare Process Execute的数据;

 

2、重置所有计数器:

adb shell dumpsys gfxinfo tv.danmaku.bili reset

3、滑动被测应用页面后,输入以下命令保存应用的动画帧数据:

//得到软件渲染加载过程的数据,反应APP渲染性能和稳定性;
adb shell dumpsys gfxinfo packagename > D:\bili.txt
//举例如下
adb shell dumpsys gfxinfo tv.danmaku.bili > D:\bili.txt

4、打开txt文档得到如下数据:


        Draw:创建显示列表(display lists,记录所有view对象的绘制指令)的时间开销;

        Prepare:在一些旧adb版本中是算在process上,就是指从创建显示列表到执行显示列表的这一段准备时间的开销;

        Process:渲染引擎执行显示列表中绘制指令的时间。UI视窗中的View数量越多,需要执行的绘画命令就越多;

        Execute:将一帧图像交给合成器compostior的时间。这部分占用的时间通常比较少;其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间;

        Draw + Prepare+Process + Execute = 绘制一帧需要的时间 ,这个时间要小于16.67ms才能保证每秒60帧,即fps为60;如果超过了16.67就表示掉帧了。

5、将以上的数据导入Excel中,计算总时间后生成折线图:

 

以上是哔哩哔哩APP(tv.danmaku.bili.MainActivityV2)的测试数据,分别对比淘宝和京东的测试数据如下:

淘宝详情页(com.taobao.android.detail.wrapper.activity.DetailActivity)

 京东商品详情页(com.jd.lib.productdetail.ProductDetailActivity)

 

6、dump出信息介绍


(1)Graphics info for pid 2280 [com.jingdong.app.mall] : 表明当前dump的为京东APP的帧信息,pid为2280

(2)Total frames rendered: 11083  本次dump搜集了11083帧的信息

(3)Janky frames: 4172 (37.64%) 11083帧中有4172帧的耗时超过了16ms,卡顿概率为37.64%

(4)Number Missed Vsync: 60 垂直同步失败的帧

(5)Number High input latency: 10663 处理input时间超时的帧数

(6)Number Slow UI thread: 125 因UI线程上的工作导致超时的帧数

(7)Number Slow bitmap uploads: 13 因bitmap的加载耗时的帧数

(8)Number Slow issue draw commands: 90 因绘制导致耗时的帧数

(9)HISTOGRAM: 5ms=50 6ms=118 7ms=235 ... 直方图数据,表面耗时为0-5ms的帧数为50,耗时为5-6ms的帧数为118,同理类推。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用adb命令可以测试安卓应用程序的性能。通过运行adb命令,可以获取应用程序的性能数据,并将其保存在csv文件。这些性能数据包括均值、最大值和最小值等指标。可以使用adb命令测试应用程序的启动时间、流量消耗和电量消耗等性能指标。 对于启动时间的测试,可以使用adb shell am start -W package命令来测试应用程序的热启动和冷启动时间。其WaitTime参数表示启动的时间。 对于流量的测试,可以使用adb shell命令来查看应用程序的进程ID(pid)和用户ID(uid),然后使用cat /proc/uid_stat/uid/tcp_rcv(tcp_snd)命令来获取发送和接收的流量数据。测试前获取流量数值,测试后再次获取,两者的差值就是应用程序消耗的流量。 对于电量的测试,可以使用adb shell dumpsys batterystats > battery.txt命令来获取电量使用情况。在生成的battery.txt文件,可以查找关键词"Estimated power use"下的具体uid的耗电情况。 总之,通过adb命令可以方便地测试安卓应用程序的性能,包括启动时间、流量消耗和电量消耗等指标。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [可测含多进程的app-- python调用adb命令获取Android App应用的性能数据:CPU、GPU、内存、电池、耗电量(含...](https://blog.csdn.net/u012089395/article/details/126668946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [android开发获取应用本身耗电量_APP性能测试——Android](https://blog.csdn.net/weixin_39834780/article/details/110200499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值