Android性能优化

布局优化

1.尽量减少布局文件的层级
2.有选择的使用性能较低的布局(LinearLayout,FrameLayout>RelativeLayout)
3.采用<include>,<merge>标签和ViewStub(按需加载,需要时才会把ViewStub的布局加载到内存)

绘制优化

onDraw方法中避免创建大量的局部对象,避免做耗时任务

内存优化

内存抖动:短时间内有大量对象创建销毁,它伴随着频繁的GC

响应速度优化和ANR日志分析

响应速度优化和核心思想就是避免在主线程去做耗时操作
ANR:当一个进程发生ANR时,系统会在/data/anr的目录下创建一个traces.txt的文件,通过分析该文件就能定位出ANR的原因

ListView优化和Bitmap优化

ListView优化:
1.采用ViewHolder避免在getView中执行耗时操作
2.通过列表的滑动状态来控制任务的执行频率,比如快速滑动时不适合开启大量异步任务
3.可以尝试开启硬件加速使得ListView的滑动更加流畅

Bitmap优化:通过BitmapFactory.options来根据需要对图片进行采样

线程优化

尽量采用线程池

一些性能优化的小建议

1.尽量使用static final 优化成员变量。
2.使用增强型for循环语法。
3.在没有特殊原因的情况下,尽量使用基本数据类型来代替封装数据类型,int
比Integer要更加有效,其它数据类型也是一样。
4.在合适的时候适当采用软引用和弱引用。
5.采用内存缓存和磁盘缓存。
6.尽量采用静态内部类,可避免潜在由于内部类导致的内存泄漏。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。