文章目录
- 一、优化方向
- 二、实施优化
- 1.去卡顿
- - UI 卡顿
- - 原因
- - 工具
- - 解决思路
- - 启动卡顿
- - 跳转卡顿
- - 响应卡顿
- 2. 保稳定
- - 内存溢出 (out of memory)
- - 内存泄露(Memory Leak)
- - 崩溃
- 3. 省电省流量
- 4. 安装包大小
app在使用过程中出现ANR,这是个令人蛋疼的现象,app卡死、出现黑屏等
一、优化方向
- 方向为目标: 快、稳、省、小 .
- 主要解决的问题: 卡顿、内存使用不合理、代码质量差、代码逻辑乱、安装包过大,这些都是开发过程中碰到最多的问题。
- 分析思路
1、
二、实施优化
1.去卡顿
- UI 卡顿
- 原因
```
-----主要以下两点-----
- 1、绘制任务太重,绘制一帧内容耗时太长
- 2、主线程太忙, 主线程做了太多的事情,或有耗时动作。
```
- 主线程职责: 界面生命周期控制 、系统事件处理、消息处理、界面布局、界面绘制、界面刷新 .
- 人眼与大脑之间的协作无法感知超过60fps的画面更新;
- App的性能标准就是保证60fps这个值,也就代表每一帧,只有1000/60 = 16ms的时间;
- 界面会出现卡顿不流畅的情况,是因为当前这个界面UI的处理超过了16ms,则会占用下一个16ms,这样就导致16ms * 2 都是显示的同一帧,也就是我看到的“卡了”.
- 工具
Hierarchy Viewer工具 \
- 解决思路
- am start -W com.nwd.can.setting/com.nwd.can.setting.ui.MainActivity
- 启动卡顿
- 跳转卡顿
- 响应卡顿
2. 保稳定
问题项目 | 参考URL |
内存泄漏、内存溢出 | 参考知识点 |
- 内存溢出 (out of memory)
内存溢出:(out of memory) 通俗理解就是内存不够 oom,通常在运行大型软件或游戏时,软件或游戏所需要的内存远远超出了你主机内安装的内存所承受大小,就叫内存溢出。
- 内存泄露(Memory Leak)
- 内存泄漏:(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
- 内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
- 案例1
- 崩溃
3. 省电省流量
4. 安装包大小