1. Introduction
[toc]
1.1. 内存管理机制
- Java对象生命周期
- JVM内存模型
- GC算法及分类
- Android内存分配模型
- Android内存回收机制
- Low Memory Killer 机制
1.2. 内存问题及解决方案
- 内存抖动
- 内存溢出
- 内存泄漏
- ANR
1.3. 性能优化
- 启动优化(冷启动、热启动)
- 布局优化:通过HierarchyViewer进行查看View层级通过Layoutopt优化布局,合理使用ViewStub、merge
- 对象引用
- 对象创建与释放
- 选取最优数据结构
- 缓存
- 图片优化
- 线程池
- 资源占用优化
- 视图刷新优化
- 避免内部调用Getter和Setter方法
- 减少不必要的全局变量
- 避免使用枚举:枚举变量非常方便,但不幸的是它会牺牲执行的速度和并大幅增加文件体积。
- 合理利用缓存
- 关闭无用的资源:SQLite,Cursor,File,IO等在操作
- 优化Bitmap
- 针对ListView进行复用优化
- 使用9patch
- 减少网络请求
- 数据压缩
- 合理使用线程池
1.4. 内存优化工具
- Memory Profiler
- Memory Analyzer
- dumpsys meninfo
- Leakinspector
- JHat
- ART GC Log
- Chrome Devtoll
- Leakcanary
- AndroidPerformanceMonitor
- AndroidMonitor
1.5. 内存优化测试
1.6. 电量优化
- Bugreport分析
- 分析工具battery-historian:https://bathist.ef.lc/
1.7. Bug分析
- MTKlog
1.8. 架构优化
- Jetpack
- 生命周期对于数据加载的影响
- 工厂模式、策略模式、适配器模式、单例模式、代理模式
- MVC、MVP、MVVM