Android 性能优化——布局优化

布局优化:就是尽量减少布局文件的层级,致使Android的绘制的工作量减少了,性能就提高啦。

第一种
首先删除布局中无用的控件和层级,其次有选择性的使用性能较低的ViewGroup。
比如RelativeLayout. 如果布局中即可以使用RelativeLayout和LinerLayout 那么优先选择 后者,因为RelativeLayout功能比较复杂,会消耗较多的cpu时间。
FrameLayout和LinerLayout 是一样的一种简单高效的ViewGroup 。当单一使用这两者无法实现效果时,需要嵌套时候,建议使用RelativeLayout.这是由于ViewGroup的嵌套就相当于增加了布局的层级,同样会降低程序的性能。

第二种

采用 标签<include>和标签<merge> 还有ViewStub.
<include>标签用于布局重用,一般和<merge>标签配合使用, 可以减低布局层级。
ViewStub 主要是提供了按需加载的功能,当需要时才会将ViewStub的布局加载到内存中, 提高程序初始化效率。

<include>标签的应用

这里写图片描述

这里写图片描述

<merge>标签的应用

这里写图片描述

例如LinerLayout 水平 布局中 需要嵌套另一个 水平布局的LinerLayout 那么就可以用<merge>标签代替。

ViewStub
ViewStub 继承了View ,它是非常轻量级 而且 高/宽都是0,应为它本身不参与任何布局和绘制, 按需分配的,神马意思呢,比如我们网络加载异常的时候,这个时候需要加载进来。网络正常时,没有必要在整个界面进行初始化。

这里写图片描述

(ViewStub)findviewById(R.id.stub_import).setVisibility(View.VISIBLE);方法来初始化。
或者 View importPanel=((ViewStub)findviewById(R.id.stub_import)).inflate();

注意: 目前 viewStub 还不支持<merge>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值