使用Systrace分析UI性能
原文地址:https://developer.android.com/studio/profile/systrace.html
在开发应用时,通常使用60fps的帧率来检测交互是否流畅,如果中途出错了,或者发生了掉帧,解决这个问题的第一步应当是搞清楚当前系统在做什么。
Systrace工具可以在程序运行的时候收集实时的信息,记录时间以及CPU的分配情况,记录每个线程和进程在任意时间的运行情况,可以自动分析出一些重要的原因,并且给出建议。
预览
Systrace可以帮助你分析应用是如何设备上运行起来的,它将系统和应用程序线程集中在一个共同的时间轴上,分析systrace的第一步需要在程序运行的时间段中抓取trace log,在抓取到的trace文件中,包含了这段时间中你想要的关键信息,交互情况。
图1显示的是当一个app在滑动时出现了卡顿的现象,默认的界面下,横轴是时间,纵向为trace event,trace event 先按进程分组,然后再按线程分组.
从上到下的信息分别为Kernel,SurfaceFlinger,应用包名。通过配置trace的分类,可以根据配置情况记录每个应用程序的所有线程信息以及trace event的层次结构信息。
生成trace
首先需要一些准备工作:
第一,android 4.1及以上的设备
第二,开启调试模式,安装你的应用
第三,某些trace信息需要root权限才能够获取,比如 disk activity和工作队列等,但是大部分都不需要root权限。
systrace的追踪有两种方式:一种是通过命令行(待补充),一种是通过图形界面(待补充)。
android4.3及以上
通过以下命令获取:
$