网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一款好的应用要以快、稳、小、省为目标,力求流畅、稳定、安装包小,同时实现省电省流量,而想要实现这个目标,就要在方案设计时规避可能出现的卡顿、内存使用不合理、代码逻辑乱、代码质量差、安装包过大等问题。
卡顿类型及调优工具
1. 常见卡顿类型
卡顿的常见场景可分为UI绘制、应用启动、页面跳转、事件响应4种,如下图所示:
上述四种卡顿类型的根本原因可以归纳为界面绘制和数据处理两大类:
- 界面绘制:主要原因是绘制的层级深、页面复杂、刷新不合理,主要体现在UI和启动后初始界面以及跳转到页面的绘制上。
- 数据处理:主要原因是数据处理量太大,一般分为三种情况,一是数据处理在UI线程,二是数据处理占用CPU高,导致主线程拿不到时间片,三是内存增加导致GC频繁,从而引起卡顿。
2. 性能调优
性能调优的主要原则可以归纳为三点:
- **先粗后细:**先基于业务场景制定性能指标及测试用例,不达标后,再对流程进行分解细化并性能测量;
- **先大后小:**先找到性能最大瓶颈(执行次数*每次执行时长)进行优化,其收益明显;
- **问题放大:**先解决资源(CPU、内存、IO等)供给充分的情况下不达标问题,然后通过减少资源供给,把卡顿问题放大后,更容易发现问题根因。
由于性能问题复现和定位都存在一定的困难,因此借助相应的的调试工具是十分必要的。常见的如Profiler、Systrace、Perfetto等。
本篇概括介绍了性能设计的整体思路、常见卡顿类型及性能调优工具等。
Android 性能优化笔录:https://qr18.cn/FVlo89
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
T行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**