5.2 WifiService的创建及初始化

最后更新于:2022-04-02 06:03:38

WifiService在SystemServer进程中被创建,代码如下所示。 **SystemServer.java::ServerThread:run** ~~~ public void run(){ ...... try { wifi = new WifiService(context);// 创建一个WifiService对象 ServiceManager.addService(Context.WIFI_SERVICE, wifi); }...... try { connectivity = new ConnectivityService( context, networkManagement, networkStats, networkPolicy); ServiceManager.addService(Context.CONNECTIVITY_SERVICE, connectivity); ...... /* 检查是否需要启动Wi-Fi。如果关机前Wi-Fi是打开的,则重启后Wi-Fi功能将在此函数中打开 该函数比较简单,其中有一处涉及WifiWatchdogStateMachine的代码。留待5.4节介绍。 */ wifi.checkAndStartWifi(); wifiP2p.connectivityServiceReady(); } ...... ...... } ~~~ 由上述代码可知,SystemServer[^①]中和WifiService相关的只有两处函数调用。其中,WifiService的创建是第一条分析路线的起点。 正式介绍WifiService之前,本节先介绍两个基础知识,分别是HSM(Hierarchical StateMachine,结构化状态机)和AsyncChannel。 [^①]:对SystemServer感兴趣的读者不妨阅读《深入理解Android:卷Ⅱ》第3章。
';