布局优化,绘制优化,内存泄露优化,响应速度优化,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