Android性能优化之布局优化

本文探讨了UI刷新机制,包括16毫秒原则及刷新率与帧率的关系,提出了布局选择建议,如优先使用FrameLayout和LinearLayout,避免过度绘制。同时介绍了CoordinatorLayout的用途,以及include、merge和ViewStub等标签的优化应用。最后,详细说明了ListView和WebView的性能优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、屏幕UI刷新机制-----------16毫秒

16毫秒:

人眼与大脑之间的协作,无法感知超过60帧的画面更新。16ms即每秒刷新60帧,1s即1000ms/60帧约等于16ms,超过16ms人眼就会感到卡顿。

刷新率与帧率

刷新率:一秒内刷新屏幕的次数,HZ;

帧率:GPU在一秒内操作画面的帧数,fps;

二、布局的选择

1.FrameLayout能实现的优先使用FrameLayout;

2.优先选择RelativeLayout;(会有重复绘制的情况)

3.当在RelativeLayout和LinearLayout同事能够满足需求时,优先选择LinearLayout。

****重复绘制:

RelativeLayout需要对他的子视图多次测量,保证他们放在指定位置。

****过度绘制(Overdraw):

屏幕上某一个像素点在同一帧时间绘制了多次。

三、CoordinatorLayout

as不嵌套的情况下构造复杂布局。

四、优化标签的使用

1.include:提高代码的复用性,减少代码;将布局中的公共部分抽取供其他layout使用。

2.merge:解决布局层级的优化,减少布局嵌套的层次,提高布局加载的效率。

3.ViewStub:只有在加载该布局的时候才占用资源,invisible状态是不会绘制出来的。

五、原生view控件的优化

1.ListView的优化:viewHolder,分页加载;

2.WebView的优化:

1)全局WebView:减少首次打开初始化的时间;

2)客户端代理请求数据

3)优化网页加载速度:优先加载文本;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值