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

HarmonyOS开发:关于签名信息配置详解

目录

前言

签名信息的重要性

签名的方式

自动化签名

1、连接真机

2、选择

手动签名

(一)生成密钥和证书请求文件

(二)申请调试证书

(三)注册调试设备

(四)申请调试Profile文件

(五)配置签名信息

结束语


前言

在HarmonyOS应用开发过程中,签名信息配置是一个关键步骤,它确保了应用的安全性和唯一性,签名信息涉及到应用能否正常上架,所以说正确配置签名信息对于应用上架、更新和用户数据保护至关重要。而且鸿蒙官方为了确保鸿蒙应用(包括元服务)的完整性,HarmonyOS通过数字证书和Profile文件对鸿蒙应用进行管控,只有签名后的鸿蒙应用才能安装到真机上运行。那么本文就来详细介绍在HarmonyOS开发中如何配置签名信息,包括生成签名证书、配置签名文件以及在开发环境中应用签名的过程,方便查阅使用。

签名信息的重要性

在HarmonyOS中,签名信息用于验证应用的身份和完整性,它主要有以下几个重要的作用:

  • 安全性:确保应用在传输和安装过程中未被篡改。
  • 唯一性:为应用开发者提供唯一的标识,防止应用被冒充。
  • 权限管理:控制应用的权限,确保应用只能访问授权的数据和资源。

签名的方式

为了确保鸿蒙应用/元服务的完整性,HarmonyOS通过数字证书和Profile文件对元服务进行管控,只有签名后的鸿蒙应用/元服务才能安装到真机上运行。

华为提供了两种签名方式:

  • 自动化签名
  • 手动签名

下文会专门介绍这两种签名方式的具体操作步骤。

自动化签名

这里还是要强调一下,至于是选择自动化签名还是手动签名,一切根据自己的实际情况为主。先来介绍一下自动化签名的详细操作步骤,大概分为两步操作,具体如下所示。

1、连接真机

首先需要连接真机操作,真机连接成功后如下图所示:

需要注意的是:如果同时连接多个设备,则使用自动化签名时,会同时将这多个设备的信息写到证书文件中在,这一点要记住。

2、选择

真机链接成功之后,就是去操作菜单选择。打开菜单,在菜单中选择“File > Project Structure”,打开界面之后在“Project Structure”界面导航选择“Project”,选择“Signing Configs”页签,选择“Debug”页签,勾选“Automatically generate signature” 。但是如果未登录,需要先点击“Sign In”进行登录,具体如下所示:

在完成签名完成之后,界面信息如下所示:

手动签名

上面的自动化签名是不是很简单,只需两步就可搞定,但是手动签名比较复杂,如果无法联网,不然不推荐使用这种签名方式。在开始使用手动签名之前,需要先了解如下几个基本概念:

  • 密钥:包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式为.p12,公钥和私钥对用于数字签名和验证。
  • 证书请求文件:格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
  • 数字证书:格式为.cer,由AppGallery Connect颁发。
  • Profile文件:格式为.p7b,包含元服务的包名、数字证书信息、描述元服务允许申请的证书权限列表,以及允许元服务调试的设备列表(如果元服务类型为Release类型,则设备列表为空)等内容,每个元服务包中均必须包含一个Profile文件。

(一)生成密钥和证书请求文件

1、首先打开菜单,在菜单中选择“Build > Generate Key and CSR”。

2、然后找到Key Store File可以点击“Choose Existing”选择,如果已有的密钥库文件(存储有密钥的.p12文件),跳转到下面的步骤4继续配置;如果没有密钥库文件,点击“New”,跳转到下面的步骤3进行创建。

3、找到“Create Key Store”界面,填写密钥库信息后,点击“OK”。下面是注意事项:

  • Key Store File:设置密钥库文件存储路径,并填写p12文件名。
  • Password:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
  • Confirm Password:再次输入密钥库密码。

4、打开“Generate Key and CSR”界面,然后继续填写密钥信息后,接着点击“Next”。下面是注意事项:

  • Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
  • Password:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
  • Validity:证书有效期,建议设置为2025年及以上,覆盖元服务的完整生命周期。
  • Certificate:输入证书基本信息,比如组织、城市或地区、国家码等,这与iOS、Android的设置差不多。

5、打开“Generate Key and CSR”界面,然后设置CSR文件存储路径和CSR文件名,最后点击“Finish”。

在CSR文件创建成功后,将在存储路径下获取生成密钥库文件(.p12)和证书请求文件(.csr)。

(二)申请调试证书

关于申请调试证书,大概分为四步,具体如下所示:

1、登录AppGallery Connect:AppGallery Connect ,登录之后如下图所示:

2、然后在左侧导航栏选择“证书管理”,进入“证书管理”页面,点击“新增证书”。具体如下所示:

3、在弹出“新增证书”界面填写相关信息后,点击“提交”。

参数

说明

证书名称

不超过100个字符。

证书类型

选择“调试证书”。

上传证书请求文件(CSR)

上传生成密钥和证书请求文件时获取的.csr文件。

4、证书申请成功后,“证书管理”页面展示生成的证书内容。

  • 点击“下载”将生成的证书保存至本地。
  • 每个帐号最多申请2个调试证书,如果证书已过期或者无需使用,点击“废除”即可删除证书。

(三)注册调试设备

1、注册调试设备依然需要登录AppGallery Connect:AppGallery Connect  ,然后点击“用户与访问”,具体如下所示:

2、进入之后,点击左侧导航栏选择“设备管理/测试账号”,进入“设备管理/测试账号”页面,具体如下所示:

  • 点击“添加设备/新增”,参考下表填写设备信息,单个添加设备。
  • 点击“批量添加设备”,下载模板,参考下表填写多条设备信息,上传文件,批量添加设备。

参数

说明

名称

不超过100个字符。

类型

选择需要调试设备的类型。

UDID

设备唯一标识符,是由字母和数字组成的64位字符串。您可在对应的调试设备上获取UDID。

关于手机获取UDID方式,具体如下所示:

  1. 打开“设置 > 关于手机”,多次点击版本号,打开开发者模式。
  2. 打开“设置 > 系统和更新”,在最下方找到“开发人员选项”,打开“USB调试”开关。
  3. 使用PC连接手机后,打开命令行工具,进入HDC目录(一般为:HarmonyOS SDK安装目录/toolchains/{版本号}),然后输入hdc shell bm get --udid命令,获取设备的UDID即可

3、设备注册成功,即可在“设备管理”页面查看到设备信息。

(四)申请调试Profile文件

1、登录AppGallery Connect:AppGallery Connect ,选择“我的项目”,具体如下所示:

2、找到对应项目,点击项目卡片中需要调试的元服务。

3、导航选择“HarmonyOS应用 > HAP Provision Profile管理”,进入“管理HAP Provision Profile”页面,点击“添加”。

4、在“HarmonyAppProvision信息”界面填写相关信息,点击“提交”,具体设置参数如下所示:

参数

说明

名称

不超过100个字符。

类型

选择“调试”。

选择证书

选择申请的调试证书。

选择设备

选择注册的调试设备。

申请受限权限

若软件包因特殊场景要求使用受限权限,如读取、 添加、移除或更改联系人数据等,务必在此处进行申请,否则元服务将无法在调试设备上安装调试。

5、申请成功,即可在“管理HAP Provision Profile”页面查看Profile信息。点击“下载”,将文件下载到本地,具体如下所示:

(五)配置签名信息

1、打开DevEco Studio,菜单选择“File > Project Structure”,进入“Project Structure”界面。

2、导航选择“Project”,点击“Signing Configs”页签。去除勾选的“Automatically generate signature”,填写相关信息后,点击“OK”,具体需要选择的文件释义如下所示:

  • Store File:密钥库文件,选择生成密钥和证书请求文件
  • Store Password:密钥库密码,需要与生成密钥和证书请求文件
  • Key alias:密钥的别名信息,需要与生成密钥和证书请求文件
  • Key password:密钥的密码,需要与生成密钥和证书请求文件
  • Sign alg:固定设置为“SHA256withECDSA”。
  • Profile file:选择申请调试Profile文件
  • Certpath file:选择申请调试证书

结束语

通过上文对于HarmonyOS开发中签名信息配置的详细介绍,我们不难看出签名信息配置是HarmonyOS应用开发中的一个重要环节。签名不仅是保护应用安全的关键,也是确保应用能够顺利发布和更新的前提,通过生成签名证书、配置签名文件和正确签名应用,可以确保应用的安全性和唯一性。随着技术的不断演进,签名和安全机制可能会有所变化,所以我们需要持续关注HarmonyOS的最新安全实践和更新,以确保应用始终保持最新和最安全的配置,还有就是开发者也应该培养良好的安全意识,从设计和编码阶段就开始考虑应用的安全性,与此同时应遵循官方文档和最佳实践,确保签名过程的正确性和应用的顺利上架。最后,希望本文能够为大家提供实用的指导和帮助,让大家能够更加自信地进行应用开发和签名配置,让我们一起期待并共同构建一个更加安全、可靠和繁荣的HarmonyOS应用生态系统!

相关文章:

HarmonyOS开发:关于签名信息配置详解

目录 前言 签名信息的重要性 签名的方式 自动化签名 1、连接真机 2、选择 手动签名 (一)生成密钥和证书请求文件 (二)申请调试证书 (三)注册调试设备 (四)申请调试Profil…...

react 组件双向绑定

1. 使用 state 实现双向绑定 对于双向绑定,需要同时处理表单元素的value属性(通过state来设置)和onChange事件(用于更新state)。 import { useState } from "react";const MyComponent () > {const [i…...

k8s api对象,CRD

在Kubernetes项目中,一个API对象在Etcd里的完整资源路径,是由:Group(API组)、Version(API版本)和Resource(API资源类型)三个部分组成 apiVersion: batch/v2alpha1 kind:…...

详解MyBatis之篇一

目录 MyBatis 定义 使用MyBatis操作数据库 创建项目 配置 演示 UserInfo.java UserInfoMapper UserInfoMapperTest 数据准备 自动生成测试类 运行结果 MyBatis 定义 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避…...

uniapp连接mqtt频繁断开原因和解决方法

mqtt参考文档:MQTT.js 入门教程 | EMQ、MQTT.js 入门教程 - EMQX - 博客园 uniapp引用MQTT频繁断开的问题可能由于以下几个原因导致: 网络不稳定:频繁断开可能是由于网络不稳定导致的,可以尝试优化网络连接。 心跳机制问题&…...

网络安全内容整理二

网络嗅探技术 网络监听 网络监听,也称网络嗅探(Network Sniffing):在他方未察觉的情况下捕获其通信报文、通信内容的技术 网卡的工作模式: 1.广播模式(Broadcast Mode):网卡能够接收网络中的广播信息 2.组播模式(Multicast Mo…...

IDE解说

IDE(Integrated Development Environment,集成开发环境) 是一种集成了多种开发工具的软件应用程序,旨在简化软件开发过程。 IDE 通常包括代码编辑器、编译器或解释器、调试器、构建自动化工具和版本控制系统等组件。通过将这些工…...

安心护送转运平台小程序

安心护送转运平台小程序是一款基于FastAdminThinkPHPUniapp开发的非急救救护车租用转运平台小程序系统,可以根据运营者的业务提供类似短途接送救护服务,重症病人转运服务,长途跨省护送服务。...

mongodb文档字符串批量替换

【mongodb文档字符串批量替换脚本语句】 前言: 1、本方式对于数据量大的情况不适用,执行可能比较慢; 2、数据量大的情况,个人推荐代码层面解决,多线程替换更快: (1)写实体类的方式…...

模拟实现vector(非常详细)

模拟实现vector 1.基本概念2.vector()默认构造函数3.size()4.capacity()5.empty()6.reverse7.push_back()8.pop_back()9.operator[ ]10.resize()11.insert() 1.基本概念 上一节我们讲了vector的概念以及常用的接口,这一节我们讲一下它的实现,它的底层其实…...

证明直纹极小曲面是平面或者正螺旋面.

目录 证明直纹极小曲面是平面或者正螺旋面 证明直纹极小曲面是平面或者正螺旋面 证明:设极小直纹面 S S S的参数表示为 r ( u , v ) a ( u ) v c ( u ) . (u,v)\mathbf{a}(u)v\mathbf{c}(u). (u,v)a(u)vc(u).则 r u a ′ v c ′ , r v c , r u ∧ r v a ′ ∧…...

电子应用设计方案-34:智能镜子系统方案设计

智能镜子系统方案设计 一、引言 智能镜子作为一种新兴的智能设备,将传统镜子与现代科技相结合,为用户提供了丰富的信息展示和交互功能。它不仅可以作为普通镜子使用,还能够显示天气、新闻、日程安排等信息,甚至可以与智能家居设备…...

前端项目从开发到部署全流程介绍

一、项目初始化 创建项目目录 首先创建一个新的项目目录,例如my - front - end - project。使用命令mkdir my - front - end - project && cd my - front - end - project。 初始化项目 使用npm init或yarn init来初始化项目,这会生成一个packag…...

Vue3.0组件之间通信(defineProps 和 defineEmits 及 defineExpose)

前言&#xff1a; 一、父传子 defineProps二、子传父 defineEmits三、子组件暴露属性和方法给父组件 defineExpose四、依赖注入Provide / Inject 在 <script setup> 中必须使用 defineProps 和 defineEmits API 来声明 props 和 emits &#xff0c;它们具备完整的类型推…...

多种平台上安装部署调试Open5GS(四)

OpenWRT 源码安装 UERANSIM 安装依赖openwrt源码安装cmake其他依赖准备UERANSIM安装测试验证Open5GS 是一个功能完善的开源5G项目,具备5G、4G核心网功能,最新代码支持R17标准, 本系列文章介绍Open5GS在x86、ARM平台上的安装部署方法,并通过搭建UERANSIN、商用5G基站和终端两…...

KST-3D01型胎儿超声仿真体模、吸声材料以及超声骨密度仪用定量试件介绍

一、KST-3D01型胎儿超声仿真体模 KST—3D01型胎儿超声体模&#xff0c;采用仿羊水环境中内置胎龄为7个月大仿胎儿设计。用于超声影像系统3D扫描演示装置表面轮廓呈现和3D重建。仿羊水超声影像呈暗回声&#xff08;无回波&#xff09;特性&#xff0c;仿胎儿超声影像呈对比明显…...

论文笔记-WWW2024-ClickPrompt

论文笔记-WWW2024-ClickPrompt: CTR Models are Strong Prompt Generators for Adapting Language Models to CTR Prediction ClickPrompt: CTR模型是大模型适配CTR预测任务的强大提示生成器摘要1.引言2.预备知识2.1传统CTR预测2.2基于PLM的CTR预测 3.方法3.1概述3.2模态转换3.…...

VTK中对于相机camera的设置

1. 相机的核心属性 在 VTK 中&#xff0c;vtkCamera 的核心属性有默认值。如果你不设置这些属性&#xff0c;相机会使用默认值来渲染场景。 Position&#xff08;默认值&#xff1a;(0, 0, 1)&#xff09;&#xff1a; 默认情况下&#xff0c;相机位于 Z 轴正方向的 (0, 0, 1)…...

小程序解决大问题-物流系统磁盘爆满问题处理

晚上七点&#xff0c;煤矿调运的物流调度系统突然磁盘报名导致服务崩溃。系统用的是微服务&#xff0c;没有详细操作说明&#xff0c;也不敢动&#xff0c;运煤车辆排起了长队&#xff0c;只能联系厂家处理。好在经过30多分钟的处理&#xff0c;服务终于启动&#xff0c;系统运…...

OGRE 3D----5. OGRE和QML事件交互

在现代图形应用程序开发中,OGRE(Object-Oriented Graphics Rendering Engine)作为一个高性能的3D渲染引擎,广泛应用于游戏开发、虚拟现实和仿真等领域。而QML(Qt Modeling Language)则是Qt框架中的一种声明式语言,专注于设计用户界面。将OGRE与QML结合,可以充分利用OGR…...

docker搭建nginx

一. 直接启动nginx镜像 1. 下载nginx镜像 docker pull nginx 2. 运行镜像 docker run -p 8080:80 --name web -d nginx 3. 网址查看 xx.xx.xx.xx:8080 二. 挂在文件启动nginx镜像 1. 拷贝docker文件到本地 docker cp web:/etc/nginx/nginx.conf /root/data/config/nginx…...

Qt之样式表设置总结。。。持续更新

参考文章链接如下: Qt样式表之一:Qt样式表和盒子模型介绍 Qt样式表之二:QSS语法及常用样式 Qt样式表之三:实现按钮三态效果的三种方法 Qt样式表之一:QSS名词解释 Qt样式表之二:常用控件qss Qt样式表之三:QSS奇技淫巧 样式表介绍 Qt样式表是一个可以自定义部件外观的十…...

若依项目源码阅读

源码阅读 前端代码分析 代码生成器生成的前端代码有两个&#xff0c;分别是course.js用于向后端发送ajax请求的接口代码&#xff0c;另一个是index.vue&#xff0c;用于在浏览器展示课程管理的视图组件。前端的代码是基于vue3elementplus。 template用于展示前端组件别的标签…...

Ubuntu20.04运行R-VIO2

目录 1.环境配置2.构建项目3. 运行 VIO 模式4.结果图 1.环境配置 CMakeLists.txt中 C 使用 14、opencv使用4 2.构建项目 克隆代码库&#xff1a; 在终端中执行以下命令克隆项目&#xff1a;git clone https://github.com/rpng/R-VIO2.git编译项目&#xff1a; 使用 catkin_m…...

【Python运维】容器管理新手入门:使用Python的docker-py库实现Docker容器管理与监控

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着容器技术的广泛应用,Docker已经成为开发和运维中的标准工具之一。使用Python语言管理Docker容器,不仅可以自动化繁琐的容器操作,还能…...

SQL基础入门——SQL基础语法

1. 数据库、表、列的创建与管理 在SQL中&#xff0c;数据库是一个数据的集合&#xff0c;包含了多个表、视图、索引、存储过程等对象。每个表由若干列&#xff08;字段&#xff09;组成&#xff0c;表中的数据行代表记录。管理数据库和表的结构是SQL的基础操作。 1.1 创建数据…...

Lumos学习王佩丰Excel第十八讲:LOOKUP函数与数组

一、回顾统计函数 1、使用SUMIF函数 sumif(条件区域,求和条件,求和区域) 2、使用SUMIFS函数 SUMIFS(求和范围, 条件范围1, 条件1, 条件范围2, 条件2, ...) 二、认识数组 1、数组生成原理 所谓数组&#xff0c;是有序的元素序列。组成数组的各个变量称为数组的元素。对于Ex…...

第二节——计算机网络(四)物理层

车载以太网采用差分双绞线车载以太网并未指定特定的连接器&#xff0c;连接方式更为灵活小巧&#xff0c;能够大大减轻线束重量。传统以太网一般使用RJ45连接器连接。车载以太网物理层需满足车载环境下更为严格的EMC要求&#xff0c;100BASE-T1\1000BASE-T1对于非屏蔽双绞线的传…...

【接口封装】——11、Qt 的单例模式

宏定义&#xff1a; Q_GLOBAL_STATIC(NotifyManager,theInstance) 函数定义&#xff1a; class NotifyManager : public QObject {Q_OBJECTpublic:NotifyManager(QObject *parent nullptr);~NotifyManager();static NotifyManager*getInstance(); //单例模式 } 源代码&#…...

理解字母形状,从而获得含义

英文字母&#xff0c;都是象形符号&#xff0c;所以&#xff0c;理解其形象&#xff0c;所象之形&#xff0c;是一项重要的工作&#xff0c;和非常有意义事情。也是我们快速记住大量单词&#xff0c;将单词从底层逻辑开始理清&#xff0c;融会贯通扩展记忆容量的重要办法之一。…...

redis揭秘-redis01-redis单例与集群安装总结

文章目录 【README】【1】安装单机【1.1】安装环境【1.2】安装步骤 【2】redis集群主从模式配置【2.1】集群架构【2.2】redis集群主从模式搭建步骤【2.3】redis集群主从模式的问题&#xff08;单点故障问题&#xff09; 【3】redis集群哨兵模式配置【3.1】集群架构【3.2】redis…...

mini-spring源码分析

IOC模块 关键解释 beanFactory&#xff1a;beanFactory是一个hashMap, key为beanName, Value为 beanDefination beanDefination: BeanDefinitionRegistry&#xff0c;BeanDefinition注册表接口&#xff0c;定义注册BeanDefinition的方法 beanReference&#xff1a;增加Bean…...

RVO动态避障技术方案介绍

原文&#xff1a;RVO动态避障技术方案介绍 - 哔哩哔哩 我们在开发游戏的时候经常会遇到这样的问题&#xff0c;当我们寻路的时候&#xff0c;其它人也在寻路&#xff0c;如何避免不从其它人的位置穿过。这个叫做动态避障&#xff0c;目前主流的解决方案就是RVO。本节我们来介绍…...

HTML CSS JS基础考试题与答案

一、选择题&#xff08;2分/题&#xff09; 1&#xff0e;下面标签中&#xff0c;用来显示段落的标签是&#xff08; d &#xff09;。 A、<h1> B、<br /> C、<img /> D、<p> 2. 网页中的图片文件位于html文件的下一级文件夹img中&#xff0c;…...

【C语言】二叉树(BinaryTree)的创建、3种递归遍历、3种非递归遍历、结点度的实现

代码主要实现了以下功能&#xff1a; 二叉树相关数据结构定义 定义了二叉树节点结构体 BiTNode&#xff0c;包含节点数据值&#xff08;字符类型&#xff09;以及指向左右子树的指针。 定义了顺序栈结构体 SqStack&#xff0c;用于存储二叉树节点指针&#xff0c;实现非递归遍历…...

MySQL Workbench 数据库建模详解:从设计到实践

目录 数据库建模基础概念MySQL Workbench 简介与安装 什么是 MySQL Workbench&#xff1f;安装与环境配置 MySQL Workbench 数据库建模功能详解 EER 图&#xff08;实体关系图&#xff09;数据库反向工程数据库正向工程模型同步与版本管理 MySQL Workbench 数据库建模实战教程…...

【字体】Fire Code连字效果开启

Vscode 开启方法 1、设置字体Fire Code 放在最前面的即可&#xff1a; 2、启用连字 继续往下找到“在 settings.json 中编辑”&#xff0c;然后设置"editor.fontLigatures": true &#xff1a; 保存即可。 Sublime 开启方法 设置中设置字体后&#xff0c;启…...

springboot kafka在kafka server AUTH变动后consumer自动销毁

前言 笔者使用了kafka用来传输数据&#xff0c;笔者在今年10月写了文章&#xff0c;怎么使用配置化实现kafka的装载&#xff1a;springboot kafka多数据源&#xff0c;通过配置动态加载发送者和消费者-CSDN博客 不过在实际运行中&#xff0c;kafka broker是加密的&#xff0c…...

第六届国际科技创新(IAECST 2024)暨第四届物流系统与交通运输(LSTT 2024)

重要信息 会议官网&#xff1a;www.lstt.org 大会时间&#xff1a;2024年12月6-8日 大会地点&#xff1a;中国-广州 简介 第六届国际科技创新暨第四届物流系统与交通运输国际&#xff08;LSTT 2024&#xff09;将于2024年12月6-8日在广州举办&#xff0c;这是一个集中探讨…...

【Vue3】【Naive UI】< a >标签

【Vue3】【Naive UI】< a >标签 超链接及相关属性其他属性 【VUE3】【Naive UI】&#xff1c;NCard&#xff1e; 标签 【VUE3】【Naive UI】&#xff1c;n-button&#xff1e; 标签 【VUE3】【Naive UI】&#xff1c;a&#xff1e; 标签 <a> 标签HTML中的一个锚&…...

Fortran mpi在Linux的安装

最近编译一个程序需要需要 Fortran mpi 编译器&#xff0c;则需要安装 Fortran编辑器和MPI库&#xff0c;以下是具体的安装步骤&#xff1a; 一、安装 Fortran 编译器&#xff08;gfortran&#xff09; 在conda环境中安装&#xff1a; conda install -c conda-forge gfortra…...

蓝桥-希尔排序模板题

第一眼看到这个题还在想希尔排序模板不记得了&#xff0c;于是去网上了搜了一个&#xff0c;但是考虑到这种题只看测试点能不能通过&#xff0c;于是用Arrays方法试了一下&#xff0c;发现也可以。 1.希尔排序模板ac代码 package yunkePra;import java.util.Scanner;public cl…...

深入学习指针(5)!!!!!!!!!!!!!!!

文章目录 1.回调函数是什么&#xff1f;2.qsort使用举例2.1使用qsort函数排序整形数据2.2使用sqort排序结构数据 3.qsort函数的模拟实现 1.回调函数是什么&#xff1f; 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针&#xff08;地址&#xff09;作为参数传递…...

windows 应用 UI 自动化实战

UI 自动化技术架构选型 UI 自动化是软件测试过程中的重要一环&#xff0c;网络上也有很多 UI 自动化相关的知识或资料&#xff0c;具体到 windows 端的 UI 自动化&#xff0c;我们需要从以下几个方面考虑&#xff1a; 开发语言 毋庸置疑&#xff0c;在 UI 自动化测试领域&am…...

nodejs相关知识介绍

1、nodejs官方文档&#xff1a; https://nodejs.org/zh-cn nodejs可以用nvm进入安装&#xff1b; 2、npm说明&#xff1a; npm官方教程&#xff1a;https://npm.p2hp.com/ npm是 Node.js 的标准包管理器&#xff0c;也就是说nodejs安装好&#xff0c;npm也就安装好了&#…...

How to monitor Spring Boot apps with the AppDynamics Java Agent

本文介绍如何使用 AppDynamics Java 代理监视 Azure Spring Apps 中的 Spring Boot 应用程序。 使用 AppDynamics Java 代理可以&#xff1a; 监视应用程序使用环境变量配置 AppDynamics Java 代理 在 AppDynamics 仪表板中检查所有监视数据 How to monitor Spring Boot app…...

安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本

安装SQL Server 2022提示需要Microsoft .NET Framework 4.7.2 或更高版本。 原因是&#xff1a;当前操作系统版本为Windows Server 2016 Standard版本&#xff0c;其自带的Microsoft .NET Framework 版本为4.6太低&#xff0c;不满足要求。 根据报错的提示&#xff0c;点击链接…...

TypeScript核心语法(5)——函数

简介​ 函数的类型声明&#xff0c;需要在声明函数时&#xff0c;给出参数的类型和返回值的类型。 function hello(a: string): void {console.log("hello " txt); } 上面示例中&#xff0c;函数hello()在声明时&#xff0c;需要给出参数a的类型&#xff08;stri…...

【MyBatis】验证多级缓存及 Cache Aside 模式的应用

文章目录 前言1. 多级缓存的概念1.1 CPU 多级缓存1.2 MyBatis 多级缓存 2. MyBatis 本地缓存3. MyBatis 全局缓存3.1 MyBatis 全局缓存过期算法3.2 CacheAside 模式 后记MyBatis 提供了缓存切口&#xff0c; 采用 Redis 会引入什么问题&#xff1f;万一遇到需强一致场景&#x…...

ARIMA-神经网络混合模型在时间序列预测中的应用

ARIMA-神经网络混合模型在时间序列预测中的应用 1. 引言 1.1 研究背景与意义 时间序列预测在现代数据科学中扮演着越来越重要的角色。从金融市场的价格走势到工业生产的需求预测,从气象数据的天气预报到用电量的负荷预测,时间序列分析无处不在。传统的统计方法和现代深度学习…...