HarmonyOS应用/服务发布:打造多设备生态的关键一步

目前

  • 前言
  • HarmonyOS 应用/服务发布的重要性
  • 使用HarmonyOS 构建跨设备的应用生态
  • 前期准备工作
  • 简述发布流程
  • 生成签名文件
  • 配置签名信息
  • 编译构建.app文件
  • 上架.app文件到AGC
  • 结束语

前言

随着智能设备的快速普及和多样化,以及编程语言的迅猛发展,构建一个无缝连接的多设备生态系统已经成为当前技术发展的大趋势,而HarmonyOS 作为华为自主研发的分布式操作系统,为开发者提供了一个创新的平台,使大家能够将应用和服务无缝地跨设备发布和交互。那么本文就来详细分享一下HarmonyOS 应用/服务发布的重要性以及如何利用 HarmonyOS 构建跨设备的应用生态。

HarmonyOS 应用/服务发布的重要性

在过去的几年中,智能设备的发展呈现出多样化和高度互联的趋势,如智能手机、智能手表、智能电视等,这些设备之间的互联互通成为用户的期望和需求,而HarmonyOS 作为一个分布式操作系统有很多独特的优势和重要功能,具体可以汇总以下几点:

  • 统一开发框架:HarmonyOS 提供了统一的开发框架,使开发者可以使用一套代码开发适配多设备的应用,这意味着我们开发者可以更高效地开发和发布应用,可以为用户提供一致的体验。
  • 多设备互联:HarmonyOS 的分布式能力使得不同设备之间可以无缝连接和通信,实现数据共享和协同工作,可以通过将应用和服务发布到 HarmonyOS 生态系统中,开发者可以为用户提供跨设备的一体化体验。
  • 强大的能力和性能:还有就是HarmonyOS 提供了强大的能力和性能,使开发者能够实现更丰富、更高效的应用,无论是在智能手机、智能手表还是智能电视上,HarmonyOS 都能够提供流畅的用户界面和卓越的性能。

使用HarmonyOS 构建跨设备的应用生态

为了充分利用 HarmonyOS 的优势,通过使用HarmonyOS 构建跨设备的应用生态,我们开发者可以采取以下步骤来构建跨设备的应用生态:

  • 了解 HarmonyOS:作为鸿蒙开发者,首先需要深入了解 HarmonyOS 的基本概念和架构,而且应该熟悉 HarmonyOS 的分布式能力、开发框架和工具,以便更好地利用这些功能。
  • 适配应用:开发者还需要对现有的应用进行适配,使其能够在 HarmonyOS 上运行并与其他设备进行互联,而且需要熟练使用 HarmonyOS 提供的开发工具,对应用进行修改和优化,以适应不同设备的特性和屏幕尺寸。
  • 发布到 HarmonyOS 生态:我们可以将适配后的应用发布到 HarmonyOS 的应用商店,让用户能够轻松地下载和安装,还可以将应用注册为 HarmonyOS 的系统服务,使其能够与其他应用和设备无缝交互。
  • 提供一体化体验:结合HarmonyOS 的一体化优势,开发者应该注重提供一体化的用户体验,利用 HarmonyOS 的分布式能力,使用户能够在不同设备上无缝切换并保持应用的状态和数据同步。
  • 持续改进和创新:随着 HarmonyOS 的不断发展,作为鸿蒙开发者应该密切关注最新的功能和更新,并及时进行应用的改进和创新,也可以利用 HarmonyOS 提供的开发者社区和资源,与其他开发者交流经验和分享最佳实践。

前期准备工作

做过鸿蒙开发的开发者想必都清楚,HarmonyOS是通过数字证书与Profile文件等签名信息来保证应用/服务的完整性,应用/服务上架到AppGallery Connect必须通过签名校验,所以需要使用发布证书和Profile文件对应用/服务进行签名后才能发布,所以这是进行HarmonyOS 应用/服务发布前的必备准备工作。

另外,在应用/服务发布到AppGallery Connect之后,会将应用分发至应用市场,将服务分发至服务中心,用户便可以通过终端设备上的应用市场App获取HarmonyOS应用,通过服务中心获取元服务。

简述发布流程

我们作为鸿蒙开发者,在完成HarmonyOS应用/服务开发后,需要将应用/服务打包成App Pack(.app文件),用于发布到华为应用市场,具体发布应用/服务的流程如下图所示:

生成签名文件

移动开发者想必对生成签名并不陌生,但是不熟悉生成签名的小伙伴也不必担心,接下来就来具体分享一下生成签名文件的方法步骤。其实HarmonyOS应用/服务通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用/服务的完整性,我们在申请数字证书和Profile文件前,需要先通过DevEco Studio来生成密钥(存储在格式为.p12的密钥库文件中)和证书请求文件(.csr文件)。

基本概念

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

使用DevEco Studio生成密钥和证书请求文件

1、在主菜单栏单击Build > Generate Key and CSR。(需要注意:如果本地已有对应的密钥,无需新生成密钥,可以在Generate Key界面中单击下方的Skip跳过密钥生成过程,直接使用已有密钥生成证书请求文件。)

2、在Key Store File中,可以单击Choose Existing选择已有的密钥库文件(存储有密钥的.p12文件);如果没有密钥库文件,单击New进行创建,下面以新创建密钥库文件为例来讲:

3、在Create Key Store窗口中,填写密钥库信息后,单击OK。

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

4、在Generate Key and CSR界面中,继续填写密钥信息后,单击Next。

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

5、在Generate Key and CSR界面,设置CSR文件存储路径和CSR文件名。

6、单击OK按钮,创建CSR文件成功,可以在存储路径下获取生成的密钥库文件(.p12)和证书请求文件(.csr)。

申请发布证书和Profile文件

j接着就是申请发布证书和Profile文件的操作,通过生成的证书请求文件,向AppGallery Connect申请发布证书和Profile文件,具体如下所示:

  • 创建HarmonyOS应用/服务:在AppGallery Connect项目中,创建一个HarmonyOS应用/服务,用于发布证书和Profile文件申请,这里不再多讲,可以参考鸿蒙官方对应的文档:文档中心(需要注意:在应用/服务分发阶段,HarmonyOS应用将被分发至应用市场,原子化服务将会被分发至服务中心,所以如果申请原子化服务的签名证书,在“创建应用”操作时,“是否原子化服务”选项请选择“是”。)
  • 申请发布证书和Profile文件:在AppGallery Connect中申请、下载发布证书和Profile文件,这里也不再过多讲解,可以参考鸿蒙官方对应的文档:文档中心

用于发布的证书和Profile文件申请完成后,请在DevEco Studio中进行签名,接下来会详细讲解配置签名信息。

配置签名信息

通过上面关于使用制作的私钥(.p12)文件、在AppGallery Connect中申请的证书(.cer)文件和Profile(.p7b)文件,在DevEco Studio配置工程的签名信息,构建携带发布签名信息的APP。在File > Project Structure > Project > Signing Configs > default界面中,取消“Automatically generate signature”勾选项,然后配置工程的签名信息。(需要注意:如果是API Version 4至7的工程,请在Signing Configs界面,选择Release,然后配置签名信息。)

  • Store File:选择密钥库文件,文件后缀为.p12。
  • Store Password:输入密钥库密码。
  • Key Alias:输入密钥的别名信息。
  • Key Password:输入密钥的密码。
  • Sign Alg:签名算法,固定为SHA256withECDSA。
  • Profile File:选择申请的发布Profile文件,文件后缀为.p7b。
  • Certpath File:选择申请的发布数字证书文件,文件后缀为.cer。

通过上面的步骤设置完签名信息后,单击OK进行保存,然后使用DevEco Studio生成APP,接下来就是编译构建.app文件的详细操作步骤。

编译构建.app文件

在编译构建打包APP时,DevEco Studio会将工程目录下的所有HAP模块打包到APP中,所以如果工程目录中存在不需要打包到APP的HAP模块,需要手动删除后再进行编译构建生成APP,具体操作步骤如下所示:

  1. 单击Build > Build Hap(s)/APP(s) > Build APP(s),等待编译构建完成已签名的APP。
  2. 编译构建完成后,可以在工程目录build > outputs > app > release下,获取带签名的APP。

上架.app文件到AGC

最后就是将HarmonyOS应用/服务打包成.app文件后上架到AppGallery Connect,AppGallery Connect会将HarmonyOS应用至应用市场,将元服务分发至服务中心,上架详细操作指导本篇内容不再介绍,后面会单独做上架鸿蒙应用的文章,具体的请参考鸿蒙官方的文档:文档中心

结束语

通过本文关于HarmonyOS 应用/服务发布的介绍,想要入门鸿蒙开发的小伙伴应该都学会了吧?我觉得HarmonyOS 应用/服务发布是构建多设备生态系统的关键一步,它为开发者提供了一个创新的平台,使我们能够开发和发布适配多设备的应用和服务,推动了智能设备之间的互联互通。另外,通过利用 HarmonyOS 的统一开发框架、多设备互联能力和强大的性能,我们鸿蒙开发者可以为用户提供一致、流畅且高效的体验。同时,作为用户,我们将享受到更便捷、智能的生活体验,我们可以通过 HarmonyOS 实现智能手机、智能手表、智能电视等设备之间的无缝切换和协同工作,同时享受到一致的应用界面和数据同步,这将极大地提升我们的生产力和娱乐体验。在未来,随着智能设备的不断发展和用户对连接性的需求不断增加,构建一个无缝连接的多设备生态系统将变得更加重要,而HarmonyOS 作为一个开放的操作系统,将继续吸引更多的开发者加入,并推动多设备生态发展的进程。随着 HarmonyOS 生态的不断壮大,我们可以期待更多创新和便利的应用和服务的涌现,让我们的生活更加智能、简单和愉悦。最后,希望本文对读者关于HarmonyOS 应用/服务发布有所帮助和指导,并能够让您在未来的多设备生态系统中获得更好的体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/371513.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程间通信 --管道通信

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 本篇导航 0. 进程间通信原理1. 匿名管道1.1 通信原理1.2 接口介绍 2. 命名管道2.1 接口介绍 3. 共享内存3.1 通信原理3.2 接口介绍 0. 进…

前端框架学习 Vue(3)vue生命周期,钩子函数,工程化开发脚手架CLI,组件化开发,组件分类

Vue 生命周期 和生命周期的四个阶段 Vue生命周期:一个Vue实例从创建 到 销毁 的整个过程 生命周期四个阶段 :(1)创建 (2)挂载 (3)更新 (4)销毁 Vue生命周期函数(钩子函数) Vue生命周期过程中,会自动运行一些函数,被称为[生命周期钩子] ->让开发者可以在[特定阶段] 运行自…

互联网加竞赛 基于深度学习的水果识别 设计 开题 技术

1 前言 Hi,大家好,这里是丹成学长,今天做一个 基于深度学习的水果识别demo 这是一个较为新颖的竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/pos…

利用jmeter完成简单的压力测试

Jmeter是一个非常好用的压力测试工具。Jmeter用来做轻量级的压力测试,非常合适,只需要十几分钟,就能把压力测试需要的脚本写好。 1、什么是压力测试 顾名思义:压力测试,就是 被测试的系统,在一定的访问压…

IDEA新建文件夹后右击不能创建class类排错方法

目录 1 查看自身文件名是否为关键词 2 查看是否被“蓝色文件夹”给包含了 3 检查设置那边的class模板 4 报错解决 1 查看自身文件名是否为关键词 如下使用了 Java中的关键词"class"所以才无法创建包 ---------------------------------------------------------…

用Python Tkinter打造的精彩连连看小游戏【附源码】

文章目录 连连看小游戏:用Python Tkinter打造的精彩游戏体验游戏简介技术背景MainWindow类:职责:方法:Point类: 主执行部分:完整代码:总结: 连连看小游戏:用Python Tkinter打造的精彩游戏体验 在丰富多彩的游戏世界中&#xff0c…

C++学习Day03之构造函数的分类以及调用

目录 一、程序及输出1.1 构造函数的分类1.2 构造函数的调用1.2.1 括号法1.2.2 显式法1.2.3 隐式法 二、分析与总结 一、程序及输出 1.1 构造函数的分类 #include<iostream> using namespace std;//构造函数分类 //按照参数分类&#xff1a; 无参构造(默认构造函数) 和 …

Redis -- set集合

挑战自己&#xff0c;每天进步一点点&#xff0c;成就将属于不停止脚步的你。 目录 Redis集合&#xff1f; 集合基本命令 sadd smembers sismember scard spop srandmember smove srem 集合间操作 sinter sinterstore sunion sdiff sdiifstore Redis集合&#…

RabbitMQ——基于 KeepAlived + HAProxy 搭建 RabbitMQ 高可用负载均衡集群

一、集群简介 1.1 集 群架构 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时&#xff0c;此时可以通过 RabbitMQ 集群来进行扩展&#xff0c;从而达到提升吞吐量的目的。 RabbitMQ 集群是一个或多个节点的逻辑分组&#xff0c;集群中的每个节点都是对等的&#xff0c;每…

C2-Search-Netlas:一款基于Netlas API的强大C2服务器识别与检测工具

关于C2-Search-Netlas C2-Search-Netlas是一款功能强大的命令与控制&#xff08;C2&#xff09;服务器检测工具&#xff0c;该工具使用Java语言开发&#xff0c;基于Netlas API实现其功能&#xff0c;可以帮助广大研究人员轻松快速地识别和检测目标C2服务器的相关信息。 C2-S…

python Flask 写一个简易的 web 端程序(附demo)

python Flask 写一个简易的 web 端程序 &#xff08;附demo&#xff09; 介绍简单介绍装饰器 app.route("/") 进阶增加接口设置端口 静态网页核心代码完整代码 介绍 Flask 是一个用于构建 Web 应用程序的轻量级 Python Web 框架。它设计简单、易于学习和使用&#x…

CNN应用Keras Tuner寻找最佳Hidden Layers层数和神经元数量

介绍&#xff1a; Keras Tuner是一种用于优化Keras模型超参数的开源Python库。它允许您通过自动化搜索算法来寻找最佳的超参数组合&#xff0c;以提高模型的性能。Keras Tuner提供了一系列内置的超参数搜索算法&#xff0c;如随机搜索、网格搜索、贝叶斯优化等。它还支持自定义…

力扣刷题之旅:启程篇(四)

力扣&#xff08;LeetCode&#xff09;是一个在线编程平台&#xff0c;主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目&#xff0c;以及它们的解题代码。 --点击进入刷题地址 1.寻找旋转排序数组中的最大值 题目描述&#xff1a; 给定一个旋…

acwing869. 试除法求约数870. 约数个数AcWing871. 约数之和872. 最大公约数

869. 试除法求约数 思路&#xff1a; 约数和质数的求解有着共性&#xff0c; 就是都是使用 for (int i 1; i < n/i; i) 进行计算的。这样的原因是因为约数必然也是两两一组&#xff0c; 那么我们求出小的自然也就知道另一个&#xff0c;只要再判断一下n/i和i是否相同&a…

项目安全问题及解决方法-----xss处理

XSS 问题的根源在于&#xff0c;原本是让用户传入或输入正常数据的地方&#xff0c;被黑客替换为了 JavaScript 脚本&#xff0c;页面没有经过转义直接显示了这个数据&#xff0c;然后脚本就被 执行了。更严重的是&#xff0c;脚本没有经过转义就保存到了数据库中&#xff0c;随…

ReactNative实现文本渐变

我们直接上图&#xff0c;可以看到上面文本的效果&#xff0c;使用SVG实现 1.首先还是要引入react-native-svg库 2.使用该库下面的LinearGradient和Text 好&#xff0c;话不多说&#xff0c;我们看具体代码 <Svg width{422} height{30} viewBox{0 0 422 30}><Defs&…

力扣 第 383 场周赛 解题报告 | 珂学家 | Z函数/StringHash

前言 谁言别后终无悔 寒月清宵绮梦回 深知身在情长在 前尘不共彩云飞 整体评价 T3是道模拟题&#xff0c;但是感觉题意有些晦涩&#xff0c;T4一眼Z函数&#xff0c;当然StringHash更通用些。 新年快乐, _. T1. 将单词恢复初始状态所需的最短时间 I 思路: 模拟 就是前缀和为…

构建高效直播美颜系统:美颜SDK集成与性能优化指南

如今&#xff0c;美颜技术的广泛应用成为各类直播平台的标配之一。今天&#xff0c;小编将与大家进一步讨论如何构建高效的直播美颜系统&#xff0c;重点关注美颜SDK的集成和性能优化方面。 一、美颜SDK的选择与集成 选择合适的美颜SDK是构建高效直播美颜系统的第一步。不同的…

速过计算机二级python——第六讲:文件操作

第六讲:文件操作 文件夹创建文件夹移动文件夹复制文件夹删除文件夹文件操作文件读取文件写入文件文件夹 创建文件夹 定义创建文件夹函数:chmk_path()定义一个函数 chmk_path(),这个函数的功能是创建文件夹。 首先需要导入操作系统接口模块——os 模块,这个模块中包含某些函…

基于单片机控制的智能门锁设计

摘要&#xff1a;阐述基于STC15F2K60S2单片机控制的智能门锁设计&#xff0c;包括CPU控制单元模块、液晶显示LCD、 Wi-Fi模块&#xff0c;实现远程控制开门&#xff0c;密码开门的智能化功能。 关键词&#xff1a;控制技术&#xff0c;单片机&#xff0c;智能门锁&#xff0c;…