Android技术知识Android开发经验谈Android开发

Android性能优化——布局优化篇

2019-01-28  本文已影响9人  Android高级开发

写在开头

Android设备作为一种移动设备,在内存和CPU的性能让都受到了一定的限制,无法做到像PC端那样具有超大内存和高性能的CPU。如果不加节制的使用内存和CPU资源,通常会导致如下情况:

由此可见,Android开发中性能优化,对每一个开发者至关重要。

布局优化篇

反正,布局优化就是尽量减少布局文件的层级呗,层级少了Android绘制时的工作量就少了,那速度自然就快了,就是这么个理。

Android性能优化——布局优化篇

开始装逼

如何优化呢?

另一种手段

采用<include>标签、<merge>标签和ViewSub。<include>标签主要用于布局的重用,<merge>标签的话一般和<include>配合使用,可以达到减少布局层级的作用。ViewStub则提供了按需加载的功能,当需要时才会将ViewSub中的布局加载到内存,这就提高了程序的初始化效率。

<include>标签

如下所示,我引用一个tool_bar布局文件加载到当前布局中。

Android性能优化——布局优化篇

示例

这样一来我们就不需要把tool_bar中布局内容在重复写一遍了。


<merge>标签

<merge>标签的话一般和<include>配合使用,可以达到减少布局层级的作用。比如说上面引入的tool_bar布局文件也是LinearLayout垂直布局的话,那么tool_bar布局中再使用LinearLayout就变得没有意思了,使用的的话反而会减慢UI绘制。
这时候我们就可以将,如下:

Android性能优化——布局优化篇

使用linearLayout的tool_bar布局文件

替换成,如下:

Android性能优化——布局优化篇

merge可以达到上诉效果

如果想了解更多,大家可以自行百度。

ViewStub

ViewStub 最大的优点是当你需要时才会加载,使用他并不会影响UI初始化时的性能。各种不常用的布局像进度条、显示错误消息等可以使用<ViewStub />标签,以减少内存使用量,加快渲染速度。<ViewStub />是一个不可见的,宽/高都是0的View。废话不多说直接看代码,如下:
1、新建懒加载布局文件test.xml

Android性能优化——布局优化篇

test

2、在activity_main布局中使用ViewStub,如下:

Android性能优化——布局优化篇

activity_mian

简单介绍一下, android:layout="@layout/test" 就是引用懒加载布局。

3、程序中使用,如下

Android性能优化——布局优化篇

主程序

两种方式,

mViewStub.setVisibility(View.VISIBLE);
mViewStub.inflate();//推荐这个方法

目前还不支持<merge>标签,我测试的时候还发现, 布局中包含<include>标签,也没有效果,原因未知,欢迎留言。


360°Android app全方位性能调优.png 大纲与资料.png 高清视频资料.jpg

+qq群:853967238。获取以上高清技术思维图,以及相关技术的免费视频学习资料

上一篇下一篇

猜你喜欢

热点阅读