当前位置: 首页 > news >正文

Android WIFI体系

先说说WifiLock、MulticastLock 、IWificond

  1. WifiLock 允许应用强制保持 WiFi 活跃,即便设备处于休眠状态。如WIFI_MODE_FULL_HIGH_PERF:保持高性能 WiFi 活跃状态,适用于高带宽需求,如视频通话、流媒体。经测试有的场景能减少100ms的延迟
  2. MulticastLock 允许应用接收 WiFi 组播数据包,适用于需要使用 UDP 多播通信的场景。组播会导致较高的电量消耗,建议在不需要时及时释放。
  3. wificond的话见下图
    在这里插入图片描述
    文章主要就是介绍wifi扫描的代码逻辑、lock的实现还有80211中的一些知识

wifi的帧有以下几种:
管理帧、控制帧和数据帧(都是洋大人制定的协议罢了)
在这里插入图片描述
在这里插入图片描述
常见的三种Wifi协议,速度和频段以及调制决定,这个就偏硬件了
802.11ax 2019 Wi-Fi6
802.11ac 2013 Wi-Fi5,MU-MIMO,支持5G
802.11n 2009 Wi-Fi4,MIMO最大4*4

主动扫描wifi的时候,STA主动发送probe-request帧到空中,AP收到后回复probe-response给STA;
隐藏SSID的扫描:如果probe-request中包含具体的SSID,那么只有SSID匹配的AP才会回复probe response,通常用来扫描隐藏AP;
被动扫描wifi的时候如下图:(这个广播包里可以包含任何数据其实)。
在这里插入图片描述
连接的话就是
在这里插入图片描述
目前Wi-Fi在打开状态下芯片一直是活动状态,Wi-Fi芯片支持一系列offload功能,可以把一些任务交给芯片处理,主机可以休眠。Wi-Fi在不需要传输数据时释放wake lock,使主机有机会睡下去,同时会启用包过滤,只有收到特定类型的包之后才会唤醒主机,并传输给kernel,比如单播和特定的多播帧。通过周期唤醒,接收并解析Beacon帧中的TIM IE,看AP是否有缓存的数据,如果没有则继续睡下去

漫游强调的是 在同一网络中 AP 之间的切换,IP 不变,体验平滑。
中继强调的是 物理信号转发扩展,可能存在网段隔离或额外延迟。

4. wifi open 扫描的流程

层级描述
WifiManager应用层接口,如 enableNetwork()connect()
WifiServiceImplFramework 层 Wi-Fi 服务实现
WifiNative封装底层操作接口,如 connectToNetwork()startScan()
wificond用于扫描控制、监听事件、构建 netlink 消息与内核交互
Wifi HAL调用 vendor 提供的 HAL 接口,如 scan、connect(用于兼容芯片)
wpa_supplicantwpa_supplicant 进程处理连接和认证流程,通过 HIDL 接口暴露

wifiService的主要参数

mResourceCache	缓存 Wi-Fi 相关的资源,提升访问效率。
mWifiInjector	依赖注入器,提供 Wi-Fi 模块所需的各种组件和服务。
mClock	提供系统时间相关的功能,常用于记录事件时间戳。
mSettingsConfigStore	管理 Wi-Fi 设置的存储和加载。
mFacade	框架外观接口,封装了对系统服务的访问。
mWifiMetrics	收集和记录 Wi-Fi 性能和使用情况的指标数据。
mWifiTrafficPoller	定期轮询 Wi-Fi 流量数据,用于流量统计和分析。
mUserManager	管理用户账户信息,处理多用户环境下的 Wi-Fi 设置。
mCountryCode	管理和设置设备的国家代码,影响 Wi-Fi 频段和功率设置。
mActiveModeWarden	管理 Wi-Fi 的活动模式,如 STA(客户端)和 AP(热点)模式的切换。
mScanRequestProxy	代理扫描请求,协调多个组件的扫描需求。
mSettingsStore	存储和管理 Wi-Fi 的持久化设置。
mPowerManager	管理设备的电源状态,控制 Wi-Fi 在不同电源模式下的行为。
mAppOps	管理应用的操作权限,确保应用有权限进行 Wi-Fi 操作。
mWifiLockManager	管理 Wi-Fi 锁,防止 Wi-Fi 在特定情况下进入休眠状态。
mWifiMulticastLockManager	管理多播锁,允许应用接收多播数据包。
mWifiBackupRestore	处理 Wi-Fi 设置的备份和恢复功能。
mSoftApBackupRestore	处理软 AP 设置的备份和恢复功能。
mWifiSettingsBackupRestore	处理 Wi-Fi 设置的备份和恢复功能。
mBackupRestoreController	控制备份和恢复过程的协调器。
mWifiApConfigStore	存储和管理 Wi-Fi 热点的配置。
mWifiPermissionsUtil	工具类,检查和管理应用的 Wi-Fi 权限。
mLog	日志记录器,用于记录 Wi-Fi 模块的日志信息。
mFrameworkFacade	框架外观接口,封装了对系统服务的访问。
mTetheredSoftApTracker	跟踪和管理设备作为热点时的状态和连接。
mLohsSoftApTracker	跟踪和管理本地仅热点(LOHS)的状态。
mWifiNetworkSuggestionsManager	管理应用提供的 Wi-Fi 网络建议。
mWifiNetworkFactory	处理 Wi-Fi 网络的请求和连接。
mDppManager	管理 DPP(设备配对协议)功能。
mWifiThreadRunner	管理 Wi-Fi 操作的线程执行。
mWifiHandlerThread	处理 Wi-Fi 操作的线程。
mWifiConfigManager	管理 Wi-Fi 网络配置。
mHalDeviceManager	管理与硬件抽象层(HAL)的交互。
mWifiBlocklistMonitor	监控和管理 Wi-Fi 网络的黑名单。
mPasspointManager	管理 Passpoint(热点 2.0)功能。
mWifiScoreCard	记录和评估 Wi-Fi 网络的性能评分。
mWifiHealthMonitor	监控 Wi-Fi 的健康状态。
mMemoryStoreImpl	存储 Wi-Fi 相关的内存数据。
mWifiConnectivityManager	管理 Wi-Fi 的连接策略和流程。
mWifiDataStall	检测和处理 Wi-Fi 数据阻塞情况。
mWifiNative	与底层 Wi-Fi 驱动进行交互的接口。
mCoexManager	管理 Wi-Fi 与其他无线技术的共存。
mConnectHelper	辅助 Wi-Fi 连接过程的工具类。
mWifiGlobals	存储全局的 Wi-Fi 设置和状态。
mSimRequiredNotifier	通知用户需要 SIM 卡以连接特定 Wi-Fi 网络。
mWifiCarrierInfoManager	管理运营商相关的 Wi-Fi 信息。
mWifiPseudonymManager	管理 Wi-Fi 的伪匿名信息。
mMakeBeforeBreakManager	管理 Wi-Fi 的“先连接后断开”策略。
mLastCallerInfoManager	记录最后调用 Wi-Fi 接口的应用信息。
mWifiDialogManager	管理 Wi-Fi 相关的对话框和提示。
mBuildProperties	存储构建相关的属性信息。
mDefaultClientModeManager	管理默认的客户端模式。
mCountryCodeTracker	跟踪国家代码的变化。
mWifiTetheringDisallowed	标记是否禁止 Wi-Fi 网络共享。
mMultiInternetManager	管理多网络连接的策略。
mDeviceConfigFacade	访问设备配置的接口。
mFeatureFlags	管理功能开关的标志位。
mApplicationQosPolicyRequestHandler	处理应用的 QoS 策略请求。
mWifiPulledAtomLogger	记录 Wi-Fi 的统计数据。
mAfcManager	管理 AFC(自动频率控制)功能。
mTwtManager	管理 TWT(目标唤醒时间)功能。
mWepNetworkUsageController	控制 WEP 网络的使用。🔧 mIfaceMgr 的作用
mIfaceMgr 是 WifiVendorHal 类中的成员变量,全称为 InterfaceManager。​它主要负责管理 Wi-Fi 接口的生命周期,包括创建、删除和查询接口等操作。​主要职责:
接口创建与删除:​通过调用底层 HAL 接口,创建或删除 Wi-Fi 接口(如 STAAP)。
接口信息管理:​维护当前系统中所有 Wi-Fi 接口的信息,供上层查询和使用。
接口状态监听:​监听接口状态的变化,及时通知上层组件进行相应处理。

一、setWifiEnabled 方法概述
setWifiEnabled(String packageName, boolean enable) 是 Android 系统提供的用于启用或禁用 Wi-Fi 的接口。​该方法首先进行一系列权限和状态检查,确保调用者有权进行此操作,并且当前系统状态允许 Wi-Fi 状态的更改。
二、权限和状态检查流程

  1. 权限验证:
    调用 enforceChangePermission(packageName) 检查调用者是否具有修改 Wi-Fi 状态的权限。
    通过 isPrivileged 判断调用者是否为系统应用或具有特权的应用。​
  2. 第三方应用限制:
    对于非特权的第三方应用,若其目标 SDK 版本高于 Android Q(API 29),则禁止其更改 Wi-Fi 状态。​
  3. 飞行模式限制:
    在飞行模式下,仅允许特权应用更改 Wi-Fi 状态。​
  4. 热点模式限制:
    当设备处于热点(SoftAp)模式时,仅允许特权应用更改 Wi-Fi 状态。​
  5. 用户限制:
    若用户设置了禁止更改 Wi-Fi 状态的限制,且调用者不是设备所有者(DO)或配置文件所有者(PO),则禁止更改 Wi-Fi 状态。​
  6. 用户确认对话框:
    对于目标 SDK 版本低于 Android Q 的第三方应用,系统可能会弹出用户确认对话框,询问用户是否允许该应用更改 Wi-Fi 状态。
    三、打开的调用栈为
    ActiveModeWarden -> ConcreteClientModeManager-> mWifiNative-> HalDeviceManager-> WifiHal

HalDeviceManager:Handles device management through the HAL interface. 很明显
WifiNative: Native calls for bring up/shut down of the supplicant daemon and for sending requests to the supplicant daemon
在WifiNative中的setupInterfaceForClientInScanMode:为客户端模式(用于扫描)操作设置界面,此方法在本机守护程序(wificond,供应商 HAL)中以 STA 模式配置接口。最后就掉到了hal那边,如下图:
在这里插入图片描述
Wi-Fi HAL(libwpa_client.so):
socket通信中的client端程序;作为Client端与wpa_supplicant这个Server端进行通信。

wpa_supplicant:
无线STA端的一个解决方案;它实现了WPA/WPA2的密钥协商以及802.1X认证,并控制WLAN Driver的认证,关联以及漫游等。

hostapd:
无线AP端的一个解决方案;

相关文章:

Android WIFI体系

先说说WifiLock、MulticastLock 、IWificond WifiLock 允许应用强制保持 WiFi 活跃,即便设备处于休眠状态。如WIFI_MODE_FULL_HIGH_PERF:保持高性能 WiFi 活跃状态,适用于高带宽需求,如视频通话、流媒体。经测试有的场景能减少10…...

什么是静态住宅ip,跨境电商为什么要用静态住宅ip

在数字时代,IP地址不仅是设备联网的“ID”,更是跨境电商运营中的关键工具。尤其对于需要长期稳定、安全操作的场景,静态住宅IP逐渐成为行业首选。 一、什么是静态住宅IP? 静态住宅IP(Static Residential IP&#xff0…...

常见位运算总结

目录 常见位运算总结 191:位1的个数 338:比特位计数 461:汉明距离 136:只出现一次的数字 260:只出现一次的数字III 常见位运算总结 191:位1的个数 链接:191. 位1的个数 - 力扣(LeetCode) class Sol…...

[密码学实战]SDF之对称运算类函数(四)

[密码学实战]SDF之对称运算类函数(四) 一、标准解读:GM/T 0018-2023核心要求 1.1 SDF接口定位 安全边界:硬件密码设备与应用系统间的标准交互层 功能范畴: #mermaid-svg-1jptduZFNFiRZ2lS {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16…...

【C++编程入门】:基本语法

上一篇提到了C关键字和缺省参数以及命名空间域,这篇继续分享C入门语法,把基本语法掌握扎实后面学习更才能更轻松一些。 目录 引用 引用的特性 常引用 内联函数 auto关键字 引用 引用不是新定义一个变量,而是给已存在变量取了一个别名&am…...

区块链最佳框架:Truffle vs Hardhat vs Brownie

区块链技术的快速发展使得智能合约开发成为主流,而选择合适的开发框架是提升效率的关键。目前,Truffle、Hardhat和Brownie是三大主流框架,它们各有特点,适用于不同的开发场景和开发者偏好。本文将从功能、生态系统、适用人群等角度…...

Apache Flink的架构设计与运行流程说明

在大数据领域,实时计算的重要性随着业务需求的爆发式增长愈发凸显。从电商的实时销量监控到金融的高频交易风控,从物联网设备的实时告警到社交平台的热点追踪,企业对“秒级甚至毫秒级”数据处理能力的需求已成为刚需。在众多实时计算框架中&a…...

AI+零售:智能推荐、无人店与供应链管理的未来

AI零售:智能推荐、无人店与供应链管理的未来 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 AI零售:智能推荐、无人店与供应链管理的未来摘要引言一、智能推荐系统:从流量收割到用…...

华为云IoT平台与MicroPython实战:从MQTT协议到物联网设备开发

目录 前言 1. 华为云 1.1. 创建实例 1.2. 创建产品 1.3. 编辑服务模型 1.4. 注册设备 1.4.1. 复制设备连接参数 1.5. 连接参考代码 2. micropython版-物联网 2.1. 环境搭建 2.2. 实现步骤 2.3. 示例代码 结语 前言 物联网(IoT)技术的快速发…...

【Linux】Linux内核模块开发

Linux内核模块开发 零、关于 1、概述 最近在学习Linux相关的东西,学习了U-Boot的编译,Linux的编译,能够在开发板上运行自己编译的U-Boot和Linux了,那么接下来就是在自己编译的Linux上做应用级或者系统级的开发了。本文以字符设…...

linux 下查看指定进程的内存CPU占用情况(用于程序崩溃类的排查)

在程序开发过程中,如果程序较为庞大,逻辑较为复杂时,容易出现运行时崩溃的问题。导致的原因有很多,我这里只对较为通用的内容占用情况作记录,如程序中对文件描述符打开未关闭(导致fd积攒过多超过了系统的标…...

ASP.NET MVC​ 入门指南五

26. 响应式设计与移动开发 26.1 响应式视图设计 为了使 MVC 应用程序在不同设备上都能提供良好的用户体验,需要采用响应式设计。可以使用 CSS 框架如 Bootstrap 来实现响应式布局。 引入 Bootstrap:在项目中引入 Bootstrap 的 CSS 和 JavaScript 文件。…...

字节跳动社招面经 —— BSP驱动工程师(4)

接前一篇文章:字节跳动社招面经 —— BSP驱动工程师(3) 本文内容参考: 嵌入式硬件平台修改启动地址-CSDN博客 特此致谢! 上一回开始针对于“嵌入式充电站”发的一篇文章字节跳动社招面经——BSP驱动工程师中的面试题…...

Spring MVC中自定义日期类型格式转换器

在Spring MVC中,自定义日期类型格式转换器可以通过实现Converter接口或使用DateTimeFormat注解。以下是两种方法的详细说明: 方法一:全局自定义转换器(推荐) 1. 创建日期转换器类 实现 org.springframework.core.con…...

【3D 地图】无人机测绘制作 3D 地图流程 ( 无人机采集数据 | 地图原始数据处理原理 | 数据处理软件 | 无人机测绘完整解决方案 )

文章目录 一、无人机采集数据1、多角度影像数据2、定位与姿态数据 二、无人机采集数据处理原理1、空三解算2、密集点云生成与三维重建3、地形与正射影像生成4、三维模型优化与瓦片化 三、无人机影像处理软件介绍 一、无人机采集数据 无人机原始数据采集 : 多角度影像数据 : 多…...

arduino Nano介绍

【仅供学习,具体参数参考官网或销售商】 Arduino Nano 是一款基于 ATmega328P 微控制器(或 ATmega168 旧版)的紧凑型开发板,专为嵌入式项目和原型设计而设计。 以下是Arduino Nano V3.0 328P详细介绍: 主要特性 微…...

解决 Flutter 在 iOS 真机上构建失败的问题

在开发 Flutter 应用时,有时会在尝试将应用部署到 iOS 真机时遇到构建失败的问题。错误信息通常类似于以下内容: Could not build the precompiled application for the device. Uncategorized (Xcode): Timed out waiting for all destinations matchi…...

【办公类-89-03】20250429AI写的研讨记录,清除格式,统一格式,名字替换。部分加粗,添加页眉

背景需求: 检查自即,需要AI一下院内的五次科研培训记录。 本次用了豆包 豆包写的不错,也是“水字数”的高手 把每次培训内容贴到WORD里 把AI资料贴到WORD里,发现问题: 1、字体、段落什么都是不统一的,需要统一改成宋体小四,1.5倍行距 2、十个研讨人也要改成真人。就找…...

react-native 安卓APK打包流程

一、使用keytool命令生成一个签名密钥 $ keytool -genkeypair -v -storetype PKCS12 -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 在 Windows 上keytool命令放在 JDK 的 bin 目录中(比如C:\Program Files\…...

Android Studio中OpenCV应用详解:图像处理、颜色对比与OCR识别

文章目录 一、OpenCV在Android中的集成与配置1.1 OpenCV简介1.2 在Android Studio中集成OpenCV1.2.1 通过Gradle依赖集成1.2.2 通过模块方式集成1.2.3 初始化OpenCV 1.3 OpenCV基础类介绍 二、指定区域图像抓取与对比2.1 图像抓取基础2.2 指定区域图像抓取实现2.2.1 从Bitmap中…...

企业办公协同平台安全一体化生态入住技术架构与接口标准分析报告

全球组织数字化与智能化背景下 企业办公协同平台安全一体化生态入住技术架构与接口标准分析报告 一、背景与市场需求 市场规模与增量 根据Statista数据,全球协同办公平台市场规模预计从2023年的$480亿增长至2027年的$900亿,年复合增长率(CAG…...

从零搭建体育比分网站:技术选型与API调用实战(附完整源码)

一、前言:为什么选择体育比分项目? 体育数据网站是练手全栈开发的绝佳项目,涉及: ✅ 前端(实时数据渲染、可视化图表) ✅ 后端(API对接、数据缓存、高并发优化) ✅ 数据库&#xff…...

非凸科技受邀出席AI SPARK活动,共探生成式AI驱动金融新生态

4月19日,由AI SPARK社区主办的“生成式AI创新与应用构建”主题沙龙在北京举行。活动聚焦生成式AI的技术突破与产业融合,围绕大模型优化、多模态应用、存内计算等前沿议题展开深度探讨。非凸科技受邀出席并发表主题演讲,深入解析金融垂直大模型…...

深入蜂窝物联网 第五章 EC-GSM-IoT 及其他技术:混合组网与前瞻

1. 前言与应用场景 在一些地区,GSM 网络仍然大面积覆盖且运营成本低廉,运营商可通过 EC-GSM-IoT(Extended Coverage GSM for IoT)在现有GSM基站上升级,实现物联网互联。同时,为了满足不同场景的需求,常常需要与 NB-IoT、LTE-M、5G RedCap 等技术混合组网,形成多层次、…...

2025年深圳软件开发公司推荐

随着移动互联网的深度发展,软件开发已成为企业实现数字化转型的重要途径。作为中国科技创新中心的深圳,汇聚了众多技术实力雄厚的软件开发企业。本文将为您精选推荐6家在深圳表现突出的软件开发服务商,帮助企业找到合适的数字化转型合作伙伴。…...

仿腾讯会议——注册登录UI

1、加载素材 2、新添加资源类 3、加载图片 4、添加左侧图片 在左侧添加一个标签 选择图片 选择图片 勾选保证图片不变形 5、修改组件名称 6、设置密码输入框 5、切换 6、编辑提示框 7、定义提交和清空的槽函数 8、设置页面标题和最先显示页面 9、清空登录信息函数实现 10、清空…...

香港科技大学广州|可持续能源与环境学域博士招生宣讲会—四川大学专场

香港科技大学广州|可持续能源与环境学域博士招生宣讲会—四川大学专场 时间:2025年5月8日(星期四)16:30开始 地点:四川大学基础教学楼A座504 宣讲嘉宾:肖殿勋 助理教授 一经录取,享全额奖学金…...

设计模式(工厂模式)

工厂设计模式:打造你的代码生产线 引言 想象一下,你正站在一家现代化的玩具工厂门前。工厂内部,各种机器有条不紊地运转,原材料在传送带上流动,最终变成精美的玩具。你不需要了解每个玩具的具体制作工艺,…...

本地大模型编程实战(29)查询图数据库NEO4J(2)

上一篇文章 用大语言模型LLM查询图数据库NEO4J(1) 介绍了使用GraphQACypherChain查询NEO4J。用它实现简单快捷,但是不容易定制,在生产环境中可能会面临挑战。 本文将基于langgraph 框架,用LLM(大语言模型)查询图数据库NEO4J。它可以定义清晰复…...

Python爬虫(10)Python数据存储实战:基于pymongo的MongoDB开发深度指南

目录 一、为什么需要文档型数据库?1.1 数据存储的范式变革1.2 pymongo的核心优势 二、pymongo核心操作全解析2.1 环境准备2.2 数据库连接与CRUD操作2.3 聚合管道实战2.4 分批次插入百万级数据(进阶)2.5 分批次插入百万级数据(进阶…...

从遍历序列构造二叉树:前序+中序与中序+后序的递归解法详解

文章目录 1. 问题背景2. 核心思路3. 从前序与中序遍历序列构造二叉树3.1 递归分治思路3.2 代码实现与注释 4. 从中序与后序遍历序列构造二叉树4.1 递归分治思路4.2 代码实现与注释 5. 复杂度分析6. 总结 1. 问题背景 二叉树的遍历方式包括前序(根-左-右&#xff09…...

数据挖掘专栏介绍:用 Python + 大语言模型 (LLM) 重塑电商数据价值

写在前面 —— 不止于挖掘,更要智能涌现:用 Python + 大语言模型 (LLM) 重塑电商数据价值 或许你已经跟随我们之前的 “零基础上手Python数据分析” 专栏,掌握了 Pandas 的数据操纵、Matplotlib/Seaborn 的可视化呈现,甚至对传统的数据挖掘技术如聚类、分类、回归有了初步…...

CSS Transition入门指南

CSS Transition 完全指南 目录 Transition 的作用核心属性代码示例使用场景性能优化常见问题思维导图 1. Transition 的作用 CSS Transition 用于在 属性值变化时 创建平滑的过渡效果。例如: 鼠标悬停时按钮放大元素颜色渐变切换位置移动的缓动效果 2. 核心属性…...

Nginx 核心功能

目录 一、基于授权的访问控制 (1)使用htpasswd 生成用户认证文件 (2)修改密码文件权限为400,将所有者改为nginx ,设置 Nginx 的运行用户能够读取 (3)修改主配置文件 nginx.conf&…...

排序版研究方向

姓 名研究方向电子邮箱办公电话办公地点曹培根代数cao2024ustc.edu.cn 新楼412陈洪佳代数hjchenustc.edu.cn0551-636076931529陈小伍代数xwchenmail.ustc.edu.cn0551-636062351321梁永祺代数yqliangustc.edu.cn0551-636006171613欧阳毅代数yiouyangustc.edu.cn0551-63600337…...

AI国学智慧语录视频,条条视频10W+播放量

家人们!图书类带货玩法真的非常多,之前也分享过蛮多,例如情感语录、育儿教育、爆款图书金句类、AI历史人物解说类等等。 本期继续来分享一个对于普通人来说,上手相当简单,容易起号,可作为长线深耕的AI带货…...

RN 获取视频封面,获取视频第一帧

严格的说,没有解决这个问题,实际上是绕过了这个问题,严格的说获取的也不是第一帧。 RN的video 视频应用,大多是这样的 1、安装 yarn add react-native-video 2、导入 import Video from react-native-video; 3、使用 …...

缓存分片哈希 vs 一致性哈希:优缺点、区别对比及适用场景(图示版)

📜 引言 在分布式缓存系统中,数据分布策略是设计的关键之一。缓存分片哈希和一致性哈希是两种常见的数据分布算法,它们各有优缺点和适用场景。本文将通过图示对比表格,深入解析这两种算法的核心原理、优缺点及适用场景。 &#x…...

iOS - 音频: Core Audio - 播放

环境 iOS 18 Xcode 16.3 swift-driver version: 1.120.5 Apple Swift version 6.1 (swiftlang-6.1.0.110.21 clang-1700.0.13.3) Target: x86_64-apple-macosx15.0 Core Audio 的架构 声音数据的描述 sample: 一个声道采样的值,采样率定义了每秒从连续信号中提取并组成离散信号…...

Nerfstudio 环境配置与自有数据集(图片和视频)测试全方位全流程实战【2025最新版!!】

一、引言 神经辐射场(Neural Radiance Fields,简称NeRF)是近年来计算机视觉和图形学领域的一项革命性技术,它能够从2D图像中学习复杂的3D场景表示。然而,NeRF技术的实现和应用门槛较高,需要较为专业的计算机视觉和深度学习知识。…...

【Java学习】动态代理有哪些形式?

Java动态代理的两种主要形式 动态代理在Java中有两种主要的实现方式,它们各有特点和使用场景: 1. JDK动态代理 (基于接口) 特点: Java标准库自带的功能(java.lang.reflect.Proxy)只能代理接口,不能代理…...

Android Studio 中实现方法和参数显示一行

Android Studio 中实现方法和参数显示一行,可通过以下步骤配置: 一、基础格式化设置 ‌快捷键格式化‌ 选中代码后使用 Ctrl Alt L(Windows/Linux)或 Cmd Option L(Mac)进行快速格式化27。 ‌菜单操作…...

SQLyog中DELIMITER执行存储过程时出现的前置缩进问题

在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为。以下是详细解释和解决方案: 问题根源 SQLyog的语句分隔逻辑: SQLyog默认会根据分号(;)和换行自动分隔SQL语句 当代码有缩进时,SQLy…...

基于Spring Boot 3.0、ShardingSphere、PostgreSQL或达梦数据库的分库分表

要实现基于Spring Boot 3.0、ShardingSphere、PostgreSQL或达梦数据库的分库分表,首先需要对ShardingSphere进行一些基本配置。你提到的溯源码、批次号等数据需要考虑到跨年数据的存储,因此要设计一个能够动态扩展的分表策略 添加ShardingSphere依赖 在…...

vscode chrome调试怎么在所有浏览器都好使

chrome调试时只能在打开的浏览器里进行调试,其它打开的chrome浏览器就不能调试了,怎么解决。 右键点击 Chrome 的快捷方式图标,选择属性 在目标一栏,最后加上--remote-debugging-port9222 注意要用空格隔开 lanch.json 文件配置 …...

20250429在Ubuntu 20.04.6下安装VMware Workstation16

20250429在Ubuntu 20.04.6下安装VMware Workstation16 2025/4/29 20:16 缘起:1、在ubuntu14.04下git clone异常该如何处理呢? 2、请问 现在 编译NanoPi NEO的FriendlyCore系统使用ubuntu哪一个版本比较好? ubuntu14.04 编译异常/下载不了&am…...

Java高频面试之并发编程-10

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:ThreadLocalMap 怎么解决 Hash 冲突的? ThreadLocalMap 是 ThreadLocal 的核心实现,它采用 开放…...

【Tauri2】035——sql和sqlx

前言 这篇就来看看插件sql SQL | Taurihttps://tauri.app/plugin/sql/ 正文 准备 添加依赖 tauri-plugin-sql {version "2.2.0",features ["sqlite"]} features可以是mysql、sqlite、postsql 进去features看看 sqlite ["sqlx/sqlite&quo…...

C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 16)

🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录 […...

VScode与远端服务器SSH链接

这里写自定义目录标题 简介步骤 简介 这里是使用密钥文件链接 步骤 首先在windows CMD中运行 ssh-keygen -t rsa,生成本机的公钥和私钥 这里id rsa.pub就是公钥,在服务器端使用,id rsa是私钥在用户端使用;通常目录在C:/Users/Your name/…...