目录
概述
HarmonyOS云开发是DevEco Studio新推出的功能,可以让您在一个项目工程中,使用一种语言完成端侧和云侧功能的开发。
基于AppGallery Connect Serverless构建的云侧能力,开发者无需构建和管理云端资源,随需使用,大大提高构建应用/元服务的效率。
- 认证服务:可以为应用快速构建安全可靠的用户认证系统。
- 云函数:一方面将开发测试的对象聚焦到函数级别,可以大幅简化应用开发与运维相关的事务;另一方面通过云函数SDK,可以便捷操作云数据库、云存储等,提升业务功能构建的便利性。
- 云数据库:在保证数据的可用性、可靠性、一致性,以及安全等特性基础上,能够实现数据在端云之间的无缝同步,可以帮助开发者快速构建端云、多端协同的应用。
- 云存储:提供可伸缩、免维护的云端存储服务,可用于应用上传图片、音频、视频或者其他用户生成的内容。
随着我们应用功能越来越丰富,很多应用的运行都依赖云侧的支撑。相比于传统开发模式,云开发模式具备成本低、效率高、门槛低等优势。
区别点 | 传统开发模式 | 云开发模式 |
---|---|---|
开发工具 | 端侧与云侧各需一套开发工具,云侧需自建服务器,工具成本高。 | DevEco Studio一套开发工具即可支撑端侧与云侧同时开发,无需搭建服务器,工具成本低。 |
开发人员 | ● 端侧与云侧要求不同的开发语言,技能要求高。 ● 需多人投入,且开发人员之间需持续、准确沟通,人力与沟通成本高、效率低。 | ● 依托AppGallery Connect(以下简称AGC)Serverless云服务开放的接口,端侧开发人员也能轻松开发云侧代码,大大降低开发门槛。 ● 开发人员数量少,降低人力成本,提高沟通效率。 |
运维 | 需自行构建运营与运维能力,成本高、负担重。 | 直接接入AGC Serverless云服务,实现免运维,无运维成本或资源浪费。 |
开发流程
HarmonyOS应用端云一体化开发流程如下图所示:
工程概览
工程模板
当前DevEco Studio提供了两类工程模板:预置的通用云开发模板和从模板市场下载的云开发模板。
- 通用云开发模板:提供了认证服务、云函数、云存储服务的示例工程。
- 从模板市场下载的模板:基于业务场景,提供了特定场景下的常用功能。例如:商城模板
工程结构
HarmonyOS云开发工程分为三部分:
-
端开发工程(Application):主要用于开发应用端侧的业务代码。
-
云开发工程(CloudProgram):主要用于云侧功能的配置、开发、部署。
-
端侧公共库(External Libraries):主要包含了JDK的扩展类库。
工程创建与配置
-
打开DevEco Studio,菜单选择"File > New > Create Project"。
- HarmonyOS应用选择"Application"。
- 元服务选择"Atomic Service"。
- 模板选择"Empty Ability with CloudDev"。
-
填写工程信息后,点击"Next"。
- Project name:工程的名称,由大小写字母、数字和下划线组成。
- Bundle name:必须与在AppGallery Connect上创建的HarmonyOS应用或元服务的包名保持一致。
- Save location:工程文件本地存储路径,由大小写字母、数字和下划线等组成,不能包含中文字符。
- Compile SDK:不能低于API 9。
- Compatible SDK:不能低于API 9。
-
点击"Sign in"使用华为开发者帐号登录工程。
-
选择应用/元服务所属的团队,系统将根据包名自动关联出AppGallery Connect上已创建的HarmonyOS应用或者元服务,点击"Next"。
-
点击Sign In 之后,选择对应Team跟同Bundle name的项目,如果没有项目,需要跳转到"AppGallery Connect",前往AGC控制台创建同包名应用。
"AppGallery Connect"中创建应用,配置如下:
可能出现的错误:
-
关联成功后,如果帐号所属的团队尚未签署云开发相关协议,点击协议链接仔细阅读协议内容后,勾选同意协议,点击"Finish",即可完成工程的创建。
-
DevEco Studio自动完成一些初始化配置。
- 自动开通云开发相关服务,包括:认证服务、云函数、云数据库、云托管、API网关、云存储。
- 端侧工程中自动集成agconnect-services.json配置文件和相关服务最新HarmonyOS SDK。
- 云侧工程自动集成云数据库最新的Node.js Server SDK。
- 自动开通云开发相关服务,包括:认证服务、云函数、云数据库、云托管、API网关、云存储。