您的位置:首页 > 移动开发 > Android开发

Android 性能优化——布局优化

2016-10-01 17:42 246 查看
布局优化:就是尽量减少布局文件的层级,致使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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息