《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS技术理念

news2025/1/1 15:18:34

1.2 技术理念

在万物智联时代重要机遇期,HarmonyOS结合移动生态发展的趋势,提出了三大技术理念(如下图3-1所示):一次开发,多端部署;可分可合,自由流转;统一生态,原生智能。

cke_153.png

图1-1 核心技术理念

1.2.1 一次开发,多端部署

“一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。目的是为了支撑开发者高效地开发多种终端设备上的应用。为了实现这一目的,HarmonyOS提供了几个核心能力,包括多端开发环境,多端开发能力以及多端分发机制,如下图1-2所示。

cke_154.png

图1-2 一次开发、多端部署示意图

1. 多端开发环境

HUAWEI DevEco Studio是面向全场景多设备提供的一站式开发平台,支持多端双向预览、分布式调优、分布式调试、超级终端模拟、低代码可视化开发等能力,帮助开发者降低成本、提升效率、提高质量。

HUAWEI DevEco Studio提供的核心能力如下图1-3所示。

cke_155.png

图1-3 HUAWEI DevEco Studio提供的核心能力

  • 多端双向预览:在HarmonyOS应用的开发阶段,因不同设备的屏幕分辨率、形状、大小等差异,开发者需要在不同设备上查看UI界面显示,确保实现效果与设计目标一致。在传统的开发模式下,开发者需要获取大量不同的真机设备用于测试验证。HUAWEI DevEco Studio提供了多种设备的双向预览能力,支持同时查看UI代码在多个设备上的预览效果,并支持UI代码和预览效果的双向定位修改。
  • 分布式调优:HarmonyOS应用具有天然的分布式特征,体现在同一个应用在多个设备之间会有大量的交互。开发过程中,对这些交互进行调试时,需要对每个设备分别建立调试会话,并且需要在多个设备之间来回切换,容易造成调试不连续、操作繁琐等问题。为了提升开发效率,HUAWEI DevEco Studio提供了分布式调试功能,支持跨设备调试,通过代码断点和调试堆栈可以方便地跟踪不同设备之间的交互,用于定位多设备互动场景下的代码缺陷。
  • 分布式调试:分布式应用的运行性能至关重要。在跨端迁移场景中,需要应用在目标设备上快速启动,以实现和原设备之间的无缝衔接;在多端协同场景中,需要应用在算力和资源不同的多个设备上都能高效运行,以获得整体的流畅体验。以往开发者在分析分布式应用的性能问题时,需要单独查看每个设备的性能数据,并手动关联分析这些数据,操作繁琐,复杂度高。HUAWEI DevEco Studio提供了分布式调优功能,支持多设备分布式调用链跟踪、跨设备调用堆栈缝合,同时采集多设备性能数据并进行联合分析。
  • 超级终端模拟:移动应用开发时需要使用本地模拟器来进行应用调试,实现快速开发的目的。HarmonyOS应用需要运行在多种不同类型的设备上,为此HUAWEI DevEco Studio提供了不同类型的终端模拟,支持开发者在多个模拟终端上进行开发调试,降低门槛、节约成本。同时,多个模拟终端、真机设备也可以自由地组成超级终端,进一步降低开发者获取分布式调测环境的难度。
  • 低代码可视化开发:低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序。低代码开发的产物如组件、模板等可以被其他模块的代码引用,并且能通过跨工程复用,支持开发团队协同完成复杂应用的开发。
2. 多端开发能力

应用如需在多个设备上运行,需要适配不同的屏幕尺寸和分辨率、不同的交互方式(如触摸和键盘等)、不同的硬件能力(如内存差异和器件差异等),开发成本较高。因此,多端开发能力的核心目标是降低多设备应用的开发成本。为了实现该目标,HarmonyOS提供了以下几个核心能力,支持多端UI适配,交互事件归一,设备能力抽象,帮助开发者降低开发与维护成本,提升代码复用度。

  • 多端UI适配:不同设备屏幕尺寸、分辨率等存在差异,HarmonyOS将对屏幕进行逻辑抽象,包括尺寸和物理像素,并提供丰富的自适应/响应式的布局和视觉能力,方便开发者进行不同屏幕的界面适配。
  • 交互事件归一:不同设备间的交互方式等存在差异,如触摸、键盘、鼠标、语音、手写笔等,HarmonyOS将不同设备的输入映射成归一交互事件,从而简化开发者适配逻辑。
  • 设备能力抽象:不同设备间的软、硬件能力等存在差异,如设备是否具备定位能力、是否具备摄像头、是否具备蓝牙功能等,HarmonyOS要对设备能力进行逻辑抽象,并提供接口来查询设备是否支持某一能力,方便开发者进行不同软、硬件能力的功能适配。在HarmonyOS中,使用SystemCapability(简写为 SysCap)定义每个部件对应用开发者提供的系统软硬件能力。应用开发者基于统一的方式访问不同设备的能力。
3. 多端分发机制

如果需要开发多设备上运行的应用,一般会针对不同类型的设备多次开发并独立上架。开发和维护的成本大,为了解决这个问题,HarmonyOS提供了“一次开发,多端部署”的能力,开发者开发多设备应用,只需要一套工程,一次打包出多个HAP,统一上架,即可根据设备类型按需进行分发。

除了可以开发传统的应用,开发者还可以开发元服务。元服务是一种面向未来的服务提供方式,具有独立入口的、免安装的、可为用户提供一个或多个便捷服务的应用程序形态。HarmonyOS为元服务提供了更多的分发入口,方便用户获取,同时也增加了元服务露出的机会。

1.2.2 可分可合,自由流转

元服务是HarmonyOS提供的一种全新的应用形态,具有独立入口,用户可通过点击、碰一碰、扫一扫等方式直接触发,无需显式安装,由程序框架后台静默安装后即可使用,可为用户提供便捷服务。

传统移动生态下,开发者通常需要开发一个原生应用版本,如果提供小程序给用户,往往需要开发若干个独立的小程序。鸿蒙生态下,鸿蒙原生支持元服务开发,开发者无需维护多套版本,通过业务解耦将应用分解为若干元服务独立开发,按需根据场景组合成复杂应用。

元服务基于HarmonyOS API开发,支持运行在1+8+N设备上,供用户在合适的场景、合适的设备上便捷使用。元服务是支撑可分可合、自由流转的轻量化程序实体,帮助开发者的服务更快触达用户。具备如下特点: * 触手可及:元服务可以在服务中心发现并使用,同时也可以基于合适场景被主动推荐给用户使用,例如用户可在服务中心和小艺建议中发现系统推荐的服务。 * 服务直达:元服务无需安装卸载,“秒开体验”,即点即用,即用即走。 * 万能卡片:支持用户无需打开元服务便可获取服务内重要信息的展示和动态变化,如天气、关键事务备忘、热点新闻列表。 * 自由流转:元服务支持运行在多设备上并按需跨端迁移,或者多个设备协同起来给用户提供最优的体验。例如手机上未完成的邮件,迁移到平板继续编辑,手机用作文档翻页和批注,配合智慧屏完成分布式办公;例如分布式游戏场景,手机可作为手柄,与智慧屏配合玩游戏,获得新奇游戏体验。

1.2.3 统一生态,原生智能

1. 统一生态

移动操作系统和桌面操作系统的跨平台应用开发框架不尽相同,从渲染方式的角度可以归纳为WebView渲染、原生渲染和自渲染这三类,HarmonyOS对应的提供系统WebView、ArkUI框架和XComponent能力来支撑三种类型的跨平台框架的接入。

主流跨平台开发框架已有版本正在适配HarmonyOS,基于这些框架开发的应用可以以较低成本迁移到HarmonyOS。

2. 原生智能

HarmonyOS内置强大的AI能力,面向鸿蒙生态应用的开发,通过不同层次的AI能力开放,满足开发者的不同开发场景下的诉求,降低应用的开发门㵬,帮助开发者快速实现应用智能化。

参考资料

  • 《跟老卫学HarmonyOS开发》 开源免费教程,https://github.com/waylau/harmonyos-tutorial
  • 《鸿蒙HarmonyOS手机应用开发实战》(清华大学出版社)
  • “鸿蒙系统实战短视频App 从0到1掌握HarmonyOS”(鸿蒙系统实战短视频App 从0到1掌握HarmonyOS_实战课程_慕课网)
  • 《鸿蒙HarmonyOS应用开发入门》(清华大学出版社)
  • “2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”(2024 鸿蒙零基础快速实战-仿抖音App开发( ArkTS版 )_实战课程_慕课网)
  • 《鸿蒙HarmonyOS应用开发从入门到精通战(第2版)》(北京大学出版社)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机组成——Cache

目录 为什么引入高速缓存? 数据查找方案: 命中率与缺失率 Cache和主存的映射方式 1.全相联映射 经典考法 覆盖问题 访存 2.组相联映射 3.直接映射(和组相联类似) 覆盖问题 替换算法 1.随机算法(RAND&…

OpenCV和PyQt的应用

1.创建一个 PyQt 应用程序,该应用程序能够: 使用 OpenCV 加载一张图像。在 PyQt 的窗口中显示这张图像。提供四个按钮(QPushButton): 一个用于将图像转换为灰度图一个用于将图像恢复为原始彩色图一个用于将图像进行翻…

基于Spring Boot的宠物领养系统的设计与实现(代码+数据库+LW)

摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领…

uniapp 判断多选、选中取消选中的逻辑处理

一、效果展示 二、代码 1.父组件: :id=“this.id” : 给子组件传递参数【id】 @callParentMethod=“takeIndexFun” :给子组件传递方法,这样可以在子组件直接调用父组件的方法 <view @click="$refs.member.open()"

百度热力图数据日期如何选择

目录 1、看日历2、看天气 根据研究内容定&#xff0c;一般如果研究城市活力的话&#xff0c;通常会写“非重大节假日&#xff0c;非重大活动&#xff0c;非极端天气等”。南方晴天不多&#xff0c;有小雨或者中雨都可认为没有影响&#xff0c;要不然在南方很难找到完全一周没有…

【深入理解SpringCloud微服务】Sentinel源码解析——FlowSlot流控规则

Sentinel源码解析——FlowSlot流控规则 StatisticNode与StatisticSlotStatisticNode内部结构StatisticSlot FlowSlot流控规则 在前面的文章&#xff0c;我们对Sentinel的原理进行了分析&#xff0c;Sentinel底层使用了责任链模式&#xff0c;这个责任链就是ProcessorSlotChain对…

【机器学习(九)】分类和回归任务-多层感知机(Multilayer Perceptron,MLP)算法-Sentosa_DSML社区版 (1)11

文章目录 一、算法概念11二、算法原理&#xff08;一&#xff09;感知机&#xff08;二&#xff09;多层感知机1、隐藏层2、激活函数sigma函数tanh函数ReLU函数 3、反向传播算法 三、算法优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、MLP分类任务实…

R基于贝叶斯加法回归树BART、MCMC的DLNM分布滞后非线性模型分析母婴PM2.5暴露与出生体重数据及GAM模型对比、关键窗口识别

全文链接&#xff1a;https://tecdat.cn/?p38667 摘要&#xff1a;在母婴暴露于空气污染对儿童健康影响的研究中&#xff0c;常需对孕期暴露情况与健康结果进行回归分析。分布滞后非线性模型&#xff08;DLNM&#xff09;是一种常用于估计暴露 - 时间 - 响应函数的统计方法&am…

e3 1220lv3 cpu-z分数

e3 1220lv3 双核四线程&#xff0c;1.1G频率&#xff0c;最低可在800MHZ运行&#xff0c;TDP 13W。 使用PE启动后测试cpu-z分数。 现在e3 1220lv3的价格落到69元。

Debian安装配置RocketMQ

安装配置 本次安装在/tools/rocket目录下 下载 wget https://dist.apache.org/repos/dist/release/rocketmq/5.3.1/rocketmq-all-5.3.1-bin-release.zip 解压缩 unzip rocketmq-all-5.3.1-bin-release.zip 如果出现以下报错 -bash: unzip: command not found可安装unzip工具后执…

cocos 运行时,实时查看、修改节点树

简介 cocos论坛提供的一款辅助查看、修改cocos运行时的节点树工具&#xff0c;同时也可以实时修改运行的节点树并进行修改。在此感谢大佬提供这么实用的工具。 参考链接&#xff1a;【运行时显示节点树插件】ccc-devtools悄悄更新 - Creator 2.x - Cocos中文社区 仓库链接&a…

UE(虚幻)学习(四) 第一个C++类来控制小球移动来理解蓝图和脚本如何工作

UE5视频看了不少&#xff0c;但基本都是蓝图如何搞&#xff0c;或者改一下属性&#xff0c;理解UE系统现有组件使用的。一直对C脚本和蓝图之间的关系不是很理解&#xff0c;看到一个视频讲的很好&#xff0c;我也做笔记记录一下。 我的环境是UE5.3.2. 创建UE空项目 我们创建…

记一次内存泄漏分析(待写稿)

背景 线上Flink频繁重启&#xff0c;先后排查了很多情况&#xff0c;目前在内存阶段排查&#xff0c;首先说说学到的知识 内存泄漏分析 JVM常用命令 JConsole JVisualvm 快照的这里是最有用的&#xff0c;它和jmap不同&#xff0c;jmap查找的是占用字节最多的类&#xff…

【蓝桥杯——物联网设计与开发】拓展模块5 - 光敏/热释电模块

目录 一、光敏/热释电模块 &#xff08;1&#xff09;资源介绍 &#x1f505;原理图 &#x1f505;AS312 &#x1f319;简介 &#x1f319;特性 &#x1f505;LDR &#xff08;2&#xff09;STM32CubeMX 软件配置 &#xff08;3&#xff09;代码编写 &#xff08;4&#x…

C语言从入门到放弃教程

C语言从入门到放弃 1. 介绍1.1 特点1.2 历史与发展1.3 应用领域 2. 安装2.1 编译器安装2.2 编辑器安装 3. 第一个程序1. 包含头文件2. 主函数定义3. 打印语句4. 返回值 4. 基础语法4.1 注释4.1.1 单行注释4.1.2 多行注释 4.2 关键字4.2.1 C语言标准4.2.2 C89/C90关键字&#xf…

第三百四十六节 JavaFX教程 - JavaFX绑定

JavaFX教程 - JavaFX绑定 JavaFX绑定同步两个值&#xff1a;当因变量更改时&#xff0c;其他变量更改。 要将属性绑定到另一个属性&#xff0c;请调用bind()方法&#xff0c;该方法在一个方向绑定值。例如&#xff0c;当属性A绑定到属性B时&#xff0c;属性B的更改将更新属性A…

慧集通客户案例:致远OA与熵基考勤机集成方案

本原型公司是一家专注大健康产业的综合性高新科技形实体企业&#xff0c;按照单位的战略业务布局&#xff0c;围绕“做强做优、世界一流”的目标&#xff0c;加快内外部资源整合、加强业务协同、优化资源配置&#xff0c;有序推进大健康及相关产业的有机融合&#xff0c;加快构…

SCSA: Exploring the Synergistic Effects Between Spatial and Channel Attention

摘要 https://arxiv.org/pdf/2407.05128 通道注意力和空间注意力分别为各种下游视觉任务在提取特征依赖性和空间结构关系方面带来了显著改进。通道注意力和空间注意力的结合使用被广泛认为有利于进一步提升性能&#xff1b;然而&#xff0c;通道注意力和空间注意力之间的协同作…

UE5在蓝图中使用VarestX插件访问API

在Fab中安装好VarestX免费插件 这个插件可以用来远程请求http和api等&#xff0c;返回json等格式内容 插件网址 https://www.fab.com/zh-cn/listings/d283e40c-4ee5-4e73-8110-cc7253cbeaab 虚幻里开启插件 然后网上随便搜个免费api测试一下&#xff0c;这里我找了个微博热搜…

碰一碰发视频矩阵系统源码搭建,支持OEM

一、引言 随着短视频的火爆发展&#xff0c;碰一碰发视频的矩阵系统逐渐受到关注。这种系统能够实现用户通过碰一碰设备&#xff08;如 NFC 标签&#xff09;快速触发视频的发布&#xff0c;在营销推广、互动体验等领域有着广泛的应用前景。本文将详细介绍碰一碰发视频矩阵系统…