Android 8.1 Settings 的热点源码分析

          最近一段时间研究了一下Settings中的热点功能实现,以下是我的一点心得,有不对的地方欢迎指点。

          它主要涉及的类有TetherSettings.java 、WifiApEnabler.java、WifiStateMachine.java以及它的布局文件tether_prefs.xml

首先从布局文件tether_prefs.xml分析

Android 8.1 Settings 的热点源码分析_第1张图片

            key="enable_wifi_ap"就是代表热点的值,根据key值我们转到布局文件所在的类TetherSettings.java。

加载布局文件

Android 8.1 Settings 的热点源码分析_第2张图片

初始化

继续跟踪mWifiApEnabler,监听改变

Android 8.1 Settings 的热点源码分析_第3张图片

继续跟踪,热点状态改变

Android 8.1 Settings 的热点源码分析_第4张图片

Android 8.1 Settings 的热点源码分析_第5张图片

热点状态改变会发送广播,告诉系统热点的状态

Android 8.1 Settings 的热点源码分析_第6张图片

Android 8.1 Settings 的热点源码分析_第7张图片

Android 8.1 Settings 的热点源码分析_第8张图片

继续跟踪,发现状态改变的显示信息在WifiApEnabler.java

Android 8.1 Settings 的热点源码分析_第9张图片

继续跟踪

Android 8.1 Settings 的热点源码分析_第10张图片

Android 8.1 Settings 的热点源码分析_第11张图片

有接收就有发送,发送广播的是WifiStateMachine.java,它在frameworks目录下

Android 8.1 Settings 的热点源码分析_第12张图片

继续跟踪,最后是在enter()方法中调用的。

 

 

你可能感兴趣的:(Settings,解析)