博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android布局优化
阅读量:5940 次
发布时间:2019-06-19

本文共 534 字,大约阅读时间需要 1 分钟。

1,降低布局结构的深度;

2,重复的布局用include独立出来;

3,merge标签代替布局文件中的根节点,减少布局的嵌套;

4,将动态加载的布局用ViewStub包包含,不需要的时候设置为View.GONE,将其隐藏起来;

5,用hierarchy viewer优化;

 

一,layout过于复杂导致丢帧,HierarchyViewer查找activity是否过于复杂,也可以使用手机设置里面的开发者选项,打开Show GPU Overdraw等选项进行观察。

      你还可以使用TraceView来观察CPU的执行情况,更加快捷的找到性能瓶颈;

二,背景重复绘制,Overdraw有时候是因为你的UI布局存在大量重叠的部分,还有的时候是因为非必须的重叠背景;

三,你需要避免在for循环里面分配对象占用内存,需要尝试把对象的创建移到循环体之外,自定义View中的onDraw方法也需要引起注意,每次屏幕发生绘制以及动画执行过程中,onDraw方法都会被调用到,避免在onDraw方法里面执行复杂的操作,避免创建对象。对于那些无法避免需要创建对象的情况,我们可以考虑对象池模型,通过对象池来解决频繁创建与销毁的问题,但是这里需要注意结束使用之后,需要手动释放对象池中的对象

 

转载地址:http://htmtx.baihongyu.com/

你可能感兴趣的文章
使用Tooltip会出现一个问题,如果行上出现复选框
查看>>
11.03T1 DP
查看>>
P2924 [USACO08DEC]大栅栏Largest Fence
查看>>
jQuery操作table tr td
查看>>
工作总结:MFC自写排序算法(升序)
查看>>
螺旋队列问题之二
查看>>
扩展运算符和解构赋值的理解
查看>>
手机H5显示一像素的细线
查看>>
Menu 菜单栏
查看>>
Integer跟int的区别(备份回忆)
查看>>
集合解析
查看>>
详解分布式应用程序协调服务Zookeeper
查看>>
软件工程之构建之法
查看>>
UVa 10902
查看>>
Mathf.Sin正弦
查看>>
禁止浏览器缓存js
查看>>
【Redis】安装PHP的redis驱动(二)
查看>>
java中string和int互相转化
查看>>
什么是序列化,为什么要序列化
查看>>
Java保留小数点后有效数字
查看>>