Android应用性能优化最佳实践.2.3 布局优化
2.3 布局优化
布局是否合理主要影响的是页面测量时间的多少,我们知道一个页面的显示测量和绘制过程都是通过递归来完成的,多叉树遍历的时间与树的高度h相关,其时间复杂度为O(h),如果层级太深,每增加一层则会增加更多的页面显示时间。
任何时候View中的绘制内容发生变化时,都需要重新创建DisplayList、渲染DisplayList,更新到屏幕上等一系列操作。这个流程的表现性能取决于View的复杂程度、View的状态变化以及渲染管道的执行性能。例如,假设某个Button的大小需要增大到目前的两倍,在增大Button大小之前,需要通过父View重新计算并摆放其他子View的位置。修改View的大小会触发整个HierarcyView的重新计算大小的操作。如果是修改View的位置,则会触发HierarchView重新计算其他View的位置
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《Swift入门经典(第2版)》——导读
**前言**在Apple公司于2014年6月召开的年度全球开发者大会(World Wide Developer Conference,WWDC)上,Apple公司公布了一种名为Swift的新编程语言,该公司从2010年起就在开发这种语言。这是一个重大的公告。多年来,在开发大多数Mac和iOS应用时,人们主要选择的语言是Objective-C。可以明显感觉到人们对Swift编程语言的殷切期盼。Twitter上关于Swift的言论不绝于耳,人们纷纷购买标题中具有Swift的域名,并且在公告后24小时内,Apple公司Swift iBook的下载量超过30万次。人们为这种改变做好了准备。 但是,一种新语言不仅会带来语法上的区别,还会带来习惯的差异和新的约定。Swift不仅是一种面向对象语言,它还引入了从其他语言收集到的特性,比如C#、Haskell、Ruby等。Swift被标榜为“没有C的Objective-C”,它在过去一年经历了如此大的改进,以至于有时很难看出它们的任何相似之处。Swift构建于Objective-C中大家熟知的概念之上,但是它还包括了更现代、更安全的语法和多种范式(pa...
- 下一篇
Android应用性能优化最佳实践.2.4 避免过度绘制
2.4 避免过度绘制 过度绘制(Overdraw)是指在屏幕上的某个像素在同一帧的时间内被绘制了多次。在多层次重叠的UI结构(如带背景的TextView)中,如果不可见的UI也在做绘制的操作,就会导致某些像素区域被绘制了多次,从而浪费多余的CPU以及GPU资源。 当设计上追求更华丽的视觉效果时,我们很容易陷入采用复杂的多层次重叠视图来实现这种视觉效果的怪圈。这很容易导致大量的性能问题,为了获得最佳性能,必须尽量减少Overdraw情况发生。 我们一般在XML布局和自定义控件中绘制,因此可以看出导致过度绘制的主要原因是: XML布局->控件有重叠且都有设置背景 View自绘-> View.OnDraw里面同一个区域被绘制多次 2.4.1 过度绘制检测工具 要知道是否有过度绘制的情况,可以通过手机设置中的开发者选项,打开Show GPU
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池