Android官方推荐ConstraintLayout约束性布局,并且也说他的性能比较高,可是我使用官方的方法进行性能测试,结果ConstraintLayout都比RelativeLayout低,请教下各位是我的测试方法出错了吗?还是有其他原因?测试环境:
    小米6  MIUI 10 Android 8.0
    测试一个登录页面的渲染过程,无须进行网络操作登录,打开登录页面,等待3秒,退出登录页面完成测试即可登录页面如下图(马赛克部分只是一个imageview):代码逻辑相同,只是使用xml布局文件不同,一个使用的RelativeLayout布局,如下:另一个使用约束性布局ConstraintLayout,如下:检测之前在登录的Activity页面的onCreate和onDestroy分别加入了检测标签:
最后在命令行开启systrace进行性能检测:
(检测两次, trace_con.html是ConstraintLayout的检测文件; trace_rea.html是RelativeLayout的检测文件)python /Users/sever1/Library/Developer/Xamarin/android-sdk-macosx/platform-tools/systrace/systrace.py -t 8 -a com.packagename -o ./trace.html gfx view res
最后两个结果:
ConstraintLayout的测试结果:RelativeLayout的测试结果:
所以,我的结论就是RelativeLayout比ConstraintLayout高,why?不是说好的ConstraintLayout性能高吗,怎么回事呢?我的测试文件和布局文件前往这里下载:
链接:https://pan.baidu.com/s/1C1gm3hCgaXNtghMFmLwOJQ  密码:yuq0

解决方案 »

  1.   

    直接看官方的文章吧https://mp.weixin.qq.com/s/gGR2itbY7hh9fo61SxaMQQ
    ConstraintLayout测量次数比较多,优势是减少布局的层级,减少过度绘制,提升帧数。如果布局比较简单还是用原来的布局好点儿。
      

  2.   

    是不是可以理解其实 布局嵌套不多的情况下,就算是使用relativeLayout布局也比ConstraintLayout性能高,ConstraintLayout实用对嵌套布局层次比较深的修改
      

  3.   

    复杂界面的话,ConstraintLayout可以减少布局嵌套深度,简单的界面ConstraintLayout和其它布局都差不多