更多精彩内容,欢迎观看:
钉钉 Android 端功耗优化最佳实践(中):https://developer.leiyu.cn/article/1262697?groupCode=alibabaf2e
如前文所说,不同于 Crash、ANR 等问题,耗电量在线上是没有一个可以量化的指标的,所以线上用户功耗体验如何,我们的优化是否有效果,是否解决了用户反馈的功耗问题,有无新增的功耗问题等,从应用治理的视角来看,监控能力是防劣化的有效手段。
建立线上功耗体验指标体系
由于 App 获取不到直接的电量值,需要有一个指标去量化衡量整体的线上功耗体验,代替电量值这个指标。且功耗涉及多个模块的使用,在我们有了各个功耗部件的使用数据之后,这个指标还需要是一个综合指标。鉴于此,我们提出了功耗健康分的指标,用于衡量一次退后台的生命周期内功耗体验整体优劣情况。
功耗健康分:对一条退后台数据,对各个单项指标进行评分,再以各个模块使用对功耗的影响程度转换为权重系数求和相加得到健康分。
健康分计算:
建设功耗体验报表:感知功耗体验核心指标的优劣和变化趋势。主要包含三个部分:功耗健康分、异常功耗、功耗部件单项指标。
因此,对于钉钉线上功耗体验,有了明确的数据指标衡量体系,能够量化地感知功耗体验和异常问题。不再是依赖用户反馈或者主观使用感受。通过线上功耗体验指标,曾有效地帮我们感知到线上变更引起的高功耗问题;也用于整体衡量我们每个迭代功耗治理优化的效果。
基于功耗的监控感知能力,上线后帮助我们累计发现数十例潜在功耗问题,根据问题的严重程度我们依次进行了优化治理。
功耗的优化治理,主要是两方面的工作。首先,针对后台重度消息收发引起的网络频繁使用问题,我们研发了“低功耗模式”。同时,在每个迭代中,针对各个功耗模块潜在的问题进行治理。
针对重度消息收发场景引起的网络频繁唤醒问题,我们研发了“低功耗模式”。
低功耗模式主要思想是将消息进行分层,当 App 处于后台的情况下,服务端采用分级、延迟、合并等推送策略,有效解决网络唤醒频繁的问题。
经过验证,低功耗模式开启后,能有效降低重度用户后台耗电量近 70%。
在日常迭代中,持续去对潜在功耗问题进行治理和优化。主要问题分为这几类:
通过对感知到的头部问题治理后,线上功耗体验也有明显的效果体现:
在功耗体系化能力建设的同时,持续治理优化潜在的功耗问题,大幅提升用户体验,为用户提供低功耗的体验。未来我们还会不断精进优化 App 体验,持续为用户打造极致用户体验而努力。
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者