Android 绘制性能优化

,具体如下:

在这里插入图片描述

他们的含义为:

  • Swap Buffers:表示处理的时间,和上面讲到的橙色一样。

  • Command Issue:表示执行的时间,和上面讲到的红色一样

  • Sync & Upload:表示的是准备当前界面上有待绘制的图片所耗费的时间,为了减少该段区域的执行时间,我们可以减少屏幕上的图片数量或者是缩小图片的大小。

  • Draw:表示测量和绘制视图列表所需要的时间,和上面讲到的蓝色一样。

  • Measure/Layout:表示布局的onMeasure与onLayout所花费的时间,一旦时间过长,就需要仔细检查自己的布局是不是存在严重的性能问题。

  • Animation:表示计算执行动画所需要花费的时间,包含的动画有ObjectAnimator,ViewPropertyAnimator,Transition等。一旦这里的执行时间过长,就需要检查是不是使用了非官方的动画工具或者是检查动画执行的过程中是不是触发了读写操作等等。

  • Input Handling:表示系统处理输入事件所耗费的时间,粗略等于对事件处理方法所执行的时间。一旦执行时间过长,意味着在处理用户的输入事件的地方执行了复杂的操作。

  • Misc Time/Vsync Delay:表示在主线程执行了太多的任务,导致UI渲染跟不上VSYNC的信号而出现掉帧的情况。

Profile GPU Rendering可以找到渲染有问题的界面,但是想要修复的话,只依赖Profile GPU Rendering是不够的,可以用另外一个工具Hierarchy Viewer来查看布局层次和每个View所花的时间,这个工具会在后面介绍。

1.3 Systrace


Systrace是Android4.1新增的性能数据采样和分析工具,它可以帮助开发者手机Android关键子系统(SufaceFlinger、WMS等Framework部分关键模块、服务,View体系系统等)的运行信息。

Systrace的功能包括跟踪系统的I/O操作、内核工作队列、CPU负载以及Android各个子系统的运行状况等。

所以可以用其来分析 UI渲染。

关于Systrace的使用:

Systrace跟踪的设备要在Android4.1上使用,其中4.3版本前后有区别,因为现在很少有4.3之前的手机了,所以就讲4.3之后的使用方法。

Systrace可以再DDMS上使用,可以使用命令行来使用,也可以在代码中进行跟踪。接下来介绍3种方式

1.在DDMS种使用Systrace

因为Google认为DDMS已经不好用了,所以在Android Studio3.0就删除它了。

我们要去 Sdk\tools 下找到 monitor.bat,运行它就能看到Android Device Monitor了。

在这里插入图片描述

选中当前追踪的手机,点中图中框出的地方:

在这里插入图片描述

最上面的路径就是Systrace生成html的路径。

第二行就是跟踪的时间,可以自己设置。

点击ok后,就会去追踪当前应用。

2. 用命令行使用Systrace

Android提供一个Python脚本文件systrace.py,它位于Android SDK目录 /tools/systrace中,我们可以使用以下命令来使用Systrace:

C:>cd C:\Users\msn\AppData\Local\Android\Sdk\platform-tools\systrace

C:\Users\msn\AppData\Local\Android\Sdk\platform-tools\systrace>python systrace.py --time=10 -o newtrace.html sched gfx view wm

然后我的就提示:Systrace does not support Python 3.7. Please use Python 2.7.

也就是说Android Studio通过命令行使用Python查看Systrace,要用2.7版本的…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值