GT3.1简化您的App性能测试(1)——全新的性能监测体系

导读

GT君此次给大家送来了强力的安卓GT3.1版本更新。在本次更新中,采用了在被测应用内嵌SDK的方式来获取流畅值,解决了2.x版本测试应用流畅值必须root手机的痛点。除此之外,GT3.1版本引入了Hook功能,可以获取更加丰富详细的应用信息,例如页面加载速度,卡顿代码调用栈、IO使用情况等。

下面我们不妨来看看这些便利的功能点吧!

1 基础性能分析

  • CPU:表示进程或线程的繁忙程度
  • 内存:表示当前进程内存的使用情况
  • 流量:表示当前进程网络的使用情况
  • 流畅值:表示当前应用的流畅程度

图:基础性能检测的结果

2 卡顿检查分析

  • 低流畅值区间:流畅值低于40帧/s的区间(正常绘制间隔为16.7ms即60帧/s)
  • 单次大卡顿:当两次绘帧间隔大于70ms,相当于丢了4帧以上的区间

图:卡顿区间的代码定位

3 页面测速分析

  • Activity测速:包括Activity的冷/热启动、生命周期、绘制信息、卡顿信息、页面平均流畅值,启动时长等。
  • Fragment测速:包含了Fragment的冷/热启动、生命周期、卡顿信息、页面平均流畅值,启动时长等。

而以下几种情况则可认为页面启动卡顿或启动超时:

  • Activity启动时长超过250ms
  • Activity页面1秒内卡顿超过300ms
  • Activity页面5秒内卡顿超过500ms
  • Fragment启动时长超过150ms

图:每个Activity页面详细的启动数据

图:每个Fragment页面详细的启动数据

4 布局检测分析

  • View构建时长:View在使用之前需要进行Infalte操作,此操作在主线程执行且耗时严重,通常是造成卡顿的直接原因。
  • View绘制深度:View的绘制深度决定着当前视图的复杂度,复杂度越高,越容易引起卡顿。

而以下情况则可认为View构建超时和绘制超时或View过于复杂:

  • 当View构建时长超过30ms,则可认为此View构建超时
  • 当绘制时长超过10ms,则可认为此View绘制超时
  • 当View绘制深度大于8则可认为View绘制过于复杂

图:View构建的数据

图:View绘制的详情

5 线程时间片分析

图:线程分析结果

6 DB检测分析

图:DB检测结果

总结

除了以上那些维度的分析检测外,还有包括GC检测、关键日志统计等维度的分析。测试简单,操作便捷,最多30分钟的测试时间,您就可以从多种维度,用不同的视角,全面了解您的应用!后续我们也将奉上详尽的原理讲解,溯本求源,让大家更深入了解这些功能的实现原理。

项目开源地址:

https://github.com/Tencent/GT

如果您还有好的建议,可以给我们留言

版权所属,禁止转载!

原文发布于微信公众号 - 腾讯移动品质中心TMQ(gh_2052d3e8c27d)

原文发表时间:2018-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我就是马云飞

Architecture Components 生命周期

前言 最近这几天一直在研究官方的MVVM的实现,使用起来其实难度并不大,并且如果结合DataBinding和Dagger2 代码写的都要飞起来了,不要太好。不过...

1885
来自专栏Phoenix的Android之旅

教你做一个后台相机

做过相机的同学都知道,Camera需要一个SurfaceView来承载预览的输出流,SurfaceView的特性限制了它必须要有一个可见的View才能够使用。 ...

621
来自专栏深蓝zz的专栏

五年 Web 开发者 star 的 github 整理说明

前端从业几年,积累了不少 github 开源库。其实老早就有整理 github 上资源的想法,现在才付诸行动。正在写的时候收到稀土圈公众号开源库功能上线的通知,...

1.4K4
来自专栏猿份到

MVC、MVP、MVVM三剑客

概述 说到Android MVVM,相信大家都会想到Google 2015年推出的DataBinding框架。然而两者的概念是不一样的,不能混为一谈。MVVM是...

31610
来自专栏ppjun专栏

Android十八章:5分钟接入微信支付

现在app最流行微信支付,支付宝支付,都是大部分消费类型app计费方式首选。现在5分钟教你接入微信支付。

884
来自专栏技术小黑屋

Android中实现用户无感知处理后台崩溃

正所谓,要想没有bug,就一行代码也不写。App到了用户的手里,肯定是崩溃越少越好。Android中的崩溃处理和iOS不太一样,iOS崩溃通常是闪退,而安卓会出...

481
来自专栏郭霖

Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文。 Action Bar是一种新増的导航栏功能,在Andro...

22310
来自专栏极客猴

Android设计模式之MVP

最近利用业余时间来深入学习MVP模式,我把自己对MVP模式的理解分享给大家,希望能给你理解MVP模式提供帮助。

721
来自专栏非著名程序员

最能解决你的痛点问题,也是你最需要的,尽在Material Design 系列这篇

这篇文章其实我一直在想,是写还是不写,因为关于讲 CoordinatorLayout,AppBarLayout,CollapsingToolbarLayout,...

1838
来自专栏图像识别与深度学习

《Android》Lesson17-用Fragment实现简易新闻应用1

1397

扫码关注云+社区