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

蓝牙BLE

1、简介

蓝牙BR/EDR和BLE是蓝牙技术的两个重要分支,它们各自具有独特的特点和应用场景。

1.1、蓝牙BR/EDR

  • 蓝牙BR(Basic Rate)
    定义:蓝牙技术的首个开发版本,采用高斯频移键控(GFSK)调制技术,在2.4 GHz ISM频段传输数据。
    特点:低成本、低功耗,但数据传输速度较慢(最高0.7 Mbps)。
  • 蓝牙EDR(Enhanced Data Rate)
    定义:蓝牙BR的增强版,引入QDPSK和8DPSK调制技术以提高数据传输速率。
    特点:数据传输速度比蓝牙BR快2-3倍(最高2-3 Mbps)。

1.2、双模设备

双模设备:同时支持BR/EDR和BLE

1.3、蓝牙BLE(Bluetooth Low Energy)

蓝牙BLE(Bluetooth Low Energy)是蓝牙4.0规范中引入的一种低功耗无线通信模式,旨在通过优化措施降低功耗,延长设备电池寿命。

1.3.1、特点

  • 低功耗:通过减少广播频段、缩短射频开启时间、引入深度睡眠模式等策略,BLE设备在传输数据时能耗极低。
  • 长续航:低功耗特性使得BLE设备能够使用小型纽扣电池运行数月甚至数年。
  • 适用于近距离通信:传输距离相对较短,但足以满足大多数近距离通信需求。
  • 快速连接与断开:支持快速建立连接和断开连接的机制,适用于即时通信场景。
  • 简化的协议栈:降低了开发成本和复杂性,提高了设备的兼容性和互操作性。
  • 广泛的应用场景:在物联网、健康监测、智能家居、运动跟踪等领域得到广泛应用。

1.3.2、广播与扫描

BLE支持广播和扫描机制,这是其通信的基础。设备可以通过广播发送数据,其他设备则通过扫描来发现附近的BLE设备,并可能进一步建立连接。这种机制使得BLE设备能够在没有建立连接的情况下进行通信和数据交换,特别适用于那些对功耗要求较高且数据量不大的应用场景。

  • 广播包:BLE广播包主要用于无连接的数据传输。广播包只能在特定的广播信道(37、38、39信道)上传输,其Access Address固定为0x8E89BED6。广播包发送给附近所有的扫描者,用于宣告设备的存在、服务信息或特征值等。
  • 扫描响应包在广播过程中,BLE设备还可以发送扫描响应包,以提供额外的信息,如设备名称、服务UUID等。扫描响应包是在扫描请求之后发送的,其长度同样有限制,但可以与广播包一起提供更丰富的数据。

1.3.3、多种广播模式

BLE广播支持多种模式,以满足不同场景下的通信需求。

  • 可连接模式(Connectable):允许其他设备通过建立连接与广播设备进行通信。最常见的广播类型是“可连接的非定向广播”(ADV_IND),它可以被任何设备扫描并连接
  • 非可连接模式(Non-connectable):只用于广播信息,不接受连接请求。例如,“不可连接的非定向广播”(ADV_NONCONN_IND)就不能被扫描设备连接,但可以用于发送广播数据。
  • 可被扫描模式(Scannable):允许其他设备扫描到广播设备,但不能直接建立连接。如“可扫描非定向广播”(ADV_SCAN_IND)可以被任何设备扫描,但不能被连接

1.3.4、数据包格式

BLE的数据包格式确保了数据传输的完整性和可靠性,其基本结构包括前导序列、访问地址、PDU(Protocol Data Unit,协议数据单元)报头、PDU长度、PDU数据和CRC(Cyclic Redundancy Check,循环冗余校验)校验码。

  • 前导序列(Preamble):用于同步接收设备,通常为1字节的固定值。
  • 访问地址(Access Address):用于标识数据包,对于广播包,其Access Address固定为0x8E89BED6;对于连接后的数据包,则是一个由Initiator生成的32位随机值。
  • PDU:包含了实际传输的数据,其结构和长度取决于数据包的类型和用途。
  • CRC校验码:用于检测数据传输过程中的错误。

1.3.5、调制与频段

BLE使用与传统蓝牙相同的2.4 GHz ISM(Industrial, Scientific and Medical,工业、科学和医疗)频段,但采用了不同的调制方式(如高斯频移键控GFSK)来实现低功耗和长距离通信。BLE的物理层传输速率可达1Mbps,但在实际应用中,由于连接参数(如连接间隔和连接延迟)的限制,实际传输速率会低于这个值。BLE通过跳频技术(Adaptive Frequency Hopping,自适应频率跳变)来减少干扰并提高通信的可靠性。

即BLE和经典蓝牙使用了相同的频段(2.4Ghz),但是调制方式不同。

蓝牙BR:GFSK调制,简单稳定,但速率慢。
蓝牙EDR:QDPSK和8DPSK调制,显著提高速率。
BLE: 高斯频移键控GFSK

1.4、核心优势

  • 低功耗:通过一系列优化措施实现低功耗特性,延长设备电池寿命。
  • 快速连接与断开:提供快速建立连接和断开连接的机制,适用于即时通信场景。
  • 短距离通信:传输距离相对较短,但足以满足大多数近距离通信需求,有助于减少信号干扰和保证数据传输的安全性。
    简化的协议栈:降低了开发成本和复杂性,提高了设备的兼容性和互操作性。
  • 广泛的兼容性:几乎所有的现代智能设备都支持BLE连接,使得BLE设备能够轻松地与各种智能设备、智能手机、平板电脑以及物联网平台进行连接和通信。

1.5、LE2M(Long Range 2M):

LE2M是BLE技术的一个扩展版本,它提供了比标准BLE更远的通信距离和更高的数据传输速率。通过优化传输功率和接收灵敏度,LE2M使得BLE设备能够在更远的距离内进行稳定通信,适用于需要较远距离通信但仍然要求低功耗的应用场景。

1.6、 BLE 5.0特点

  • 传输速度与距离提升:BLE 5.0传输速度比前代提高了2倍,达到2Mbps,同时传输距离也提高了4倍,最远可达300米。
  • 网状网络功能:支持mesh组网
  • 位置服务增强:BLE 5.1版本增强了位置服务功能,包括方向查找(Direction Finding)技术,可以精确地确定蓝牙设备的方向和距离。这对于室内定位、导航和物品追踪等应用非常有用。
  • 安全性提升:BLE 5.2及更高版本进一步优化了数据传输的安全性和稳定性。它们增加了数据加密功能、双向认证等机制,确保数据传输过程中的安全性和隐私保护。
  • 其他功能优化:BLE 5.3等后续版本还引入了广播扩展、多信道传输等新技术,提高了设备被发现的概率和数据传输的效率和稳定性。同时,这些版本还进一步降低了功耗,使得设备的续航时间更长。

2、BLE协议栈

参考链接:蓝牙BLE(协议栈、OSAL、蓝牙APP工具)

3、蓝牙技术点

3.1、接收信号强度(RSSI)与发射功率

蓝牙RSSI表示接收信号强度发射功率指蓝牙设备发送信号的力量。两者共同决定蓝牙通信的距离和质量,是蓝牙通信的关键参数。

3.1.1、蓝牙接收信号强度(RSSI)

RSSI(Received Signal Strength Indication)即接收信号强度指示,是蓝牙设备在接收信号时表示信号强度的测量值。它通常以dBm(分贝毫瓦) 为单位进行表示,是一个负数值,表示接收到的信号功率相对于1毫瓦的参考功率的比值。

为什么无线信号(RSSI)是负值?

因为无线信号多为mW级别,所以对它进行了极化,转化为dBm而已,不表示信号是负的。1mW就是0dBm,小于1mW就是负数的dBm数。

负数值的话,数值越大,强度越小。例如:-60db 说明比-70db 信号强度高。

3.1.2、蓝牙发射功率

蓝牙发射功率是指蓝牙设备在工作状态下向周围发送蓝牙信号的功率大小。发射功率的大小直接影响蓝牙设备的通信距离功耗

通常情况下,蓝牙发射功率的范围在-40dBm(0.0001mW)到+20dBm(100mW) 之间。

3.2、

3.3、

3.4、

3.5、

3.6、

4、

相关文章:

蓝牙BLE

1、简介 蓝牙BR/EDR和BLE是蓝牙技术的两个重要分支,它们各自具有独特的特点和应用场景。 1.1、蓝牙BR/EDR 蓝牙BR(Basic Rate) 定义:蓝牙技术的首个开发版本,采用高斯频移键控(GFSK)调制技术…...

在VS2022中使用Lua与c交互(二)

一、核心交互机制:Lua 虚拟栈 Lua 与 C 的交互通过一个 ​​虚拟栈(Stack)​​ 完成,所有数据传递、函数调用均通过此栈实现。栈的每个元素可以是任意 Lua 类型(如数字、字符串、表、函数等)。 栈的结构与…...

论文阅读_Citrus_在医学语言模型中利用专家认知路径以支持高级医疗决策

英文名称:Citrus: Leveraging Expert Cognitive Pathways in a Medical Language Model for Advanced Medical Decision Support 中文名称:Citrus:在医学语言模型中利用专家认知路径以支持高级医疗决策 链接: http://arxiv.org/pdf/2502.18…...

浅谈PCB传输线(一)

前言:浅谈传输线的类型,以及传输线的一些行为特性。 1.传输线的种类 2.互连线被视为传输线的场景 3.传输线的行为特性*** 1.传输线的种类 PCB 中的信号传输线通常有两种基本类型: 微带线和带状线。此外,还有第三种类型–共面线(没有参考平面…...

Spring-全面详解(学习总结)

一:概述 1.1 为什么学 解决了两个主要问题 1. 2 学什么 1.3 怎么学 二:系统架构 作用:web开发、微服务开发、分布式系统开发 容器:用于管理对象 AOP:面向切面编程(不惊动原始程序下对其进行加强) 事…...

突破JVM边界:类加载三重门与栈帧的生存法则

类加载子系统 文件验证阶段 类加载子系统在加载Class文件时,首先会验证文件格式规范,检查文件开头的魔数标识,确保这是一个合法的JVM字节码文件。 职责边界 该子系统仅负责将Class文件加载到内存中,并不关心后续能否成功执行—…...

VSCode 查看文件的本地修改历史

1. 使用时间线视图(Timeline) 新版 VSCode 内置了一个叫 Timeline(时间线) 的功能,可以查看: 本地文件修改记录(包括保存历史)Git 提交历史(如果仓库是 Git 管理的&…...

在QGraphicsView中精确地以鼠标为锚缩放图片

在pyqt中以鼠标所在位置为锚点缩放图片-CSDN博客中的第一个示例中,通过简单设置: self.setTransformationAnchor(QGraphicsView.AnchorUnderMouse) 使得QGraphicsView具有了以鼠标为锚进行缩放的功能。但是,其内部应当是利用了滚动条的移动来…...

【Python数据驱动决策】数据分析与可视化全流程实战指南

目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比二、实战演示环境配置要求核心代码实现案例1:销售数据清洗案例2:月度销售趋势分析案例3:产品关联分析(热力图)运行结果验证三、性能对…...

报错解决:ModuleNotFoundError: No module named ‘triton.ops‘

报错原因:2024.5.21之后, triton.ops 被移动到另一个工程 triton-lang/kernels中。 参考链接:官方解释 解决方案:换用2024.5.21之前发布的版本。 pip3 install triton2.3.0...

相机-IMU联合标定:相机-IMU外参标定

文章目录 📚简介🚀标定工具kalibr🚀标定数据录制🚀相机-IMU外参标定📚简介 在 VINS(视觉惯性导航系统) 中,相机-IMU外参标定 是确保多传感器数据时空统一的核心环节,其作用可概括为以下关键点: 坐标系对齐(空间同步),外参误差会导致视觉特征点投影与IMU预积…...

Qt C++数据库实验

一、实验目的和要求 1、掌握Qt中数据库SQL类数据库的查询、插入和更新操作。 2、熟悉Qt界面设计中常用的控件。 3、了解数据库相关类。 二、实验内容 1、设计一个数据库操作软件,完成数据库的相关操作。 2、建立按钮的信号与槽函数,实现点击按钮进…...

相机-IMU联合标定:IMU标定

文章目录 📚 简介🚀标定工具安装📌 IMU标定工具 code_utils📌 IMU标定工具 imu_utils:🚀标定数据录制🚀IMU标定📚 简介 在 VINS(Visual-Inertial Navigation System,视觉惯性导航系统) 中,IMU标定 是确保系统高精度运行的关键环节。IMU(惯性测量单元)本身…...

榕壹云信用租赁系统:基于ThinkPHP+MySQL+UniApp的全链路免押租赁解决方案

信用租赁时代的全流程数字化革新 随着共享经济与信用体系的深度融合,传统租赁行业正面临效率与信任的双重挑战。榕壹云信用租赁系统依托ThinkPHP高性能框架、MySQL数据库与UniApp跨平台开发技术,构建了一套覆盖设备租赁全生命周期的数字化解决方案。通过整合多因子身份认证、…...

C语言中的指针详解

指针是C语言中非常强大且复杂的特性之一,它为我们提供了更灵活的内存管理方式,使得程序能够直接操作内存,提升效率和性能。尽管指针非常强大,但如果不理解它的概念和使用方式,很容易出现错误。因此,理解指针…...

NIPS2021 | 视觉 Transformer 的有趣特性

Intriguing Properties of Vision Transformers 摘要-Abstract引言-Introduction相关工作-Related Work视觉Transformer的有趣特性-Intriguing Properties of Vision Transformers视觉Transformer对遮挡具有鲁棒性吗?-Are Vision Transformers Robust to Occlusions…...

贪心算法-2208.将数组和减半的最小操作数-力扣(LeetCode)

一、题目解析 这里要注意恰好这个字眼,说明对任意数减小一半是不需要向上取整的,所以我们需要定义double类型的数据。 二、算法解析 我们需要将数组和减小为一半的次数最少,所以根据贪心算法,我们需要取数组中最大的数进行减半操…...

如何搭建spark yarn 模式的集群集群。

下载 App 如何搭建spark yarn 模式的集群集群。 搭建Spark on YARN集群的详细步骤 Spark on YARN模式允许Spark作业在Hadoop YARN资源管理器上运行,利用YARN进行资源调度。以下是搭建步骤: 一、前提条件 已安装并配置好的Hadoop集群(包括HDF…...

嵌入式开发面试典型编程题解析:排序算法、指针操作、字符处理、递归原理等基础原理的深度解析。

在嵌入式开发面试中,编程题是常见的考察形式,旨在检验求职者对基础编程知识的掌握和应用能力。以下是几道典型的嵌入式面试编程题及详细解析,帮助新手逐步理解和掌握相关知识点。 一、用交换法对学生成绩降序排序 题目描述 在嵌入式系统开…...

DeepSeek+即梦:AI视频创作从0到1全突破

目录 一、开启 AI 视频创作大门:前期准备1.1 注册与登录1.2 熟悉工具界面1.3 硬件与网络要求 二、用 DeepSeek 构思视频脚本2.1 明确创作主题与目标2.2 编写优质提示词2.3 生成并优化脚本 三、即梦 AI 实现画面生成3.1 文生图基础操作3.2 调整参数提升画质3.3 保持人…...

npm init、换源问题踩坑

文章目录 一、 问题复现二、问题解决 一、 问题复现 成功安装nodejs 以及 npm 版本如下: > node -v > v20.18.0 > npm -v > 10.8.2使用 npm init 命令时延时过长,考虑换源,使用指令 npm config set registry https://registr…...

TRex 控制台命令解析

TRex 是一种高性能的网络测试工具,用于生成和分析网络流量。以下是对这些命令的简要解释: 一、help Console Commands(控制台命令) capture:管理 PCAP 捕获。debug:用于开发的内部调试器。events&#x…...

【Shell 脚本入门】轻松上手的实战指南

🌈 个人主页:Zfox_ 🔥 系列专栏:Shell脚本编程 目录 一:🔥 什么是 Shell 🦋 常见的 Shell 类型 二:🔥 什么是 Shell 脚本 🦋 Shell 脚本规则🦋 第…...

数据结构*栈

栈 什么是栈 这里的栈与我们之前常说的栈是不同的。之前我们说的栈是内存栈,它是JVM内存的一部分,用于存储局部变量、方法调用信息等。每个线程都有自己独立的栈空间,当线程启动时,栈就会被创建;线程结束&#xff0c…...

零基础制作Freertos智能小车(教程非常简易)持续更新中....

从现开始,将陆续推出各类简单的DIY电子设计,由简入深,将自己的制作过程全部分享出来,巩固自己知识的同时希望借此机会认识更多喜欢电子设计的小伙伴。 本次小车的主控芯片采用stm32f103c8t6,主要是便宜好用&am…...

Leetcode - 双周赛155

目录 一,3527. 找到最常见的回答二,3528. 单位转换 I三,3529. 统计水平子串和垂直子串重叠格子的数目四,3530. 有向无环图中合法拓扑排序的最大利润 一,3527. 找到最常见的回答 题目列表 本题是一道模拟题&#xff0…...

详解RabbitMQ工作模式之工作队列模式

目录 工作队列模式 概念 特点 应用场景 工作原理 注意事项 代码案例 引入依赖 常量类 编写生产者代码 编写消费者1代码 编写消费者2代码 先运行生产者,后运行消费者 先运行消费者,后运行生产者 工作队列模式 概念 在工作队列模式中&#x…...

QGIS+mcp的安装和使用

QGISmcp的安装和使用 安装qgis_mcp 下载qgis_mcp: git clone https://github.com/jjsantos01/qgis_mcp.git安装uv uv是一个由Rust语言编写的python包管理工具,旨在提供比传统工具(如 pip)更高效的依赖管理和虚拟环境操作。 p…...

Java基础361问第16问——枚举为什么导致空指针?

我们看一段代码 public enum Color {RED, BLUE, YELLOW;public static Color parse(String color) {return null;} }public static void main() {Color color Color.parse("");// 极具迷惑性,大家日常开发肯定这么写过switch (color) {case RED:break;c…...

在 C# .NET 中驾驭 JSON:使用 Newtonsoft.Json 进行解析与 POST 请求实战

JSON (JavaScript Object Notation) 已经成为现代 Web 应用和服务之间数据交换的通用语言。无论你是开发后端 API、与第三方服务集成,还是处理配置文件,都绕不开 JSON 的解析与生成。在 C# .NET 世界里,处理 JSON 有多种选择,其中…...

CentOS7——Docker部署java服务

1、安装Docker 首先要确保系统已安装 Docker,若未安装,可以参考我的另一篇文章现在CentOS7上安装Docker,文章地址如下: CentOS7系统安装Docker教程-CSDN博客 Docker当中要安装必备的软件,比如Java运行必要的JDK&#…...

Python-Part2-集合、字典与推导式

Python-Part2-集合、字典与推导式 1. set集合 ⽆序,去掉重复数据。 set1 {1,2,3,4,5,5,4,3,2,1}print(type(set1))print(set1)set2.add(66666)set2.remove(55)#不能使用下标访问set,所以修改操作一般为remove操作 add操作2.dict 字典 字典&#xff…...

《AI大模型应知应会100篇》第39篇:多模态大模型应用:文本、图像和音频的协同处理

第39篇:多模态大模型应用:文本、图像和音频的协同处理 摘要 随着人工智能技术的发展,多模态大模型(Multimodal Large Models)已经成为AI领域的热点之一。这些模型能够同时处理文本、图像、音频等多种模态数据&#xf…...

kvm学习小结

安装相关包 安装虚拟化相关包 apt install qemu-kvm qemu-system libvirt-clients libvirt-daemon-system vlan bridge-utils 安装界面相关包 apt install xinit gdmd 配置机器允许root登录 检查cpu是否支持虚拟化 egrep -o vmx|svm /proc/cpuinfo 执行命令systemctl s…...

k8s基本概念-YAML

YAML介绍 YAML是“YAML Aint a Markup Language” (YAML不是一种置标语言)的递归缩进写,早先YAML的意思其实是:“Yet Another Markup Language”(另一种置标语言) YAML是一个类似XML、JSON的标记性语言。YAML强调以数据为中心,并不是以标识语言为重点。因而YAML本身的定义…...

wps批注线条怎么取消去掉wps批注后有竖线

wps批注线条怎么取消去掉wps批注后有竖线 问题 图片 解决方案 图片 word批注线条取消的方法: 1.打开Word文档,点击需要删除的批注。 2.然后点击工具栏“审阅”选项。 3.接着点击“接受“ 4.接受对文档所做的所有修订(H)...

深度解析算法之分治(归并)

48.排序数组 题目链接 给你一个整数数组 nums,请你将该数组升序排列。 你必须在 不使用任何内置函数 的情况下解决问题,时间复杂度为 O(nlog(n)),并且空间复杂度尽可能小。 示例 1: 输入: nums [5,2,3,1] 输出&am…...

僵尸进程是什么?

僵尸进程(Zombie Process)是指在 Unix/Linux 系统中,一个子进程已经终止,但其父进程尚未对它进行善后处理(即没有读取其退出状态),导致子进程的进程表项仍然保留在系统中。由于这个进程已经结束…...

城市群出行需求的时空分形

城市群出行需求的时空分形 原文:He, Zhengbing. “Spatial-temporal fractal of urban agglomeration travel demand.” Physica A: Statistical Mechanics and its Applications 549 (2020): 124503. 1. Introduction(引言) 城市区域的重…...

LangChain入门(二)安装开发环境

1.安装conda Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。 Anaconda是一个开源的Python发行版本,其包含了conda、python等软件包,numpy、pandas、scipy等科学…...

如何开展有组织的AI素养教育?

一、AI素养的定义与核心内涵 AI素养是智能时代个体适应与创新能力的综合体现,其内涵随着技术发展动态扩展,包含以下核心维度: 知识体系:理解AI基本原理(如算法、数据、算力)、技术边界及发展趋势&#xff…...

InnoDB对LRU算法的优化

标准 LRU 算法的核心思想是:当缓存空间不足时,淘汰掉最近最少使用的数据块(Page)。它通常用一个链表来实现,链表头部是最近访问的 Page,链表尾部是最久未访问的 Page。 然而,在数据库系统中直接…...

云原生--核心组件-容器篇-7-Docker私有镜像仓库--Harbor

1、Harbor的定义与核心作用 定义: Harbor是由VMware开源的企业级容器镜像仓库系统,后捐赠给 CNCF (Cloud Native Computing Foundation)。它基于Docker Registry扩展了企业级功能,用于存储、分发和管理容器镜像(如Docker、OCI标准…...

TypeScript 实用类型深度解析:Partial、Pick、Record 的妙用

需求背景:在后台系统的用户管理模块中,我们常遇到这样的场景:修改用户资料时只需要传部分字段,展示用户列表时要隐藏敏感信息,快速查找用户需要ID索引等等,这些业务需求都可以通过 TypeScript 的实用类型优…...

【Pandas】pandas DataFrame rmod

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...

如何搭建spark yarn 模式的集群集群

以下是搭建Spark YARN模式集群的一般步骤: 准备工作 - 确保集群中各节点安装了Java环境,并配置好 JAVA_HOME 环境变量。 - 各节点间能通过SSH免密登录。 - 安装并配置好Hadoop集群,YARN作为Hadoop的资源管理器,Spark YARN模式需要…...

云原生--核心组件-容器篇-6-Docker核心之-镜像仓库(公共仓库,私有仓库,第三方仓库)

1、Docker仓库的定义与核心作用 定义: Docker仓库(Docker Registry)是用于存储、分发和管理Docker镜像的集中式存储库。它类似于代码仓库,但专门用于容器镜像的版本控制和共享。它允许开发人员和IT团队高效地管理、部署和分享容器…...

mysql8.0版本部署+日志清理+rsync备份策略

mysql安装:https://blog.csdn.net/qq_39399966/article/details/120205461 系统:centos7.9 数据库版本:mysql8.0.28 1.卸载旧的mysql,保证环境纯净 rpm -qa | grep mariadb mariadb-5.... rpm -e --nodeps 软件 rpm -e --nodeps mariadb-5.…...

搭建spark yarn 模式的集群集群

一.引言 在大数据处理领域,Apache Spark 是一个强大的分布式计算框架,而 YARN(Yet Another Resource Negotiator)是 Hadoop 的资源管理系统。将 Spark 运行在 YARN 模式下,可以充分利用 YARN 强大的资源管理和调度能力…...

在uni-app中使用Painter生成小程序海报

在uni-app中使用Painter生成小程序海报 安装Painter 从GitHub下载Painter组件:https://github.com/Kujiale-Mobile/Painter 将painter文件夹复制到uni-app项目的components目录下 配置页面 在需要使用海报的页面的pages.json中配置 {"path": "pag…...