HarmonyOS4.0从零开始的开发教程21HarmonyOS云开发简介

HarmonyOS(十九)HarmonyOS云开发简介

概述

HarmonyOS云开发是DevEco Studio新推出的功能,可以让您在一个项目工程中,使用一种语言完成端侧和云侧功能的开发。

img

基于AppGallery Connect Serverless构建的云侧能力,让您无需构建和管理云端资源,随需使用,大大提高构建应用/元服务的效率。

  • 认证服务:可以为应用快速构建安全可靠的用户认证系统。
  • 云函数:一方面将开发测试的对象聚焦到函数级别,可以大幅简化应用开发与运维相关的事务;另一方面通过云函数SDK,可以便捷操作云数据库、云存储等,提升业务功能构建的便利性。
  • 云数据库:在保证数据的可用性、可靠性、一致性,以及安全等特性基础上,能够实现数据在端云之间的无缝同步,可以帮助开发者快速构建端云、多端协同的应用。
  • 云存储:提供可伸缩、免维护的云端存储服务,可用于应用上传图片、音频、视频或者其他用户生成的内容。

随着我们应用功能越来越丰富,很多应用的运行都依赖云侧的支撑。相比于传统开发模式,云开发模式具备成本低、效率高、门槛低等优势。

区别点传统开发模式云开发模式
开发工具端侧与云侧各需一套开发工具,云侧需自建服务器,工具成本高。DevEco Studio一套开发工具即可支撑端侧与云侧同时开发,无需搭建服务器,工具成本低。
开发人员端侧与云侧要求不同的开发语言,技能要求高。需多人投入,且开发人员之间需持续、准确沟通,人力与沟通成本高、效率低。依托AppGallery Connect(以下简称AGC)Serverless云服务开放的接口,端侧开发人员也能轻松开发云侧代码,大大降低开发门槛。开发人员数量少,降低人力成本,提高沟通效率。
运维需自行构建运营与运维能力,成本高、负担重。直接接入AGC Serverless云服务,实现免运维,无运维成本或资源浪费。

工程概览

工程模板

当前DevEco Studio提供了两类工程模板:预置的通用云开发模板和从模板市场下载的云开发模板。

  • 通用云开发模板:提供了认证服务、云函数、云存储服务的示例工程。

    img

  • 从模板市场下载的模板:基于业务场景,提供了特定场景下的常用功能。例如:商城模板

    img

工程结构

HarmonyOS云开发工程分为三部分:

  • 端开发工程(Application):主要用于开发应用端侧的业务代码。
  • 云开发工程(CloudProgram):主要用于云侧功能的配置、开发、部署。
  • 端侧公共库(External Libraries):主要包含了JDK的扩展类库。

img

工程创建与配置

  1. 打开DevEco Studio,菜单选择“File > New > Create Project”。

    • HarmonyOS应用选择“Application”。
    • 元服务选择“Atomic Service”。
    • 模板选择“Empty Ability with CloudDev”。

    img

  2. 填写工程信息后,点击“Next”。

    • Project name:工程的名称,由大小写字母、数字和下划线组成。
    • Bundle name:必须与在AppGallery Connect上创建的HarmonyOS应用或元服务的包名保持一致。
    • Save location:工程文件本地存储路径,由大小写字母、数字和下划线等组成,不能包含中文字符。
    • Compile SDK:不能低于API 9。
    • Compatible SDK:不能低于API 9。

    img

  3. 点击“Sign in”使用华为开发者帐号登录工程。

    img

  4. 选择应用/元服务所属的团队,系统将根据包名自动关联出AppGallery Connect上已创建的HarmonyOS应用或者元服务,点击“Next”。

    img

  5. 关联成功后,如果帐号所属的团队尚未签署云开发相关协议,点击协议链接仔细阅读协议内容后,勾选同意协议,点击“Finish”,即可完成工程的创建。

  6. DevEco Studio自动完成一些初始化配置。

    • 自动开通云开发相关服务,包括:认证服务、云函数、云数据库、云托管、API网关、云存储。

      img

    • 端侧工程中自动集成agconnect-services.json配置文件和相关服务最新HarmonyOS SDK。

      img

    • 云侧工程自动集成云数据库最新的Node.js Server SDK。

      img

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

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

相关文章

【并发设计模式】聊聊两阶段终止模式如何优雅终止线程

在软件设计中,抽象出了23种设计模式,用以解决对象的创建、组合、使用三种场景。在并发编程中,针对线程的操作,也抽象出对应的并发设计模式。 两阶段终止模式- 优雅停止线程避免共享的设计模式- 只读、Copy-on-write、Thread-Spec…

YOLOv5算法改进(23)— 更换主干网络GhostNet + 添加CA注意力机制 + 引入GhostConv

前言:Hello大家好,我是小哥谈。本节课就让我们结合论文来对YOLOv5进行组合改进(更换主干网络GhostNet + 添加CA注意力机制 + 引入GhostConv),希望同学们学完本节课可以有所启迪,并且后期可以自行进行YOLOv5算法的改进!🌈 前期回顾: YOLOv5算法改进(1)— 如何去…

(一)深入理解Mysql底层数据结构和算法

什么是索引 索引是帮助MySQL高效获取数据的排好序的数据结构 数据结构有哪些 数据结构模拟网站:Data Structure Visualization 二叉树 不适合做自增ID的数据结构。如下示意图,假设采用二叉树作为表自增主键ID的数据存储结果如下:当查询i…

Flink 数据序列化

为 Flink 量身定制的序列化框架 大家都知道现在大数据生态非常火,大多数技术组件都是运行在JVM上的,Flink也是运行在JVM上,基于JVM的数据分析引擎都需要将大量的数据存储在内存中,这就不得不面临JVM的一些问题,比如Ja…

Flink实时电商数仓(五)

FlinkSQL的join Regular join普通join,两条流的数据都时存放在内存的状态中,如果两条流数据都很大,对内存压力很大。Interval Join: 适合两条流到达时间有先后关系的;一条流的存活时间短,一条流的存活时间长。Lookup …

SQL分类

SQL分类 DDL 查询库 查询表 创建表 修改表 DML 添加数据 修改数据 删除数据 DQL 基本查询 条件查询 聚合函数 分组查询 排序查询 分页查询 执行顺序 DCL 管理用户 管理权限 数据类型 数值类型 字符串类型 日期类型

数据结构-如何巧妙实现一个栈?逐步解析与代码示例

文章目录 引言1.栈的基本概念2.选择数组还是链表?3. 定义栈结构4.初始化栈5.压栈操作6.弹栈操作7.查看栈顶和判断栈空9.销毁栈操作10.测试并且打印栈内容栈的实际应用结论 引言 栈是一种基本但强大的数据结构,它在许多算法和系统功能中扮演着关键角色。…

7种常见的网络安全设备及其功能

网络安全设备在现代网络环境中起着至关重要的作用,帮助保护个人和组织免受恶意攻击。本文将介绍7种常见的网络安全设备,包括防火墙、入侵检测系统、反病毒软件、数据加密设备、虚拟私人网络、安全信息和事件管理系统以及网络访问控制设备,并详…

uniapp自定义头部导航怎么实现?

一、在pages.json文件里边写上自定义属性 "navigationStyle": "custom" 二、在对应的index页面写上以下&#xff1a; <view :style"{ height: headheight px, backgroundColor: #24B7FF, zIndex: 99, position: fixed, top: 0px, width: 100% …

基于alibaba druid的血缘解析工具

基于alibaba druid的血缘解析 1、前言 SQL血缘解析指的是通过sql语句来分析该语句中表与表之间的依赖关系和字段和字段之间的依赖关系。 本血缘解析工具仅仅对mysql数据库的select查询语句进行了血缘解析&#xff08;后续会持续扩展&#xff09;&#xff0c;该血缘解析包含了…

【接口测试】Postman(三)-变量与集合

一、变量 ​ 变量这个概念相信大家都不陌生&#xff0c;因此在这里我们不介绍了。主要说一下在Postman中有哪几类变量&#xff0c;主要包括以下四类&#xff1a; Global&#xff08;全局&#xff09; Environment&#xff08;环境&#xff09; Local&#xff08;本地&#xf…

STM32实现流水灯

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_…