继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第2天 App 性能优化方案的演进

GT9456
关注TA
已关注
手记 89
粉丝 12
获赞 17

课程名称:Top团队大牛带你玩转Android性能分析与优化
课程章节:App性能概览与平台化实践
主讲老师:随风绽放

课程内容

1. 从项目发展的角度了解 App 性能优化方案的演进

  1. 项目初期,在这个阶段,部门更多的资源是投入在业务逻辑的实现上,只关心崩溃率,不采集性能数据,没有性能检测和优化方案,没有排查问题的手段。
  2. 项目壮大期,在这个阶段,部门资源倾向于业务逻辑的实现和数据统计的指标上,对性能相关指标采集,不够全面深入,这时会接入成熟 APM(Appliation Performance Management),但排查手段单一,线下的检测和优化方案不成型。
  3. 项目成熟期,在这个阶段,部门资源开始关注用户体验,重点关注性能问题,采集的数据变得丰富,优化的手段也多样化,线上、线下有一整套完善解决方案,会为了满足业务需要自建 APM,这样新产品可以快速接入。

对 App 的性能优化一直有这样的误区,由于对真实用户使用场景的模糊,往往投入的关注程度不够。对线上和线下的问题应该采取不同的应对策略,线下问题注重预防,线上问题注重监控,线上和线下对待性能优化问题可采用的方案也不同,对待线上问题的解决方案要考虑兼容性,不能引入新的问题,对待线下问题可以使用一些更加激进的方案,比如 hook 等。

为什么会考虑自建 APM?
成熟的 APM 虽然通用,但通常不能满足项目的个性化需要,外部的 APM 很难与内部的系统打通,即使能够打通带来的时间成本也要高于自建 APM,而且随着项目的发展,一些关键性的、核心的数据必须要掌握在自己手中。

2.业界常用的优秀平台

  • Crash 收集平台:常用的有 Bugly,数据采集、上报成功率高,包含 Java、Native 崩溃。
  • APM 平台,听云为代表,通用的性能解决方案,数据采集完善,方便接入,在项目的发展期考虑接入,不能满足一些个性化的定制需求,因为数据是保存在三方平台,也存在一些安全隐患。

课程收获

清晰地对比了业界常用的平台,在项目在不同的开发阶段所发挥的作用。同时将 App 性能优化这个大的课题进行拆分,在实际工作中也找到了抓手,课程将 App 性能优化拆分为:

  • 启动优化,首先要使用精准地度量,让优化变得可以量化。常用的启动优化包括异步初始化和延迟初始化,普通的异步初始化对 cpu 的利用率并不充分,普通的延迟初始化会导致滑动卡顿。
  • 内存优化,通过对内存抖动和内存泄露的分析,结合使用 aop 和 hook 等手段,检测所有内存使用不合理的地方,重点关注图片的使用。
  • 卡顿优化,结合源码学习自动化卡顿检测及优化,无侵入获取界面的秒开率,找到卡顿监测的盲区,实现对卡顿监测的全面覆盖。
  • 稳定性,交付给用户的 app 尽量做到不崩溃,用户在极端的场景下仍然可以操作 app,介绍多种方式来保证稳定性,实现移动端容灾的具体方案,设计一个稳定性保障平台。
  • 专项治理,比如存储优化、列表页卡顿优化, webview 白屏检测等问题的处理。
  • 单点问题的追查,线上用户反馈的问题往往与具体场景关联,线下很难复现。如何设计性能埋点,尽可能保存问题发生的现场,通过日志回捞采集用户的具体行为日志和问题发生的场景,通过远程命令来采集一些具体的信息。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP