流程图
秉承简单(提纲挈领)分享(交流)技术精神,本文尽力做到简化(凝练)关键环节以及流程。
本文以设备进入待机模式后,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进行耗电时间统计