Android性能优化

布局优化,绘制优化,内存泄露优化,响应速度优化,listview优化,bitmap优化,多线程优化
Traceview,Systrace,Oprofile,Heap Viewer,Memory Monitor,Allocation Tracker

量化流畅度

布局优化

include 重用布局
merge 减少层级嵌套
viewstub 延迟加载
space 空白占位

绘制优化

(onMeasure,onLayout,onDraw)
ondraw
过度绘制

内存泄露优化

Android 内存泄漏总结
分析工具MAT, leakcanary
静态变量引用
单例模式
属性动画

响应速度优化

anr, 分析/data/anr下的traces.txt
启动时间,冷启动

listview优化

复用view
viewholder
滑动状态不同加载策略
getview不要耗时操作
大的item分成小的item
创建多种viewtype
item的布局嵌套
item子view的大小
RecyclerView

避免OOM

减小对象的内存占用

使用更加轻量的数据结构 ArrayMap/SparseArray
避免在Android里面使用Enum
减小Bitmap对象的内存占用
使用更小的图片 jpg/png/webp

内存对象的重复利用

对象池 LRU策略
复用系统自带的资源
注意在ListView/GridView等出现大量重复子组件的视图里面对ConvertView的复用
Bitmap对象的复用 inBitmap
避免在onDraw方法里面执行对象的创建
StringBuilder

bitmap优化

重新采样 缩放
模糊:缩小,模糊,放大

多线程优化

Java内存模型
线程池

参考链接:

https://hukai.me/android-performance-oom/
https://github.com/Piasy/notes/blob/master/Android-Java%2FAndroidPerformancePatterns.md
https://www.trinea.cn/android/performance/
https://blog.csdn.net/yanbober/article/details/48394201
https://www.kancloud.cn/kancloud/android-performance/53233

文章来自: https://hanks.pub