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

探索鸿蒙:了解华为鸿蒙操作系统的基础课程

 

 

目录

学习目标:

学习内容:

学习时间:

学习产出:

介绍鸿蒙操作系统的起源和发展历程。

 理解鸿蒙操作系统的核心概念和体系结构。

学习如何搭建和配置鸿蒙开发环境。 

 掌握基础的鸿蒙应用开发技术,包括应用的创建、界面设计、事件处理等。

 学习如何使用鸿蒙的核心服务和功能模块,如通信模块、数据存储模块等。

 掌握鸿蒙的应用发布和调试流程,能够将应用部署到鸿蒙平台上进行测试和发布。


 

学习目标:

  1. 理解鸿蒙操作系统的特点和优势,掌握其与其他操作系统的比较。
  2. 熟悉鸿蒙的开发环境和工具,并能够搭建和配置开发环境。
  3. 掌握基础的鸿蒙应用开发技术,能够独立开发简单的鸿蒙应用程序。
  4. 理解鸿蒙的核心服务和功能模块,并能够灵活运用于应用开发中。
  5. 掌握鸿蒙的应用发布和调试流程,能够将应用部署到鸿蒙平台上进行测试和发布。

学习内容:

  1. 介绍鸿蒙操作系统的起源和发展历程。
  2. 理解鸿蒙操作系统的核心概念和体系结构。
  3. 学习如何搭建和配置鸿蒙开发环境。
  4. 掌握基础的鸿蒙应用开发技术,包括应用的创建、界面设计、事件处理等。
  5. 学习如何使用鸿蒙的核心服务和功能模块,如通信模块、数据存储模块等。
  6. 深入了解鸿蒙的应用发布和调试流程。

学习时间:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

  1. 介绍鸿蒙操作系统的起源和发展历程。

鸿蒙操作系统是由华为公司于2019年推出的全场景分布式操作系统。它的起源可以追溯到华为公司在2009年开始研发的自研操作系统项目。最初,该项目是为了应对Android和iOS等操作系统在华为手机业务中的垄断地位,确保华为在移动设备市场上有更大的自主权。

在2016年,华为决定将该项目从智能手机领域扩展到其他设备上,进一步提升华为在智能物联网领域的竞争力。这标志着鸿蒙操作系统开始以全场景分布式操作系统的方式进行开发。

鸿蒙操作系统的发展历程可以分为几个重要阶段:

  1. 鸿蒙OS 1.0:于2019年8月发布,主要用于物联网设备和智能电视等终端设备。它具有低延迟、高并发和弹性扩展的特点,适用于各种物联网场景。

  2. 鸿蒙OS 2.0:于2020年9月发布,进一步扩展到智能手机和平板电脑等移动设备。鸿蒙OS 2.0引入了分布式能力和多终端协同,可以实现设备之间的无缝连接和资源共享。

  3. 鸿蒙OS 3.0:预计于2022年发布,将进一步扩展到更多智能终端设备,包括智能汽车和智能家居等领域。鸿蒙OS 3.0将提供更强大的AI能力和更高的性能。

在鸿蒙操作系统的开发过程中,华为注重开放合作,与全球生态合作伙伴共同推进鸿蒙生态建设。鸿蒙操作系统也将成为华为全场景智能终端的核心操作系统,为用户带来更加智能、高效和无缝的使用体验。

 理解鸿蒙操作系统的核心概念和体系结构。

鸿蒙操作系统的核心概念和体系结构包括鸿蒙内核、分布式能力、统一IDE和应用框架等。

  1. 鸿蒙内核:鸿蒙内核是鸿蒙操作系统的核心组件,它采用了微内核架构,具有高性能、低延迟和强大的安全性能。鸿蒙内核具备高度的可扩展性,可以适应不同设备的需求,同时支持多核处理器和多线程操作。

  2. 分布式能力:鸿蒙操作系统通过分布式能力实现了设备之间的无缝连接和资源共享。它提供了分布式数据管理、分布式软总线和分布式安全等功能,使得设备可以形成一个分布式网络,共同协同工作。

  3. 统一IDE:鸿蒙操作系统提供了统一的集成开发环境(IDE),名为HarmonyOS IDE,支持多种开发语言和多种开发框架。开发人员可以使用Java、C、C++等语言进行开发,并且可以使用鸿蒙应用框架进行应用程序的开发。

  4. 应用框架:鸿蒙操作系统提供了丰富的应用框架,包括UI框架、数据管理框架、网络框架和多媒体框架等。开发者可以使用这些框架快速开发各种应用程序,包括手机应用、智能家居应用和车载应用等。

以下是一个简单的代码示例,展示了如何使用鸿蒙应用框架来创建一个简单的界面:

public class MyApplication extends AbilityPackage {@Overridepublic void onInitialize() {super.onInitialize();// 注册界面路由FormManager.registerFormRoute("com.example.app.MainForm", MainActivity.class);}
}public class MainActivity extends FormAbility {@Overridepublic void onStart(Intent intent) {super.onStart(intent);// 加载布局super.setUIContent(ResourceTable.Layout_main_layout);// 获取界面控件并设置点击事件Button button = (Button) findComponentById(ResourceTable.Id_button);button.setClickedListener(component -> {// 点击事件处理逻辑Toast.makeText(this, "Hello HarmonyOS!", Toast.ToastLength.SHORT).show();});}
}

通过以上示例,可以看到鸿蒙应用框架的使用方式,以及如何进行界面的布局和控件的事件处理。除了界面开发,鸿蒙应用框架还提供了丰富的功能和接口,方便开发者进行数据管理、网络通信和多媒体处理等操作。

学习如何搭建和配置鸿蒙开发环境。 

学习如何搭建和配置鸿蒙开发环境是掌握鸿蒙操作系统开发的第一步。下面是一个示例,详细解释了如何搭建和配置鸿蒙开发环境。

步骤1:安装JDK

  • 首先,确保已经安装了Java Development Kit (JDK)。可以从Oracle官网下载并安装JDK,根据操作系统选择相应的版本。

步骤2:安装HarmonyOS IDE

  • 下载并安装HarmonyOS IDE。可以从华为官方网站上获取最新的HarmonyOS IDE安装包。
  • 双击安装包,按照安装向导的指示进行安装。选择安装路径并完成安装。

步骤3:配置HarmonyOS SDK

  • 打开HarmonyOS IDE,点击菜单栏的「Preferences」(Windows系统为「Settings」)。
  • 在打开的窗口中,选择「HarmonyOS SDK」,并点击「+」按钮。
  • 选择HarmonyOS SDK的安装路径,并点击「OK」。

步骤4:创建一个HarmonyOS项目

  • 在HarmonyOS IDE中,点击「File」,选择「New」,然后选择「HarmonyOS Project」。
  • 在弹出的对话框中,填写项目名称和存储路径,点击「Next」。
  • 在下一个界面中,选择项目的类型(如「智能手表应用」、「智能家居应用」等),点击「Next」。
  • 在最后一个界面中,选择项目的模板,点击「Finish」。

步骤5:运行HarmonyOS应用

  • 在项目的「entry」模块中,找到入口代码文件(如「MainAbilitySlice.java」)。
  • 打开该文件,找到onStart()方法,在该方法中添加应用逻辑代码。
  • 连接设备(或启动模拟器),点击菜单栏的「Run」,选择「Run 'entry'」。
  • 应用将会安装并运行在设备上。

通过以上步骤,可以成功搭建和配置鸿蒙开发环境,并运行一个简单的HarmonyOS应用。在实际开发中,可以使用HarmonyOS IDE提供的强大功能和工具,进行应用开发和调试。

 掌握基础的鸿蒙应用开发技术,包括应用的创建、界面设计、事件处理等。

当学习基础的鸿蒙应用开发技术时,以下是一些学习内容和相应的代码示例,每个示例都有详细的注释解释。

  1. 应用的创建

    • 创建一个鸿蒙应用的基本结构和文件。
    • entry模块的MainAbilitySlice类中,添加应用启动时的逻辑代码。
    // 应用的入口界面
    public class MainAbilitySlice extends AbilitySlice {@Overridepublic void onStart(Intent intent) {super.onStart(intent);// 设置界面布局setContentView(R.layout.main_ability_layout);// 添加其他初始化代码或逻辑// ...}
    }
    

  2. 界面设计

    • 使用XML布局文件定义应用的界面。
    • main.xml文件中,添加控件、布局和样式等。
    <?xml version="1.0" encoding="utf-8"?>
    <DirectionalLayoutxmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"><Textohos:height="match_content"ohos:width="match_content"ohos:text="Hello, HarmonyOS!"ohos:text_size="50fp"ohos:layout_alignment="center" /></DirectionalLayout>
    

  3. 事件处理

    • 在应用中处理用户的交互事件。
    • MainAbilitySlice类中,监听并处理用户点击事件。
    public class MainAbilitySlice extends AbilitySlice implements Component.ClickedListener {private Text text;@Overridepublic void onStart(Intent intent) {super.onStart(intent);setContentView(R.layout.main_ability_layout);// 获取Text控件对象text = (Text) findComponentById(ResourceTable.Id_text_view);// 设置点击事件监听器text.setClickedListener(this);// 添加其他代码或逻辑// ...}@Overridepublic void onClick(Component component) {if (component == text) {// 处理点击事件// ...}}
    }
    

通过学习以上的鸿蒙应用开发技术,你将能够创建基本的鸿蒙应用、设计界面和处理用户事件。这些基础知识将为你进一步深入学习和开发鸿蒙应用提供坚实的基础。

 学习如何使用鸿蒙的核心服务和功能模块,如通信模块、数据存储模块等。

学习如何使用鸿蒙的核心服务和功能模块是深入开发鸿蒙应用的关键。以下是一些常用的鸿蒙服务和功能模块的代码示例,每个示例都有详细的注释解释。

  1. 通信模块(Ability ConnectManager)
// 发起连接请求
ConnectOption option = new ConnectOption();
option.setAbilityType(AbilityType.SERVICE);
ConnectionManager.getInstance().connect(new ConnectIntent(), option, new IConnectCallback() {@Overridepublic void onAbilityConnectDone(ElementName elementName, IRemoteObject iRemoteObject, int resultCode) {// 连接成功后的处理逻辑}@Overridepublic void onAbilityDisconnectDone(ElementName elementName, int resultCode) {// 连接断开后的处理逻辑}
});// 发送请求到其他服务端
IRemoteObject remoteObject = ... // 获取到的远程对象
MessageParcel request = MessageParcel.obtain();
MessageParcel reply = MessageParcel.obtain();
try {request.writeInt(100); // 设置请求参数remoteObject.sendRequest(0, request, reply, new MessageOption());// 处理回复
} catch (RemoteException e) {e.printStackTrace();
} finally {request.reclaim();reply.reclaim();
}

  1. 数据存储模块(DistributedData)
// 创建数据变更回调
DistributedDataChangeListener listener = new DistributedDataChangeListener() {@Overridepublic void onChanged(DistributedData data, DataChangeEvent event) {// 处理数据变更事件}
};// 打开或创建分布式数据
DistributedDataManager manager = DistributedDataManager.getInstance();
DistributedData data = manager.openDistributedData("dataId");
data.addChangeListener(listener);// 写入数据
data.putString("key", "value");// 读取数据
String value = data.getString("key", "");

  1. 定位模块(Location)
// 创建定位服务回调
LocationListener listener = new LocationListener() {@Overridepublic void onLocationReport(Location location) {// 处理定位结果}@Overridepublic void onLocationStateChange(LocationState state) {// 处理定位状态变化}@Overridepublic void onErrorReport(int error) {// 处理定位错误}
};// 创建定位服务
LocationManager manager = LocationManager.getInstance();
LocationRequest request = new LocationRequest();
manager.startLocating(request, listener);// 停止定位服务
manager.stopLocating(listener);

通过学习以上的鸿蒙核心服务和功能模块,你将能够在应用中使用通信模块、数据存储模块以及定位模块等功能。这些模块能够帮助你构建更强大和丰富的鸿蒙应用。

 掌握鸿蒙的应用发布和调试流程,能够将应用部署到鸿蒙平台上进行测试和发布。

要掌握鸿蒙的应用发布和调试流程,你需要按照以下步骤进行操作:

  1. 配置开发环境:确保已经安装并配置好鸿蒙开发环境,包括鸿蒙SDK和相关工具。

  2. 构建应用包:使用鸿蒙开发工具构建应用包,生成一个应用安装包(.hpm文件)。

  3. 连接设备:连接鸿蒙设备或者启动鸿蒙模拟器。

  4. 安装应用:使用鸿蒙开发工具将应用安装包安装到设备上。

  5. 调试应用:使用鸿蒙开发工具进行应用的调试。

  6. 发布应用:将应用上传到鸿蒙开发者平台并进行发布。

以下是一个简单的示例来说明发布和调试应用的流程:

  1. 假设你已经完成了应用的开发,并已经生成了一个应用安装包(例如app.hpm)。

  2. 连接鸿蒙设备或启动鸿蒙模拟器。

  3. 使用鸿蒙开发工具的命令行界面(或者图形化界面),将应用安装包安装到设备上。可以使用以下命令进行安装:

$ hm install app.hpm

  1. 安装完成后,使用鸿蒙开发工具的调试功能来调试应用。你可以在开发工具中设置断点、查看变量等。

  2. 完成应用的调试后,可以将应用发布到鸿蒙开发者平台。在平台上登录你的开发者账号,创建一个应用项目,并上传应用安装包进行发布。

请注意,以上只是一个基本的流程示例,实际操作中可能会有细微差异。你可以参考鸿蒙的官方文档和相关教程,以获得更详细和准确的发布和调试流程说明。

相关文章:

探索鸿蒙:了解华为鸿蒙操作系统的基础课程

目录 学习目标&#xff1a; 学习内容&#xff1a; 学习时间&#xff1a; 学习产出&#xff1a; 介绍鸿蒙操作系统的起源和发展历程。 理解鸿蒙操作系统的核心概念和体系结构。 学习如何搭建和配置鸿蒙开发环境。 掌握基础的鸿蒙应用开发技术&#xff0c;包括应用的创建、…...

【Linux】进程周边007之进程控制

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.进程创建 2.进程终止 2.…...

【C++】vector容器的模拟实现

目录 一&#xff0c;框架设计 二&#xff0c;构造函数 三&#xff0c;析构函数 四&#xff0c;赋值运算符 五&#xff0c;容器接口的实现 1&#xff0c;迭代器实现 2&#xff0c;“ [] ”运算符的实现 3&#xff0c;swap交换和resize重设大小 4&#xff0c;insert插入…...

华为Harmony——ArkTs语言

文章目录 一、简单示例二、声明式UI描述创建组件无参有参数 配置属性配置事件配置子组件 三、自定义组件基本用法基本结构成员函数/变量 一、简单示例 我们以一个具体的示例来说明ArkTS的基本组成。如下图所示&#xff0c;当开发者点击按钮时&#xff0c;文本内容从“Hello Wo…...

uniapp使用colorUI

colorUI 微动画 | ColorUI 使用文档 1&#xff1a;把colorui里三个文件复制到自己项目中去 App.vue </script> <style> import url(colorui/icon.css); import url(colorui/main.css); import url("colorui/animation.css");-webkit-keyframes show {…...

浅谈测试自动化selenium之POM模式

基于本人也是一个初学者&#xff0c;在运用POM模式的时候记录一下自己的学习笔记。 如果你是大神&#xff0c;那么可以略过&#xff0c;如果你是初学者&#xff0c;希望对你有帮助。 本文阐述了以下几个问题&#xff1a; 什么叫POM模式 为什么要用POM模式 POM模式的思想 POM模…...

什么是事件传播、事件冒泡、事件捕获?

一、事件传播 1、概述 &#xff08;1&#xff09;当事件发生在DOM元素上时&#xff0c;该事件并不完全发生在那个元素 &#xff08;2&#xff09;在冒泡阶段中&#xff0c;事件冒泡或向上传播至父级、祖父级、祖父的父级&#xff0c;直到 window 为止 &#xff08;3&#x…...

【uniapp】uniapp中本地存储sqlite数据库保姆级使用教程(附完整代码和注释)

数据库请求接口封装 uniapp中提供了plus.sqlite接口&#xff0c;在这里我们对常用的数据库请求操作进行了二次封装 这里的dbName、dbPath、recordsTable 可以根据你的需求自己命名 module.exports {/** * type {String} 数据库名称*/dbName: salary,/*** 数据库地址* type {…...

微软推出了GPT-RAG:这是一个机器学习库,为在Azure OpenAI上使用RAG模式生产部署大型语言模型(LLMs)提供了企业级参考架构

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Centos系统升级gcc版本

自己环境的gcc版本太低&#xff0c;影响使用SAN全家桶进行内存泄露检查 当前环境gcc版本查看 gcc --version 进行升级&#xff1a; 1、安装EPEL存储库 yum install epel-release -y 2、确保系统已经更新到最新版本 yum update -y 3、安装GCC编译器及其相关工具包 yum g…...

Http---HTTP响应报文

1. HTTP响应报文分析 HTTP 响应报文效果图: 响应报文说明: --- 响应行/状态行 --- HTTP/1.1 200 OK # HTTP协议版本 状态码 状态描述 --- 响应头 --- Server: Tengine # 服务器名称 Content-Type: text/html; charsetUTF-8 # 内容类型 Transfer-Encoding: chunked # 发送给客…...

iOS 开发设计 App 上架符合要求的截图

1. 真机运行截屏 2. 可以在 Apple developer 官网 Design 下找到 iPhone 边框 https://developer.apple.com/design/resources/ 不用这个边框也行&#xff0c;可以参考已上架 App 的图片框 3. 使用 Procreate&#xff08;PhotoShop&#xff09;创建符合要求的画布大小 4. 导入…...

DRF之引入

目录 一、web应用模式 【1】前后端混合开发 【2】前后端分离 二、API接口 三、接口测试工具&#xff1a;Postman 四、RESTful API规范 【1】什么是RESTful 【2】RESTful API的规范 2.1 数据的安全保障 2.2 接口特征表现 2.3 多数据版本共存 2.4 数据即是资源&#…...

【Skynet 入门实战练习】事件模块 | 批处理模块 | GM 指令 | 模糊搜索

文章目录 前言事件模块批处理模块GM 指令模块模糊搜索最后 前言 本节完善了项目&#xff0c;实现了事件、批处理、模糊搜索模块、GM 指令模块。 事件模块 什么是事件模块&#xff1f;事件模块是用来在各系统之间传递事件消息的。 为什么需要事件模块&#xff1f;主要目的是…...

Web组态可视化编辑器-by组态

演示地址&#xff1a; http://www.by-lot.com http://www.byzt.net web组态可视化编辑器&#xff1a;引领未来可视化编辑的新潮流 随着网络的普及和快速发展&#xff0c;web组态可视化编辑器应运而生&#xff0c;为人们在网络世界中创建和编辑内容提供了更加便捷的操作方式。这…...

PDF.js介绍以及使用

一、PDF.js是什么 PDF.js是一个JavaScript库&#xff0c;可以在现代Web浏览器中渲染和显示PDF文件。它的主要作用是将PDF文件转换为HTML5格式&#xff0c;以便在浏览器上进行展示和交互。 PDF.js的主要功能包括&#xff1a; 在浏览器中显示PDF&#xff1a;PDF.js使用HTML5的…...

经常使用的排序算法

一、直接插入排序 #include <stdio.h>void insert_sort(int arr[], int n){int i, j, tmp;for (i 1; i < n; i){tmp arr[i];j i - 1;while (j > 0 && arr[j] > tmp){ // 将要插入的元素与数组中的元素比较&#xff08;从后向前比&#xff09;arr[j …...

msyql 24day 数据库主从 主从复制 读写分离 master slave 有数据如何增加

目录 环境介绍读写分离纵向扩展横向扩展 数据库主从准备环境主库环境(master)从库配置(slave)状态分析重新配置问题分析 报错解决从库验证 有数据的情况下 去做主从清理环境环境准备数据库中的锁的机制主库配置从库配置最后给主库解锁常见错误 环境介绍 将一个数据库的数据 复…...

使用 Taro 开发鸿蒙原生应用 —— 探秘适配鸿蒙 ArkTS 的工作原理

背景 在上一篇文章中&#xff0c;我们已经了解到华为即将发布的鸿蒙操作系统纯血版本——鸿蒙 Next&#xff0c;以及各个互联网厂商开展鸿蒙应用开发的消息。其中&#xff0c;Taro作为一个重要的前端开发框架&#xff0c;也积极适配鸿蒙的新一代语言框架 —— ArkTS。 本文将…...

Linux下 自定义多线程并发快速压缩解压缩脚本

文章目录 自定义多线程压缩解压缩脚本使用 Linux下 自定义多线程并发快速压缩解压缩脚本 Linux下常用的tar工具无法支持并行 压缩和解压&#xff0c;对于大量小文件的解压缩&#xff0c;可借助pigz工具实现多线程并行工作&#xff0c;实现更为高效的压缩和解压缩。 自定义多线…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...