定位常用软件
在发现问题后,定位分析时,可以借助以下常用软件。
1、traceview使用简介
TraceView 是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot,可以方便的查看线程的执行情况,某个方法执行时间、调用次数、在总体中的占比等,从而定位性能点。
使用方法:
使用Android studio->Android Device Monitor->进入DDMS->点击开始按钮
Case:在微粉首页上下滑动,滑动过程中等待图片、视频加载完成。
点击结束按钮出现结果如下(划分为上下两个面板,即Timeline Panel(时间线面板)和Profile Panel(分析面板):
Timeline Panel又可细分为左右两个部分:
(1)左边显示的是测试数据中所采集的线程信息。
(2)右边所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。
(3)可以在时间线中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。
Profile Panel(分析面板)
按调用次数由高到低排列结果如下图
按照占用CPU时间从高到低排列结果如下图:
2、Systrace使用简介
Systrace是Android4.1中新增的性能数据采样和分析工具。它可帮助开发者收集Android关键子系统(如surfaceflinger、WindowManagerService等Framework部分关键模块、服务,View系统等)的运行信息,从而帮助开发者更直观的分析系统瓶颈,改进性能。Systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。
使用方法:
使用Android studio->Android Device Monitor
进入DDMS->打开微粉APP->点击开始systrace
设置参数->点击OK
case:在微粉首页滑动列表,滑动过程中需等待图片视频加载完成
在chrome地址栏中输入chrome://tracing 点击load打开trace.html文件
通过工具抓取的数据用浏览器打开后显示如下:
查看Frames这一行,可以看到这里展示了被绘制出来的每一帧,并且用绿、黄、红三颜色来区分它们在绘制时的性能
选一个红色帧在底部给出Alter信息:
展开“Inflation during ListViewrecycling”这条警告(警告部分的总耗时155毫秒,远高于了我们对保障60fps所需的16毫秒绘制时间):
选择这一帧中最长的一块,对其进行进一步分析整个区块耗时98毫秒,而在这之中CPU只消耗了65毫秒的时间去运算。