【HarmonyOS Next之旅】DevEco Studio使用指南(二十五) -> 端云一体化开发 -> 业务介绍(二)
目录
1 -> 工作原理
2 -> 约束与限制
2.1 -> 支持的设备
2.2 -> 支持的国家/地区
2.3 -> 支持的签名方式
3 -> 总结
3.1 -> 关键功能与工具
3.2 -> 开发流程
3.3 -> 典型场景与优化
3.4 -> 常见问题与解决
3.5 -> 总结
1 -> 工作原理
DevEco Studio支持开发者在本地完成云侧服务资源的开发与部署,并可在端侧工程中调用您开发的云侧代码,真正实现端云一体化开发。
1. 选择合适的云开发模板,根据工程向导创建端云一体化开发工程。
2. 分别进行云侧工程与端侧工程的代码开发与调试。
说明
云侧与端侧工程的代码可并行开发,一般无先后顺序。但若需在端侧代码中调用云侧代码,云侧代码必须先部署到AGC云端,因此建议您先完成云侧代码的开发、调试与部署,再进行端侧代码开发与调试。
1. 开发云侧工程:在云侧工程开发Cloud Foundation Kit提供的云端服务,目前包括云函数、云对象和云数据库资源开发。
- 开发云数据库:在DevEco Studio中创建对象类型、在对象类型中添加数据条目、部署云数据库到AGC云端。
- 开发云对象:在DevEco Studio中创建云对象、开发云对象代码、调试云对象、部署云对象到AGC云端。
- 开发云函数:在DevEco Studio中创建并配置函数、开发函数代码、调试函数、部署函数到AGC云端。
2. 部署云侧工程:云侧工程代码全部开发调试完毕后,一键部署云侧工程到AGC云端。
3. 开发端侧工程:在端侧工程下开发您应用的业务代码。本文档仅描述如何在端侧调用您开发的云侧代码,包括调用云函数、调用云对象、访问云数据库、调用云存储。
4. 端云两侧工程代码全部开发完成后,将端云一体化工程打包成APP,提交至AGC申请上架。
2 -> 约束与限制
2.1 -> 支持的设备
仅支持手机,且不支持使用模拟器运行调试。
2.2 -> 支持的国家/地区
当前仅在中国境内(不包含中国香港、中国澳门、中国台湾)提供服务。
2.3 -> 支持的签名方式
当前仅支持手动签名。
3 -> 总结
3.1 -> 关键功能与工具
-
华为云服务集成
-
云数据库(Cloud DB):直接在DevEco Studio中配置云数据库模型,支持本地与云端数据实时同步。
// 示例:初始化Cloud DB CloudDBZoneConfig config = new CloudDBZoneConfig("MyDBZone"); AGConnectCloudDB.initialize(context).createCloudDBZone(config);
-
云函数(Cloud Function):通过
@CloudFunction
注解快速部署后端逻辑,支持事件驱动。 -
认证服务(Auth Service):集成华为帐号、手机号、第三方登录,一键配置用户体系。
-
-
前后端协同开发
-
API Mock:本地模拟云端接口响应,支持前后端并行开发。
-
分布式调试:实时查看设备端与云端的日志和网络请求。
-
-
数据安全与同步
-
端云数据加密:默认启用HTTPS传输,支持字段级加密。
-
冲突解决策略:基于时间戳或自定义规则解决多端数据冲突。
-
3.2 -> 开发流程
1. 环境配置
-
步骤1:安装DevEco Studio 3.0+,登录华为开发者帐号。
-
步骤2:在AGC(AppGallery Connect)控制台创建项目并启用云服务。
-
步骤3:通过
agconnect-services.json
将云端配置同步至本地工程。
2. 云端资源定义
- 定义云数据库模型:
// CloudDB模型示例
{"objects": [{"name": "User","fields": [{"name": "userId", "type": "String", "isPrimaryKey": true},{"name": "name", "type": "String"}]}]
}
- 配置云函数触发器:如用户注册后自动发送邮件。
3. 设备端开发
- 数据操作:
// 插入数据到Cloud DB
CloudDBZone zone = AGConnectCloudDB.getInstance().openCloudDBZone(config);
User user = new User("001", "Alice");
zone.executeUpsert(user);
- 调用云函数:
CloudFunction.call("sendNotification", params).addOnSuccessListener(result -> { /* 处理成功 */ }).addOnFailureListener(e -> { /* 处理失败 */ });
4. 调试与发布
- 本地模拟器测试:使用DevEco Studio内置模拟器验证端云交互。
-
真机联调:通过HiLog输出云端请求详情。
-
一键发布:同步打包设备端应用与云端资源配置。
3.3 -> 典型场景与优化
1. 场景案例:实时协作笔记
-
设备端:用户通过HarmonyOS平板编辑笔记,实时同步至云端。
-
云端:触发云函数生成协作链接,并推送通知至其他设备。
-
数据流:设备端 → Cloud DB → 云函数 → 推送服务 → 其他设备。
2. 性能优化策略
-
缓存机制:本地SQLite缓存高频查询数据。
-
分页加载:使用
LazyColumn
实现云端数据分页加载。 -
带宽优化:启用数据压缩(如Protocol Buffers)。
3.4 -> 常见问题与解决
1. 数据同步延迟
-
排查:检查网络状态与Cloud DB分区配置。
-
方案:启用离线优先模式,网络恢复后自动同步。
2. 云函数超时
-
优化:拆分复杂逻辑为多个云函数,设置超时阈值(默认3秒)。
3. 权限不足
-
配置:在AGC控制台为云数据库设置精细化的读写权限。
3.5 -> 总结
通过DevEco Studio的端云一体化开发能力,开发者可快速构建具备分布式特性的智能应用。其核心优势在于:
-
高效协同:统一环境管理前后端代码,减少工具切换。
-
安全可靠:内置华为云服务保障数据安全。
-
灵活扩展:支持自定义云函数与第三方服务集成。
感谢各位大佬支持!!!
互三啦!!!
相关文章:
【HarmonyOS Next之旅】DevEco Studio使用指南(二十五) -> 端云一体化开发 -> 业务介绍(二)
目录 1 -> 工作原理 2 -> 约束与限制 2.1 -> 支持的设备 2.2 -> 支持的国家/地区 2.3 -> 支持的签名方式 3 -> 总结 3.1 -> 关键功能与工具 3.2 -> 开发流程 3.3 -> 典型场景与优化 3.4 -> 常见问题与解决 3.5 -> 总结 1 -> 工…...
空调系统虚拟标定技术:新能源汽车能效优化的革命性突破
title: 空调系统虚拟标定技术:新能源汽车能效优化的革命性突破 date: 2025-05-15 categories: 新能源汽车技术 tags: [空调系统, 虚拟标定, PID控制, 数字孪生, 能效优化] description: 本文深度解析空调系统虚拟标定技术在新能源汽车中的应用,揭秘如何…...
MCP Server开发并使用自定义天气查询工具查询城市天气
1.本地安装node.js环境 2.本地创建mcp文件夹,搭建mcp环境 在文件夹下cmd执行npm init -y初始化npm项目 3.创建weather-server.js文件,代码如下 // weather-server.js import { McpServer } from "modelcontextprotocol/sdk/server/mcp.js"…...
virtualbox选项“启用套嵌vt-x/amd-v“不可用
“启用套嵌vt-x/amd-v”选项不可用。 解决方法: 切换到virtualbox安装目录,执行如下命令查看虚拟机名称: .\VBoxManage.exe list vms比如返回: winxp 执行如下命令开启64位,注意把"winxp"换成你的虚拟机名字&#x…...
windows powershell 判断 进程号是否存在
在 Windows PowerShell 中,你可以使用多种方法来检查一个特定的进程号(PID)是否存在。以下是几种常用的方法: 方法1:使用 Get-Process 命令 你可以尝试获取具有特定 PID 的进程。如果该进程存在,Get-Proce…...
JAVA SE 多线程(下)
文章目录 📕1. 常见的锁策略✏️1.1 乐观锁VS悲观锁✏️1.2 轻量级锁VS重量级锁✏️1.3 自旋锁✏️1.4 公平锁VS非公平锁✏️1.5 可重入锁和不可重入锁✏️1.6 读写锁 📕2. 死锁✏️2.1 哲学家就餐问题✏️2.2 形成死锁的必要条件✏️2.3 如何避免死锁 &…...
DeepSeek+Dify之九多模态大模型识别图片
Dify之八添加各种在线大模型 文章目录 背景整体流程测试数据用到的节点开始列表操作LLM结束实现步骤1、新建工作流2、开始节点3、列表操作4、LLM节点(多模态大模型检索)5、结束节点测试发布导出背景 有了上一篇文章的基础,现在可以了解下多模态大模型识别图片的工作流 整体…...
软件工程(七):MQTT协议
概念 特性描述协议类型应用层协议(基于 TCP/IP)通信模式发布/订阅(Publish/Subscribe)网络开销小报文头仅 2 字节起,非常轻量保持长连接使用 Keep Alive 机制,适合持续连接的设备面向物联网广泛用于智能家…...
网络 :网络基础【网络框架认识】
网络 :网络基础【对网络的认识】 (一)网络发展(二)协议1、协议是什么?2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型5、系统与网络的关系6、总结 (三)网络传输流程1、网络传输…...
Kotlin 极简小抄 P8(不可空类型、可空类型、注意事项、非空断言 !!)
Kotlin 概述 Kotlin 由 JetBrains 开发,是一种在 JVM(Java 虚拟机)上运行的静态类型编程语言 Kotlin 旨在提高开发者的编码效率和安全性,同时保持与 Java 的高度互操作性 Kotlin 是 Android 应用开发的首选语言,也可…...
几种超声波芯片的特点和对比
一 CX20106A ZIP - 8 CX20106A ZIP - 8 的核心竞争力在于高性价比、易用性和抗光干扰能力,尤其适合消费电子、短距离工业检测和低成本物联网场景。尽管在距离和精度上不及高端芯片,但其成熟的电路方案和广泛的市场应用(如经典红外遥控升级为超…...
软考 系统架构设计师系列知识点之杂项集萃(66)
接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(65) 第106题 一般说来,SoC称为系统级芯片,也称片上系统,它是一个有专用目标的集成电路产品。以下关于SoC不正确的说法是()。…...
Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]
Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]] 目录 Linux云计算训练营笔记day13[CentOS 7 find、vim、vimdiff、ping、wget、curl、RPM、YUM]]1.find练习2.vim高级使用2.1 命令模式:2.2 插入模式:2.3 末行模式: 3. vimdiff4. ping5.…...
年会招标抽奖活动软件———仙盟创梦IDE
年会是企业一年的总结与欢庆时刻,而抽奖环节更是点燃全场气氛的关键。如何让抽奖环节既大气又充满仪式感?选对抽奖软件至关重要!本文精心挑选了 3 款兼具实用性与氛围感的年会抽奖软件,从界面设计到功能特色,全方位为你…...
智防火灾,慧控能耗:物联网赋能金融行业电气安全革新
摘要 随着金融行业对电气安全需求的不断提升,传统用电管理模式已难以满足现代金融机构对火灾防控、能耗管理和智能运维的要求。本文基于物联网、云计算及大数据分析技术,提出一套针对金融行业的安全用电解决方案。该方案通过智能化硬件部署与平台化管理…...
UML基本概念:构造块、公共机制与规则
本篇来介绍UML的一些基础概念。 1 UML的结构 2 构造块 UML构造块是构成UML模型的基础元素,它们共同构成了UML的核心。 UML 的三种基本构造块是: 事物:对模型中重要元素的抽象,如类、对象等等关系:用来连接事物的&a…...
JAVA项目中常见的注解总结
以下是 Spring Boot/Spring MVC 项目中按使用频率排序的核心注解总结,包含常用场景和示例,帮助你快速掌握高频开发需求: 一、高频基础注解(框架核心) 1. SpringBootApplication(启动类注解) …...
数字电子技术基础(六十二)——使用Multisim软件绘制边沿触发的D触发器和JK触发器
1 使用Mulitism软件模拟时钟触发的D触发器 D触发器是一种基本的数字电路存储元件,它在时钟信号的边沿将输入数据D传递到输出Q。下面开始使用Multisim软件来模拟时钟触发的D触发器。 器件选择: 触发器选择:在组选项栏中点击Misc Digital&am…...
滚珠丝杆的承载力是多少?
滚珠丝杆的承载力不是一个固定值,它受到多种因素的影响,包括直径、螺距、滚珠个数、滚珠直径、材料、润滑条件等。 滚珠丝杆的承载力主要取决于其额定动负荷和静负荷,额定动负荷是指在特定条件下,滚珠丝杆能够承受的动态负载&am…...
CQF预备知识:一、微积分简介 —— 基本术语详解
文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。 📖 数学入门全解 本教程为复习课程,旨在帮助读者复习数学知识。教程涵盖以下四个主题: 微积分线性代数微…...
【深度估计 Depth Estimation】数据集介绍
文章目录 总览1. KITTI Depth Completion1.1. 来源1.2. 采集场景1.3. 数据集内容1.4. 标注内容1.5. 任务目标1.6. 样本量1.7. 下载链接 2. KITTI Stereo Evaluation 20152.1. 来源2.2. 采集场景2.3. 数据集内容2.4. 标注内容2.5. 任务目标2.6. 样本量2.7. 下载链接 3. Virtual …...
鸿蒙UI开发——Builder与LocalBuilder对比
1、概 述 在ArkUI中,有的朋友应该接触过Builder和LocalBuilder。其中有了LocalBuilder的存在,是为了解决组件的父子关系和状态管理的父子关系保持一致的问题。 这里面最直观的表现则是this的指向问题与组件刷新问题,本文对Builder与LocalBu…...
FFT加窗和抽取滤波
FFT加窗 在信号处理中,为了减少频谱泄漏(Spectral Leakage),在进行快速傅里叶变换(FFT)时通常会采用加窗(Windowing)技术。包括常见的窗函数及其特性对比。 MATLAB FFT 加窗流程 采…...
CentOS 10:启动telnet服务
参考, 鳥哥私房菜 - 第七章、網路安全與主機基本防護:限制埠口, 網路升級與 SELinux 7.3.3 埠口与服务的启动/关闭及开机时状态设定 我们知道系统的 Telnet 服务通常是以 super daemon 来控管的,请您启动您系统的 telnet 试看看。 1 要启动 …...
腾讯位置服务重构出行行业的技术底层逻辑
位置智能:重构出行行业的技术底层逻辑 在智慧城市建设与交通出行需求爆发的双重驱动下,位置服务正从工具层跃升为出行行业的核心基础设施。腾讯位置服务以“连接物理世界与数字空间”为核心理念,通过构建高精度定位、实时数据融合、智能决策…...
webpack5所用依赖以及对应的版本
所有依赖以及版本 {"name": "market-web","version": "0.1.0","private": true,"scripts": {"dev": "cross-env NODE_ENVdevelopment webpack serve --config ./vue.config.js","buil…...
vue-cli 构建打包优化(JeecgBoot-Vue2 配置优化篇)
项目:jeecgboot-Vue2 在项目二次开发后,在本人电脑打包时间为3分35秒左右 webpack5默认优化: Tree Shaking(摇树优化):删除未使用的代码base64 内联: 小于 8KB 的资源(图片等&…...
Webpack 分包策略详解及实现
Webpack 的分包策略(Code Splitting)是优化前端应用性能的重要手段,它能将代码拆分成多个 bundle,实现按需加载或并行加载,从而减少初始加载时间。 分包策略的必要性 在大型项目中,如果将所有代码打包到一…...
大模型微调与高效训练
随着预训练大模型(如BERT、GPT、ViT、LLaMA、CLIP等)的崛起,人工智能进入了一个新的范式:预训练-微调(Pre-train, Fine-tune)。这些大模型在海量数据上学习到了通用的、强大的表示能力和世界知识。然而&…...
postgreSQL日常维护
目录 登录数据库 数据库操作列出列出库 创建库 删除库 切换库 查看库的大小 数据表操作 列出表 创建表 复制表 删除表 查看表的结构 模式操作命令 创建模式 默认模式 删除模式 查看所有模式 在指定模式中创建表 切换当前模式 查看当前所在schema 查看搜索…...
数据直观分析与可视化
数据直观分析与可视化 一、数据的直观分析核心价值 数据的直观分析旨在通过视觉化的方式,帮助人们更直观、更快速地理解数据的特征和模式,从而发现趋势、异常值、分布情况以及变量之间的关系,为决策提供支持。 数据可视化与信息图形、信息可…...
BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds
BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds 研究动机解决方案技术路线踏脚点奖励双Critic进行稀疏奖励学习两阶段学习地形感知运动马尔可夫决策空间Sim2Real 附录实验结果 BeamDojo: Learning Agile Humanoid Locomotion on Sparse Footholds 研究动机…...
Spark大数据分与实践笔记(第五章 HBase分布式数据库-02)
文章目录 每日一句正能量第五章 HBase分布式数据库章节概要5.2 HBase的集群部署 每日一句正能量 人有三样东西是无法隐瞒的,咳嗽,穷困和爱,你想隐瞒越欲盖弥彰。人有三样东西是不该挥霍的,身体,金钱和爱,你…...
【面经分享】微派网络一面
HashMap 如何解决 哈希冲突? HashMap 是拉链法解决。 发生哈希冲突时,同一个槽位上,会形成一个链表。 一个槽位上的节点达到树化的阈值后,会树化为红黑树。 拉链法:哈希冲突时,同一个哈希槽拉成一个链表…...
【寻找Linux的奥秘】第七章:虚拟地址空间
前言 本专题将基于Linux操作系统来带领大家学习操作系统方面的知识以及学习使用Linux操作系统。上一章我们简单认识了环境变量,本章将讲解操作系统中另一个重要的概念——程序地址空间。 1. 初步认识 之前在我们学习C语言和C时我们知道,在我们的程序中不…...
网络安全-等级保护(等保) 2-0 等级保护制度现行技术标准
################################################################################ 第二章:现行等保标准要求,通过表格方式详细拆分了等保的相关要求。 GB 17859-1999 计算机信息系统 安全保护等级划分准则【现行】 GB/T22240-2020 《信息安全技术…...
Linux:进程信号---信号的保存与处理
文章目录 1. 信号的保存1.1 信号的状态管理 2. 信号的处理2.1 用户态与内核态2.2 信号处理和捕捉的内核原理2.3 sigaction函数 3. 可重入函数4. Volatile5. SIGCHLD信号 序:在上一章中,我们对信号的概念及其识别的底层原理有了一定认识,也知道…...
【Linux】C语言模拟实现shell命令行(程序替换原理)
目录 一、自动化构建工具(makefile) 二、输出提示符 三、获取用户输入的数据 四、将用户输入的指令字符串进行分割: 五、执行用户输入的命令 六、发现cd命令用不了(内建命令) 原因在于: 七、处理内…...
WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)
免责声明 本文档所述漏洞详情及复现方法仅限用于合法授权的安全研究和学术教育用途。任何个人或组织不得利用本文内容从事未经许可的渗透测试、网络攻击或其他违法行为。使用者应确保其行为符合相关法律法规,并取得目标系统的明确授权。 对于因不当使用本文信息而造成的任何直…...
【Java】泛型在 Java 中是怎样实现的?
先说结论 , Java 的泛型是伪泛型 , 在运行期间不存在泛型的概念 , 泛型在 Java 中是 编译检查 运行强转 实现的 泛型是指 允许在定义类 , 接口和方法时使用的类型参数 , 使得代码可以在不指定具体类型的情况下操作不同的数据类型 , 从而实现类型安全的代码复用 的语言机制 . …...
Lambda表达式的高级用法
今天来分享下Java的Lambda表达式,以及它的高级用法。 使用它可以提高代码的简洁度,使代码更优雅。 一、什么是lambda表达式 Lambda 表达式是 Java 8 引入的特性,用于简化匿名内部类的语法,使代码更简洁,尤其在处理函…...
ctfhub技能书http协议
http://challenge-ffe8afcf1a75b867.sandbox.ctfhub.com:10800/index.php curl -v -X CTFHUB http://challenge-ffe8afcf1a75b867.sandbox.ctfhub.com:10800/index.php curl:用于发送 HTTP 请求的命令行工具。 -v(--verbose):开启…...
面试题 - 微服务相关的经典问题(33道)
1.什么是微服务? 微服务(Microservices)是一种软件架构风格,将一个大型应用程序划分为一组小型、自治且松耦合的服务。每个微服务负责执行特定的业务功能,并通过轻量级通信机制(如HTTP)相互协作…...
在C#中对List<T>实现多属性排序
本文介绍了四种实现多级排序的方法:1. LINQ链式调用:使用OrderBy和ThenBy实现多级排序,直观易读,适合动态需求,返回新列表。2. 自定义比较器(IComparer):适用于复杂或高频排序&#…...
C++初阶-vector的模拟实现3
目录 1.预备知识:initializer_list 1.1初步了解 1.2关于initializer_list的deepseek的回答 C中的 std::initializer_list 主要特性 常见用途 1. 接受列表的构造函数和函数 2. 基于范围的 for 循环 重要注意事项 实现示例 2.vector::vector(initializer_li…...
详解鸿蒙仓颉开发语言中的日志打印问题
一门新的开发语言在诞生初期,由于它本身的特性和使用人数暂时较少,会容易出现一些大家不太容易理解的问题,或者说有一些坑。今天就详细分享一下仓颉开发语言中的日志打印相关内容,带大家踩一踩坑。 AppLog 在新创建的项目中&…...
dify基于文本模型实现微调Fine-tune语料构造工作流
主要是分为5个部分。分别是:开始、文档提取器、代码执行、LLM大语言模型、结束 5个部分 打开dify,创建一个空白页面-选择工作流,我们给应用起个名字。 创建完成后,进入工作流画布界面 开始 在开始节点中新建2个输入参数。1个是用…...
手机充电协议
1、手机快充 公有:PD、QC(高通骁龙芯片) 私有: 华为:FCP(fast charge protocol) 、SCP( super charge protocol) 、 小米: Mi Turbo Charge oppo:VOOC/SuperVOOC vivo:FlashCharge、…...
HarmonyOS 应用开发,如何引入 Golang 编译的第三方 SO 库
本指南基于笔者临时修复的 ohos_golang_go 项目fork,解决HO 应用导入 cgo编译产物时的 crash 问题。 1. 下载 ohos_golang_go git clone https://gitcode.com/deslord/ohos_golang_go.git📌 该仓库为笔者临时修复版本,修复了 CGO 编译模式下…...
polarctf-web-[某函数的复仇]
考点: 匿名构造函数(create_function) 题目来源:polarctf-web-[某函数的复仇] 解题: 代码审计: <?phphighlight_file(__FILE__);//flag:/flagif(isset($_POST[shaw])){$shaw $_POST[shaw];$root $_GET[root];if(preg_mat…...