参考:

  • 了解使用 ConstraintLayout 的性能优势

原理:

  • 减少了层级

在绘制视图时,是对视图树进行自顶而下的遍历操作,因此视图嵌套越多,设备绘制视图所需的时间和计算功耗就越多。

测量布局性能工具:

  • Systrace
  • 使用在API 24 引入的Window.OnFrameMetricsAvailableListener,调用以下代码,可以开始记录每个帧的界面操作:
window.addOnFrameMetricsAvailableListener(frameMetricsAvailableListener, frameMetricsHandler);
复制代码

在能够获取时间信息之后,该应用触发 frameMetricsAvailableListener()回调。我们对测量/布局的性能感兴趣,因此,我们在检索实际帧的持续时间时调用了 FrameMetrics.LAYOUT_MEASURE_DURATION

Window.OnFrameMetricsAvailableListener {_, frameMetrics, _ ->val frameMetricsCopy = FrameMetrics(frameMetrics);// Layout measure duration in nanosecondsval layoutMeasureDurationNs = frameMetricsCopy.getMetric(FrameMetrics.LAYOUT_MEASURE_DURATION);
复制代码

更多信息,参阅FrameMetrics。

ConstraintLayout如何优化布局性能相关推荐

  1. Android开发——布局性能优化的一些技巧(一)

    0. 前言 上一篇我们分析了为什么LinearLayout会比RelativeLayout性能更高,意义在于分析了这两种布局的实现源码,算是对一个小结论的证明过程,但是对布局性能的优化效果,对这两种布 ...

  2. Android官方开发文档Training系列课程中文版:布局性能优化之布局层级优化

    原文地址:http://android.xsoftlab.net/training/improving-layouts/index.html 引言 布局是直接影响用户体验的关键部分.如果实现的不好,那 ...

  3. 精读《磁贴布局 - 性能优化》

    经过上一篇 精读<磁贴布局 - 功能实现> 的介绍,这次我们进入性能优化环节. 精读 磁贴布局性能优化方式有很多,比如通过空间换时间,存储父子关系的索引,方便快速查找到目标组件.但有一个最 ...

  4. 【坚果派-坚果】ArkTS如何优化Flex的布局性能

    如何优化Flex的布局性能 作者:坚果 团队:坚果派 公众号:"大前端之旅" 润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,擅长HarmonyOS应 ...

  5. android标题栏添加按钮_改善Android布局性能

    布局是 Android 应用中直接影响用户体验的关键部分.如果实现不当,您的布局可能会导致应用界面缓慢且需要占用大量内存.Android SDK 包含一些工具,有助于您识别布局性能方面的问题,将这些工 ...

  6. android布局优化方案,Android启动优化-布局优化

    Android启动优化-布局优化 安卓应用开发发展到今天,已经成为一个非常成熟的技术方向,从目前的情况看,安卓开发还是一个热火朝天的发展,但高级人才却相对较少,如今移动互联网的开发者也逐渐开始注重插入 ...

  7. Android 优化布局层次结构

    前面介绍过使用HierarchyViewer和Android lint来优化我们的程序,这一篇算是总结性的,借助一个小例子来说用怎么优化应用布局.这个例子是android官网给出的,作者也当一把翻译. ...

  8. 使用 content-visibility 优化渲染性能

    最近在业务中实际使用 content-visibility 进了一些渲染性能的优化. 这是一个比较新且有强大功能的属性.本文将带领大家深入理解一番. 何为 content-visibility? co ...

  9. WordPress速度优化和性能提升的终极指南

    点击这里阅读WordPress速度优化和性能提升的终极指南原文 您想加快WordPress网站的速度吗?快速加载页面可改善用户体验,增加页面浏览量,并为您的WordPress SEO提供帮助.在本文中 ...

最新文章

  1. 统计文本中出现的单词个数频率
  2. luoguP2479 [SDOI2010]捉迷藏
  3. 对于根号18 利用计算机,一八年级数学题
  4. 技术实践:大规模知识图谱预训练及电商应用
  5. linux 关于虚拟内存的几个系统调用
  6. Linux服务器安全配置实例(二)用户账户权限配置
  7. SQL Server智能提示插件下载
  8. jquery for循环_前端基础入门五(掌握jQuery的常用api,实现动态效果)
  9. 猛龙出击•东莞赛区新闻发布会隆重举行,粤港澳大湾区将迎来首场搏击盛宴...
  10. python中几个常用的算术函数
  11. Java 8 Strem基本操作
  12. win10系统eclipse中整合hadoop错误
  13. 量化投资——思想、工具与策略
  14. 如何实现 Android 短视频跨页面的流畅续播?
  15. BS模型和CS模型的介绍和区别
  16. r7 5800h和r7 4800h 的差别大吗
  17. Android 9 自动恢复出厂设置问题(auto-recovery)
  18. nas文件服务器改造,nas 文件服务器的配置
  19. Tomcat优化总结
  20. 记录一下大三找实习的过程

热门文章

  1. vue将原生事件绑定到组件
  2. JavaScript判断设备类型加载对应网页并设置两端通用事件
  3. PCL:解决PCL和OpenCV冲突的方法
  4. max 宏定义取消:error C2589: error C2059: 语法错误 : “::”
  5. 数据库运维平台~慢日志模块设计
  6. 对于redis底层框架的理解(一)
  7. angular组件-特殊的瀑布流(原创)
  8. 基于HTML5 的人脸识别活体认证
  9. 【C++专题】static_cast, dynamic_cast, const_cast探讨
  10. httping 2.2.1 发布,测试 HTTP 连接的工具