WiFi Server 启动流程(1)

本文详细解释了Android系统启动时ZygoteInit如何引导SystemServer,以及SystemServer如何启动Wi-Fi服务的过程,涉及的关键类如WifiService、WifiContext和WifiInjector。
摘要由CSDN通过智能技术生成
//在这里启动ZygoteInit
//frameworks/base/cmds/app_process/app_main.cpp
runtime.start("com.android.internal.os.ZygoteInit", args, zygote);
//ZygoteInit里面启动SystemServer
//frameworks/base/core/java/com/android/internal/os/ZygoteInit.java
private static Runnable forkSystemServer(String abiList, String socketName,ZygoteServer zygoteServer) {
/*略*/
    //把"com.android.server.SystemServer"添加在args中然后new
ZygoteCommandBuffer commandBuffer = new ZygoteCommandBuffer(args);
/*略*/
}
//在SystemServer--》main()---》run()
/frameworks/base/services/java/com/android/server/SystemServer.java

/**
  * The main entry point from zygote.
 */
public static void main(String[] args) {
    new SystemServer().run();
}
private void run() {
    /*略*/
    startOtherServices(t);
    /*略*/
}

private void startOtherServices(@NonNull TimingsTraceAndSlog t) {

if (context.getPackageManager().hasSystemFeature(
          packageManager.FEATURE_WIFI)) {
    /*略*/
    // Wifi Service must be started first for wifi-related services.
    t.traceBegin("StartWifi");
    mSystemServiceManager.startServiceFromJar(
              WIFI_SERVICE_CLASS, WIFI_APEX_SERVICE_JAR_PATH);
     t.traceEnd();
     t.traceBegin("StartWifiScanning");
     mSystemServiceManager.startServiceFromJar(
              WIFI_SCANNING_SERVICE_CLASS, WIFI_APEX_SERVICE_JAR_PATH);
      t.traceEnd();
}
    /*略*/
}

下面便是new 的WifiService,可以看到主要做了new WifiContext、WifiInjector、WifiServiceImpl三个类。
WifiContext:获取上下文
WifiInjector:WiFi初始化环境配置
WifiServiceImpl:WiFiService

/packages/modules/Wifi/service/java/com/android/server/wifi/WifiService.java
public WifiService(Context contextBase) {
     super(contextBase);
    mWifiContext = new WifiContext(contextBase);
    WifiInjector injector = new WifiInjector(mWifiContext);
    mImpl = new WifiServiceImpl(mWifiContext, injector);
}

到这里就结束了,后面讲解WifiContext、WifiInjector、WifiServiceImpl主要做了什么
可以点击下面链接
https://blog.csdn.net/NiHuiShenMo/article/details/137346924?spm=1001.2014.3001.5502

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值