当应用在后台执行 Wi-Fi 扫描时,它会唤醒 CPU,导致电池电量消耗加快。当扫描次数过多时,设备的电池续航时间可能会明显缩短。如果应用处于 PROCESS_STATE_BACKGROUND
或 PROCESS_STATE_CACHED
状态,则认为该应用正在后台运行。
本文档说明如何检测应用在后台执行了过多的 Wi-Fi 扫描,并提供有关诊断和解决问题的提示。
检测问题
您可能并不总是知道您的应用正在执行过多的 Wi-Fi 扫描。如果您已经发布了您的应用,Android 指标可以使您意识到这个问题,以便您可以修复它。
Android 指标
当您的应用在后台执行过多的 Wi-Fi 扫描时,Android 指标可以通过 Play Console 向您发出警报,从而帮助您提高应用的性能。当应用每小时执行超过 4 次扫描时,Android 指标会认为 Wi-Fi 扫描过多。您可以在 Play Console 中检查表现出此行为的 *电池会话* 的百分比。
*电池会话* 的定义取决于平台版本。
- 在 Android 10 中,电池会话是特定 24 小时内接收到的所有电池报告的聚合。电池报告 指的是两次电池充电之间的间隔,充电范围是从低于 20% 到高于 80%,或从任何电量级别到 100%。
- 在 Android 11 中,电池会话是固定的 24 小时周期。
有关 Google Play 如何收集 Android 核心数据的信息,请参阅 Play Console 文档。
调查 Wi-Fi 扫描
诸如 Battery Historian 之类的工具可以帮助您更深入地了解应用的扫描行为。Battery Historian 提供了基于每个应用的 Wi-Fi 扫描行为的可视化,这可以帮助您更清晰地了解应用中发生的情况。有关 Battery Historian 的更多信息,请参阅 使用 Battery Historian 分析功耗。
有关使用 Battery Historian 机制的信息,请参阅 Batterystats 和 Battery Historian 教程。
减少扫描次数
如果可能,您的应用应该在应用在前台运行时执行 Wi-Fi 扫描。前台服务会自动显示通知;因此,在前台执行 Wi-Fi 扫描可以让用户了解 Wi-Fi 扫描在其设备上发生的原因和时间。
有关如何在前台扫描的信息,请参阅 WifiManager
类的文档。
如果您的应用无法避免在应用在后台运行时执行 Wi-Fi 扫描,则可以考虑应用 延迟优先 策略。延迟优先包含三种可用于减少 Wi-Fi 扫描次数的技术:减少、延迟 和 合并。有关这些技术的信息,请参阅 优化电池续航时间。
为您推荐
- 注意:当 JavaScript 关闭时,会显示链接文本。
- 后台移动网络使用过多