HarmonyOS鸿蒙Next端云一体化开发如何入门,请提供详细的集成使用解释和源码
HarmonyOS鸿蒙Next端云一体化开发如何入门,请提供详细的集成使用解释和源码
鸿蒙端云一体化是什么?有什么作用?开发如何入门,请提供详细的集成使用解释和源码
一、结论
1、端云一体化开发是什么? 端云一体化开发是HarmonyOS基于DevEco Studio,以Cloud Foundation Kit(云开发服务)为底座,实现端侧(应用/元服务)与云侧(云端服务)在同一工具内协同开发的模式。
开发者通过云开发工程模板快速创建工程,同步完成两端代码开发、调试,并一键部署云侧工程至AGC云端,最终实现端云联动,聚焦业务逻辑、降本增效。
2、端云一体化开发与传统开发对比
| 区别点 | 传统开发模式 | 端云一体化开发模式 |
|---|---|---|
| 开发工具 | 端侧与云侧需各自工具,需自建服务器,成本高 | 仅需DevEco Studio,无需搭建服务器,成本低 |
| 开发人员 | 需不同语言技能,多人协作,沟通成本高、效率低 | 端侧开发者可开发云侧代码,门槛低,人力少 |
| 运维 | 需自建运维能力,成本高、负担重 | 接入Cloud Foundation Kit,免运维 |
3、端云一体化开发核心原理
DevEco Studio目前提供通用云开发模板 ([CloudDev]Empty Ability),基于Cloud Foundation Kit搭建基础演示项目(无业务属性),可用于学习基础开发流程,后续可删除预置代码。 端云一体化开发提供的场景化模板,包含预置代码和资源文件,通过工程向导即可快速创建开发工程。
(1)端云一体化开发: 在DevEco Studio内同步开发端侧业务代码与云侧服务代码,支持云侧工程一键部署至AGC云端。
(2)Cloud Foundation Kit支撑: 云侧工程接入该工具,可按需使用云函数、云数据库、云存储等服务,具备开箱即用、一键部署、自动弹性伸缩、免运维等特点。
二、代码实现和详细解释
首先在AGC平台创建端云一体化开发应用: 这步非常重要,后续IDE创建项目,需要和AGC平台创建好的应用进行绑定。所以要先在AGC平台进行端云一体化开发应用的创建!
// AGC平台地址:
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html
2、在IDE创建端云一体化开发模板项目: 打开工程创建向导(欢迎页“Create Project”或菜单栏“File > New > Create Project”),在“Application”页签选择通用云开发模板([CloudDev]Empty Ability),点击“Next”。
IDE - Create Project - Application - [CloudDev Emptry Abiltiy ] 这里我以应用开发举例,元服务操作是类似的。
3、设置模板项目相关配置: 这里需要注意模板项目只能选择手机。并且是否开启云开发,默认是开,不能修改。其他都是很常见的属性,就不展开了。包名要和AGC平台上一致。

4、绑定本地项目和AGC项目: 这步骤非常关键,是对于刚才我们在AGC平台创建的项目,进行绑定。 如下图所示,会显示你登陆在IDE上的账号。根据项目包名,会对应显示AGC平台上项目应用的信息。

5、数据处理位置配置: 项目必须启用中国站点(云服务资源默认部署至此),可在AGC修改配置。
我们看到上图最下方提示,要在AGC平台配置数据所在地,目前端云一体化开发只能在国内。我们点击蓝字跳转过去即可。进入到AGC控制台,针对数据处理位置进行勾选后保存即可。
如果你的包名,没有在AGC平台上进行配置,会显示如下图:

以上步骤都完成后,项目就创建成功了,会自动install相关的云开发依赖。 DevEco Studio自动同步工程,端侧执行“ohpm install”、云侧执行“npm install”下载依赖
二、DEMO运行效果

鸿蒙端云一体化应用的主入口页面,主要实现了一个导航菜单,用于展示和访问 Cloud Foundation Kit 提供的三大核心云服务:云函数、云数据库和云存储。下面是添加详细注释后的代码:
import { CloudDb } from './CloudDb/CloudDb'; // 导入云数据库功能组件
import { DbInsert } from './CloudDb/DbInsert'; // 导入数据库插入操作组件
import { CloudFunction } from './CloudFunction'; // 导入云函数功能组件
import { CloudStorage } from './CloudStorage'; // 导入云存储功能组件
/**
* 应用主入口组件
* 展示端云一体化功能导航菜单,通过按钮跳转到不同的云服务演示页面
*/
@Entry
@Component
struct Index {
// 提供导航路径管理,用于页面间的导航切换
@Provide('pathStack') pathStack: NavPathStack = new NavPathStack();
/**
* 路径映射构建器
* 根据路由名称渲染对应的云服务组件
* @param routeName - 路由名称
*/
@Builder
pathMap(routeName: string) {
if (routeName === 'CloudFunction') {
CloudFunction(); // 渲染云函数演示页面
} else if (routeName === 'CloudDb') {
CloudDb(); // 渲染云数据库演示页面
} else if (routeName === 'CloudStorage') {
CloudStorage(); // 渲染云存储演示页面
} else if (routeName === 'DbInsert') {
DbInsert(); // 渲染数据库插入操作页面
}
}
/**
* 主页按钮构建器
* 创建具有统一样式的导航按钮,点击后跳转到对应云服务页面
* @param title - 按钮标题资源
* @param description - 按钮描述资源
* @param routeName - 目标路由名称
*/
@Builder
homeButton(title: Resource, description: Resource, routeName: string) {
Button({ type: ButtonType.Normal, stateEffect: true }) {
Column() {
Text(title) // 按钮标题
.fontSize($r('app.float.body_font_size'))
.margin({ bottom: $r('app.float.number_5'), top: $r('app.float.number_5') })
.fontWeight(FontWeight.Bold)
Text(description) // 按钮描述
.textAlign(TextAlign.Center)
.fontSize($r('app.float.body_font_size'))
.margin({ bottom: $r('app.float.number_5') })
}
.width('100%')
}
// 按钮样式设置
.borderRadius($r('app.float.number_5'))
.margin($r('app.float.number_10'))
.borderWidth($r('app.float.number_1'))
.borderColor($r('app.color.body_color'))
.fontColor($r('app.color.body_color'))
.backgroundColor($r('app.color.start_window_background'))
.width('96%')
.onClick(() => {
// 点击按钮时,将目标路由压入路径栈实现页面跳转
this.pathStack.pushPathByName(routeName, null);
})
}
/**
* 组件构建函数
* 构建应用主界面,包含导航栏和云服务功能按钮
*/
build() {
Navigation(this.pathStack) { // 使用导航组件管理页面栈
Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center }) {
Text($r('app.string.main_page_title')) // 应用主标题
.width('100%')
.fontSize($r('app.float.main_title_font_size'))
.textAlign(TextAlign.Center)
.fontColor($r('app.color.body_color'))
.margin({ bottom: $r('app.float.number_10') })
// 创建云函数导航按钮
this.homeButton($r('app.string.cloud_function_title'), $r('app.string.cloud_function_description_main'),
'CloudFunction');
// 创建云数据库导航按钮
this.homeButton($r('app.string.cloudDB_label'), $r('app.string.cloud_db_description_main'),
'CloudDb');
// 创建云存储导航按钮
this.homeButton($r('app.string.cloudStorage_label'), $r('app.string.cloud_storage_description_main'),
'CloudStorage');
}
.height('100%')
.width('100%')
.padding($r('app.float.number_10'))
.backgroundColor($r('app.color.start_window_background'))
}
.hideTitleBar(true) // 隐藏标题栏
.navDestination(this.pathMap) // 设置导航目标映射
}
}
更多关于HarmonyOS鸿蒙Next端云一体化开发如何入门,请提供详细的集成使用解释和源码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
鸿蒙Next端云一体化开发入门需使用DevEco Studio 4.0及以上版本,创建支持云开发的工程。在工程中配置云服务依赖,通过AGC控制台开通云数据库、云函数等服务。在代码中引入@hw-agconnect云服务SDK,调用云数据库API进行数据操作,使用云函数处理业务逻辑。源码示例可在华为开发者联盟官网的“端云一体化开发”文档中获取,包含云数据库增删改查及云函数调用范例。
鸿蒙端云一体化开发
鸿蒙端云一体化开发是HarmonyOS Next的核心能力之一,它旨在简化应用开发中前端(设备端)与后端(云服务)的集成,让开发者能够使用一套统一的API、开发范式和工具链,高效构建跨端、云原生的全场景应用。
核心概念与作用
- 统一开发体验:通过端云一体化开发套件(Cloud Development Kit, CDK),开发者可以使用ArkTS/TypeScript这一种语言,同时编写设备端和云端的业务逻辑。这打破了传统开发中需要组建前端、后端不同技术栈团队的壁垒。
- 数据与逻辑无缝协同:它提供了声明式的数据模型和API,使得设备端的数据能够自动与云端同步(如云数据库),设备端可以像调用本地函数一样直接调用云函数(Serverless Function),极大简化了网络通信、数据持久化和业务逻辑实现的复杂度。
- 高效运维部署:提供从本地开发调试到一键部署上云的完整工具链(如DevEco Studio中的云模板、云调试、云部署)。开发者无需关心服务器配置、扩容等基础设施问题,可以聚焦业务创新。
入门步骤与集成解释
1. 环境准备与项目创建
- 安装DevEco Studio:确保使用支持HarmonyOS Next及端云一体化开发的版本(如4.1 Release或更高版本)。
- 配置开发者账号与实名认证:在AppGallery Connect中创建项目并启用相关云服务(如认证服务、云数据库、云函数等)。
- 创建端云一体化应用:在DevEco Studio中,选择创建新工程,应用模型选择“Stage”,并勾选“Enable Super Visual”和“Enable Cloud Development”。在项目模板中,强烈推荐选择带有“Cloud”标识的模板,例如“Cloud DB Demo”或“Cloud Program”。这些模板已预设了端云一体化的基本工程结构和配置。
2. 核心模块集成与使用解释
一个典型的端云一体化应用主要涉及以下几个部分,以下以云数据库和云函数为例说明:
-
A. 定义端云一体化数据模型 在
entry/src/main/ets目录下(或共享件目录),创建.ets文件定义数据模型。这个模型会同时在端侧和云侧生效。// 示例:User.ets - 定义一个用户对象模型 import { cloud, field, primaryKey } from '@kit.CloudServicesKit'; // 关键导入 @cloud // 关键装饰器,声明此类为端云一体化对象 export class User { @primaryKey // 声明为主键 userId: string = ''; @field // 声明为数据字段 userName: string = ''; @field age: number = 0; constructor(partial?: Partial<User>) { if (partial) { Object.assign(this, partial); } } } -
B. 初始化云数据库并操作数据 在UI页面或业务逻辑中,初始化并操作云数据库。
// 示例:在页面中初始化并查询数据 import { cloud, cloudData } from '@kit.CloudServicesKit'; import { User } from '../model/User'; // 导入上面定义的模型 @Entry @Component struct Index { private cloudStore: cloud.CloudData<cloud.CloudDBZone> | null = null; @State userList: User[] = []; aboutToAppear() { // 1. 获取云数据库实例 this.cloudStore = cloudData.getCloudData(); // 2. 打开指定的云数据库区域 this.cloudStore.openCloudDBZone({ zoneName: 'quickStartZone', persistence: false }).then(zone => { // 3. 执行查询:查询所有User对象 let query = cloud.CloudDBQuery.query(User); zone.executeQuery(query).then(result => { this.userList = result; }).catch(err => { console.error('Query failed: ' + JSON.stringify(err)); }); }).catch(err => { console.error('Open zone failed: ' + JSON.stringify(err)); }); } // 插入数据示例函数 private insertUser(user: User) { if (this.cloudStore && this.cloudStore.getCloudDBZone()) { this.cloudStore.getCloudDBZone()?.executeUpsert(user).then(() => { console.info('Insert success'); }).catch(err => { console.error('Insert failed: ' + JSON.stringify(err)); }); } } // UI构建... }设备端执行插入、查询等操作后,数据会自动同步至云端数据库,其他绑定同一用户/设备组的设备也能实时看到更新。
-
C. 创建与调用云函数
-
创建云函数:在项目
cloudfunctions目录(由云模板创建)下,可以创建新的云函数文件,例如getServerTime.ets。其本质也是一段ArkTS代码,但运行在云端。// cloudfunctions/getServerTime.ets import { cloudFunc, CloudFuncContext } from '@kit.CloudServicesKit'; export async function main(ctx: CloudFuncContext): Promise<void> { ctx.response.setBody({ serverTime: new Date().toISOString() }); } -
设备端调用云函数:
import { cloudFunc } from '@kit.CloudServicesKit'; // 调用名为'getServerTime'的云函数 cloudFunc.callFunction({ name: 'getServerTime', data: {} // 可传递参数 }).then(response => { console.info('Server time: ' + JSON.stringify(response)); }).catch(err => { console.error('Call function failed: ' + JSON.stringify(err)); });
-
3. 调试与部署
- 本地调试:DevEco Studio提供了本地云函数调试和端云协同调试能力。可以在本地运行并模拟调用云函数和云数据库操作。
- 一键部署:开发完成后,通过DevEco Studio的“Build > Build & Release to Cloud”菜单,可以将云函数、云数据库Schema等资源一键打包部署到AppGallery Connect的云环境中。
源码获取
最直接、最权威的源码和学习资源来自官方:
- DevEco Studio内置模板:创建项目时选择的“Cloud DB Demo”等模板,本身就是完整可运行的端云一体化源码,这是最好的起点。
- HarmonyOS Sample仓库:访问Gitee上的官方HarmonyOS应用示例仓库(
https://gitee.com/harmonyos/applications_app_samples),搜索“CloudDB”、“CloudFunction”等关键词,可以找到丰富的、针对特定场景的示例代码。 - Codelabs与指南:参考华为开发者联盟官网的“文档 > HarmonyOS应用开发”部分,其中的“端云一体化开发”章节提供了从基础到进阶的详细教程和代码片段。
总结:入门HarmonyOS Next端云一体化开发,关键在于利用好DevEco Studio的云项目模板,理解@cloud、@field等装饰器定义的数据模型,掌握cloudData和cloudFunc模块对云数据库和云函数的操作。从官方模板和示例代码入手,结合本地调试,可以快速上手这一高效的全场景应用开发范式。

