【HarmonyOS Next之旅】DevEco Studio使用指南(二十六) -> 创建端云一体化开发工程

目录

1 -> 创建HarmonyOS应用工程

1.1 -> 新建工程

1.1.1 -> 前提条件

1.1.2 -> 选择模板

1.1.3 -> 配置工程信息

1.1.4 -> 关联云开发资源

1.2 -> 工程初始化配置

1.2.1 -> 自动开通云开发服务

1.3 -> 端云一体化开发工程目录结构

1.3.1 -> 端开发工程(Application)

1.3.2 -> 云开发工程(CloudProgram)

2 -> 创建元服务工程

2.1 -> 新建工程

2.1.1 -> 前提条件

2.1.2 -> 选择模板

2.1.3 -> 关联云开发资源

2.1.4 -> 配置工程信息

2.2 -> 工程初始化配置

2.2.1 -> 自动开通云开发服务

2.3 -> 端云一体化开发工程目录结构

2.3.1 -> 端开发工程(Application)

2.3.2 -> 云开发工程(CloudProgram)

3 -> 历史工程转换为端云一体化开发工程


1 -> 创建HarmonyOS应用工程

1.1 -> 新建工程

1.1.1 -> 前提条件

  • 已实名认证、且注册地为中国境内(不包含中国香港、中国澳门、中国台湾)的华为开发者账号登录DevEco Studio。
  • 请确保华为开发者账号无欠款,账户欠费将导致云存储服务开通失败。

1.1.2 -> 选择模板

1. 选择以下任一种方式,打开工程创建向导界面。

  • 如果当前未打开任何工程,可以在DevEco Studio的欢迎页点击“Create Project”开始创建一个新工程。
  • 如果已经打开了工程,可以在菜单栏选择“File > New > Create Project”来创建一个新工程。

2. 在“Application”页签,选择合适的云开发模板,然后点击“Next”。

说明

当前仅支持通用云开发模板([CloudDev]Empty Ability)。

1.1.3 -> 配置工程信息

1. 在工程配置界面,配置工程的基本信息。

参数说明
Project name工程的名称,由大小写字母、数字和下划线组成。
Bundle name软件包名称,需保证唯一,且需与您在AGC创建的HarmonyOS应用的“应用包名”一致。
Save location工程文件本地存储路径,由大小写字母、数字和下划线等组成,不能包含中文字符。
Compatible SDK

兼容的最低API Version。

使用基于Cloud Foundation Kit(云开发服务)的端云一体化开发功能,请选择5.0.0(12)或以上版本。

Module name模块名称。
Device type该工程模板支持的设备类型,目前仅支持手机设备。
Enable CloudDev是否启用云开发。云开发模板默认启用且无法更改。

2. 点击“Next”,开始关联云开发资源。

1.1.4 -> 关联云开发资源

为工程关联云开发所需的资源,即将您账号团队在AGC创建的同包名应用关联到当前工程。具体操作如下:

1. (可选)如您尚未登录DevEco Studio,点击“Sign In”,在弹出的账号登录页面,使用已实名认证的华为开发者账号完成登录。

登录成功后,界面将展示账号昵称。

2. 点击“Team”下拉框,选择开发团队。 

3. 关联应用

选中团队后,系统根据工程Bundle name在该团队中自动查询AGC上的同包名应用。

  • 如查询到应用,选中该应用,点击“Finish”即可。

如查询到的应用尚未关联任何项目(即为游离应用),则无法选中。

如果查询到的应用所属项目尚未启用数据处理位置,请点击界面提示内的“AppGallery Connect”设置数据处理位置。

注意

  • 由于云开发目前仅支持中国站点,请确保项目启用的数据处理位置包含中国站点。
  • 无论项目启用的默认数据处理位置为哪个站点,后续开发的云服务资源都将部署在中国站点。

如查询到应用但出现如下提示,表明查询到的应用类型为元服务,与当前工程类型不一致。请修改以确保当前工程与AGC上同包名应用均为HarmonyOS应用类型。

如在当前团队中未查询到同包名应用,请先确认填写的包名是否有误。

  • 如包名有误,点击界面提示中的“go back”返回工程信息配置界面进行修改。
  • 如包名无误,则表明当前团队尚未在AGC控制台创建与当前工程包名相同的应用。您可点击界面提示中的“AppGallery Connect”,前往AGC控制台进行补充创建。

完成以上操作后,DevEco Studio即可获取到同包名应用信息。选中应用后,点击“Finish”。

4. 如所属的团队尚未签署云开发相关协议,点击协议链接仔细阅读协议内容后,勾选同意协议,点击“Finish”。

说明

只有账号持有者和法务角色才有权限签署协议。

5. 进入主开发界面,DevEco Studio执行工程同步操作,端侧工程会自动执行“ohpm install”,云侧工程会自动执行“npm install”,以分别下载端侧和云侧依赖。

说明

若云侧执行“npm install”失败,请排查是否尚未配置npm运行环境。

6. 在主开发界面,可查看刚刚新建的工程。

1.2 -> 工程初始化配置

当您成功创建工程并关联云开发资源后,DevEco Studio会为您的工程自动执行一些初始化配置。

1.2.1 -> 自动开通云开发服务

DevEco Studio为工程关联的项目自动开通云函数、云数据库、云存储等云开发服务,您可在“Notifications”窗口查看服务开通状态。

说明

  • 如服务开通失败,可通过CloudDev云开发管理面板快捷进入AGC控制台进行手动开通。
  • 如云存储服务自动开通与手动开通均失败,可能是账户欠费导致。请您​​​​​​​检查账户是否余额不足,补齐全款后再前往AGC控制台进行手动开通。

1.3 -> 端云一体化开发工程目录结构

端云一体化开发工程主要包含端开发工程(Application)与云开发工程(CloudProgram)。

1.3.1 -> 端开发工程(Application)

端开发工程主要用于开发应用端侧的业务代码,通用云开发模板的端开发工程目录结构如下图所示。“Application/cloud_objects”模块用于存放云对象的端侧调用接口类,“src/main/ets/pages”目录下包含了云存储、云数据库和云函数页面。

1.3.2 -> 云开发工程(CloudProgram)

在云开发工程中,您可为您的应用开发云端代码,包括云函数和云数据库服务代码。通用云开发模板的云开发工程目录结构如下图所示。

clouddb:云数据库目录,包含数据条目目录(dataentry)和对象类型目录(objecttype)。

  • dataentry:用于存放数据条目文件。

    该目录下一般会根据您选择的云开发模板预置数据条目示例文件。在通用云开发模板工程中,该目录下会预置名为“d_Post.json”的数据条目示例文件,内含两条示例数据。您可按需使用、修改或删除。

objecttype:用于存放对象类型文件。

该目录下一般会根据您选择的云开发模板预置对象类型示例文件。在通用云开发模板工程中,该目录下会预置名为“Post.json”的对象类型示例文件,内含对象类型“Post”的权限、索引、字段名称和字段值等。您可按需使用、修改或删除。

  • db-config.json:模块配置文件,主要包含云数据库工程的配置信息,如默认存储区名称、默认数据处理位置。
  • cloudfunctions:云函数目录,包含各个云函数/云对象子目录。每个子目录下包含了云函数/云对象的配置文件、入口文件、依赖文件等。

    该目录下一般会根据您选择的云开发模板预置示例函数。通用云开发模板工程下预置了一个用于生成UUID的示例云对象“id-generator”,您可按需使用、修改或删除。

  • node_modules:工程同步时执行“npm install”生成,包含“typescript”和“@types/node”公共依赖。
  • cloud-config.json:云开发工程配置文件,包含应用名称与ID、项目名称与ID、启用的数据处理位置、支持的设备类型等。
  • package.json:定义了“typescript”和“@types/node”公共依赖。
  • package-lock.json:工程同步时执行“npm install”生成,记录当前状态下实际安装的各个npm package的具体来源和版本号。

2 -> 创建元服务工程

2.1 -> 新建工程

2.1.1 -> 前提条件

  • 您已使用​​​​​​​已实名认证、且注册地为中国境内(不包含中国香港、中国澳门、中国台湾)的华为开发者账号登录DevEco Studio。
  • 请确保您的华为开发者账号无欠款,账户欠费将导致云存储服务开通失败。

2.1.2 -> 选择模板

1. 选择以下任一种方式,打开工程创建向导界面。

  • 如果当前未打开任何工程,可以在DevEco Studio的欢迎页点击“Create Project”开始创建一个新工程。
  • 如果已经打开了工程,可以在菜单栏选择“File > New > Create Project”来创建一个新工程。

2. 点击“Atomic Service”页签,选择合适的云开发模板,然后点击“Next”。

说明

当前仅支持通用云开发模板([CloudDev]Empty Ability)。

2.1.3 -> 关联云开发资源

为工程关联云开发所需的资源,即将您账号团队在AGC创建的元服务关联到待创建工程。具体操作如下:

1. (可选)如您尚未登录DevEco Studio,点击“Sign In”,在弹出的账号登录页面,使用​​​​​​​已实名认证的华为开发者账号完成登录。

登录成功后,界面将展示账号昵称。

2. 选择已登录账号下的APP ID,以关联AGC上的元服务。

  • 从APP ID下拉列表中选中所需的APP ID后,界面会展示该元服务在AGC控制台的名称、所属项目、包名与数据处理位置。确认无误后,点击“Next”。

说明

元服务包名为自动生成,格式为固定前缀与appid的组合(com.atomicservice.[appid])。不符合命名规范的包名无法在APP ID下拉列表中展示。

  • 如APP ID为空,表明当前账号下尚未在AGC控制台创建元服务。您可点击“Register App ID”,​​​​​​​前往AGC控制台进行补充创建。

创建成功后返回DevEco Studio界面,点击“Refresh”刷新当前APP ID列表,选择新生成的APP ID,点击“Next”即可。

  • 如查询到的元服务尚未关联任何项目,则无法选中。请先​​​​​​​将游离元服务添加到AGC项目下。

如果查询到的元服务所属项目尚未启用数据处理位置,请点击界面提示内的“AppGallery Connect”​​​​​​​设置数据处理位置。

注意

  • 由于云开发目前仅支持中国站点,请确保项目启用的数据处理位置包含中国站点。
  • 无论项目启用的默认数据处理位置为哪个站点,后续开发的云服务资源都将部署在中国站点。

2.1.4 -> 配置工程信息

1. 进入工程配置界面,配置工程的基本信息。

参数说明
Project name工程的名称,由大小写字母、数字和下划线组成。
Bundle name创建元服务时自动生成,不支持手动修改。
Save location工程文件本地存储路径,由大小写字母、数字和下划线等组成,不能包含中文字符。
Compatible SDK

兼容的最低API Version。

元服务使用基于Cloud Foundation Kit(云开发服务)的端云一体化开发功能,请选择5.0.0(12)或以上版本。

Module name模块名称。
Device type该工程模板支持的设备类型,目前仅支持手机设备。
Enable CloudDev是否启用云开发。云开发模板默认启用且无法更改。

2. 点击“Finish”,进入主开发界面,DevEco Studio执行工程同步操作,端侧工程会自动执行“ohpm install”,云侧工程会自动执行“npm install”,以分别下载端侧和云侧依赖。

说明

若云侧执行“npm install”失败,请排查是否尚未​​​​​​​配置npm运行环境。

3. 在主开发界面,可查看刚刚新建的工程。

2.2 -> 工程初始化配置

当您成功创建工程并关联云开发资源后,DevEco Studio会为您的工程自动执行一些初始化配置。

2.2.1 -> 自动开通云开发服务

DevEco Studio为工程关联的项目自动开通云函数、云数据库、云存储等云开发服务,您可在“Notifications”窗口查看服务开通状态。

说明

  • 如服务开通失败,您可通过​​​​​​​CloudDev云开发管理面板快捷进入AGC控制台进行手动开通。
  • 如云存储服务自动开通与手动开通均失败,可能是账户欠费导致。请您​​​​​​​检查账户是否余额不足,​​​​​​​补齐欠款后再前往AGC控制台进行手动开通。

2.3 -> 端云一体化开发工程目录结构

端云一体化开发工程主要包含端开发工程(Application)与云开发工程(CloudProgram)。

2.3.1 -> 端开发工程(Application)

端开发工程主要用于开发应用端侧的业务代码,通用云开发模板的端开发工程目录结构如下图所示。“Application/cloud_objects”模块用于存放云对象的调用接口类,“src/main/ets/pages”目录下包含了云存储、云数据库和云函数页面。

2.3.2 -> 云开发工程(CloudProgram)

在云开发工程中,可为元服务开发云端代码,包括云函数和云数据库服务代码。通用云开发模板的云开发工程目录结构如下图所示。

clouddb:云数据库目录,包含数据条目目录(dataentry)和对象类型目录(objecttype)。

  • dataentry:用于存放数据条目文件。

    该目录下一般会根据您选择的云开发模板预置数据条目示例文件。在通用云开发模板工程中,该目录下会预置名为“d_Post.json”的数据条目示例文件,内含两条示例数据。您可按需使用、修改或删除。

  • objecttype:用于存放对象类型文件。该目录下一般会根据您选择的云开发模板预置对象类型示例文件。在通用云开发模板工程中,该目录下会预置名为“Post.json”的对象类型示例文件,内含对象类型“Post”的权限、索引、字段名称和字段值等。您可按需使用、修改或删除。​​​​​​​

  • db-config.json:模块配置文件,主要包含云数据库工程的配置信息,如默认存储区名称、默认数据处理位置。
  • cloudfunctions:云函数目录,包含各个云函数/云对象子目录。每个子目录下包含了云函数/云对象的配置文件、入口文件、依赖文件等。

    该目录下一般会根据您选择的云开发模板预置示例函数。通用云开发模板工程下预置了一个用于生成UUID的示例云对象“id-generator”,您可按需使用、修改或删除。

  • node_modules:工程同步时执行“npm install”生成,包含“typescript”和“@types/node”公共依赖。
  • cloud-config.json:云开发工程配置文件,包含应用名称与ID、项目名称与ID、启用的数据处理位置、支持的设备类型等。
  • package.json:定义了“typescript”和“@types/node”公共依赖。
  • package-lock.json:工程同步时执行“npm install”生成,记录当前状态下实际安装的各个npm package的具体来源和版本号。

3 -> 历史工程转换为端云一体化开发工程

如此前已经创建了非端云一体化开发工程,希望直接转换为端云一体化开发工程,可执行如下操作:

说明

DevEco Studio NEXT Beta1版本之前的非端云一体化历史工程,在转换前需先进行​​​​​​​一体化工程迁移。

1. 创建一个端云一体化开发工程,其中工程的类型(HarmonyOS应用或元服务)必须与您历史工程类型一致,同时Bundle name必须指定为您历史工程的Bundle name。在创建端云一体化开发工程过程中,该Bundle name会关联到AGC应用、项目等云端资源。

2. 打开创建的端云一体化开发工程,右击端开发工程“Application”,选择“Open In > Explorer”,打开工程文件所在的目录。

3. 删除端云一体化开发工程的端侧工程目录“Application”。

4. 将历史工程目录(如“MyApplication30”)拷贝至步骤3的端云一体化开发工程目录下,并改名为“Application”。

5. 重新打开端云一体化开发工程,可发现历史工程的端侧代码已迁移至端云一体化开发工程。


感谢各位大佬支持!!!

互三啦!!!

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

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

相关文章

Python 包管理工具 uv

Python 包管理工具 uv 是由 Astral 团队(知名工具 Ruff 的开发者)基于 Rust 开发的新一代工具,旨在通过高性能和一体化设计革新 Python 生态的依赖管理体验。以下是其核心特性、优势及使用指南的全面解析: 一、uv 的核心优势 极致…

何谓第二大脑?读书笔记

2025/05/11 发表想法 每个人都是矛盾结合体,既想学到新知识、新的能力,又想没办法专注的学习,既无法专注有渴望学习新技能,逐渐会产生焦虑、失眠等负面症状,这就是现实社会现照,那怎么办?我们能…

动态防御体系实战:AI如何重构DDoS攻防逻辑

1. 传统高防IP的静态瓶颈 传统高防IP依赖预定义规则库,面对SYN Flood、CC攻击等常见威胁时,常因规则更新滞后导致误封合法流量。例如,某电商平台遭遇HTTP慢速攻击时,静态阈值过滤无法区分正常用户与攻击者,导致订单接…

为什么在设置 model.eval() 之后,pytorch模型的性能会很差?为什么 dropout 影响性能?| 深度学习

在深度学习的世界里,有一个看似简单却让无数开发者困惑的现象: “为什么在训练时模型表现良好,但设置 model.eval() 后,模型的性能却显著下降?” 这是一个让人抓耳挠腮的问题,几乎每一个使用 PyTorch 的研究…

[爬虫知识] http协议

相关爬虫专栏:JS逆向爬虫实战 爬虫知识点合集 爬虫实战案例 引言:爬虫与HTTP的不解之缘 爬虫作用:模拟浏览器请求网页为何要懂HTTP:http是网络通信的基石,爬虫抓取数据就是通过HTTP协议进行的,了解http有…

《Spark/Flink/Doris离线实时数仓开发》目录

欢迎加入《Spark/Flink/Doris离线&实时数仓开发》付费专栏!本专栏专为大数据工程师、数据分析师及准备大数据面试的求职者量身打造,聚焦Spark、Flink、Doris等核心技术,覆盖离线与实时数仓开发的全流程。无论你是想快速上手项目、提升技术…

事务基础概念

事务 事务是什么? 事务是一种机制,一个操作序列,包含了一组数据库操作命令,并且把所有命令作为一个整体一起向系统提交或者撤销操作请求,即统一这组命令要么一起执行,要么一起不执行 简短概况就是&#…

四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API

【API 开发篇 】:使用 Django REST Framework 构建项目与模块 CRUD API 前言为什么选择 Django REST Framework (DRF)?第一步:创建 Serializers (序列化器)第二步:创建 ViewSets (视图集)第三步:配置 URLs (路由)第四步…

【北京盈达科技】GEO优化中的多模态了解

多模态数据处理领域,“模态”指的是不同类型的数据形式,每种模态都具有独特的结构和信息表达方式。以下是12种可能的模态类型,这些模态在实际应用中可以根据具体场景进行组合和处理: 1. 文本模态 描述:以文字形式存在…

推进可解释人工智能迈向类人智能讨论总结分享

目录 一、探索“可解释人工智能”:AI如何从“黑箱”走向“透明大师” 二、走进可解释人工智能:让AI的决策变得透明 (一)几种常见的特征导向方法 (二)像素级方法 1. 层次相关传播(LRP&#…

【Qt】Qt 5.9.7使用MSVC2015 64Bit编译器

环境 Qt版本:5.9.7 VS版本:VS2022 步骤 1、安装VS2022 三个必选项: a、使用C的桌面开发 b、Windows10 SDK 版本:10.0.18362.0 c、MSVC v140 VS 2015 生成工具 Windows10 SDK安装完成后,需要增加安装调试器。 2…

超越OpenAI CodeX的软件工程智能体:Jules

目前AI编码代理(coding agent)领域正迅速崛起,Google推出了一款名为Jules的非同步编码代理(asynchronous coding agent),主要针对专业开发者,与传统在开发环境中直接辅助编码的Cursor或Windsurf…

springboot使用xdoc-report包导出word

背景:项目需要使用xdoc-report.jar根据设置好的word模版,自动填入数据 导出word 框架使用 我的需求是我做一个模板然后往里面填充内容就导出我想要的word文件,问了下chatgpt还有百度,最后选用了xdocreport这个框架,主…

CodeBuddy实现pdf批量加密

本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 前言 在信息爆炸的时代,PDF 格式因其跨平台性和格式稳定性,成为办公、学术、商业等领域传递信息的重要载体。从机密合同到个人隐私文档&#xff0c…

如何在PyCharm2025中设置conda的多个Python版本

前言 体验的最新版本的PyCharm(Community)2025.1.1,发现和以前的版本有所不同。特别是使用Anaconda中的多个版本的Python的时候。 关于基于Anaconda中多个Python版本的使用,以及对应的Pycharm(2023版)的使用,可以参考…

STM32F103 HAL多实例通用USART驱动 - 高效DMA+RingBuffer方案,量产级工程模板

导言 《STM32F103_LL库寄存器学习笔记12.2 - 串口DMA高效收发实战2:进一步提高串口接收的效率》前阵子完成的LL库与寄存器版本的代码,有一个明显的缺点是不支持多实例化。最近,计划基于HAL库系统地梳理一遍bootloader程序开发。在bootloader程…

【数据结构】栈和队列(上)

目录 一、栈(先进后出、后进先出的线性表) 1、栈的概念及结构 2、栈的底层结构分析 二、代码实现 1、定义一个栈 2、栈的初始化 3、入栈 3、增容 4、出栈 5、取栈顶 6、销毁栈 一、栈(先进后出、后进先出的线性表) 1、…

Vue 3 官方 Hooks 的用法与实现原理

Vue 3 引入了 Composition API,使得生命周期钩子(hooks)在函数式风格中更清晰地表达。本篇文章将从官方 hooks 的使用、实现原理以及自定义 hooks 的结构化思路出发,全面理解 Vue 3 的 hooks 系统。 📘 1. Vue 3 官方生…

大语言模型 17 - MCP Model Context Protocol 介绍对比分析 基本环境配置

MCP 基本介绍 官方地址: https://modelcontextprotocol.io/introduction “MCP 是一种开放协议,旨在标准化应用程序向大型语言模型(LLM)提供上下文的方式。可以把 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 提供了一种…

云原生安全之PaaS:从基础到实践的技术指南

🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 云原生安全之PaaS:从基础到实践的技术指南 一、基础概念 PaaS(Platform as a Service)平台 PaaS是一种云计算服务模型,为开发者提供应用程序的开发、部署和运行环境,涵…