这几种情况,做 iOS 的多半碰到过:
iPhone 后台耗电排查这事,头疼的地方在于——你打开系统设置里的电池用量,它只告诉你哪个 App 占比高,但这电到底是你前台刷掉的,还是它在你睡觉时偷偷联网、定位、被反复唤醒跑掉的,设置页一句不提。要定位待机耗电的真正来源,得把"后台到底在干什么"按维度拆开看。 克魔( KeyMob)的数据分析模块就是干这个的,下面按排查顺序走一遍。
系统设置的电池页面给的是结果——某个 App 耗了整机电量的百分之多少。可同样是耗电 15%,一个是你前台用了俩小时刷视频,另一个是它在后台驻留一整晚、每隔几分钟联一次网,这俩的处理方式天差地别,前者正常,后者才是要抓的。
KeyMob 的数据分析不是实时看当下曲线,而是 复盘设备过去一段时间积累下来的运行数据,把电量、温度、网络、定位、唤醒这些拆成一个个维度的图表。说白了,它回答的不是"耗了多少电",而是"这电花在哪种行为上了"。
另外新设备或者刚连上时数据少、甚至有空档,是因为数据靠设备自己积累,让它正常用一阵再看就有了。
先进「应用与能耗」。这里的 应用耗电概览是个环形图,按系统的能耗归因把各 App 的耗电占比标出来,先盯占比最高那个。
光看占比还不够,接着看同一页的
前台使用时长和
后台驻留时长对比。重点就在这——如果某个 App 前台你就用了十几分钟,后台驻留却挂了八九个小时,那它大概率就是夜里偷跑电的那个。旁边的网络流量、存储写入量两条也顺带扫一眼,持续上传下载、老在写盘的,都在这儿露馅。我上回揪到的就是个天气类 App,前台没点开几次,后台定位和联网却挂了大半宿。

前台时长短、后台驻留长、还一直在联网的 App,基本就是待机掉电的头号嫌疑。
揪出嫌疑 App 之后,得知道它在后台具体在折腾什么——是联网、定位,还是调传感器。几个地方挨着看。
「无线通信 / 网络」里有个 网络活跃进程,按进程统计联网次数,息屏或者半夜还频繁联网的后台进程,这里排得清清楚楚。同一页的 Wi-Fi 扫描时长也值得看,有些 App 后台疯狂扫 Wi-Fi,单这一项就能把电耗出不少。
定位是另一个耗电大户。进「位置 / 传感器」, 定位客户端请求记录里下拉选中那个可疑 App,就能看到它发起定位请求的时间分布,夜里还在后台连着请求位置的,一眼就看出来。再配合 定位精度请求类型分布,能发现那种明明不需要高精度、却一直要 GPS 级定位的请求(挺费电的)。
还有「显示 / 音视频」里的 摄像头调用记录,按应用列出调用次数和起止时间——正常没问题,但要是哪个 App 在后台莫名其妙调摄像头,这就不只是耗电的事了。
有时候掉电不是某个 App 猛跑,而是手机整晚压根没睡踏实。进「系统睡眠 / 通知」,看 睡眠 / 唤醒活动趋势,按小时排的,待机时段要是有一片集中的唤醒事件,那待机耗电就有解释了。
唤醒多半是推送拉起来的。同一块的 通知推送来源按通知数量给 App 排名,老弹通知、动不动点亮屏幕的应用排在前头。想再深一层,去「云同步 / 推送」看 推送通道重连趋势——重连次数多,说明推送通道不稳,多半跟网络频繁切换有关,这种反复重连也是在偷偷耗电。
前面几步是横着扫维度,定位到具体某个 App 后,用「资源用量分析」竖着把它看透。右上角选应用,页面就只给这一个 App 的明细:前台后台时长、CPU 时间、网络流量、通知数量、存储写入几张卡片摆上面,下面是 应用使用时间线,全天前台后台活动一目了然。
最有意思的是 硬件能耗时间线,下拉选硬件,能看到这个 App 在各时段对蓝牙、麦克风、基带、Wi-Fi 分别耗了多少——后台耗电具体砸在哪个硬件上,到这一步就彻底清楚了。
查耗电不止 KeyMob 一条路,看你要什么粒度:
真要做纳秒级的能耗 profiling、配合代码改一行测一次,那还是 Instruments 趁手,这点 KeyMob 不抢。各看各的场景。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70047460/viewspace-3187138/ ,如需转载,请注明出处,否则将追究法律责任。