HarmonyOS NEXT 技術特性:分布式軟總線技術架構

HarmonyOS NEXT 技術特性:分布式軟總線技術架構

在這里插入圖片描述

隨著物聯網發展,2030 預計全球聯網設備達 2000 億,異構設備互聯難題凸顯,分布式軟總線作為 HarmonyOS 生態核心,以軟件虛擬總線打破物理局限,讓跨品牌設備即插即用、共享算力,操作延遲低于 50ms,解決適配成本高問題,滿足用戶設備協同需求,為萬物互聯打造可擴展技術基礎,重塑設備交互模式。

分布式軟總線技術:打破傳統物理總線在連接上的限制,通過軟件方式將不同的設備連接在一起,形成一個統一的分布式系統,屏蔽不同設備之間硬件差異和通信協議的復雜性,為上層應用提供統一、便捷的設備連接和通信能力,各個設備可以像連接在同一物理總線上一樣進行數據交換和資源共享。簡單來說相當于在小區里建了個"超級快遞中轉站",所有柜子自動聯網,只需把東西放進中轉站,它會自動選擇最快路線(藍牙/WiFi/網線),閃電送到目標柜子,全程無需操心。

技術架構

在這里插入圖片描述

發現模塊:設備間的相互打招呼,解釋設備如何自動探測周邊設備并識別其能力

連接模塊:建立溝通橋梁,說明如何根據設備能力選擇合適的通信方式并建立連接

組網模塊:組建團隊,描述如何構建邏輯全連接網絡,實現設備間的協同工作

傳輸模塊:高效傳遞信息,介紹如何優化數據傳輸效率,確保信息準確、快速地傳遞

最終效果:用戶只需說播放音樂,手機自動協調音箱、耳機、智慧屏,像"快遞網絡"自動調配資源,全程無感完成

在這里插入圖片描述

模塊功能說明關鍵技術點
設備發現自動探測周邊設備支持CoAP、BLE廣播協議 - 結合WiFi、藍牙等物理鏈路抽象發現邏輯
連接管理建立設備間通信通道多協議支持:Socket、藍牙BR/BLE、P2P直連等 - 連接狀態監控與資源分配
組網拓撲構建邏輯全連接網絡異構網絡組網(如藍牙+WiFi混合傳輸) 動態維護設備上下線狀態
數據傳輸提供高效傳輸通道極簡協議棧(傳統四層協議精簡為單層,提升20%有效載荷) 流式傳輸與雙輪驅動機制抗網絡波動

技術實現原理

設備發現機制
  • CoAP廣播:設備通過受限應用協議廣播自身ID、能力映射表

如下實現基于鴻蒙 CoAP協議設備信息廣播任務,通過 CoAP協議以組播的方式周期性地廣播設備信息,實現設備自動發現功能

#include "ohos_coap.h"// 設備信息結構體(鴻蒙標準格式)
typedef struct {char deviceId[32];char capabilities[64]; // JSON格式能力列表
} DeviceInfo;void CoAPBroadcastTask() {DeviceInfo info = {"SmartLight_01", "{\"actions\":[\"toggle\",\"dim\"]}"};// 創建CoAP報文(使用鴻蒙封裝方法)CoapMessage* msg = CoapCreateMessage(COAP_METHOD_POST, "/discover");CoapSetPayload(msg, (uint8_t*)&info, sizeof(info));// 發送到組播地址(鴻蒙預定義軟總線組播組)CoapSendToGroup(msg, "224.0.1.187", 5683);// 定時廣播(鴻蒙任務調度)OSAL_TimerCreate("CoAPBroadcast", 5000, true, CoAPBroadcastTask);
}
  • BLE掃描:低功耗藍牙持續掃描周邊設備,平衡功耗與發現速度

如下實現在鴻蒙系統中通過 BLE 掃描發現支持鴻蒙系統的藍牙設備,提取設備 ID 和能力信息,同時提供了啟動掃描功能

#include "bluetooth_host.h"class BLEScanner : public BluetoothHostCallback {
public:void OnDeviceFound(const BluetoothDeviceInfo& device) override {// 解析廣播數據(鴻蒙標準ADV格式)std::string serviceData = device.GetServiceData();if (serviceData.find("HarmonyOS") != std::string::npos) {// 提取設備ID和能力(鴻蒙自定義AD Type)std::string deviceId = ParseDeviceId(serviceData);std::vector<std::string> capabilities = ParseCapabilities(serviceData);// 觸發設備發現回調(鴻蒙框架自動處理)OnDeviceDiscovered(deviceId, capabilities);}}
};// 啟動BLE掃描(鴻蒙參數配置)
void StartScan() {BluetoothHost* host = BluetoothHost::GetDefaultHost();BLEScanSettings settings;settings.SetScanMode(SCAN_MODE_LOW_LATENCY); // 低延遲模式settings.SetPhy(BLE_PHY_1M); // 1Mbps速率host->StartScan(settings, new BLEScanCallback());
}
傳輸優化策略
  • 流式傳輸:基于UDP實現保序傳輸,避免TCP的擁塞控制阻塞

如下實現通過自定義的流控頭和相應的分片、重組邏輯,在 UDP 協議基礎上實現可靠的流式數據傳輸,適用于需要處理大數據量且對數據順序有要求的場景,同時通過互斥鎖保證多線程環境下的安全性

#include "ohos_udp_stream.h"// 發送端(流式分片)
void StreamSender::SendPacket(const uint8_t* data, size_t len) {static uint16_t seqNum = 0;// 添加流控頭(鴻蒙自定義)StreamHeader header;header.seq = seqNum++;header.total = len / MAX_PAYLOAD_SIZE + 1;// 分片發送(自動處理MTU)for (size_t offset = 0; offset < len; offset += MAX_PAYLOAD_SIZE) {size_t chunkSize = std::min(MAX_PAYLOAD_SIZE, len - offset);UdpSocket::SendTo(remoteAddr, header, data + offset, chunkSize);}
}// 接收端(保序重組)
void StreamReceiver::ProcessPacket(const StreamHeader& header, const uint8_t* data) {// 插入緩沖區(按序列號排序)bufferLock.lock();packetBuffer[header.seq] = {header, data};// 檢查是否可重組(序列號連續)if (CheckSequenceContinuity()) {// 觸發重組回調(鴻蒙框架自動處理)OnStreamReconstructed(ReassemblePackets());ClearBuffer();}bufferLock.unlock();
}
  • 雙輪驅動:結合消息確認與丟包快速重傳,適應弱網環境

如下實現通過雙驅動機制保證消息在 UDP 傳輸中的可靠性,降低因網絡問題導致的消息丟失風險

#include "ohos_dual_drive.h"// 發送端邏輯
void DualDriveSender::SendMessage(const Message& msg) {// 記錄發送時間(用于RTO計算)msg.sendTime = GetTimestamp();// 發送消息(帶序列號)UdpSocket::SendTo(remoteAddr, msg.seq, msg.data);// 啟動兩個計時器(鴻蒙高精度定時器)StartAckTimer(msg.seq);StartRetransTimer(msg.seq);
}// 接收端邏輯
void DualDriveReceiver::ProcessAck(uint16_t seq) {// 停止對應計時器StopAckTimer(seq);StopRetransTimer(seq);// 從重傳隊列移除(鴻蒙鎖優化)retransLock.lock();retransQueue.erase(seq);retransLock.unlock();
}// 快速重傳觸發(收到3個重復ACK)
void DualDriveSender::OnDuplicateAck(uint16_t seq) {if (++dupAckCount[seq] >= 3) {// 立即重傳(無需等待RTO)RetransmitPacket(seq);ResetTimers(seq);}
}
異構網絡協同
  • 邏輯全連接網絡:自動構建設備間虛擬拓撲,開發者無需感知物理鏈路

如下實現基于鴻蒙系統的邏輯網絡架構,通過設備發現、虛擬網絡初始化和極簡的開發者接口,實現設備間的自動組網和透明通信

#include "ohos_logical_network.h"// 設備發現服務
class DeviceDiscovery : public SoftBusListener {
public:void OnDeviceFound(const DeviceInfo& device) override {// 自動構建虛擬鏈路(鴻蒙框架處理)LogicalLink link = LogicalNetworkManager::CreateLink(device.id);// 注冊到全局路由表RouteTable::GetInstance().AddRoute(device.id, link.GetMetrics(), link.GetCapabilities());}
};// 虛擬網絡初始化
void LogicalNetworkManager::Init() {// 啟動mDNS發現(支持藍牙/WiFi/以太網)mDnsService.StartDiscovery({BLUETOOTH_PROFILE, WIFI_P2P_PROFILE, ETHERNET_PROFILE});// 創建虛擬交換中心(支持多設備并發)virtualSwitch.Create(MAX_DEVICES, DEFAULT_QOS);
}// 開發者接口(極簡)
void AppLayer::SendMessage(const std::string& targetDevice, const DataPacket& packet) {// 無需指定物理路徑LogicalNetworkManager::GetInstance().Send(targetDevice, packet);
}
  • 動態路由調整:根據網絡質量實時切換傳輸路徑(如從藍牙切換至WiFi)

如下實現動態路由系統,通過持續監控網絡鏈路質量、計算最優路徑、執行無縫切換和進行網絡質量評估,確保在網絡狀況變化時能夠快速、穩定地調整路由,提高數據傳輸的效率和可靠性

#include "ohos_dynamic_routing.h"// 路由監控線程
void RouteMonitor::Run() {while (true) {// 獲取所有活躍鏈路質量auto linkMetrics = LinkMonitor::GetLinkMetrics();// 計算最優路徑(Dijkstra算法優化)std::vector<Route> newRoutes = ComputeOptimalRoutes(linkMetrics);// 比較當前路由表if (newRoutes != currentRoutes) {// 執行無縫切換(鴻蒙專利的"零丟包切換"技術)PerformRouteTransition(newRoutes);UpdateRouteTable(newRoutes);}// 智能休眠(根據網絡穩定性調整檢測頻率)usleep(GetMonitorInterval());}
}// 路徑切換實現
void DynamicRouter::PerformRouteTransition(const std::vector<Route>& newRoutes) {// 預加載新路徑緩沖區(雙緩沖技術)newPathBuffer.Prepare(newRoutes);// 原子切換(保證傳輸連續性)std::atomic_store(&activeBuffer, &newPathBuffer);// 清理舊路徑資源oldPathBuffer.Release();
}// 網絡質量評估(綜合指標)
float LinkMonitor::CalculateLinkScore(const LinkMetrics& metrics) {return 0.4f * metrics.bandwidth + 0.3f * metrics.latency + 0.2f * metrics.packetLoss + 0.1f * metrics.jitter;
}

應用場景

在這里插入圖片描述

智能穿戴-手機-車機無縫流轉

HarmonyOS NEXT 的智能穿戴 - 手機 - 車機無縫流轉技術,依托分布式軟總線自動發現并連接設備,構建高效通信鏈路,實現低時延、可靠的數據傳輸;借助分布式任務調度,根據設備狀態與用戶習慣合理分配任務;通過分布式數據管理,保障數據在不同設備間的一致性、安全性與高效共享,讓用戶在各類設備間暢享流暢、協同的體驗。

模擬實現

如下模擬智能穿戴 - 手機 - 車機之間的無縫任務流轉,代碼定義了 DeviceTypeDeviceState 枚舉表示設備類型和狀態,SmartDevice 抽象類作為設備基礎類,包含啟動設備和處理任務流轉等方法。SmartWatchSmartphoneCarHeadUnit 類繼承自 SmartDevice 并實現各自的任務處理邏輯。DeviceManager 類為單例,負責設備注冊、管理活躍設備并在設備狀態變化時觸發任務流轉。SeamlessTransferDemo 類的 main 方法初始化并啟動設備,模擬用戶上車事件,觸發車機接管任務,以此展示設備間無縫流轉的核心邏輯,實際開發中需要根據具體需求擴展通信協議、安全機制和任務管理功能。

import java.util.*;
import java.util.concurrent.*;// 設備類型枚舉
enum DeviceType {WEARABLE, PHONE, CAR_HEAD_UNIT
}// 設備狀態枚舉
enum DeviceState {ACTIVE, INACTIVE, CONNECTING, DISCONNECTED
}// 設備基礎類
abstract class SmartDevice {protected String deviceId;protected DeviceType type;protected DeviceState state = DeviceState.INACTIVE;protected ExecutorService executor = Executors.newSingleThreadExecutor();public SmartDevice(String id, DeviceType type) {this.deviceId = id;this.type = type;}// 啟動設備服務public void start() {state = DeviceState.CONNECTING;// 模擬設備初始化過程executor.execute(() -> {try {Thread.sleep(1000);state = DeviceState.ACTIVE;System.out.println(deviceId + " 已啟動,當前狀態: " + state);DeviceManager.getInstance().registerDevice(this);} catch (InterruptedException e) {Thread.currentThread().interrupt();}});}// 處理任務流轉public abstract void handleTaskTransfer(String taskId);// 獲取設備信息public String getDeviceInfo() {return String.format("[%s] %s (%s)", type, deviceId, state);}
}// 智能手表實現
class SmartWatch extends SmartDevice {public SmartWatch(String id) {super(id, DeviceType.WEARABLE);}@Overridepublic void handleTaskTransfer(String taskId) {System.out.println(getDeviceInfo() + " 正在移交任務: " + taskId);// 模擬手表端的任務處理sendNotification("任務已轉移到手機");}private void sendNotification(String message) {System.out.println(getDeviceInfo() + " 發送通知: " + message);}
}// 智能手機實現
class Smartphone extends SmartDevice {public Smartphone(String id) {super(id, DeviceType.PHONE);}@Overridepublic void handleTaskTransfer(String taskId) {System.out.println(getDeviceInfo() + " 正在處理任務: " + taskId);// 模擬手機端的任務處理startNavigation(taskId);}private void startNavigation(String taskId) {System.out.println(getDeviceInfo() + " 開始導航任務: " + taskId);}
}// 車機實現
class CarHeadUnit extends SmartDevice {public CarHeadUnit(String id) {super(id, DeviceType.CAR_HEAD_UNIT);}@Overridepublic void handleTaskTransfer(String taskId) {System.out.println(getDeviceInfo() + " 正在接管任務: " + taskId);// 模擬車機端的任務處理transferToCarDisplay(taskId);}private void transferToCarDisplay(String taskId) {System.out.println(getDeviceInfo() + " 已將導航顯示在車載屏幕");}
}// 設備管理類(單例)
class DeviceManager {private static final DeviceManager instance = new DeviceManager();private final Map<String, SmartDevice> devices = new ConcurrentHashMap<>();private SmartDevice currentActiveDevice;private DeviceManager() {}public static DeviceManager getInstance() {return instance;}// 注冊設備public void registerDevice(SmartDevice device) {devices.put(device.deviceId, device);checkActiveDevice();}// 檢查并更新活躍設備private void checkActiveDevice() {SmartDevice phone = getDeviceByType(DeviceType.PHONE);SmartDevice car = getDeviceByType(DeviceType.CAR_HEAD_UNIT);// 優先級:車機 > 手機 > 手表if (car != null && car.state == DeviceState.ACTIVE) {setActiveDevice(car);} else if (phone != null && phone.state == DeviceState.ACTIVE) {setActiveDevice(phone);}}// 設置當前活躍設備private void setActiveDevice(SmartDevice device) {if (currentActiveDevice != null) {System.out.println("切換活躍設備: " + currentActiveDevice.getDeviceInfo() + " -> " + device.getDeviceInfo());// 觸發任務流轉currentActiveDevice.handleTaskTransfer("NAV_12345");}currentActiveDevice = device;}// 根據類型獲取設備private SmartDevice getDeviceByType(DeviceType type) {return devices.values().stream().filter(d -> d.type == type).findFirst().orElse(null);}
}// 主程序
public class SeamlessTransferDemo {public static void main(String[] args) throws InterruptedException {// 初始化設備SmartWatch watch = new SmartWatch("WATCH_001");Smartphone phone = new Smartphone("PHONE_001");CarHeadUnit car = new CarHeadUnit("CAR_001");// 啟動設備watch.start();phone.start();car.start();// 模擬用戶上車事件(延遲5秒)Thread.sleep(5000);car.state = DeviceState.ACTIVE; // 模擬車機檢測到用戶上車DeviceManager.getInstance().checkActiveDevice();}
}
關鍵實現說明

如上模擬實現以設備狀態機和動態優先級決策為核心,通過DeviceState枚舉精準跟蹤設備狀態,配合獨立線程管理啟動流程,確保多設備協同效率,采用三級優先級架構(車機>手機>穿戴設備),當高優先級設備激活時自動觸發handleTaskTransfer()實現任務無縫遷移,由DeviceManager實時監控設備狀態變化并更新活躍設備列表,擴展性設計支持通過繼承SmartDevice基類快速接入新設備類型,結合任務ID映射機制實現多任務并行管理。典型場景下,用戶導航任務可在穿戴設備-手機-車機間無感接續,通話、音樂等場景也能實現跨端連續性體驗,展現分布式系統"端側智能+場景感知"協同優勢。

總結

在這里插入圖片描述

HarmonyOS NEXT 分布式軟總線技術架構通過統一協議棧與智能路由機制,重構跨設備通信底層邏輯,支持藍牙、Wi-Fi等多介質自適應,實現手機、平板等設備間的無縫協同,將不同設備連接成一個有機整體,打破設備間的物理界限,實現跨設備的資源共享和協同工作。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/84430.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84430.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/84430.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是VR展館?VR展館的實用價值有哪些?

VR展館&#xff0c;重塑展覽體驗。在數字化時代浪潮的推動下&#xff0c;傳統的實體展館經歷前所未有的變革。作為變革的先鋒&#xff0c;VR展館以無限的潛力&#xff0c;成為展覽行業的新寵。 VR展館&#xff0c;即虛擬現實展館&#xff0c;是基于VR&#xff08;Virtual Real…

VLA模型:自動駕駛與機器人行業的革命性躍遷,端到端智能如何重塑未來?

當AI開始操控方向盤和機械臂&#xff0c;人類正在見證一場靜默的產業革命。 2023年7月&#xff0c;谷歌DeepMind拋出一枚技術核彈——全球首個視覺語言動作模型&#xff08;VLA&#xff09;RT-2橫空出世。這個能將“把咖啡遞給穿紅衣服的阿姨”這類自然語言指令直接轉化為機器人…

華為OD機試真題——出租車計費/靠譜的車 (2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳實現

2025 A卷 100分 題型 本專欄內全部題目均提供Java、python、JavaScript、C、C++、GO六種語言的最佳實現方式; 并且每種語言均涵蓋詳細的問題分析、解題思路、代碼實現、代碼詳解、3個測試用例以及綜合分析; 本文收錄于專欄:《2025華為OD真題目錄+全流程解析+備考攻略+經驗分…

40 歲 Windows 開啟 AI 轉型:從系統到生態的智能重構

在科技快速發展的當下&#xff0c;人工智能成為驅動各領域變革的核心力量&#xff0c;擁有 40 年歷史的 Windows 也開啟了向 AI 的全面轉型。2025 年 5 月 19-22 日西雅圖 Build 2025 開發者大會上&#xff0c;微軟展示了 Windows 11 向 AI 智能體核心平臺轉型的戰略&#xff0…

Python實例題:Python3實現可控制肉雞的反向Shell

目錄 Python實例題 題目 代碼實現 reverse_shell_client.py reverse_shell_server.py 實現原理 反向連接機制&#xff1a; 命令執行與傳輸&#xff1a; 功能特點&#xff1a; 關鍵代碼解析 服務端命令處理 客戶端命令執行 客戶端持久化連接 使用說明 啟動服務端…

AWS EC2 使用Splunk DB connect 連接 RDS mysql

1: 先創建 RDS mysql: 我們選擇free: 選擇free 過后,自動生成single instance, 沒有垮AZ 的db 設置。 選擇密碼登入: 注意:上面設置密碼的時候,特別提示:不能有特殊字符,我就設置了: mypassword 下面可以選擇通過EC2 連接,當然也可以不選:

SAP重塑云ERP應用套件

在2025年Sapphire大會上&#xff0c;SAP正式發布了其云ERP產品的重塑計劃&#xff0c;推出全新“Business Suite”應用套件&#xff0c;并對供應鏈相關應用進行AI增強升級。這一變革旨在簡化新客戶進入SAP生態系統的流程&#xff0c;同時為現有客戶提供更加統一、智能和高效的業…

初識 RocketMQ 知識總結:基礎概念、架構解析、核心特性與應用場景

Apache RocketMQ 是一款由阿里巴巴開源的分布式消息中間件&#xff0c;具有高吞吐量、低延遲、高可靠性等特點&#xff0c;廣泛應用于互聯網、金融、電商等領域。以下從多個維度對 RocketMQ 進行全面解析&#xff1a; 一、RocketMQ 基礎概念 1. 定義與定位 分布式消息中間件…

[特殊字符] UI-Trans:字節跳動發布的多模態 UI 轉換大模型工具,重塑界面智能化未來

2025 年&#xff0c;字節跳動&#xff08;ByteDance&#xff09;發布了革命性的多模態 UI 轉換模型 —— UI-Trans&#xff0c;引發了業界廣泛關注。作為一款融合視覺理解、語義分析與用戶交互意圖解析的 AI 工具&#xff0c;UI-Trans 在多個領域展現出強大能力&#xff0c;正在…

這個方法關閉PowerBI賬戶的安全默認值

這個方法關閉PowerBI賬戶的安全默認值 如果PowerBI賬戶是在 2019 年 10 月 22 日當天或之后創建的&#xff0c;則可能會自動啟用安全默認值&#xff0c;登錄賬戶會彈出彈框&#xff0c;如圖&#xff1a; 使用四步就可以關閉此彈框的提示&#xff1a; 第一步&#xff1a;轉到 A…

【Linux】磁盤空間不足

錯誤提示: no space left on device 經典版&#xff08;block占用&#xff09; 模擬 dd if/dev/zero of/var/log/nginx.log bs1M count2000排查 #1. df -h 查看哪里空間不足,哪個分區#2. du -sh詳細查看目錄所占空間 du -sh /* 排查占用空間大的目錄 du -sh /var/* du…

計算機視覺---YOLOv2

YOLOv2講解 一、YOLOv2 整體架構與核心特性 YOLOv2&#xff08;You Only Look Once v2&#xff09;于2016年發布&#xff0c;全稱為 YOLO9000&#xff08;因支持9000類目標檢測&#xff09;&#xff0c;在YOLOv1基礎上進行了多項關鍵改進&#xff0c;顯著提升了檢測精度和速度…

【深度學習】1. 感知器,MLP, 梯度下降,激活函數,反向傳播,鏈式法則

一、感知機 對于分類問題&#xff0c;我們設定一個映射&#xff0c;將x通過函數f(x)映射到y 1. 感知機的基本結構 感知機&#xff08;Perceptron&#xff09;是最早期的神經網絡模型&#xff0c;由 Rosenblatt 在 1958 年提出&#xff0c;是現代神經網絡和深度學習模型的雛形…

IP、子網掩碼、默認網關、DNS

IP、子網掩碼、默認網關、DNS 1. 概述1.1 windows配置處 2.IP 地址&#xff08;Internet Protocol Address&#xff09;2.1 公網ip2.2 內網ip2.3 &#x1f310; 公網 IP 與內網 IP 的關系&#xff08;NAT&#xff09; 3. 子網掩碼&#xff08;Subnet Mask&#xff09;4. 默認網…

Azure 公有云基礎架構與核心服務:從基礎到實踐指南

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 一、基礎概念 Azure 的基礎架構由多個核心組件構成&#xff0c;理解這些概念是掌握其技術框架的第一步&#xff1a; 地理區域&#xff08;Geographic R…

Ajax01-基礎

一、AJAX 1.AJAX概念 使瀏覽器的XMLHttpRequest對象與服務器通信 瀏覽器網頁中&#xff0c;使用 AJAX技術&#xff08;XHR對象&#xff09;發起獲取省份列表數據的請求&#xff0c;服務器代碼響應準備好的省份列表數據給前端&#xff0c;前端拿到數據數組以后&#xff0c;展…

使用防火墻禁止程序聯網(這里禁止vscode)

everything搜一下Code.exe的安裝路徑&#xff1a;D:\downloadApp1\vscode\Microsoft VS Code\Code.exe 方法&#xff1a;使用系統防火墻&#xff08;推薦&#xff09; Windows 通過防火墻阻止 VS Code&#xff1a; 打開 Windows Defender 防火墻&#xff08;控制面板 > 系統…

微信小程序 隱私協議彈窗授權

開發微信小程序的第一步往往是隱私協議授權&#xff0c;尤其是在涉及用戶隱私數據時&#xff0c;必須確保用戶明確知曉并同意相關隱私政策。我們才可以開發后續的小程序內容。友友們在按照文檔開發時可能會遇到一些問題&#xff0c;我把所有的授權方法和可能遇到的問題都整理出…

JVM規范之棧幀

JVM規范之棧幀 前言正文概述局部變量表操作數棧動態鏈接 總結參考鏈接 前言 上一篇文章了解了JVM規范中的運行時數據區&#xff1a; JVM規范之運行時數據區域 其中&#xff0c;棧是JVM線程私有的內存區&#xff0c;棧中存儲的單位是幀&#xff08;frames&#xff09;&#xff…

SGMD辛幾何模態分解

SGMD辛幾何模態分解 運行包含頻譜圖相關系數圖 Matlab語言 算法近幾年剛提出&#xff0c;知網還沒幾個人用&#xff0c;你先用&#xff0c;你就是創新&#xff01; 算法新穎小眾&#xff0c;用的人很少&#xff0c;包含分解圖、頻譜圖、相關系數圖&#xff0c;效果如圖所示&a…