ConstraintLayout如何优化布局性能
参考:
- 了解使用 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如何优化布局性能相关推荐
- Android开发——布局性能优化的一些技巧(一)
0. 前言 上一篇我们分析了为什么LinearLayout会比RelativeLayout性能更高,意义在于分析了这两种布局的实现源码,算是对一个小结论的证明过程,但是对布局性能的优化效果,对这两种布 ...
- Android官方开发文档Training系列课程中文版:布局性能优化之布局层级优化
原文地址:http://android.xsoftlab.net/training/improving-layouts/index.html 引言 布局是直接影响用户体验的关键部分.如果实现的不好,那 ...
- 精读《磁贴布局 - 性能优化》
经过上一篇 精读<磁贴布局 - 功能实现> 的介绍,这次我们进入性能优化环节. 精读 磁贴布局性能优化方式有很多,比如通过空间换时间,存储父子关系的索引,方便快速查找到目标组件.但有一个最 ...
- 【坚果派-坚果】ArkTS如何优化Flex的布局性能
如何优化Flex的布局性能 作者:坚果 团队:坚果派 公众号:"大前端之旅" 润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,擅长HarmonyOS应 ...
- android标题栏添加按钮_改善Android布局性能
布局是 Android 应用中直接影响用户体验的关键部分.如果实现不当,您的布局可能会导致应用界面缓慢且需要占用大量内存.Android SDK 包含一些工具,有助于您识别布局性能方面的问题,将这些工 ...
- android布局优化方案,Android启动优化-布局优化
Android启动优化-布局优化 安卓应用开发发展到今天,已经成为一个非常成熟的技术方向,从目前的情况看,安卓开发还是一个热火朝天的发展,但高级人才却相对较少,如今移动互联网的开发者也逐渐开始注重插入 ...
- Android 优化布局层次结构
前面介绍过使用HierarchyViewer和Android lint来优化我们的程序,这一篇算是总结性的,借助一个小例子来说用怎么优化应用布局.这个例子是android官网给出的,作者也当一把翻译. ...
- 使用 content-visibility 优化渲染性能
最近在业务中实际使用 content-visibility 进了一些渲染性能的优化. 这是一个比较新且有强大功能的属性.本文将带领大家深入理解一番. 何为 content-visibility? co ...
- WordPress速度优化和性能提升的终极指南
点击这里阅读WordPress速度优化和性能提升的终极指南原文 您想加快WordPress网站的速度吗?快速加载页面可改善用户体验,增加页面浏览量,并为您的WordPress SEO提供帮助.在本文中 ...
最新文章
- 统计文本中出现的单词个数频率
- luoguP2479 [SDOI2010]捉迷藏
- 对于根号18 利用计算机,一八年级数学题
- 技术实践:大规模知识图谱预训练及电商应用
- linux 关于虚拟内存的几个系统调用
- Linux服务器安全配置实例(二)用户账户权限配置
- SQL Server智能提示插件下载
- jquery for循环_前端基础入门五(掌握jQuery的常用api,实现动态效果)
- 猛龙出击•东莞赛区新闻发布会隆重举行,粤港澳大湾区将迎来首场搏击盛宴...
- python中几个常用的算术函数
- Java 8 Strem基本操作
- win10系统eclipse中整合hadoop错误
- 量化投资——思想、工具与策略
- 如何实现 Android 短视频跨页面的流畅续播?
- BS模型和CS模型的介绍和区别
- r7 5800h和r7 4800h 的差别大吗
- Android 9 自动恢复出厂设置问题(auto-recovery)
- nas文件服务器改造,nas 文件服务器的配置
- Tomcat优化总结
- 记录一下大三找实习的过程
热门文章
- vue将原生事件绑定到组件
- JavaScript判断设备类型加载对应网页并设置两端通用事件
- PCL:解决PCL和OpenCV冲突的方法
- max 宏定义取消:error C2589: error C2059: 语法错误 : “::”
- 数据库运维平台~慢日志模块设计
- 对于redis底层框架的理解(一)
- angular组件-特殊的瀑布流(原创)
- 基于HTML5 的人脸识别活体认证
- 【C++专题】static_cast, dynamic_cast, const_cast探讨
- httping 2.2.1 发布,测试 HTTP 连接的工具