Android——热点开关(优化中)

2024-06-10 14:20
文章标签 android 优化 开关 热点

本文主要是介绍Android——热点开关(优化中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SoftAP打开与关闭

目录

1.三个名词的解释以及关系
Tethering——网络共享,WiFi热点、蓝牙、USB
SoftAp——热点(无线接入点),临时接入点
Hostapd——Hostapd是用于Linux系统的软件,,支持多种无线认证和加密协议,将任何计算机变成一个无线接入点和认证服务器
Android通过Hostapd,搭建一个SoftAp,通过Tethering实现不同的网络共享。
2.热点打开关闭的流程
基本就是不同参数的StartTethering、StartSoftAp以及StartHostapd!

Outline

六个目录,kernel那边未涉及到。
简单走一下流程!

Tethering

TetheringSettings & Preference

startTethering(TETHERING_WIFI) 不同参数
Preference 的监听器

ConnectivityManager with Callback

1.四个参数
Type——热点类型
Receiver——热点成功失败接收通知,回调函数
showProvisioningUi——是否网络配送界面
Handler——Handler对象,后台线程中接收结果

Binder @Basic

binder通信基础
1.framework的一些进程
2.内核空间和用户空间
3.Binder 是基于 C/S 架构的。由一系列的组件组成,包括 Client、Server、ServiceManager、Binder 驱动。
其中Client、Server、Service Manager 运行在用户空间,Binder 驱动运行在内核空间。
Binder通信原理图
4.ServiceManager 是一个进程,Server 是另一个进程,Server 向 ServiceManager 中注册 Binder 必然涉及到进程间通信。当前实现进程间通信又要用到进程间通信

Connectivity=Manager+Service

第一个Binder通信

Preferred network --> ConnectiviyService

1.几个名词
网络有效性检测(NetworkMonitor)
网络评分机制(NetworkFactory)
路由配置信息的获取(NetworkAgent)
网络物理端口的设置(Netd)
2.总结
通过wifi,mobile data,Tethering,VPN 等方式来获取路由配置信息。无论通过哪种方式,获取到路由配置信息后,需要交给ConnectivityService来处理,ConnectivityService通过ping网络来检查网络的有效性,进而影响到各个数据业务方式的评分值,ConnectivityService通过这些评分值来决定以哪个数据业务方式连接网络。

Tethering & getWifiManager

网络共享

SoftAp

ASyncChannel @Binder

1.第二个Binder通信,wifi调用消息流,ASyncChannel主要是一个Binder通信的一个类,提供一种异步的,面向消息的方式进行Binder通信
2.WifiService相当于Wifi的控制器,负责各种Wifi的操作,比如开关,扫描以及连接等。

WifiService #Controller

WifiService 三个交互

Settings && AIRPLANE

上面与WifiService交互的ContentProvider
WifiSettingsStore 特殊的两种Wifi状态,就是飞行模式下Wifi的状态,飞行模式下手动开启Wifi和打开飞行模式导致Wifi被关闭
WifiController这个状态机去监听飞行模式是否打开和关闭

Six! States

WifiController 两种状态
WifiStateMachine 四种状态

StateMachine @two

创建某些继承自State的类,代表我们要添加的状态
调用addState()方法,添加状态机
调用setInitialState()设置初始状态
调用start()方法,开启状态机
补充Wifi的一些状态
WifiStateMachine
WifiController

SoftApManager & AutoOff

SoftApManager
以其为核心,通过onConnectedClientChanged获取当前有几个设备连接热点,通过contentprovider获取到自动开关热点开关是否打开,这两个条件满足,wakeupmessage定时(写死可设置)的发送消息来开关热点。
SoftApStateMachine的两种状态

Hostapd

WifiCond use Binder

1.wificond
wificond

2.第三个binder通信

Wpa_supplicant_8 @Three

hostapd-----AP 侧进程,可以构建一个独立 AP 或者一个 RADIUS 认证服务器
wpa_supplicant-----STA 侧进程,包含了 802.1x、WPA 的请求工作
arc-----资源

Summary

两幅图讲一下,已经WiFi开关与热点开关的一些差异

这篇关于Android——热点开关(优化中)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1048410

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

SWAP作物生长模型安装教程、数据制备、敏感性分析、气候变化影响、R模型敏感性分析与贝叶斯优化、Fortran源代码分析、气候数据降尺度与变化影响分析

查看原文>>>全流程SWAP农业模型数据制备、敏感性分析及气候变化影响实践技术应用 SWAP模型是由荷兰瓦赫宁根大学开发的先进农作物模型,它综合考虑了土壤-水分-大气以及植被间的相互作用;是一种描述作物生长过程的一种机理性作物生长模型。它不但运用Richard方程,使其能够精确的模拟土壤中水分的运动,而且耦合了WOFOST作物模型使作物的生长描述更为科学。 本文让更多的科研人员和农业工作者

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk