在做 iOS 开发的这些年里,“能耗”一直是个有点尴尬的话题。
它不像崩溃那样有明确的错误信息,也不像卡顿那样立刻可见。更多时候,问题是从用户的一句话开始的:最近这个版本有点费电。
这句话对工程师来说信息量其实非常低,但又很难忽略。
因为在 iOS 体系里,
App 的使用记录与能耗,确实不是一个随手就能看清楚的东西。
最初遇到这类反馈时,我也试过最直接的方式:
在自己的手机上用一会儿,看电量掉得快不快。
但很快就发现,这种方式几乎没有参考价值:
真正有意义的,还是 可追溯的使用记录和能耗数据。
iOS 系统本身并不是完全不提供信息。
在系统设置里,可以看到:
这些数据对用户来说很直观,但对开发者而言,问题在于:
它更像是一个“结果提示”,而不是排查工具。
在开发阶段,我通常还是会从 Instruments 入手。
Energy Log 可以看到:
它对理解“某一次操作为什么费电”非常有帮助。
但和内存、CPU 类似,它更适合
短时间、可控场景。
一旦问题出现在:
单次 Energy Log 很容易遗漏关键阶段。
后来在一次版本分析中,我们发现一个有意思的现象:
某些用户并不是单次使用很费电,而是
使用频率和使用方式发生了变化。
这时,单看“电量消耗百分比”已经不够了,更重要的是:
这其实已经进入了 使用记录分析 的范畴。
在这类问题上,我开始更多依赖真机环境,而不是模拟或单点测试。
这里我用到的是 克魔(KeyMob)。
一开始吸引我的,并不是“能耗”本身,而是它可以把下面这些信息放在一起看:
当这些信息放在同一条时间线上时,很多原本模糊的问题会变得具体。
在一次测试中,我们发现一个版本的能耗曲线明显比之前陡。
但仔细看使用记录,会发现:
通过 KeyMob 的使用记录,可以看到:
这些信息,单靠系统电池统计是很难看出来的。
在进一步分析中,我们结合了 Charles 和 Safari Inspector。
这些行为单独看都不“重”,
但叠加在一起,就会反映为明显的电量消耗。
这类问题,往往只有在 使用记录 + 能耗 + 行为 同时对照时,才说得清楚。
慢慢地,我对“查看 App 的使用记录与能耗”这件事有了新的理解:
KeyMob 在这里的作用,并不是给出一个“你很费电”的结论,而是让你看到:
当这些问题有了答案,优化才有方向。
在现在的项目里,针对使用记录与能耗问题,我通常会组合使用:
没有哪个工具是多余的,它们关注的是同一个问题的不同侧面。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70046795/viewspace-3105703/ ,如需转载,请注明出处,否则将追究法律责任。