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

Android中AIDL和HIDL的区别

在Android中,AIDL(Android Interface Definition Language) 和 HIDL(HAL Interface Definition Language) 是两种用于定义跨进程通信接口的语言。AIDL 是 Android 系统最早支持的 IPC(进程间通信)机制,而 HIDL 是从 Android 8.0 开始引入,用于 HAL(Hardware Abstraction Layer)模块的接口定义。

随着 Android 的发展,Google 决定从 Android 11 开始将新的 HAL 统

一使用 AIDL 接口,而逐步放弃 HIDL。这种转变背后的原因涉及技术复杂度、性能、开发效率和生态统一性等多个方面。

1. AIDL 和 HIDL 的主要区别

1.1AIDL(Android Interface Definition Language)

用于 Android 系统中 App 层到 Framework 层之间的通信,也可以用于 Service 和 Client 的进程间通信。AIDL 使用 Binder 内核驱动程序进行调用。

AIDL 可以在 Android 中的任何进程之间使用:在平台组件之间使用或在应用之间使用均可。

他的主要的特点是:

  • 语言支持:支持 Java、C++ 和 Kotlin,最初主要服务于 App 层(Java 环境)。
  • 运行时绑定:通过 binder 驱动直接实现进程间通信,适合轻量的高频接口调用。
  • AIDL 文件编译:通过工具生成 Stub 和 Proxy 代码,封装了序列化和反序列化逻辑,开发者只需实现核心逻辑。

1.2 HIDL(Hardware Interface Definition Language)

HIDL 旨在用于进程间通信 (IPC)。使用 HDL 创建的 HAL 称为绑定式 HAL,因为它们可以使用 Binder 进程间通信 (IPC) 调用与其他架构层进行通信。绑定式 HAL 在独立于使用它们的客户端的进程中运行。对于必须与进程相关联的代码库,还可以使用透传模式(在 Java 中不受支持)。

HIDL 可指定数据结构和方法签名,这些内容会整理归类到接口(与类相似)中,而接口会汇集到软件包中。尽管 HIDL 具有一系列不同的关键字,但 C++ 和 Java程序员对 HIDL 的语法并不陌生。此外,HIDL 还使用 Java 样式的注解。

他的主要的特点是:

  • 使用场景:专为 HAL 设计,用于定义硬件抽象层和 Framework 层之间的接口。
  • 语言支持:主要支持 C++,不直接支持 Java。
  • 静态绑定:HIDL 在编译时生成接口代码,运行时通过 hwservicemanager 注册和发现服务。
  • 接口版本化:支持接口的向前兼容和向后兼容,可以在同一个系统中并存多个版本的 HAL 模块。
  • 复杂性:HIDL 引入了较复杂的构建工具链(如 HIDL 编译器)和运行时管理机制。

2. Google 放弃 HIDL,统一使用 AIDL 的原因

2.1 简化开发和维护

  • 减少学习成本:
    HIDL 的学习曲线较陡,开发者需要熟悉 HIDL 特有的语法和工具链,而 AIDL 更加简单直观,开发者容易上手。

  • 统一接口开发方式
    将 HAL 和应用层接口统一为 AIDL,减少了系统中不同接口定义语言的种类,便于开发者在不同层级使用相同的工具和模式。

2.2 降低系统复杂性

HIDL 的工具链和运行时机制引入了额外的复杂性,比如 hwservicemanager 和接口的版本化管理,而 AIDL 的实现相对简单,使用单一的 binder 机制即可满足需求。

2.3 性能优化

AIDL 在轻量通信场景下性能优于 HIDL:

  • 序列化和反序列化效率高:AIDL 的传输格式更加精简。
  • 运行时绑定更灵活:无需像 HIDL 那样依赖 hwservicemanager,可以减少通信开销。

对于大多数硬件接口调用场景,AIDL 的性能足以满足需求,HIDL 的版本管理和静态绑定机制显得多余。

2.4 推动 Kotlin 和 Rust 的生态

AIDL 逐步扩展了对 Kotlin 和 Rust 的支持(尤其是在安全性上),这是 Google 推动现代语言生态的重要一步。相比之下,HIDL 偏向 C++,缺乏对新语言的良好支持。

2.5 接口版本化的简化

尽管 HIDL 的多版本支持机制强大,但实际使用中却增加了维护成本。AIDL 的接口版本化从 Android 10 开始进行了改进,通过 stable AIDL 提供了更简洁的方式来处理接口的向前和向后兼容性问题。

3.举例说明

就拿音频举例,AIDL 实现与 HIDL 音频 HAL 实现之间的区别:

  • 在 AIDL 音频核心 HAL 中,引入了新的 IConfig 接口,替代了 HIDL HAL 中通过 XML 文件定义的系统级参数。这些参数现在由框架直接从 Core HAL 读取,而不再依赖供应商提供的配置文件。例如,用于显示给用户以便控制的环绕声格式列表,现由 IConfig.getSurroundSoundConfig 方法直接提供。
  • 在 AIDL 音效 HAL 中,原先在 HIDL 音效 HAL 的 XML 文件中定义的 effectProxy 相关逻辑已迁移到音频框架中。框架通过调用 IFactory.queryEffects 方法获取系统中所有效果实例的列表,并使用 IFactory.queryProcessing 方法查询所有效果处理信息。
  • 为了避免“设备”一词在描述音频设备类型时可能产生的歧义,HIDL 音频 HAL 中的 IDevice 接口在 AIDL 音频 HAL 中被重新命名为 IModule。
  • 此外,IPrimaryDevice 接口已被移除并由新的机制替代。现在,系统会将当前音频模式和屏幕旋转方向的更新发送到每个 IModule 实例。而涉及蓝牙同步音频连接(如 BT SCO)和免提配置文件(HFP)的参数,则由独立的 IBluetooth 接口管理。与电话相关的控制由专用的 ITelephony 接口提供支持。这两个接口的实例都可以通过 IModule 接口的主实例来获取。更多细节可参见核心 HAL 与相关功能的对比表。
  • 与此同时,为了避免冗余,AIDL 音频 HAL 中移除了 IDevicesFactory 接口。HAL 模块(即 IModule 的实例)现在直接以其名称在 Service Manager 中注册,例如 bluetooth 或 r_submix。唯一的例外是主模块(primary module),它仍然以 default 作为实例名称进行注册。

4.接口映射内容:

所有 HIDL 接口都在 android.hardware.audio@N.M 软件包中,其中 N.M 表示 Major.Minor 版本。所有 AIDL 接口都在 android.hardware.audio.core 软件包中。

HIDL API 接口和配置文件AIDL API接口
IDevicesFactory在 ServiceManager注册 IModule。
IDeviceIModule
IPrimaryDeviceITelephony / IBluetooth
IStream /IStreamIn / IStreamOutStreamDescriptor /IStreamIn / IStreamCommon / IStreamOut
audio_policy_configuration.xml / audio_policy_engine_configuration.xmlIConfig / IModule
可配置的音频政策文件在 Android 14 中使用HbL妥现。

在这里插入图片描述
在这里插入图片描述

相关文章:

Android中AIDL和HIDL的区别

在Android中,AIDL(Android Interface Definition Language) 和 HIDL(HAL Interface Definition Language) 是两种用于定义跨进程通信接口的语言。AIDL 是 Android 系统最早支持的 IPC(进程间通信&#xff0…...

Gazebo 启动时候配置物体

1. 准备模型 mkdir -p ~/.gazebo/models/table echo export GAZEBO_MODEL_PATH$HOME/.gazebo/models:$GAZEBO_MODEL_PATH >> ~/.bashrc source ~/.bashrc # 从https://github.com/osrf/gazebo_models下载模型 # 桌子 cd ~/.gazebo/models/table wget https://raw.github…...

展示深拷贝与移动语义的对比

定义 Buffer 类&#xff08;含深拷贝和移动语义&#xff09; #include <iostream> #include <chrono> #include <cstring>class Buffer { public:// 默认构造函数&#xff08;分配内存&#xff09;explicit Buffer(size_t size) : size_(size), data_(new in…...

STM32基础教程——对射式红外传感器计数实验

前言 对射式红外传感器介绍 对射式红外传感器是一种非接触式的距离检测器&#xff0c;主要由发射器和接收器两部分组成。发射器发出特定波长的红外光束&#xff0c;当物体阻挡了这条光束时&#xff0c;接收器无法接收到光线信号&#xff0c;从而产生一个开关信号来判断物体的存…...

Git与GitHub:理解两者差异及其关系

目录 Git与GitHub&#xff1a;理解两者差异及其关系Git&#xff1a;分布式版本控制系统概述主要特点 GitHub&#xff1a;基于Web的托管服务概述主要特点 Git和GitHub如何互补关系现代开发工作流 结论 Git与GitHub&#xff1a;理解两者差异及其关系 Git&#xff1a;分布式版本控…...

【时时三省】(C语言基础)赋值语句2

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 赋值运算符 赋值符号“”就是赋值运算符&#xff0c;它的作用是将一个数据赋给一个变量。如a 3的作用是执行一次赋值操作&#xff08;或称赋值运算&#xff09;。把常量3赋给变量a。也可以…...

服务器上通过ollama部署deepseek

2025年1月下旬&#xff0c;DeepSeek的R1模型发布后的一周内就火了&#xff0c;性能比肩OpenAI的o1模型&#xff0c;且训练成本仅为560万美元&#xff0c;成本远低于openAI&#xff0c;使得英伟达股票大跌。 下面我们来看下如何个人如何部署deepseek-r1模型。 我是用的仙宫云的…...

自动控制原理【知识点总结、复习笔记】

1.控制系统定义 控制系统是指通过监测和调整系统的行为&#xff0c;以达到预期目标的一套系统。它由一组相互关联的组件组成&#xff0c;这些组件协同工作&#xff0c;用于控制物理过程、机械设备、电子设备或其他系统。例如&#xff0c;一个简单的温控系统可以通过监测房间温…...

【AI】什么是Embedding向量模型?我们应该如何选择?

我们之前讲的搭建本地知识库,基本都是使用检索增强生成(RAG)技术来搭建,Embedding模型则是RAG的核心,同时也是大模型落地必不可少的技术。那么今天我们就来聊聊Embedding向量模型: 一、Embedding模型是什么? Embedding模型是一种将离散数据(如文本、图像、用户行为等)…...

openwrt路由系统------Linux 驱动开发的核心步骤

以下是 Linux 驱动开发的核心步骤,结合实践案例与注意事项,适合嵌入式设备(如 OpenWrt 路由器)开发: 一、驱动开发基本流程 1. 环境准备 工具链与内核源码 # 安装交叉编译工具链(如 ARM) sudo apt-get install gcc-arm-linux-gnueabihf# 获取目标内核源码(需匹配运行的…...

Educational Codeforces Round 7 F. The Sum of the k-th Powers 多项式、拉格朗日插值

题目链接 题目大意 求 ( ∑ i 1 n i k ) (\sum_{i1}^{n} i^k) (∑i1n​ik) m o d ( 1 0 9 7 ) mod(10^97) mod(1097) . 数据范围 &#xff1a; 1 ≤ n ≤ 1 0 9 1 \leq n \leq 10^9 1≤n≤109 , 0 ≤ k ≤ 1 0 6 0 \leq k \leq 10^6 0≤k≤106 . 思路 令 f ( n ) ∑ …...

学习笔记:利用OpenAI实现阅卷智能体

https://zhuanlan.zhihu.com/p/18047953492 ### 学习笔记&#xff1a;利用OpenAI实现阅卷智能体 #### 一、背景与需求 在各类考试中&#xff0c;选择题、判断题、填空题的阅卷相对简单&#xff0c;只需对比答案与作答是否一致。然而&#xff0c;简答题的阅卷较为复杂&#xff…...

进程的简要介绍

一.进程 1.概念&#xff1a;担当分配系统资源的实体 2.进程内核数据结构对象自己的代码和数据 或进程PCB(task_struct)自己的代码和数据 注1&#xff1a;PCB&#xff1a;操作系统中描述进程的结构体 2.进程的所有属性均可在task_struct中找到&#xff0c;管理进程其实就是…...

每日一题——乘积最大子数组

乘积最大子数组问题详解 问题描述示例约束条件 问题分析难点分析解题思路 代码实现代码说明 测试用例测试用例 1测试用例 2测试用例 3 总结 问题描述 给定一个整数数组 nums&#xff0c;请你找出数组中乘积最大的非空连续子数组&#xff08;该子数组中至少包含一个数字&#x…...

HttpServletRequest 和 HttpServletResponse 区别和作用

一、核心作用对比 对象HttpServletRequest&#xff08;请求对象&#xff09;HttpServletResponse&#xff08;响应对象&#xff09;本质客户端发给服务器的 HTTP 请求信息&#xff08;输入&#xff09;服务器返回客户端的 HTTP 响应信息&#xff08;输出&#xff09;生命周期一…...

黄昏时间户外街拍人像Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色介绍 黄昏时分有着独特而迷人的光线&#xff0c;使此时拍摄的人像自带一种浪漫、朦胧的氛围 。通过 Lr 调色&#xff0c;可以进一步强化这种特质并根据不同的风格需求进行创作。Lr&#xff08;Lightroom&#xff09;作为专业的图像后期处理软件&#xff0c;提供了丰富的调色…...

Docker Desktop 安装与使用详解

目录 1. 前言2. Docker Desktop 安装2.1 下载及安装2.2 登录 Docker 账号2.3 进入 Docker Desktop 主界面 3. Docker 版本查看与环境检查3.1 查看 Docker Desktop 支持的 Docker 和 Kubernetes 版本3.2 检查 Docker 版本 4. Docker Hub 和常用镜像管理方式4.1 使用 Docker Hub4…...

DeepSeek-R1与全光网络的医疗技术协同场景深度分析

一、DeepSeek-R1与全光网络的技术协同场景 1. 实时诊疗与数据交互 1. 实时诊疗与数据交互 1.1 场景示例分析 高带宽需求:医疗影像,尤其是CT和MRI影像,通常具有高分辨率和大数据量,要求医疗系统具备超高带宽来实时传输这些数据。全光网络,特别是基于华为F5G的解决方案,…...

热图回归(Heatmap Regression)

热图回归(Heatmap Regression)是一种常用于关键点估计任务的方法,特别是在人体姿态估计中。它的基本思想是通过生成热图来表示某个关键点在图像中出现的概率或强度。以下是热图回归的主要特点和工作原理: 主要特点 热图表示: 每个关键点对应一个热图,热图中的每个像素值…...

模型微调-基于LLaMA-Factory进行微调的一个简单案例

模型微调-基于LLaMA-Factory进行微调的一个简单案例 1. 租用云计算资源2. 拉取 LLaMa-Factory3. 安装依赖环境4. 启动 LLaMa-Factory 界面5. 从 Huggingface 下载模型6. 模型验证7. 模型微调 1. 租用云计算资源 以下示例基于 AutoDL 云计算资源。 在云计算平台选择可用的云计…...

shell的模拟实现 ─── linux第16课

在shell的命令行中输入命令,会有两种执行命令的途径 shell自己执行 shell创建子进程(fork ,exit ,waitpid,exec) ,子进程去执行 shell自己执行的命令是自建命令(bulit command) 子进程执行的是非自建命令 第一版只能维护命令行参数表创建子进程, 执行非内建命令 我们先创…...

Luna——为游戏添加音效

1、在GameManager中声明 public AudioSource audiosource; public AudioClip normalClip; public AudioClip battleClip; 2、在GameManager资产中挂载“Audio Source”组件&#xff0c;并将该组件挂载到资产脚本中的声明对象 这就可以根据不同场景的需要切换背景音乐了&#x…...

计算机视觉算法实战——老虎个体识别(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域介绍 老虎个体识别是计算机视觉中的一个重要应用领域&#xff0c;旨在通过分析老虎的独特条纹图案&#xff0c;自动识别和区…...

技术速递|GitHub Copilot Agent 模式(预览版)介绍

作者&#xff1a;Isidor Nikolic 翻译&#xff1a;Alan Wang GitHub Copilot Agent 模式&#xff08;预览版&#xff09;是 AI 辅助编码的最新进化。它作为一个自主的编程助手&#xff0c;可以根据你的指令执行多步骤的编码任务——分析代码库、读取相关文件、提出文件编辑建议…...

《安富莱嵌入式周报》第351期:DIY半导体制造,工业设备抗干扰提升方法,NASA软件开发规范,小型LCD在线UI编辑器,开源USB PD电源,开源锂电池管理

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV16C95YEEZs 《安富莱嵌入式周报》第351期&#xff1a;DIY半导体…...

CSS—补充:CSS计数器、单位、@media媒体查询

目录 1. CSS计数器 嵌套计数器&#xff1a; 对列表元素&#xff1a; 2.单位 绝对长度&#xff1a; 相对长度&#xff1a; 3.media媒体查询 1. CSS计数器 CSS 计数器就像“变量”。变量值可以通过 CSS 规则递增&#xff08;将跟踪它们的使用次数&#xff09;。 如需使用…...

Phi-4-multimodal:图、文、音频统一的多模态大模型架构、训练方法、数据细节

Phi-4-Multimodal 是一种参数高效的多模态模型&#xff0c;通过 LoRA 适配器和模式特定路由器实现文本、视觉和语音/音频的无缝集成。训练过程包括多阶段优化&#xff0c;确保在不同模式和任务上的性能&#xff0c;数据来源多样&#xff0c;覆盖高质量网络和合成数据。它的设计…...

Leetcode::将水果放入篮子II(c++)

3477. 将水果放入篮子 II 提示 给你两个长度为 n 的整数数组&#xff0c;fruits 和 baskets&#xff0c;其中 fruits[i] 表示第 i 种水果的 数量&#xff0c;baskets[j] 表示第 j 个篮子的 容量。 你需要对 fruits 数组从左到右按照以下规则放置水果&#xff1a; 每种水果必…...

【C语言系列】字符函数和字符串函数

字符函数和字符串函数 一、字符分类函数二、字符转换函数三、strlen的使用和模拟实现3.1strlen函数3.2strlen函数模拟实现 四、strcpy的使用和模拟实现4.1strcpy函数4.2strcpy函数的模拟实现 五、strcat的使用和模拟实现5.1strcat函数5.2strcat函数的模拟实现 六、strcmp的使用…...

【计算机网络】深入解析 HTTP 协议的概念、工作原理和通过 Fiddler 抓包查看 HTTP 请求/响应的协议格式

网络原理— HTTP 1. 什么是HTTP? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议&#xff1a; HTTP 往往是基于传输层的 TCP 协议实现的 (HTTP1.0,HTTP1.1,HTTP2.0 均为TCP,HTTP3基于UDP实现) 我们平时打开一个网站&#xff0c;就是通过HTTP协议来…...

InDraw6.2.3 | 甾体、核苷、黄酮类化合物实现简称命名

导语 当化学家对着屏幕输入"2-amino-1,9-dihydro-6H-purin-6-one"时&#xff0c;隔壁生物学家可能正在搜索"鸟嘌呤"&#xff1b;这种命名差异如同"火星文"与"地球语"的碰撞。现在&#xff0c;鹰谷InDraw 6.2.3版带着53种多环化合物的…...

AI Copilot——维新派的贾维斯,守旧派的墓志铭(程序员视角)

6500万年前的那颗陨石好像要落下来了 这一段时间&#xff0c;伴随着claude sonnet 3.7的发布 以及cursor&#xff0c;windsurf 等一众AI智能编辑器的涌现&#xff0c;社区的programming自媒体坐不住了&#xff0c;有一个观点已经快要溢出屏幕&#xff1a;程序员这个岗位要黄&a…...

c++ 接口/多态

目录 接口的通用定义 特点&#xff1a; C 中的接口 接口的作用 接口与抽象类的区别 什么是多态&#xff1f; 多态的类型 1. 编译时多态 2. 运行时多态 多态的实现原理 注意事项 在编程中&#xff0c;接口&#xff08;Interface&#xff09; 是一个抽象概念&#xff…...

【大模型学习】第十二章 大模型获取智能机制

目录 引言 1. 模型架构 Transformer架构 层次结构和层数 2. 训练数据 3. 大规模训练 4. 迁移学习与微调 4.1 微调步骤 5. 机制实例 自注意力机制 多头注意力机制 总结 引言 随着深度学习的发展&#xff0c;特别是大型预训练模型&#xff08;大模型&#xff09;的出…...

神经网络|(十四)|霍普菲尔德神经网络-Hebbian训练

【1】引言 前序学习进程中&#xff0c;除了对基本的神经网络知识进行了学习&#xff0c;还掌握了SOM神经网络原理&#xff0c;文章链接包括且不限于&#xff1a; 神经网络|(十一)|神经元和神经网络-CSDN博客 神经网络|(十二)|常见激活函数-CSDN博客 神经网络|(十三)|SOM神经…...

华为鸿蒙系统全景解读:从内核设计到生态落地的技术革命

华为鸿蒙系统全景解读&#xff1a;从内核设计到生态落地的技术革命 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 文章目录 华为鸿蒙系统全景解读&#x…...

基于大数据的Steam游戏数据分析可视化推荐系统

【大数据】&#x1f3ae; 项目名&#xff1a;游戏分析神器&#xff0c;用代码探析游戏世界——《基于大数据的Steam游戏分析与智能推荐系统》&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 &a…...

将长上下文大语言模型研究从输入转向输出

将长上下文大语言模型研究从输入转向输出 摘要: 近年来&#xff0c;长上下文大语言模型&#xff08;LLMs&#xff09;的研发主要集中在处理更长的输入文本上&#xff0c;这使得模型在理解长篇内容时取得了显著进步。然而&#xff0c;生成长篇输出的研究却相对被忽视&#xff…...

Dify 开源大语言模型应用开发平台使用(二)

文章目录 说明Dify 使用报告1. 应用创建——专业的锂电池相关知识解答1.1 平台简介1.2 创建应用2. 知识库、工作流、变量、节点与编排节点详解2.1 知识库管理2.2 工作流配置2.3 变量管理2.4 节点与编排节点3. 测试和调试3.1 单元测试3.2 日志与监控3.3 实时调试3.4 性能测试总结…...

CarPlanner:用于自动驾驶大规模强化学习的一致性自回归轨迹规划

25年2月来自浙大和菜鸟网络的论文“CarPlanner: Consistent Auto-regressive Trajectory Planning for Large-scale Reinforcement Learning in Autonomous Driving”。 轨迹规划对于自动驾驶至关重要&#xff0c;可确保在复杂环境中安全高效地导航。虽然最近基于学习的方法&a…...

K8s面试题总结(十一)

1.如何优化docker镜像的大小&#xff1f; 使用多阶段构建&#xff08;multi-stage build&#xff09;选择更小的基础镜像&#xff08;如alpine&#xff09;减少镜像层数&#xff0c;合并RUN命令 2.请解释Docker中的网络模式&#xff08;如bridge,host,none) Bridge&#xff…...

Android Telephony 四大服务和数据网络控制面数据面介绍

在移动通信和Android系统中,涉及的关键概念和服务以及场景案例说明如下: 一、概念 (一)Android Telephony 的四大服务 介绍Telephony Data 与 Android Data 的四大服务在Android系统中,与电话(Telephony)和移动数据(Data)相关的核心服务主要包括以下四类: 1. Tele…...

一文讲懂Go语言如何使用配置文件连接数据库

一文讲懂Go语言如何使用配置文件连接数据库 viper1. viper简介2. viper 读取.toml配置文件定义Go语言结构体编写与Go语言结构体对应的.toml配置文件定义初始化函数定义get函数 连接数据库1. 定义数据库对象2. 定义初始化函数3. 定义 get 函数4. 定义 main 函数, 连接数据库 配置…...

Jmeter使用介绍

文章目录 前言Jmeter简介安装与配置JDK安装与配置JMeter安装与配置 打开JMeter方式一方式二 设置Jmeter语言为中文方法一&#xff08;仅一次性&#xff09;方法二(永久设置成中文) Jmeter文件常用目录 元件与组件元件组件元件的作用域元件的执行顺序第一个案例添加线程组添加 H…...

MES机联网4:文档资料

目录信息 MES机联网1&#xff1a;技术方案MES机联网2&#xff1a;采集网关MES机联网3&#xff1a;管理后台MES机联网4&#xff1a;文档资料 MQ接入文档 1、建立连接 mqtt连接地址: 192.168.0.138 mqtt端口: 1883 mqtt用户名&#xff1a;admin mqtt密码&#xff1a;123456 …...

豆包大模型 MarsCode AI 刷题专栏 001

001.找单独的数 难度&#xff1a;易 问题描述 在一个班级中&#xff0c;每位同学都拿到了一张卡片&#xff0c;上面有一个整数。有趣的是&#xff0c;除了一个数字之外&#xff0c;所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上…...

常用无功功率算法的C语言实现(二)

0 前言 尽管数字延迟法和积分移相法在不间断采样的无功功率计算中得到了广泛应用,但它们仍存在一些固有缺陷。 对于数字延迟法而言,其需要额外存储至少1/4周期的采样点,在高采样频率的场景下,这对存储资源的需求不可忽视。而积分移相法虽然避免了额外的存储开销,但为了抑制…...

23种设计模式简介

一、创建型&#xff08;5种&#xff09; 1.工厂方法 总店定义制作流程&#xff0c;分店各自实现特色披萨&#xff08;北京店-烤鸭披萨&#xff0c;上海店-蟹粉披萨&#xff09; 2.抽象工厂 套餐工厂&#xff08;家庭装含大披萨薯条&#xff0c;情侣装含双拼披萨红酒&#…...

开发vue小游戏:数字华龙道

一、游戏介绍 1、历史背景 数字华容道脱胎于传统华容道&#xff0c;后者源自三国时期“曹操败走华容道”的故事。传统玩法是通过移动不同形状的木块&#xff0c;帮助“曹操”从出口逃脱。而数字华容道将棋子替换为数字&#xff0c;目标是通过滑动方块&#xff0c;将乱…...

electron的通信方式(三种)

文章目录 一、渲染进程向主进程发送消息二、渲染进程向主进程发送消息并异步获取结果三、主进程向渲染进程发送消息 electron的主要是主线程和渲染线程之间的通信&#xff0c;简单记录一下三种通信方式 一、渲染进程向主进程发送消息 利用ipcRenderer.send()和ipcMain.on()方法…...