按下wifienabler
WifiEnabler.java::onPreferenceChange&onPreferenceClick::mWifiManager.setWifiEnabled(ischecked)
WifiManager.java::setWifiEnabled:: mService.setWifiEnabled(enabled);
通过aidl与wifiservice.java通信
WifiService.java::setWifiEnabled:: mWifiController.sendMessage(CMD_WIFI_TOGGLED);
WifiController.java状态机,初始状态是ApStaDisabledState::processMessage:: transitionTo(mDeviceActiveState);
DeviceActiveState不做处理,交由父状态StaEnabledState::enter:: mWifiStateMachine.setSupplicantRunning(true)::sendMessage(CMD_START_SUPPLICANT);
这里进入wifi状态机处理,WifiStateMachine.java:: InitialState::processMessage,这里调用mWifiNative.loadDriver加载wifi驱动,mWifiNative.startSupplicant