流程图
秉承简单(提纲挈领)分享(交流)技术精神,本文尽力做到简化(凝练)关键环节以及流程。
本文以设备进入待机模式后,wifi 设置为关闭场景的进行分析,
其他的场景(分析flow类似,后面有时间补上):
- wifi 保存连接网络,进入待机 (wifi 不扫描,只有wlan 的fw逻辑处理与AP Router 的Ps-poll )
- wifi 开启且无保存任何网络,进入待机(wifi 会以固定周期进行nlo/pno scan )
wifi 以disable状态进入 stand by之后,为保证设备唤醒之后能快速启用wifi 网络,在stand by的mode下会在后台进行scan,周期性识别周围存在的网络。
其耗电统计flow主要有以下:
一、由WifiStateMachine 的ScanModeState触发的耗电统计
a. 由WifiStateMachine的状态机ScanModeState 触发给 WiFiStateTracker上报自己已开始Scan State,
b. WiFiStateTracker 进一步将统计状请求report 给到BatteryStatsService,
c. BatteryStatsService 收到请求后,开始对wifiStateTimer进行耗电时间统计。
二、继承WifiStateMachine 的ScanMode 触发到 WifiScanningService 的Scan 耗电统计
a. 一旦进入Scan时,将直接上报给BatteryStatsService 统计wifiScanTimer 耗电

本文探讨了Android O系统中WiFi在待机模式关闭时的电量统计问题,特别是WiFi扫描耗电。分析了由WifiStateMachine的ScanModeState触发的电量统计流程,以及WifiScanningService的扫描耗电统计。在某些情况下,即使WiFi未进行扫描,BatteryStatsService仍会统计扫描耗电,导致待机状态下电量消耗过高的矛盾。建议优化统计逻辑,确保在扫描完成后及时停止统计。

3414

被折叠的 条评论
为什么被折叠?



