后台 WLAN 扫描次数过多

当应用在后台执行 WLAN 扫描时,它会唤醒 CPU,从而加快耗电速度。扫描次数过多时,设备的电池续航时间可能会明显缩短。如果某个应用处于 PROCESS_STATE_BACKGROUNDPROCESS_STATE_CACHED 状态,则会被视为在后台运行。

本文档介绍了如何检测您的应用正在后台执行过多 WLAN 扫描,并提供关于诊断和解决问题的提示。

检测问题

您可能并不总是知道自己的应用出现了过多 WLAN 扫描。如果您已经发布了应用,您可以通过 Android Vitals 来了解问题并相应地解决问题。

Android Vitals

当您的应用在后台执行过多 WLAN 扫描时,Android Vitals 可通过 Play 管理中心提醒您,从而帮助您改进应用性能。Android Vitals 认为 WLAN 扫描次数过多的标准是,在后台运行时,应用在 0.10% 的电池工作时段内每小时执行的扫描超过 4 次。

“电池工作时段”是指两次电池充满电的时间间隔。要了解 Google Play 如何收集 Android Vitals 数据,请参阅 Play 管理中心文档。

调查 WLAN 扫描次数

Battery Historian 等工具可帮助您深入了解应用的扫描行为。Battery Historian 针对每个应用直观呈现 WLAN 扫描行为,可帮助您更清晰地了解应用的动态。有关 Battery Historian 的更多信息,请参阅使用 Battery Historian 分析耗电情况

如需了解 Battery Historian 的使用机制,请参阅 Batterystats 和 Battery Historian 演示

减少扫描次数

如果可能,您的应用执行 WLAN 扫描时应该是在前台运行。前台服务会自动显示通知;在前台执行 WLAN 扫描,从而让用户知道设备上发生 WLAN 扫描的原因和时间。

如需了解如何在位于前台时进行扫描,请参阅 WifiManager 类的文档。

如果您的应用无法避免在后台运行期间执行 WLAN 扫描,则可能适合采用偷懒至上策略。“偷懒至上”包含三种可用于消减 WLAN 扫描次数的方法:“减少”、“推迟”和“合并”。如需了解这些方法,请参阅针对电池续航时间进行优化