Android约束性布局ConstraintLayout性能真的比RelativeLayout高吗?

帅气好男人_Jack 2018-12-10 11:43:06
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
...全文
2255 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
郭风扬 2020-05-19
  • 打赏
  • 举报
回复
引用 7 楼 王能 的回复:
布局层数较深的情况下,ConstraintLayout性能较好。 但是缺点太多,还是建议优化布局层数为主。
确实ConstrainLayout的坑太多了,尤其是需要在代码中操作布局的情况下。
王能 2020-05-13
  • 打赏
  • 举报
回复
布局层数较深的情况下,ConstraintLayout性能较好。 但是缺点太多,还是建议优化布局层数为主。
h309849232 2020-05-13
  • 打赏
  • 举报
回复 2
如果没设计好,到时候新需求改动,很容易坑到自己或者队友。。
头发还没秃a 2019-09-23
  • 打赏
  • 举报
回复 1
复杂界面的话,ConstraintLayout可以减少布局嵌套深度,简单的界面ConstraintLayout和其它布局都差不多
哈哈gogo 2019-09-22
  • 打赏
  • 举报
回复
没什么区别,
  • 打赏
  • 举报
回复
引用 1 楼 jklwan 的回复:
直接看官方的文章吧https://mp.weixin.qq.com/s/gGR2itbY7hh9fo61SxaMQQ ConstraintLayout测量次数比较多,优势是减少布局的层级,减少过度绘制,提升帧数。如果布局比较简单还是用原来的布局好点儿。
是不是可以理解其实 布局嵌套不多的情况下,就算是使用relativeLayout布局也比ConstraintLayout性能高,ConstraintLayout实用对嵌套布局层次比较深的修改
jklwan 2018-12-10
  • 打赏
  • 举报
回复
直接看官方的文章吧https://mp.weixin.qq.com/s/gGR2itbY7hh9fo61SxaMQQ ConstraintLayout测量次数比较多,优势是减少布局的层级,减少过度绘制,提升帧数。如果布局比较简单还是用原来的布局好点儿。

80,455

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧