近段时间以来,一直忙于对Android平台的技术攻关。但一个问题 一直被同事们提及:如何衡量UI流畅度,也就是通常所说的卡不卡?
答案很容易给,但却不容易给出准确的数据用于支撑。在网上也大致找了一些测算工具,但要么是在Android界面上直接绘出,要么没有图形化,或者不准确,或者不合我的需求。于是狠下心来自己写了监测工具。这样就可以实时看到数据并分析规律了,也可以作为代码优化的参考。
原理:
1、通过监测Android的Draw方法,得出重绘时间差
2、通过top命令获取CPU和内存占用情况
3、使用Websocket发给接收端
4、接受端对数据处理,并图形化显示(大图为实时数据,小图为历史数据)
上图:以一个动画为例,点击图标,则spotlight会变形飞到指定位置。(传的gif不知为啥变成jpg了)