Android性能优化:全面解析
发表时间: 2023-11-10 15:56
- 布局优化:关于布局优化的思想很简单,就是尽量减少布局文件的层级。
- 删除布局中无用的控件和层次,选择高校的ViewGroup
- include,merge,viewStub
- 避免过度绘制
- 绘制优化:
- onDraw中不要创建局部对象
- onDraw中不要做耗时任务,不做大循环
- 内存优化:
- 对象无引用判断方法:引用计数法 和 可达性分析法
- 内存泄漏case:集合类泄漏;单例&静态变量泄漏;匿名内部类、非静态内部类泄漏;资源未关闭泄漏
- 内存定位手段:MAT,LeakCanary
- 响应速度优化:核心思想是避免在主线程做耗时操作
- ListView/RecycleVeiw/Bitmap优化
- 使用ViewHolder模式来提高效率
- 异步加载:耗时的操作放在异步线程中
- ListView/RecycleView的滑动时停止加载和分页加载
- Bitmap:压缩、采用矢量图,webp,用完recycle
- 线程优化:思想是采用线程池
- 包体优化:通过apk analyzer查看占用比例
- 压缩图片大小,统一使用webp格式
- 尽可能地减少本地资源,考虑从服务端拉取图片、Lottie动画、so库等资源
- 利用Lottie替换帧动画
- 开启混淆删除无用代码
- 启动优化:冷启动,热启动,页面跳转,控制在2s以内
- 渲染优化①避免过度的创建对象
②不要过度使用枚举,枚举占用的内存空间要比整型大
③常量请使用static final来修饰
④使用一些Android特有的数据结构,比如SparseArray和Pair等
⑤适当采用软引用和弱引用
⑥采用内存缓存和磁盘缓存
⑦尽量采用静态内部类,这样可以避免潜在的由于内部类而导致的内存泄漏