本文主要是介绍【学习打卡】第2天 App 性能优化方案的演进,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:Top团队大牛带你玩转Android性能分析与优化
课程章节:App性能概览与平台化实践
主讲老师:随风绽放
课程内容
1. 从项目发展的角度了解 App 性能优化方案的演进
- 项目初期,在这个阶段,部门更多的资源是投入在业务逻辑的实现上,只关心崩溃率,不采集性能数据,没有性能检测和优化方案,没有排查问题的手段。
- 项目壮大期,在这个阶段,部门资源倾向于业务逻辑的实现和数据统计的指标上,对性能相关指标采集,不够全面深入,这时会接入成熟 APM(Appliation Performance Management),但排查手段单一,线下的检测和优化方案不成型。
- 项目成熟期,在这个阶段,部门资源开始关注用户体验,重点关注性能问题,采集的数据变得丰富,优化的手段也多样化,线上、线下有一整套完善解决方案,会为了满足业务需要自建 APM,这样新产品可以快速接入。
对 App 的性能优化一直有这样的误区,由于对真实用户使用场景的模糊,往往投入的关注程度不够。对线上和线下的问题应该采取不同的应对策略,线下问题注重预防,线上问题注重监控,线上和线下对待性能优化问题可采用的方案也不同,对待线上问题的解决方案要考虑兼容性,不能引入新的问题,对待线下问题可以使用一些更加激进的方案,比如 hook 等。
为什么会考虑自建 APM?
成熟的 APM 虽然通用,但通常不能满足项目的个性化需要,外部的 APM 很难与内部的系统打通,即使能够打通带来的时间成本也要高于自建 APM,而且随着项目的发展,一些关键性的、核心的数据必须要掌握在自己手中。
2.业界常用的优秀平台
- Crash 收集平台:常用的有 Bugly,数据采集、上报成功率高,包含 Java、Native 崩溃。
- APM 平台,听云为代表,通用的性能解决方案,数据采集完善,方便接入,在项目的发展期考虑接入,不能满足一些个性化的定制需求,因为数据是保存在三方平台,也存在一些安全隐患。
课程收获
清晰地对比了业界常用的平台,在项目在不同的开发阶段所发挥的作用。同时将 App 性能优化这个大的课题进行拆分,在实际工作中也找到了抓手,课程将 App 性能优化拆分为:
- 启动优化,首先要使用精准地度量,让优化变得可以量化。常用的启动优化包括异步初始化和延迟初始化,普通的异步初始化对 cpu 的利用率并不充分,普通的延迟初始化会导致滑动卡顿。
- 内存优化,通过对内存抖动和内存泄露的分析,结合使用 aop 和 hook 等手段,检测所有内存使用不合理的地方,重点关注图片的使用。
- 卡顿优化,结合源码学习自动化卡顿检测及优化,无侵入获取界面的秒开率,找到卡顿监测的盲区,实现对卡顿监测的全面覆盖。
- 稳定性,交付给用户的 app 尽量做到不崩溃,用户在极端的场景下仍然可以操作 app,介绍多种方式来保证稳定性,实现移动端容灾的具体方案,设计一个稳定性保障平台。
- 专项治理,比如存储优化、列表页卡顿优化, webview 白屏检测等问题的处理。
- 单点问题的追查,线上用户反馈的问题往往与具体场景关联,线下很难复现。如何设计性能埋点,尽可能保存问题发生的现场,通过日志回捞采集用户的具体行为日志和问题发生的场景,通过远程命令来采集一些具体的信息。
这篇关于【学习打卡】第2天 App 性能优化方案的演进的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!