华为端云一体化开发 (起步1.0)(HarmonyOS学习第七课)

官方文献:

为丰富HarmonyOS对云端开发的支持、实现端云联动,DevEco Studio推出了云开发功能,开发者在创建工程时选择云开发模板,即可在DevEco Studio内同时完成HarmonyOS应用/元服务的端侧与云侧开发,体验端云一体化协同开发。

注意

使用云开发功能,需同时满足如下条件:

相比于传统开发模式,云开发模式具备成本低、效率高、门槛低等优势,具体区别见下表。

区别点

传统开发模式

云开发模式

开发工具

端侧与云侧各需一套开发工具,云侧需自建服务器,工具成本高。

DevEco Studio一套开发工具即可支撑端侧与云侧同时开发,无需搭建服务器,工具成本低。

开发人员

  • 端侧与云侧要求不同的开发语言,技能要求高。
  • 需多人投入,且开发人员之间需持续、准确沟通,人力与沟通成本高、效率低。
  • 依托AppGallery Connect(以下简称AGC)Serverless云服务开放的接口,端侧开发人员也能轻松开发云侧代码,大大降低开发门槛。
  • 开发人员数量少,降低人力成本,提高沟通效率。

运维

需自行构建运营与运维能力,成本高、负担重。

直接接入AGC Serverless云服务,实现免运维,无运维成本或资源浪费。

云开发特性

云开发特性主要包含了如下功能。

主要功能

描述

端云一体化开发

您可以在DevEco Studio中同时开发与调试应用的端侧代码与云侧代码。

  • 端开发主要是开发、调试应用端侧的业务代码。
  • 云开发即为应用开发云侧工程,目前包含云函数与云数据库工程。
    • 云函数:支持在DevEco Studio中创建函数、编写函数代码、调试函数、部署函数到AGC云端。
    • 云数据库:支持在DevEco Studio中创建对象类型、在对象类型中添加数据条目、部署云数据库到AGC云端。

一键部署云工程

云工程开发完毕后,您可在DevEco Studio中将其一键部署至AGC云端。

端云一体化组件

DevEco Studio还为您提供多种端云一体化组件。集成端云一体化组件后,您只需进行简单配置即可向应用用户提供登录、支付等多种功能。

当前仅支持端云一体化登录组件,用于向应用用户提供登录、登出功能,目前支持帐号密码登录、手机验证码登录、以及邮箱验证码登录。

开发流程

HarmonyOS应用端云一体化开发流程如下图所示。

序号

阶段

任务

说明

1

创建端云一体化开发工程

选择云开发模板

  • HarmonyOS应用工程:支持选择通用云开发模板或商城模板。
  • 元服务工程:仅支持选择通用云开发模板。

配置工程信息

配置工程名称、类型等基本信息。

关联云开发资源

在进行云开发之前,您需为工程关联所需的资源:在DevEco Studio中选择您的华为开发者帐号加入的开发者团队,将该团队在AGC的同包名应用关联到当前工程。

上述云开发资源关联成功、工程创建完毕后,DevEco Studio会为您的工程自动执行一些初始化配置:

  • 为工程关联的AGC项目自动开通云开发相关的Serverless服务(认证服务、云函数、云数据库、云托管、API网关、云存储)。
  • 为端侧工程自动集成agconnect-services.json配置文件以及相关Serverless服务最新版本的HarmonyOS SDK,同时会自动集成端云一体化登录组件的最新SDK。
  • 云侧工程云函数节点下会自动引入依赖的云数据库的最新版本Node.js Server SDK,以实现在端侧访问云数据库。

2

端云一体化开发与调试

端侧开发与调试

  • 端侧代码开发:在端侧工程下,开发、调试应用端侧业务代码。
  • 端云一体化组件开发:DevEco Studio还为您提供多种端云一体化组件。集成端云一体化组件后,您只需进行简单配置即可向应用用户提供登录、支付等功能(当前仅支持端云一体化登录组件)。

云侧开发与调试

在云侧工程下开发、调试与部署云服务:

  • 开发云函数,包括创建函数、调试函数、将函数部署到AGC云端。
  • 开发云数据库,包括创建对象类型、在对象类型中添加数据条目、部署云数据库。

3

端侧发布与云侧部署

打包并发布应用

将端侧工程进行打包,生成APP,后续即可在AGC进行应用上架。

一键部署云工程

云工程开发完毕后,您可在DevEco Studio中将其一键部署至AGC云端。

起步

首先我们需要先创建一个AGC账号:

链接地址: AppGallery Connect (huawei.com) 点击注册即可

需要进行实名认证等一系列的操作就不过多阐述。

项目创建

 添加应用

开启云数据库-云存储-认证服务的开关认证服务

启用认证服务,云数据库,云存储等。

                                                            

直接点击开通即可

不用管直接下一步

创建项目

打开编辑器

新建项目

 注意!!

 进行登录

查找到我们刚才创建的项目就算成功了!!

运行

我们使用模拟器运行查看效果

主页面出现我们添加的服务等 即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT交卷2024年高考新课标I卷语文关于AI方面的作文试题

2024年新课标I卷作文试题: 阅读下面的材料,根据要求写作。(60分) 随着互联网的普及、人工智能的应用,越来越多的问题能很快得到答案。那么,我们的问题是否会越来越少? 以上材料引发了你怎样的…

CarSim车辆运动轨迹绘制

CarSim车辆运动轨迹绘制 CarSim中与车辆位置有关的信息分别为Xo和Yo 输出到Simulink中 导入到工作空间中保存,low_carsim_path.mat ,绘制结果曲线,low_carsim_path_comp.m data csvread(low_two_path.csv,1,0); low_two_path_x data(:,1)…

【FAS】《CN103106397B》

原文 CN103106397B-基于亮瞳效应的人脸活体检测方法-授权-2013.01.19 华南理工大学 方法 / 点评 核心方法用的是传统的形态学和模板匹配,亮点是双红外发射器做差分 差分:所述FPGA芯片控制两组红外光源(一近一远)交替亮灭&…

DVWA-XSS(Reflected)

反射型XSS可以用来窃取cookie Low 输入1111进行测试&#xff0c;发现1111被打印 输入<script>alert(document.cookie)</script>&#xff0c;出现弹窗&#xff0c;获得cookie Medium 查看后端代码&#xff0c;发现对<script>进行了转义&#xff0c;但是…

codeforces round 949 div2

A Turtle and Piggy Are Playing a Game 题目&#xff1a; 思路&#xff1a;输出2的幂次b使得2^b为最大的不超过x的数 代码&#xff1a; #include <iostream>using namespace std;const int N 2e5 10;void solve() {int l, r;cin >> l >> r;if(r % 2) …

大小堆运用巧解数据流的中位数

​​​​​​​​​​ 一、思路 我们将所有数据平分成两份&#xff0c;前面那一部分用小堆来存&#xff0c;后面的部分用大堆来存&#xff0c;这样我们就能立刻拿到中间位置的值。 如果是奇数个数字&#xff0c;那么我们就将把中间值放在前面的大堆里&#xff0c;所以会有两种…

华为设备动态路由OSPF(单区域+多区域)实验

动态路由OSPF的配置 OSPF分类两种情况&#xff1a;单区域 多区域路由 OSPF单区域路由配置 OSPF&#xff1a;开放最短路径优先的路由协议。属于大型动态路由协议&#xff0c;适用于中大型的园区网。 网络拓扑&#xff1a; 配置步骤&#xff1a; 1.完成基本配置&#xff08;略&a…

代码随想录算法训练营第30天|回溯复习篇

回溯基础理论 1.回溯的本质是利用递归进行暴力搜索&#xff0c;将符和条件的结果集搜索出来 2.回溯法常见的问题&#xff1a; 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合排列问题&#xff1a;N个数按一定规则全排列&#xff0c;有几种排列方式切割问题&#x…

fastadmin/thinkPHPQueue消息队列详细教程

thinkphp-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性: 消息的发布,获取,执行,删除,重发,失败处理,延迟执行,超时控制等队列的多队列, 内存限制 ,启动,停止,守护等消息队列可降级为同步执行1、通过composer安装thinkPHP消息队列 …

kafka-消费者-指定offset消费(SpringBoot整合Kafka)

文章目录 1、指定offset消费1.1、创建消费者监听器‘1.2、application.yml配置1.3、使用 Java代码 创建 主题 my_topic1 并建立3个分区并给每个分区建立3个副本1.4、创建生产者发送消息1.4.1、分区0中的数据 1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1…

算法003:快乐数

这道题采用快慢双指针的方法。 为了弄清楚这个题到底是要我们干嘛&#xff0c;我们把整个过程类比一下&#xff1a; 不管是n19还是n2&#xff0c;我们都把它当成一种判断链表是否有环的方式。 对于n19&#xff0c;题干是这样解释的&#xff1a; 我们把它当成链表&#xff0c…

如何挑选最适合你的渲染工具

随着技术的发展&#xff0c;云渲染平台逐渐成为设计师、动画师、影视制作人员等创意工作者的得力助手。然而&#xff0c;市场上的云渲染平台种类繁多&#xff0c;如何选择最适合自己的渲染工具成为了一个需要认真考虑的问题。 在挑选适合自己的云渲染工具时&#xff0c;我们需…

YOLOv10涨点改进:原创自研 | GhostNet融合 | 从廉价的操作中生成更多的特征图

文章目录 GhostNet理论基础实验部分改进方案新增yolov10s-ghost.yaml文件代码运行GhostNet理论基础 Ghost Module是一种模型压缩的方法,即在保证网络精度的同时减少网络参数和计算量,从而提升计算速度(speed),降低延时(latency)。Ghost 模块可以代替现有卷积网络中的每…

OpenAI模型规范概览

这是OpenAI对外分享的模型规范文档&#xff08;Model Spec&#xff09;&#xff0c;它定义了OpenAI希望在API接口和ChatGPT&#xff08;含GPT系列产品&#xff09;中模型的行为方式&#xff0c;这也是OpenAI超级对齐团队奉行的行为准则&#xff0c;希望能对国内做RLHF的同学有帮…

.Net实现SCrypt Hash加密

方案1 &#xff08;加密后存储“算法设置”、“盐(随机值)”、“Hash值”&#xff0c;以“$”分隔&#xff09;&#xff1a; //Nuget引入SCrypt.NET库 using Org.BouncyCastle.Crypto.Generators; using Scrypt; using System; using System.Security.Cryptography; namespace …

Apache OFBiz 路径遍历导致RCE漏洞复现(CVE-2024-36104)

0x01 产品简介 Apache OFBiz是一个电子商务平台,用于构建大中型企业级、跨平台、跨数据库、跨应用服务器的多层、分布式电子商务类应用系统。是美国阿帕奇(Apache)基金会的一套企业资源计划(ERP)系统。该系统提供了一整套基于Java的Web应用程序组件和工具。 0x02 漏洞概…

90后机器人创业者再获10亿元融资,为精密传动行业注入新动力!

据了解&#xff0c;一位90后机器人创业者再次获得近10亿元人民币的融资&#xff0c;这一消息在精密传动行业引起了广泛关注。 杭州宇树科技有限公司&#xff08;简称“宇树”&#xff09;&#xff0c;2024年春节前完成了B2轮融资&#xff0c;融资近10亿元人民币&#xff0c;本轮…

pyqt5 tablewidget实现excel拖曳填充

代码主要涉及鼠标事件和绘图&#xff0c;selectionModel&#xff0c;selectedIndexes。 import sys from PyQt5.QtCore import QPoint, Qt, QCoreApplication, pyqtSlot from PyQt5.QtGui import QBrush, QPixmap, QColor, QPainter,QIcon,QPolygon from PyQt5.QtWidgets imp…

【Java】解决Java报错:ClassCastException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 错误的类型转换2.2 泛型集合中的类型转换2.3 自定义类和接口转换 3. 解决方案3.1 使用 instanceof 检查类型3.2 使用泛型3.3 避免不必要的类型转换 4. 预防措施4.1 使用泛型和注解4.2 编写防御性代码4.3 使用注解和检查工具 5. 示…

64. UE5 RPG 创建新的双手攻击怪物

在上一篇文章中&#xff0c;我们实现了新的功能&#xff0c;现在可以创建多个普通攻击动画&#xff0c;并且可以根据你所使用的普通攻击动画&#xff0c;设置不同的攻击位置。比如&#xff0c;你使用武器&#xff0c;那么攻击位置需要从武器上获取&#xff0c;如果你没有持有武…