Android 性能优化
2016-06-28 16:33
288 查看
布局优化
减少布局文件的层级(测量/布局/绘制的时间减少):可以使用RelativeLayout来减少嵌套,从而达到减少层级的目的,另外在相同层级的情况下使用LinearLayout(相比于RelativeLayout更高效)使用
include标签复用,
merge标签降低层级,
ViewStub来实现懒加载,另外补充一个
Space可以用来占位
绘制优化(onDraw)
主要是避免执行大量的操作.不要创建新的局部对象,因为onDraw可能会被频繁调用,会在一瞬间产生大量的临时对象,会导致占用过多内存,系统更加频繁的gc,降低执行效率
不要做耗时的任务
内存泄露优化
其实内存泄露有很多种情况,但是书中列举的比较少静态变量导致的内存泄露(比如静态的context,静态的view)
单例模式持有Activity
属性动画(repeatCount为无限模式)
ListView和Bitmap优化
ListView使用viewholder模式,Bitmap在12章有讲,这里不重复.
线程优化
主要是采用线程池(11章有讲)避免存在大量的Thread
重用Thread,避免线程创建和销毁所带来的开销
线程池还能控制最大并发数,避免大量线程因互相抢占系统资源从而导致阻塞
其他的一些性能优化建议
避免创建过多的对象不要过多使用枚举(枚举占用的内存空间要比整型的大)
常亮使用
static final来修饰
使用一些Android特有的数据结构,比如
SparseArray和
Pair等,它们都具有更好的性能(注:减少了自动装箱和拆箱的消耗)
适当使用软引用和弱引用
尽量采用静态内部类(不会持有外部类的实例)
提高可维护性
命名规范代码排版
给非常关键的代码写注释
代码要有层次性,可扩展
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories