Part 1 App性能概览与平台化实践
写在前面的话
主要用于记录慕课网中的Top团队大牛带你玩转Android性能分析与优化课程的笔记,便于以后查看,课程很精彩。自己一边学习一边整理笔记,会慢慢更新的。
一 性能优化中可能遇到哪些难题
1.性能表现差
2.线上问题无从追查
3.性能优化的长期开销大
4.总结
1.性能表现差
app启动慢、卡顿、丢帧、耗电、网络请求慢(用户可以感知到的)
内存占用高、抖动频繁(用户感知不到的)
崩溃率、异常率高等
2.线上问题无从追查
难点:
1.如何保证异常感知灵敏度(发现bug)
2.如何复原“案发”现场(复现bug)
3.如何快速“止血”成功(修复bug)
3.性能优化的长期开销大
难点:
1.如何扼杀问题于萌芽中(前期准备做足)
2.优化效果如何长期保存
4.总结
目标:
1.性能表现好
2.线上问题易追查
3.长期投入小
二 App性能优化解决方案的演进
1.项目初期(三无状态,不考虑性能问题)
只关注崩溃率、不采集性能数据
没有性能检测、优化方案
没有排查问题手段
2.项目壮大期(初步拥有问题定位分析能力但是不完善)
指标采集,不够全及深入
接入成熟的APM(Android Performance Management安卓性能管理),排查手段单一
线下的检测、优化,方案不成型
3.项目成熟期(有完善的性能指标,完善手段及可移植性)
重点关注性能问题,数据丰富,手段多样化
线上、线下有一整套完善解决方案(重点)
自建APM,新产品可快速接入
4.线上线下
误区:对线上不重视
侧重点:线下预防,线上监控
方案不同:线下可以用黑科技
5.为什么要自建APM?
成熟的APM通用,但不满足个性化需求
外部APM与内部系统难打通(如获取用户的行为数据),带来时间成本
数据必须掌握在自己手中
三 业界优秀的平台化实践
1.Crash收集平台
Bugly为代表:
数据采集、上报成功率高,包含java、Native崩溃,可在项目初期直接接入
2.APM平台
听云为代表
通用的性能解决方案,数据采集完善,方便接入,但不满足个性化需求,数据隐患,建议性能方案不完善的阶段接入
3.自建解决方案
美团、携程、360等
贴合自身业务特点,满足定制化需求,数据安全