美文网首页
android framework wifi 开启原理

android framework wifi 开启原理

作者: Little熊猫 | 来源:发表于2020-06-29 22:14 被阅读0次

    本文分析主要基于android 10代码,分析framework中wifi enable的原理。
    android WIFI框架如下图:


    android wifi struct.png

    分析framework中wifi相关链接控制的原理,由于wifi相关代码有多处比如:

    frameworks/base/wifi/java/android/net/wifi/
    frameworks/opt/net/wifi/service/java/com/android/server/wifi/
    frameworks/base/core/java/android/net/
    

    这种manager service牵扯到多个,代码在多处,一下进入代码分析比较困难,比较迅速的方法是从aidl进程间通信入手,抓到aidl接口就抓到了C/S模型的主要脉络,顺藤摸瓜,后面的分析也就简单了。以wifi为例,wifi的进程间通信的aidl文件有如下三个。

    IWifiScanner.aidl
    interface IWifiScanner
    {
        Messenger getMessenger();
    
        Bundle getAvailableChannels(int band, String packageName, String featureId);
    }
    IWifiManager.aidl
    IWifiConnectedNetworkScorer.aidl
    
    

    通过这三个aidl,可以看出,wifi扫描有个servcie,wifi管理有个service,wifi连接后打分也有个aidl。
    WifiScanningService和WifiService继承SystemService,由SystemService启动。
    上面三个service对应的manager分别是 WifiManager.java WifiScanner.java 其中WifiManager.java实现了IWifiConnectedNetworkScorer.aidl。
    从上面可以看出,在frameworks/base/wifi/java/android/net/wifi/文件夹下的接口主要是上层的封装供上层调用使用。
    而frameworks/opt/net/wifi/service/java/com/android/server/wifi/下的接口主要是wifi在framework层的实现。
    下面以wifi enable为例,看一下如何一步一步实现的。


    wifi_manager.png

    相关文章

      网友评论

          本文标题:android framework wifi 开启原理

          本文链接:https://www.haomeiwen.com/subject/yifzfktx.html