性能优化
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210601191517557.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Zha2VyWHVhbg==,size_16,color_FFFFFF,t_70#pic_center)
性能优化的重要性及方向
优化方法
性能优化的四个方向
流畅性优化方向
页面显示速度
- 优化原因
页面需要绘制的内容(布局 控件)太多,从而导致页面测量时间过长
绘制效率过低,从而导致绘制时间过长 - 优化方案
- 布局层级优化
- 异步加载xml
- 离屏预渲染
启动速度优化
- 优化原因
初次打开应用时,大量初始化任务 or 需要加载很多资源 - 优化方案
- 异步并发初始化
- 分步初始化,延时初始化的策略,减少启动应用时加载的任务,从而提高启动速度
响应速度
- 优化原因
在5s内未响应用户的输入事件(按键、触摸输入)、在10s内未处理完BroadcastReceiver接收到的事件、在20s内未处理完Service接收到的事件、多线程锁竞争。
主线程阻塞、挂起、死循环、执行比较长的耗时操作、其他进程(子线程)对CPU占用时间过高,导致主进程(线程)抢不到CPU的时间片。 - 优化方案
当发送ANR的时候,ActivityManagerService 会把ANR信息写到LogCat日志中。主要通过ANRManager、ActivityManager等字段过滤出我们想要的信息
线上阶段可以使用爱奇艺开源的xcrash
内存优化
- Memory Analyzer Tool(MAT)