工具:
手机系统自带—开发者模式
强调:
Android显示屏幕是以每秒60帧来刷新的(也就是60Hz)。
一帧可以看做是一张的独立图片,60帧每秒就意味着:1000/60Hz=16ms,在显示屏幕上要保证每帧小于16ms才能视为顺畅。
前提:设备需要获取root
步骤:
1、手机连接上电脑并打开USB调试。
2、打开设备的【设置】,进入开发者选项,在GPU呈现模式分析下选择【在 adb shell dumpsys gfxinfo 中】。
3、在开启这个功能后,重新启动需要测试的APP,滑动页面,上下左右滑动。
4、执行adb命令:adb shell dumpsys gfxinfo 包名 >fps.txt 则能得到fps.txt文件数据。
5、打开生成的fps.txt,找到 Profile data in ms 这部分数据。
Draw + Process + Execute + Prepare = 完整显示一帧 ,这个时间要小于16ms才能保证每秒60帧,及所谓的顺畅:
6、为了方便观察,可将这部分数据导入到excel 表格中,生成堆积图。纵坐标单位为ms,堆积图中小于16ms及为顺畅。
注:
Draw: 表示在Java中创建显示列表部分中,OnDraw()方法占用的时间。
Process:表示渲染引擎执行显示列表所花的时间,view越多,时间就越长。
Execute:表示把一帧数据发送到屏幕上排版显示实际花费的时间。其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间。