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

Android 下拉栏中的禁用摄像头和麦克风隐藏

Android 下拉栏中的禁用摄像头和麦克风隐藏

文章目录

  • Android 下拉栏中的禁用摄像头和麦克风隐藏
    • 一、前言
    • 二、下拉框中的禁用摄像头和麦克风隐藏实现
      • 1、设置支持属性为false
      • 2、修改代码
    • 三、其他
      • 1、下拉栏中的禁用摄像头和麦克风隐藏小结
      • 2、 Android SensorPrivacyService
  • ps: 成功最重要的原因是明确的目标、不懈的努力与适应变化的能力三者相结合。

一、前言

Android下拉栏中有摄像头和麦克风禁用功能;

但是点击禁用后会有些bug,比方多视窗异常,信源声音异常等问题;

所以目前做法是直接隐藏掉禁用功能,算是规避手段了,

出现问题就不问题删除,哈哈,当然如果有能力和时间去解决这个问题是更好的;

市场上大部分手机上应该是解决了这些问题的,也可能是在某些场景进行了优化;

我这里开发的是大屏设备,没有手机那么多顾虑和要求所以隐藏UI是目前最好的做法。

如果你也有隐藏下拉栏UI或者简单修改下拉框UI的需要可以看看本文。

Android 系统下拉栏的主要代码的目录:

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar

StatusBar.java 是状态栏和下拉通知栏的核心类,负责管理通知栏的显示、隐藏、滑动等逻辑;

NotificationPanelView.java 用于处理通知栏的布局和绘制等。

本文不涉及复杂逻辑的修改,只是隐藏图标,并且系统中大部分图标都是有res属性可以控制是否隐藏的;

但是3588 Android15 中设置这个属性未生效,后面在代码中直接进行了修改。

二、下拉框中的禁用摄像头和麦克风隐藏实现

1、设置支持属性为false

+++ frameworks/base/core/res/res/values/config.xml
@@ -127,9 +127,9 @@<bool name="config_supportPreRebootSecurityLogs">true</bool><!-- Whether this device is supporting the software microphone toggle -->
-    <bool name="config_supportsMicToggle">true</bool>
+    <bool name="config_supportsMicToggle">false</bool><!-- Whether this device is supporting the camera toggle -->
-    <bool name="config_supportsCamToggle">true</bool>
+    <bool name="config_supportsCamToggle">false</bool>

正常情况修改framework 中的config属性为false就行了;

但是也有些系统方案存在overlay覆盖的情况;一般是vendor 或者device 目录会有

比如RK3588 中的overlay目录:

device/rockchip/common/overlay/frameworks/base/core/res/res/values/config.xml

之前在Android13 的这个目录修改是生效的,但是在Android15 上修改就不行了;

搜索整个源码目录的 config_supportsMicToggle 关键字,能修改的几个都修改了,也是没有起作用;

所以需要看看代码是哪里获取的尝试确认并修改。

2、修改代码

frameworks/base/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.java
@@ -1289,13 +1289,16 
@@ public final class SensorPrivacyService extends SystemService {@Overridepublic boolean supportsSensorToggle(int toggleType, int sensor) {
+            //change by skg
+            Log.d(TAG,"lwz supportsSensorToggle toggleType = " + toggleType + ", sensor = " + sensor);
+
+            Log.d(TAG,"lwz supportsSensorToggle config_supportsMicToggle = " + mContext.getResources().getBoolean(R.bool.config_supportsMicToggle) +
+            ", config_supportsCamToggle = " + mContext.getResources().getBoolean(R.bool.config_supportsCamToggle));if (toggleType == TOGGLE_TYPE_SOFTWARE) {if (sensor == MICROPHONE) {
-                    return mContext.getResources().getBoolean(R.bool.config_supportsMicToggle);
+                    return false;//mContext.getResources().getBoolean(R.bool.config_supportsMicToggle);} else if (sensor == CAMERA) {
-                    return mContext.getResources().getBoolean(R.bool.config_supportsCamToggle);
+                    return false;//mContext.getResources().getBoolean(R.bool.config_supportsCamToggle);}} else if (toggleType == TOGGLE_TYPE_HARDWARE) {if (sensor == MICROPHONE) {

从代码看可以看到是否支持确实是从res属性中进行获取和判断;

上面强制返回了false,表示不支持;

并且从打印日志查看,虽然res属性设置了false,但是打印的日志还是获取到显示true;

难道存在有打包的gms overlayapk会进行属性覆盖?暂时不确定。

三、其他

1、下拉栏中的禁用摄像头和麦克风隐藏小结

正常情况设置framework config属性就行:

<bool name="config_supportsMicToggle">false</bool>
<bool name="config_supportsCamToggle">false</bool>

也有可能存在overlay的情况,需要修overlay的属性。

如果修改config资源无效,可以尝试修改Java文件:

frameworks/base/services/core/java/com/android/server/sensorprivacy/SensorPrivacyService.javapublic boolean supportsSensorToggle(int toggleType, int sensor) {return false;}

SensorPrivacyService 只控制隐私的摄像头和麦克风,下拉栏的其他属性不在这里控制。

2、 Android SensorPrivacyService

Android SensorPrivacyService 是 Android 系统中负责传感器隐私管理的服务,其主要作用如下:

**保护用户隐私**:它通过限制应用对传感器数据的访问,来防止应用在用户不知情的情况下获取敏感信息,从而保护用户的隐私。
例如,在用户未授权时,阻止应用访问位置传感器、摄像头、麦克风等传感器,避免位置信息、图像、语音等数据被泄露。

简单的说SensorPrivacyService 就是一个系统服务,开机回初始化,会控制和监听摄像头和麦克风的是否使用授权;

这个SensorPrivacyService的代码不多只有一千多行;里面还有两个Settings属性的监听:

Settings.Secure.DEFAULT_INPUT_METHOD 在 Android 系统的输入法管理中起着关键的作用,它是连接用户设置、系统输入法切换以及应用与输入法交互的重要纽带。Settings.Global.RECEIVE_EXPLICIT_USER_INTERACTION_AUDIO_ENABLED 是 Android 系统设置中的一个全局属性,用于控制是否允许应用在接收到明确的用户交互后播放音频。

ps: 成功最重要的原因是明确的目标、不懈的努力与适应变化的能力三者相结合。

相关文章:

Android 下拉栏中的禁用摄像头和麦克风隐藏

Android 下拉栏中的禁用摄像头和麦克风隐藏 文章目录 Android 下拉栏中的禁用摄像头和麦克风隐藏一、前言二、下拉框中的禁用摄像头和麦克风隐藏实现1、设置支持属性为false2、修改代码 三、其他1、下拉栏中的禁用摄像头和麦克风隐藏小结2、 Android SensorPrivacyService ps&a…...

阿里云Clickhouse 冷热数据分层存储 实战记录

一、 背景 某业务Clickhouse库月数据增长超过2.5T&#xff0c;云上Clickhouse容量并不是无限的&#xff0c;单节点有32T上限&#xff0c;而业务已使用一半以上&#xff0c;依此速度&#xff0c;半年内就将达到上限。 与业务讨论&#xff0c;大致有以下几种解决思路&#xff1a;…...

ARINC818-实现

1.编码和解码&#xff1b;分隔符插入和删除&#xff1b;空闲idle字符插入 2.视频TX和RX接口&#xff1a;可以设计为流传输和帧同步传输 3.传输媒介&#xff1a;光纤或者铜缆 4.链路支持fc 1x,2x,3x,5x,6x,8x 上图中N有限制&#xff0c;N不能允许ADVB帧负载和填充长度不超过2112…...

OpenStack Yoga版安装笔记(23)Swift安装

一、官方文档 Object Storage Install Guide — Swift 2.29.3.dev5 documentation 二、环境准备 之前的实验&#xff0c;已经有controller, compute1, block1节点&#xff0c;并已经完成Keystone、Glance、Nova、Neutron、Cinder等主要OpenStack Service的安装。 此处新增…...

MySql 三大日志(redolog、undolog、binlog)详解

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/aa730ab3f84049638f6c9a785e6e51e9.png 1. redo log&#xff1a;“你他妈别丢数据啊&#xff01;” 干啥的&#xff1f; 这货是InnoDB的“紧急备忘录”。比如你改了一条数据&#xff0c;MySQL怕自己突然断电嗝屁了&am…...

算法题(128):费解的开关

审题&#xff1a; 本题需要我们将多组测试用例中拉灯数小于等于6的最小拉灯数输出&#xff0c;若拉灯数最小值仍大于6&#xff0c;则输出-1 思路&#xff1a; 方法一&#xff1a;二进制枚举 首先我们先分析一下基本特性&#xff1a; 1.所有的灯不可能重复拉&#xff1a;若拉的数…...

2025.04.19-阿里淘天春招算法岗笔试-第三题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 数值平衡之道 问题描述 LYA 是一位精通树形数据结构的数学家,她有一棵包含 n n n...

单片机毕业设计选题物联网计算机电气电子类

题目一&#xff1a;基于单片机的PM2.5空气质量检测仪器 选 1.用到ADC0832模数转换芯片&#xff0c;数据更加精准。 2.使用夏普传感器的GP2Y1010AUOF粉尘传感器实时检测空气中的PM2.5值并通过1602显示出来&#xff0c;检测准确。 3.LCD1602液晶第一行 前面显示测到的PM2.5…...

TDOA解算——牛顿迭代法|以4个基站的三维空间下TDOA定位为背景,使用牛顿迭代法解算。附完整代码,订阅专栏后可复制粘贴

本问所介绍的代码通过TDOA(到达时间差)方法,结合牛顿迭代算法,实现了三维空间内目标位置的定位。系统包含1个主锚点和3个副锚点,通过测量信号到达各基站的时间差计算距离差,最终迭代求解目标坐标。订阅专栏后可以获得完整的MATLAB代码,粘贴到空脚本中即可运行 文章目录 …...

海量聊天数据处理:基于Spring Boot与SharingJDBC的分库分表策略及ClickHouse冷热数据分离

引言 随着互联网应用的快速发展&#xff0c;每天产生的聊天记录数量级已经达到了惊人的程度。以2000万条/天为例&#xff0c;一年下来就是大约7.3亿条记录。如此庞大的数据量给数据库的设计和管理带来了前所未有的挑战。本文将探讨如何使用SharingJDBC整合Spring Boot技术来实…...

网络开发基础(游戏)之 Socket API

Socket简介 Socket (套接字)是网络编程的基础&#xff0c;在 C# 中通过 System.Net.Sockets 命名空间提供了一套完整的 API 来实现网络通信。 网络上的两个程序通过一个双向的通信连接实现数据交换&#xff0c; 这个连接的一端称为一个Socket。 一个Socket包含了进行网络通信必…...

在 Amazon Graviton 上运行大语言模型:CPU 推理性能实测与调优指南

引言 在生成式 AI 浪潮中&#xff0c;GPU 常被视为大模型推理的唯一选择。然而&#xff0c;随着 ARM 架构的崛起和量化技术的成熟&#xff0c;CPU 推理的性价比逐渐凸显。本文基于 Amazon Graviton 系列实例与 llama.cpp 工具链&#xff0c;实测了 Llama 3、DeepSeek 等模型的…...

基于尚硅谷FreeRTOS视频笔记——15—系统配制文件说明与数据规范

目录 配置函数 INCLUDE函数 config函数 数据类型 命名规范 函数与宏 配置函数 官网上可以查找 最核心的就是 config和INCLUDE INCLUDE函数 这些就是裁剪的函数 它们使用一个ifndef。如果定义了&#xff0c;就如果定义了这个宏定义&#xff0c;那么代码就生效。 通过ifn…...

Nacos 使用了什么日志框架?如何配置和查看日志?

Nacos 使用的日志框架 Nacos 主要使用 SLF4j (Simple Logging Facade for Java) 作为日志门面&#xff08;API&#xff09;&#xff0c;并选择 Logback 作为其底层的日志实现。 SLF4j: 这是一个日志抽象层&#xff0c;允许开发者在代码中使用统一的接口进行日志记录&#xff…...

【基于Fluent+Python耦合的热管理数字孪生系统开发:新能源产品开发的硬核技术实践】

引言&#xff1a;热管理数字孪生的技术革命 在新能源领域&#xff08;如动力电池、储能系统、光伏逆变器等&#xff09;&#xff0c;热管理是决定产品性能与安全的核心问题。传统热设计依赖实验与仿真割裂的流程&#xff0c;而数字孪生技术通过实时数据驱动与动态建模&#xf…...

【工具变量】A股上市公司信息披露质量KV指数测算数据集(含do代码 1991-2024年)

KV指数&#xff08;Key Value Index&#xff09;作为评估信息披露质量的关键指标&#xff0c;在证券市场&#xff0c;尤其是A股市场上市公司信息披露监管与评估中占据重要地位。该指数通过系统化、定量化的方法&#xff0c;对企业发布的信息进行全面剖析与打分&#xff0c;精准…...

【ELF2学习板】利用OpenMP采用多核并行技术提升FFTW的性能

目录 引言 OpenMP简介 编译OpenMP支持的FFTW库 部署与测试 测试程序 程序部署 测试结果 结语 引言 在前面已经介绍了在ELF2开发板上运行FFTW计算FFT。今天尝试利用RK3588的多核运算能力来加速FFT运算。FFTW利用多核能力可以考虑使用多线程或者OpenMP。今天介绍一下Ope…...

打靶日记 zico2: 1

一、探测靶机IP&#xff08;进行信息收集&#xff09; 主机发现 arp-scan -lnmap -sS -sV -T5 -p- 192.168.10.20 -A二、进行目录枚举 发现dbadmin目录下有个test_db.php 进入后发现是一个登录界面&#xff0c;尝试弱口令&#xff0c;结果是admin&#xff0c;一试就出 得到加…...

【技术派后端篇】 Redis 实现用户活跃度排行榜

在各类互联网应用中&#xff0c;排行榜是一个常见的功能需求&#xff0c;它能够直观地展示用户的表现或贡献情况&#xff0c;提升用户的参与感和竞争意识。在技术派项目中&#xff0c;也引入了用户活跃度排行榜&#xff0c;该排行榜主要基于 Redis 的 ZSET 数据结构来实现。接下…...

MySql Innodb详细解读

参考文档&#xff1a;https://www.cnblogs.com/acatsmiling/p/18424729 一、数据存储&#xff1a;从磁盘到内存的"黑帮走私" 1. 物理结构&#xff1a;表空间与页的江湖规矩 表空间&#xff08;Tablespace&#xff09;&#xff1a; 所有InnoDB数据存在表空间里&…...

每日两道leetcode

399. 除法求值 - 力扣&#xff08;LeetCode&#xff09; 题目 给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件&#xff0c;其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 …...

在RK3588上使用哪个流媒体服务器合适

在RK3588平台上选择合适的流媒体服务器时&#xff0c;需考虑其ARM Cortex-A76/A55架构、硬件编解码能力&#xff08;如支持H.264/H.265/AV1解码&#xff09;以及Linux/Android系统支持。以下是推荐的方案&#xff1a; 1. 轻量级方案&#xff1a;GStreamer RTSP 适用场景&…...

分享一个DeepSeek+自建知识库实现人工智能,智能回答高级用法。

这个是我自己搞的DeepSeek大模型自建知识库相结合到一起实现了更强大的回答问题能力还有智能资源推荐等功能。如果感兴趣的小伙伴可以联系进行聊聊&#xff0c;这个成品已经有了实现了&#xff0c;所以可以融入到你的项目&#xff0c;或者毕设什么的还可以去参加比赛等等。 1.项…...

PyTorch 深度学习实战(38):注意力机制全面解析(从Seq2Seq到Transformer)

在上一篇文章中&#xff0c;我们探讨了分布式训练实战。本文将深入解析注意力机制的完整发展历程&#xff0c;从最初的Seq2Seq模型到革命性的Transformer架构。我们将使用PyTorch实现2个关键阶段的注意力机制变体&#xff0c;并在机器翻译任务上进行对比实验。 一、注意力机制演…...

Android Studio 获取配置资源与第三方包信息详解

文章目录 Android Studio 获取配置资源与第三方包信息详解一、获取资源文件中的配置1. 获取颜色值Java 中获取&#xff1a;Kotlin 中获取&#xff1a; 2. 获取字符串Java 中获取&#xff1a;Kotlin 中获取&#xff1a; 3. 获取尺寸值Java 中获取&#xff1a;Kotlin 中获取&…...

【网络初识】从零开始彻底了解网络编程(一)

本篇博客给大家带来的是网络的知识点. &#x1f40e;文章专栏: JavaEE初阶 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅&#x1f680; 要开心要快乐顺便进步 一. 网络…...

Vivado比特流生成、下载及板级验证操作步骤

1. 前期准备 安装Vivado软件&#xff1a;确保Vivado开发环境已正确安装并配置。创建工程&#xff1a; 打开Vivado&#xff0c;点击“Create Project”新建工程。设置工程名称&#xff08;例如“led_flow”&#xff09;和路径。选择目标FPGA型号&#xff08;例如XC7A35TFFG484&…...

【Flutter DevTools】性能优化的瑞士军刀

一、性能分析&#xff1a;帧率与资源监控 1.1 帧率监控&#xff08;Performance面板&#xff09; 通过Performance面板可实时捕获应用的渲染流水线数据。开发者点击"Record"按钮后&#xff0c;DevTools会以时间轴形式展示每一帧的构建、布局、绘制耗时。当帧率低于…...

使用Redis实现实时排行榜

为了实现一个实时排行榜系统&#xff0c;我们可以使用Redis的有序集合&#xff08;ZSet&#xff09;&#xff0c;其底层通常是使用跳跃表实现的。有序集合允许我们按照分数&#xff08;score&#xff09;对成员&#xff08;member&#xff09;进行排序&#xff0c;因此非常适合…...

HTML5 应用程序缓存:原理、实践与演进

在 Web 技术的发展历程中&#xff0c;HTML5 引入的应用程序缓存&#xff08;Application Cache&#xff09;曾是提升 Web 应用离线体验的重要技术。它允许 Web 应用进行缓存&#xff0c;使用户在没有因特网连接时也能访问应用&#xff0c;为 Web 应用带来了显著的优势。然而&am…...

Compose笔记(十七)--AsyncImage

这一节了解一下Compose中的AsyncImage的使用&#xff0c;AsyncImage是由 Coil库提供的一个用于异步加载图片的组件。它支持加载网络图片、本地图片资源&#xff0c;并提供了占位符、错误处理、过渡动画等功能&#xff0c;简单介绍如下: API 1. model 含义&#xff1a;指定要加…...

Python语法系列博客 · 第7期[特殊字符] 列表推导式与字典推导式:更优雅地处理数据结构

上一期小练习解答&#xff08;第6期回顾&#xff09; ✅ 练习1&#xff1a;统计文件行数 with open("data.txt", "r", encoding"utf-8") as f:lines f.readlines()print(f"总行数&#xff1a;{len(lines)}")✅ 练习2&#xff1a;反…...

Redis--主从复制

目录 一、配置 1.1 建立复制 1.2 断开复制 1.3 安全性 1.4 只读 1.5 传输延迟 二、拓扑 2.1 一主一从结构 2.2 一主多从结构 2.3 树形主从结构 在分布式系统中为了解决单点问题&#xff0c;通常会把数据复制多个副本部署到其他服务器&#xff0c;满足故障恢 复和负载均衡等需求…...

FPGA练习———DDS波形发生器

简介&#xff1a;使用DDS波形发生器可以在fpga上生成方波、正弦波等波形&#xff0c;其具体方法是计算相位的变化&#xff0c;然后根据数据表的数值进行数模转化改变波形。 DDS的第一步是生成一个相位加法器 相位加法器 在生成一个波&#xff0c;例如正弦波时&#xff0c;我们…...

力扣面试150题-- 存在重复元素 II和最长连续序列

Day 26 题目描述 思路 定义一个map用来存放每个元素以及它对应的序号从前向后遍历数组如果该元素存在于map&#xff08;说明满足了重复元素的条件&#xff09;&#xff0c;用当前元素的序号值减去map中存放的序号值&#xff08;因为是从前遍历的所以当前元素序号一定大于存放…...

卸载Anaconda并保留虚拟环境,重装Anaconda并还原之前的虚拟环境

参考 https://blog.csdn.net/qq_63611690/article/details/134560333 该博文是虚拟环境和Anaconda安装路径在一起 我的是虚拟环境早就搞到了别的盘 问题描述 我之前把Anaconda安装到了C盘&#xff0c;随之时间推移&#xff0c;C盘占用空间越来越大。我想把Anaconda卸载重装…...

ArcGIS及其组件抛出 -- “Sorry, this application cannot run under a Virtual Machine.“

产生背景&#xff1a; 使用的是“破解版本”或“被套壳过”的非官方 ArcGIS 版本 破解版本作者为了防止&#xff1a; 被研究破解方式 被自动化抓包/提权/逆向 被企业环境中部署多机使用 通常会加入**“虚拟化环境检测阻断运行”机制** 原因解释&#xff1a; 说明你当前运…...

Ubuntu 25.04 “Plucky Puffin” 正式发布

Ubuntu 25.04 “Plucky Puffin” 于 2025 年 4 月 17 日正式发布。这是一个短期支持版本&#xff0c;只支持到 2026 年 1 月1。以下是该版本的一些主要新变化&#xff1a; 内核与系统&#xff1a;采用 Linux 6.14 内核&#xff1b;systemd v257.4 带来重要上游更新&#xff0c;…...

2. ubuntu20.04 和VS Code实现 ros的输出 (C++,Python)

本节对应赵虚左ROS书籍的1.4.2 1)创建工作空间 mkdir -p catkin_ws/src cd catkin_ws catkin_make 2) 终端进入VS Code code . 3) vscoe 的基本配置 3.1&#xff09;修改.vscode/tasks.json ,修改内容如下&#xff1a; { // 有关 tasks.json 格式的文档&#xff0c;请参见…...

0801ajax_mock-网络ajax请求1-react-仿低代码平台项目

0 vite配置proxy代理 vite.config.ts代码如下图所示&#xff1a; import { defineConfig } from "vite"; import react from "vitejs/plugin-react";// https://vite.dev/config/ export default defineConfig({plugins: [react()],server: {proxy: {&qu…...

前端vue+后端ssm项目

下载地址&#xff1a; 前端&#xff1a;https://download.csdn.net/download/2401_83418369/90649449 后端&#xff1a; https://download.csdn.net/download/2401_83418369/90649441 一、项目基础环境搭建 1、新建Maven项目 2、创建目录&#xff0c;结构如下&#xff1a; …...

Python实例题:Python获取阴阳师壁纸

目录 Python实例题 题目 实现思路 代码实现 代码解释 get_wallpaper_links 函数&#xff1a; download_wallpapers 函数&#xff1a; 主程序&#xff1a; 运行思路 注意事项 Python实例题 题目 Python获取阴阳师壁纸 实现思路 发送请求获取网页内容&#xff1a;使…...

考研408操作系统文件管理——4.2目录系统详解

考研408操作系统文件管理——目录系统详解 一、目录管理基本概念 1.1 目录的核心功能 目录是文件系统的核心管理组件,主要实现: 按名存取:通过文件名快速定位物理地址路径解析:将逻辑路径转换为物理块地址共享控制:支持多用户共享同一文件命名空间管理:维护全局唯一的…...

国产SMT贴片机自主技术突破解析

内容概要 随着电子信息产业对精密制造需求的持续升级&#xff0c;国产SMT贴片机的技术突破已成为装备自主化进程的关键节点。本文聚焦设备研发的三大核心领域&#xff1a;高动态运动控制系统通过线性电机与数字信号处理技术的融合&#xff0c;将重复定位精度提升至5μm级别&am…...

Ai Agent 在生活领域的深度应用与使用指南

在科技不断革新的时代&#xff0c;Ai Agent 正以前所未有的态势融入生活的各个角落&#xff0c;成为提升生活品质与效率的得力助手。它凭借强大的智能处理能力&#xff0c;解决了传统生活模式中的诸多痛点&#xff0c;在家庭、出行、健康管理等多个场景中展现出巨大的应用价值…...

CPU与GPU之间的交互

命令队列和命令列表 每个GPU都维护着一个命令队列&#xff0c;本质上是一个环形缓冲区&#xff0c;等待着cpu提交到gpu的命令&#xff0c;同时执行命令 在Direct3D中命令队列被抽象为ID3D12CommandQueue接口来表示。通过下面的方式创建命令队列。 ComPtr<ID3D12CommandQue…...

MySQL运维三部曲初级篇:从零开始打造稳定高效的数据库环境

文章目录 一、服务器选型——给数据库一个舒适的家二、系统调优——打造高性能跑道三、MySQL配置——让数据库火力全开四、监控体系——数据库的体检中心五、备份恢复——数据安全的最后防线六、主从复制——数据同步的艺术七、安全加固——守护数据长城 引言&#xff1a;从小白…...

Python制作简易PDF查看工具PDFViewerV1.0查找功能优化

原文说明 为不破坏原文结构&#xff0c;因此功能优化不在原文中维护了。关于这款工具原文请通过下面链接访问。Python制作简易PDF查看工具PDFViewerV1.0 这款小工具基本功能已经可以作为一款文档浏览器使用&#xff0c;但还有一些美中不足的地方&#xff0c;本文将介绍对文本查…...

MOPSO实现无人机多目标路径规划(Matlab完整源码和数据)

一、MOPSO算法核心原理 MOPSO&#xff08;多目标粒子群优化算法&#xff09;通过模拟鸟群觅食行为&#xff0c;在搜索空间中寻找满足多个冲突目标的Pareto最优解集。其核心流程包括&#xff1a; 粒子初始化&#xff1a;随机生成粒子群&#xff0c;每个粒子代表一条候选路径&a…...

Python:使用web框架Flask搭建网站

Date: 2025.04.19 20:30:43 author: lijianzhan Flask 是一个轻量级的 Python Web 开发框架&#xff0c;以简洁灵活著称&#xff0c;适合快速构建中小型 Web 应用或 API 服务。以下是 Flask 的核心概念、使用方法和实践指南 Flask 的核心特点&#xff1a; 轻量级 核心代码仅约…...