赞
踩
功能:实时监测应用的内存使用情况,查找内存泄漏。
Dump Java Heap(紫色带向下的箭头):获取hprof文件(hprof文件是我们使用MAT工具分析内存时使用的文件),但这里直接产生的文件MAT还不能直接使用,需用转换成标准的hprof文件。可以使用AndroidStudio转换或者用hprof-conv命令转化,具体不详细介绍,网上可以查到。
Start Allocation Tracking(紫色带圆圈):开始分配追踪,第一次点击可以指定追踪内存的开始位置,第二次点击可以结束追踪的位置。这样我们截取了一段要分析的内存,等待几秒钟AndroidStudio会给我们打开一个Allocation视图(感觉和MAT工具差不多,不过MAT工具更加强大,我们也可以获取hprof文件,使用MAT来分析)
通过图1红色框内的信息可以知道,SettingFragment存在内存泄漏,正常情况当退出之后,SettingFragment应该被回收,我们打开代码看一下。
果然类中有内部类线程,默认持有SettingFragment,线程没有执行完成一直不能释放,造成内存泄漏。
通过图2我们首先看到9号线程它占用了百分之55.82的内存,那么我们就点开它看一下,每次都只要点开其中内存占用最大的就可以。查找里边占用内存大的除系统方法以外的方法,进行分析。确认是否需要优化。
功能:实时监测应用的CPU的使用情况。
如上图中,点击Start Method Tracing按钮,过一定时间,再点击该按钮,则停止Method Tracing。稍等几秒种,Android Studio就会打开一个有助于我们进行分析及优化项目的界面。如下图:
图形主要是方法所调用时间信息,对应的信息有:
可以根据显示的时间来进一步看方法是否需要进行对应的优化处理,通常我们是把焦点放在耗时非常多的方法上进行优化
功能:可视化显示渲染一个UI花费时间。需打开GPU呈现模式分析才可使用。打开方法(见:二、手机自带性能测试工具)
在Android系统中是以每秒60帧为满帧的,那么只要将1秒÷60帧,就能得出每帧为16毫秒(ms)时为满帧的界限,每帧快于16ms即为流畅,而这根绿线所标示的高度即为16ms线,低于绿线即为流畅。
不同颜色所代表的含义:
注意:Draw + Process + Execute = 完整显示一帧 ,这个时间要小于16ms才能保存每秒60帧(即1000秒/60帧)。如果持续超过16ms用户会明显感知卡顿。
功能:实时监测应用的网络使用情况。(操作简单不做具体说明)
hierarchyviewer.bat是sdk自带的工具,在tools文件夹下。双击即可打开。
在此页面,加粗显示的就是当前进程,点击load view hierarchy就可以分层查看布局。
View Hierarchy可以将一个Activity中的所有控件的层次结构从左到右显示了出来,其中最右部分是最低一层的控件。
view表明这个文本控件没再包含其他子控件了,只有1个就是它本身。而下方的带颜色的三个圆圈指示灯,分别说明了在测量(measure)、布局(layout)以及画视图(draw)三个阶段,这个控件所占用的时间百分比,如果是绿色的,表示该控件在该阶段比起其他的50%的控件的速度要快,为黄色的表示比起其他的50%的控件的速度要慢,为红色的则表示该控件在该阶段的处理速度是最慢的。
View Hierarchy 可以帮助你找到性能问题。只要看每个View节点的性能指标(颜色点,时间)就可以,你可以看到测量(布局或绘制)最慢的View对象是哪个,这样你就能快速确定问题所在。
注意,低性能并不表示一定有问题,特别像是ViewGroup对象,View的子节点越多,结构越复杂,性能越差。
设置-开发者选项-调试GPU过度绘制-显示过度绘制区域(过度渲染等,不同机器可能不同)
开启后,启动我们的应用,可以看到各种颜色的区域,其中:
蓝色 1x过度绘制
绿色 2x过度绘制
淡红色 3x过度绘制
红色 超过4x过度绘制
最理想的是蓝色,一个像素只绘制一次,合格的页面绘制是白色、蓝色为主,绿色以上区域不能超过整个的三分之一,颜色越浅越好。
设置-开发者选项-GPU呈现模式分析
首先,在Android系统中是以每秒60帧为满帧的,那么只要将1秒÷60帧,就能得出每帧为16毫秒(ms)时为满帧的界限,每帧快于16ms即为流畅,而这根绿线所标示的高度即为16ms线,低于绿线即为流畅。
屏幕下方的柱状图每一根代表一帧,其高度表示“渲染这一帧耗时”,随着手机屏幕界面的变化,柱状图会持续刷新每帧用时的具体情况(通过高度表示)。那么,当柱状图高于绿线,是不是就说明我卡了呢?其实这不完全正确,这里就要开始分析组成每一根柱状图不同颜色所代表的含义了。
每一根柱状图不同颜色所代表的含义(见:一、Android studio自带性能测试工具中 关于GPU Monitor的说明 )
Emmagee是网易QA团队开发的一个简单易Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并生成一份性能统计文件。
Emmagee github开源地址:https://github.com/NetEase/Emmagee
Emmagee 下载地址:https://github.com/NetEase/Emmagee/releases
操作步骤:
1、选择你需要测试的应用,点击“开始测试”,被测应用会被启动
2、开始操作你的应用,测试过程中会自动记录相关性能参数
3、测试完成后,点击“结束测试”,测试结果会保存在手机指定目录的CSV文件中
4、使用Excel打开,文件分析数据。也可以选择一列或多列插入图表生成柱状图,折线图等等。
帧率(Frame rate)是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS),Android系统中是以每秒60帧为满帧。
Itest是科大讯飞出品的一款小巧的应用测试工具,可以得知应用的资源消耗情况。用于记录应用消耗的cpu、内存、流量、电量;可实时生成走势图,也可保存数据到文本;
文件为txt文件可在SD卡目录找到,直接打开查看。
Itest可在应用市场直接搜索下载。不提供源码,有点遗憾。
同Emmagee数据说明
文章如有错误、遗漏请在评论指出或发邮件给我,我好及时修改,补充,供大家一起学习。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。