端云一体化开发是HarmonyOS基于DevEco Studio与Cloud Foundation Kit的创新开发模式,实现端侧与云侧在同一工具内协同开发,大幅提升开发效率并降低技术门槛。
![]()
一、端云一体化开发概述
1.1 技术定义与核心价值
端云一体化开发是HarmonyOS基于DevEco Studio,以Cloud Foundation Kit(云开发服务)为底座,实现端侧(应用/元服务)与云侧(云端服务)在同一工具内协同开发的创新开发模式。开发者通过云开发工程模板快速创建工程,同步完成两端代码开发、调试,并一键部署云侧工程至AGC云端,最终实现端云联动,聚焦业务逻辑、降本增效。
1.2 传统开发模式对比分析
端云一体化开发相比传统开发模式具有显著优势:
| 区别点 | 传统开发模式 | 端云一体化开发模式 |
|---|---|---|
| 开发工具 | 端侧与云侧需各自工具,需自建服务器,成本高 | 仅需DevEco Studio,无需搭建服务器,成本低 |
| 开发人员 | 需不同语言技能,多人协作,沟通成本高、效率低 | 端侧开发者可开发云侧代码,门槛低,人力少 |
| 运维 | 需自建运维能力,成本高、负担重 | 接入Cloud Foundation Kit,免运维 |
1.3 技术架构与核心原理
端云一体化开发的核心技术架构包含两个关键层面:
1.3.1 端云一体化开发实现机制
DevEco Studio目前提供通用云开发模板([CloudDev]Empty Ability),基于Cloud Foundation Kit搭建基础演示项目(无业务属性),可用于学习基础开发流程,后续可删除预置代码。端云一体化开发提供的场景化模板,包含预置代码和资源文件,通过工程向导即可快速创建开发工程。
在DevEco Studio内同步开发端侧业务代码与云侧服务代码,支持云侧工程一键部署至AGC云端。
1.3.2 Cloud Foundation Kit技术支撑
云侧工程接入该工具,可按需使用云函数、云数据库、云存储等服务,具备开箱即用、一键部署、自动弹性伸缩、免运维等特点。
二、端云一体化开发环境搭建

2.1 AGC平台应用创建
步骤1:AGC平台应用创建
这步非常重要,后续IDE创建项目,需要和AGC平台创建好的应用进行绑定。所以要先在AGC平台进行端云一体化开发应用的创建!
AGC平台地址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html
登陆华为账号后,点击进入AGC控制台,按照流程新建项目即可。
2.2 IDE项目模板创建
步骤2:IDE创建端云一体化开发模板项目
打开工程创建向导(欢迎页”Create Project”或菜单栏”File > New > Create Project”),在”Application”页签选择通用云开发模板([CloudDev]Empty Ability),点击”Next”。
IDE – Create Project – Application – [CloudDev Empty Ability]
以应用开发为例,元服务操作流程类似。
2.3 项目配置与绑定
步骤3:设置模板项目相关配置
模板项目只能选择手机设备。是否开启云开发,默认开启且不可修改。其他属性为常规配置,包名必须与AGC平台保持一致。
步骤4:绑定本地项目和AGC项目
此步骤非常关键,用于绑定AGC平台创建的项目。系统会显示登录在IDE上的账号信息,根据项目包名自动匹配AGC平台项目应用信息。
步骤5:数据处理位置配置
项目必须启用中国站点(云服务资源默认部署至此),可在AGC修改配置。端云一体化开发目前仅支持国内部署,需在AGC控制台针对数据处理位置进行配置。
包名未在AGC平台配置时,系统将显示相应的错误提示。
2.4 项目验证与依赖安装
完成以上步骤后,项目创建成功,系统将自动安装相关云开发依赖。DevEco Studio自动同步工程,端侧执行”ohpm install”、云侧执行”npm install”下载依赖。
步骤6:IDE云开发管理工具
在Tools菜单中,点击CloudDev,可在IDE中非常方便地管理AGC平台上云开发项目的信息。
三、端云一体化应用DEMO实现
3.1 应用架构设计
鸿蒙端云一体化应用的主入口页面实现了一个导航菜单,用于展示和访问Cloud Foundation Kit提供的三大核心云服务:云函数、云数据库和云存储。
3.2 核心代码实现
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();
@Builder
pathMap(routeName: string) {
if (routeName === 'CloudFunction') {
CloudFunction(); // 渲染云函数演示页面
} else if (routeName === 'CloudDb') {
CloudDb(); // 渲染云数据库演示页面
} else if (routeName === 'CloudStorage') {
CloudStorage(); // 渲染云存储演示页面
} else if (routeName === 'DbInsert') {
DbInsert(); // 渲染数据库插入操作页面
}
}
@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)
}
}
3.3 功能模块解析
3.3.1 导航管理系统
应用采用NavPathStack进行页面导航管理,通过@Provide装饰器提供全局导航路径栈,支持多页面间的无缝切换。
3.3.2 路由映射机制
通过@Builder装饰器构建pathMap函数,根据路由名称动态渲染对应的云服务组件,实现了灵活的页面路由管理。
3.3.3 统一UI组件设计
homeButton方法创建了具有统一样式的导航按钮,包含标题、描述文本,并配置了统一的视觉样式和交互响应,提供了良好的用户体验。
四、技术优势与发展前景
4.1 开发效率提升
端云一体化开发模式显著提升了开发效率:
– 工具统一化:仅需DevEco Studio,无需切换多个开发环境
– 代码同步开发:端侧与云侧代码在同一工具内协同开发
– 一键部署:云侧工程一键部署至AGC云端,简化部署流程
4.2 技术门槛降低
传统开发模式需要开发者具备多种技能,而端云一体化开发模式:
– 技能简化:端侧开发者可直接开发云侧代码
– 团队精简:减少人员配置,降低沟通成本
– 学习曲线平缓:统一的开发环境和工具链
4.3 运维成本优化
Cloud Foundation Kit提供的免运维特性:
– 自动弹性伸缩:根据负载自动调整资源
– 开箱即用:预置云函数、云数据库、云存储等服务
– 成本控制:无需自建服务器和运维团队
五、总结与展望
HarmonyOS端云一体化开发作为华为云服务的重要创新,为开发者提供了全新的开发体验。通过DevEco Studio与Cloud Foundation Kit的深度整合,实现了端云协同开发的理想状态,不仅提升了开发效率,还大幅降低了技术门槛和运维成本。
随着HarmonyOS生态的不断成熟,端云一体化开发将在更多场景中得到应用,为开发者创造更大的价值。下一篇文章我们将深入探讨端云一体化开发的具体功能实现和最佳实践。
关键字:HarmonyOS,端云一体化,DevEco Studio,Cloud Foundation Kit,云开发,华为AGC,跨平台开发,移动应用开发,云服务
