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.mzph.cn/news/674688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UMLChina公众号精选(20240207更新)

UMLChina服务 如何选择UMLChina服务 《软件方法》分步改进指南 做对《软件方法》强化自测题获得“软件方法建模师”称号 建模示范视频 [EA-029/石油钻井管理平台]35套UML/SysMLEA/StarUML的建模示范视频-全程字幕 UMLChina连EA经销商都不是,EA水平靠谱嘛&#xff1f…

大数据 - Spark系列《四》- Spark分布式运行原理

Spark系列文章: 大数据 - Spark系列《一》- 从Hadoop到Spark:大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 目录 🍠…

jmeter-06常用的几种断言方式

文章目录 一、jmeter常用的几种断言二、响应断言1.设置介绍1.1apply to1.2测试字段1.3模糊匹配1.4 测试模式2.举例二、json断言1、响应数据2、断言设置2、postman对比3、断言成功与断言失败的结果图四、持续时间断言1、为什么要做持续时间断言?2、举例

SQLite常用命令

SQLite常用命令 1、查找帮助命令 .help 2、退出SQLite命令 .q .quit .exit 3、显示各种设置的当前值 .show 4、查看表的create模式 .schema .schema name 5、显示当前打开的数据库文件 .database 6、显示数据库中所有的表名 .tables 7、创建或者…

麒麟V10+飞腾处理器源码编译qt

1.下载qt源码 2.百度解压命令,进行解压 3.cd进文件目录 4.使用./configure命令进行配置(重点:记得看说明) Usage: configure [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>][-docdir <dir>] [-headerdir <dir&g…

sqli-labs-master靶场训练笔记(38-53|boss战)

2024.2.4 level-38 &#xff08;堆叠注入&#xff09; 这题乍一看感觉又是来卖萌的&#xff0c;这不是和level-1一模一样吗 然后仔细看了一下源代码&#xff0c;根据 mysqli_multi_query 猜测这题的本意应该是堆叠注入 mysqli_multi_query() 是 PHP 中用于执行多个 SQL 查…

【学习笔记】【内核】container_of 的用法

根据结构体变量成员的指针获取整个结构体的指针 #include <stdio.h> …

品牌如何营造生活感氛围?媒介盒子分享

「生活感」简而言之是指人们对生活的感受和意义&#xff0c;它往往没有充斥在各种重要的场合和事件中&#xff0c;而是更隐藏在细碎平凡的生活场景中。在营销越来越同质化的当下&#xff0c;品牌应该如何打破常规模式&#xff0c;洞察消费情绪&#xff0c;找到更能打动消费者心…

2023:AI疯狂进化年

嘿&#xff0c;大家好&#xff01;让我们一起来回顾一下这疯狂的 2023 年吧&#xff01;记得那个二月初吗&#xff1f;ChatGPT 上线了&#xff0c;然后呢&#xff1f;短短两个月&#xff0c;用户数量就像火箭一样突破了 1 亿&#xff01;这速度&#xff0c;简直比超级赛亚人还快…

前端JavaScript篇之对执行上下文的理解

目录 对执行上下文的理解创建执行上下文 对执行上下文的理解 当我们在执行JavaScript代码时&#xff0c;JavaScript引擎会创建并维护一个执行上下文栈来管理执行上下文。执行上下文有三种类型&#xff1a;全局执行上下文、函数执行上下文和eval函数执行上下文。 在写代码的时…

记录 | python importlib.import_module()用法

先入为主 背景 一个函数运行需要根据不同项目的配置&#xff0c;动态导入对应的配置文件运行。 解决 文件结构 a #文件夹│a.py│__init__.py b #文件夹│b.py│__init__.py├─c#文件夹│c.py│__init__.py# c.py 中内容 args {a:1}class C:def c(self):pass 目的 向a模…

(6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理

目录 一、为什么要使用Adaboost建模? 二、泰坦尼克号分析(工作环境) (插曲)Python可以引入任何图形及图形可视化工具 三、数据分析 四、模型建立 1、RandomForestRegressor预测年龄 2、LogisticRegression建模 引入GridSearchCV 引入RandomizedSearchCV 3、Deci…

【Network Management】谁来触发CanNm状态机跳转及CanNm如何知道主(被)动唤醒

目录 前言 正文 1.网络管理基本概念 2.CanNm和BswM模块交互 2.1 BswNMControl配置容器

第三百一十回

我们在上一章回中介绍了"再谈ListView中的分隔线"&#xff0c;本章回中将介绍showMenu的用法.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在第一百六十三回中介绍了showMenu相关的内容&#xff0c;它主要用来显示移动PopupMenu在页面中的位置…

C++中的作用域

在C中&#xff0c;作用域是指程序中变量、函数和其他命名实体的可见性和可访问性范围。作用域规定了在代码中的哪些位置可以引用或使用特定的标识符。C中有多种类型的作用域&#xff0c;包括全局作用域、局部作用域和命名空间作用域。 全局作用域&#xff1a; 全局作用域是在整…

13.JS实现深拷贝的方式

实现方式1&#xff08;JSON.stringfy&#xff09; JSON.parse(JSON.stringify(obj))是目前比较常用的深拷贝方法之一&#xff0c;它的原理就是利用JSON.stringify 将js对象序列化&#xff08;JSON字符串&#xff09;&#xff0c;再使用JSON.parse来反序列化(还原)js对象。这个…

C语言第二十一弹---指针(五)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 转移表 1、转移表 总结 1、转移表 函数指针数组的用途&#xff1a;转移表 举例&#xff1a;计算器的⼀般实现&#xff1a; 假设我们需要做一个能够进行加减…

CoreSight学习笔记

文章目录 1 Components1.1 ROM Table 2 使用场景2.1 Debug Monitor中断2.1.1 参考资料 2.2 Programming the cross halt2.2.1 编程实现2.2.2 参考资料 2.3 CTI中断2.3.1 编程实现2.3.1.1 准备工作2.3.1.2 触发中断2.3.1.3 中断响应 2.3.2 参考资料 1 Components 1.1 ROM Table…

TCP和UDP相关问题(重点)(4)——4.使用TCP的协议有哪些?使用UDP的协议有哪些?

4.使用TCP的协议有哪些&#xff1f;使用UDP的协议有哪些&#xff1f; 使用TCP的协议有&#xff1a;HTTP3.0之前的HTTP协议、HTTPS、FTP、SMTP、SSH... 使用UDP的协议有&#xff1a;HTTP3.0、DNS、DHCP...

mybatis-plus使用apply进行字符串拆分后进行包含查询

首先数据库是 PostgreSql&#xff0c;有一个字段要进行模糊查询&#xff0c;我们一般是通过 like 就好了&#xff0c;但是偏偏这个字段是逗号分割的字符串&#xff0c;这个时候如果使用 like 也可以&#xff0c;只有字符串唯一&#xff0c;比如是 uuid 这类&#xff0c;但是啊&…