HarmonyOS NEXT第一课——HarmonyOS介绍

一、什么是HarmonyOS

万物互联时代应用开发的机遇、挑战和趋势

随着万物互联时代的开启,应用的设备底座将从几十亿手机扩展到数百亿IoT设备。全新的全场景设备体验,正深入改变消费者的使用习惯。 同时应用开发者也面临设备底座从手机单设备到全场景多设备的转变,全场景多设备的全新底座,为消费者带来万物互联时代更为高效、便捷的体验。

新的场景同时也带来了新的挑战。开发者不仅需要支持更加多样化的设备,还需要支持跨设备的协作。不同设备类型意味着不同的传感器能力、硬件能力、屏幕尺寸、操作系统和开发语言,还意味着差异化的交互方式。同时跨设备协作也让开发者面临分布式开发带来的各种复杂性,例如跨设备的网络通信、数据同步等。若采取传统开发模式,适配和管理工作量将非常巨大。

当前移动应用开发中遇到的主要挑战包括:

  • 针对不同设备上的不同操作系统,重复开发,维护多套版本。
  • 多种语言栈,对人员技能要求高。
  • 多种开发框架,不同的编程范式。
  • 命令式编程,需关注细节,变更频繁,维护成本高。

图1 更多的智能设备

与此同时,AI时代全面来临。随着人们对交互和信息获取的智能化要求越来越高,移动设备的计算能力越来越强,在设备侧就能提供AI的相关能力,例如自然语言交互、环境智能感知、图像识别等。如何快速地使用这些AI能力,使自己的应用更加智能化,进而更好的服务消费者,也是开发者面临的全新挑战。

移动终端上的应用生态发展到今天也面临着变革。传统厚重的App ,整体体验好,功能齐全,但开发成本高、周期长,且存在搜索,安装,升级,卸载等一系列需要用户主动关注的显性操作,这些显性操作给用户带来了实质性的使用成本。轻量化、可快速达成消费者意图、可独立执行、完成单一功能的程序实体正成为新的趋势。

为了更好的抓住机遇,应对万物互联所带来的一系列挑战,新的应用生态应该具备如下特征:

  • 单一设备延伸到多设备:应用一次开发就能在多个设备上运行,软件实体能够从单一设备转移到其他设备上,且多个设备间能够协同运行,给消费者提供全新的分布式体验。
  • 厚重应用模式到轻量化服务模式:提供轻量化的服务,最小化资源消耗,一步直达,快速完成消费者特定场景的任务。
  • 集中化分发到AI加持下的智慧分发:为消费者提供智慧场景服务,实现“服务找人”。
  • 纯软件到软硬芯协同的AI能力:提供软硬芯协同优化的AI能力,全面满足应用高性能诉求。

图2 HarmonyOS

HarmonyOS是新一代的智能终端操作系统,为不同设备的智能化、互联与协同提供了统一的语言,为用户带来简捷,流畅,连续,安全可靠的全场景交互体验。

HarmonyOS结合移动生态发展的趋势,提出了三大技术理念:一次开发,多端部署;可分可合,自由流转;统一生态,原生智能。核心技术理念详细内容可参考《鸿蒙生态应用开发白皮书》,此白皮书全面阐释了HarmonyOS生态下应用开发核心理念、关键能力以及创新体验,旨在帮助开发者快速、准确、全面的了解HarmonyOS开发套件给开发者提供的能力全景和未来的愿景。

另外,《鸿蒙生态应用安全技术白皮书》全面阐述了HarmonyOS生态下应用安全核心理念;通过应用开发、应用发布、应用安装运行三个阶段,构建关键安全能力,从始至终贯彻应用安全核心理念,帮助开发者快速理解HarmonyOS生态应用安全设计,提升应用开发安全质量。

二、HarmonyOS核心技术理念

HarmonyOS应用:使用HarmonyOS SDK开发的应用程序,能够在HarmonyOS终端设备(如:手机、平板等)上运行,其有两种形态:

  • APP:传统方式的需要安装的APP
  • 元服务:轻量级,具备免安装,随处可及,服务直达,自由流转等关键特征的元服务

HarmonyoS应用关键概念:元服务和App的关系

  • App和元服务是HarmonyOS生态的“一体两面”,是面向用户的两种形态。
  • App和元服务均可选择服务卡片作为入口,应用图标作为必选入口。

  • App具有手动下载安装、包大小无限制、应用内或应用市场更新、全量功能等特征,可使用全量API
  • 元服务具有免安装、包大小有限制、即用即走、轻量化等特征,只能使用“元服务API集”

三大技术理念:

一次开发 多端部署、可分可合 自由流转、统一生态 原生智能

1.一次开发 多端部署

一个工程一次开发上架,多端按需部署,目的是为了支撑开发者高效的开发多种终端设备上的应用,为了实现这一目的HarmonyOS提供了几个核心能力,包括多端开发环境、多端开发能力以及多端分发机制

2.可分可合 自由流转

可分可合:开发态代码共享,应用和元服务生命周期完全独立

元服务是支撑可分可合、自由流转的轻量级化程序实体,帮助开发者的服务更快触达用户,可分可合是指在开发态,开发者通过业务解耦,把不同的业务拆分成多个模块,在部署态,开发者可以将一个或多个模块自由组合,打包成多个App Pack,不同的App Pack的包名是不一样的,每个App Pack都需要单独上架,在运行态,应用和元服务的生命周期完全独立

HarmonyoS操作系统提供了自由流转的能力,使得开发者可以方便地开发出跨越多个设备
的应用,用户也能够方便地使用这些功能。

自由流转可分为跨端迁移和多端协调两种情况,分别是时间上的串行交互和时间上的并行交互

3.统一生态 原生智能

Harmonyos支持业界主流跨平台开发框架,通过多层次的开放能力提供统一接入标准,实
现三方框架快速接入。

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

MachineLearning Kit提供了场景化能力,包括通用卡证识别、实时语音识别等;提供AI控件能力,使系统控件融合文字识别等AI能力,CoreAlAP提供了图像语义、语言语音解析、OCR文字识别等能力,Core DeepLearning APl提供了高性能低功耗的端侧推理和端侧学习环境,意图框架提供了Harmonyos系统级的意图标准体系,通过多维系统感知、 大模型等能力,构建全局意图范式实现对用户显性与潜在意图的理解并及时、 准确地将用户需求传递给生态伙伴匹配合适宜的服务,为用户提供多模态、 场景化进阶体验

三、高效开发与测试

1.开发语言

ArkTS是鸿蒙应用的开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,通过规范强化静态检查和分析,提升代码健壮性,让你轻松上手。

2.ArkUI框架

声明式UI前端,提供了UI开发范式的基础语言规范,并提供内置的UI组件、布局和动画,提供了多种状态管理机制,为应用开发者提供一系列接口支持;

语言运行时,选用方舟语言运行时,提供了针对UI范式语法的解析能力,跨语言调用支持的能力和TS语言高性能运行环境;

声明式UI后端引擎,提供了兼容不同开发范式的UI渲染管线,提供多种基础组件、布局计算、动效、交互事件和绘制能力;

渲染引擎提供了高效的绘制能力,将渲染管线收集的渲染指令绘制到屏幕的能力;

平台适配层,提供了对系统平台的抽象接口,具备接入不同系统的能力,如系统渲染管线、生命周期调度等

3.集成开发环境

HUAWEI DevEco Studio是面向HarmonyOS生态的集成开发环境,提供了一站式的HarmonyOS生态应用、元服务开发能力,主要包括工程管理、代码编辑、界面预览、编译构建、代码调试、性能调优、设备模拟、命令行工具和端云一体化开发等功能

4.开发和测试工具

测试套件包括测试标准和测试工具两部分

测试标准覆盖HarmonyOS生态应用性能、功耗、稳定性、兼容性、UX、安全、分布式、游戏等测试规范,帮助开发者解决测什么的问题,测试工具平台提供了HarmonyOS生态应用开发、调试、单元测试、集成测试、上架测试等各开发阶段所需的测试工具集,支持多种设备,帮助开发者全面高效测试

四、上架与分发

HUAWEl AppGallery Connect

HUAWEl AppGallery Connect为开发者提供全球化、全场景、一站式应用/元服务分发能力,并为开发者提供质量、安全、工程管理等领域的能力,大幅降低应用开发与运维难度,提升版本质量帮助开发者获得用户并实现收入的规模增长,快速上架即HUAWEl AppGallery Connect,作为开发者统一提交HarmonyOS生态应用与元服务的入口,集成证书管理、项目管理、版本管理等功能,支持HarmonyOS生态应用、元服务的快速上架与分发,上架审核是指为了给用户提供更安全且出色的体验,HUAWEl AppGallery Connect对开发者提交的HarmonyOS生态应用、元服务进行审核与测试,应用/元服务分发是指HUAWEl AppGallery Connect提供了灵活的分发能力,支持按阶段、维度、场景等多种形式,高效、精确的分发到用户设备上,HarmonyOS作为万物互联时代,泛终端的载体,面向跨设备多终端环境,实现服务随身的跨设备无缝体验,元服务于AI算法深度配合,实现多入口、场景化分发

五、HarmonyOS赋能套件

一站式获取文档和赋能资源

赋能套件旨在为开发者提供全方位的支持,帮助开发者更加轻松地进行HarmonyOS应用开发。

开发者可以通过开发者联盟官网一站式获取HarmonyOS应用开发文档。

赋能套件全景

打造业界一流的开发者赋能产品,助力开发者开发卓越应用,按照学习和开发旅程将赋能套件分为四个部分:感知、学习与评估、开发上架、支持

HarmonyOS开发知识地图,改图完整涵盖了开发者从学习到投入项目实战开发以及应用最终发布上线的全旅程知识导航,

在感知阶段,开发者可以通过白皮书了解认识HarmonyOS应用开发的核心理念、关键能力和创新体验

在学习与评估阶段,为了帮助开发者能快速上手HarmonyOS应用开发,我们提供了一个快速入门教程,通过手把手的Codelabs教学案例和视频课程,带领开发者完成一个HarmonyOS应用的开发,同时,我们为开发者提供了丰富的视频课程以及一系列配套的Codelabs动手案例,帮助开发者真正掌握HarmonyOS应用开发,还可以结合对应的HarmonyOS应用开发者认证来评估你当前的开发水平;

在开发和上架阶段,提供了配套的开发者指南、API参考、最佳实践、技术文章以及一系列对应的Sample来帮助开发者开发出属于自己的HarmonyOS应用,还特别准备了一个符合HarmonyOS应用架构设计和最佳实践的中大型应用——鸿蒙世界(APP)该份代码已开源,FAQ常见问题解答和开发者论坛则全程支持,为开发者进行答疑解惑。

赋能套件旨在赋能应用开发者高质、高效助力开发者开发出更优用户体验的应用

HarmonyOS开发知识地图

知识地图

基于开发者任务旅程的知识地图,聚合官方套件,帮助开发者一站式便捷获取信息

赋能套件全景——白皮书

《鸿蒙生态白皮书》——《鸿蒙生态应用开发白皮书》和《鸿蒙生态应用安全技术白皮书》全面阐释了鸿蒙生态下应用开发核心理念、关键能力以及创新体验,旨在帮助开发者快速、准确、全面的了解HarmonyOS开发套件给开发者提供的能力全景和未来的愿景。

快速入门教程

通过手把手的教学实践案例,从零基础开始,带你快速开发一个简单的HarmonyOS应用,快速扫清继续学习的障碍,产生开发HarmonyOS应用的兴趣。支撑有经验的开发者,快速投入项目实战开发。

赋能套件全景——视频课程

在视频课程中,开发者可以通过代码讲解的方式深入了解HarmonyOS的技术特性和能力,即学即练,从而更加深入地理解和掌握技术。

基础课程:

中级课程:

高级课程:

赋能套件全景——CodeLabs

CodeLabs是一种全新发布的场景化案例,它们的数量丰富,分层分级,并且结合了最佳实践,为开发者提供了丰富的学习资源和实践经验。

赋能套件全景——开发指南

开发指南的内容包括相关概念的定义、原理机制的解释、详细的开发步骤以及调试验证的指导等,帮助开发者全面掌握HarmonyOS UI的能力和开发流程。

赋能套件全景——API参考

API参考为开发者提供了清晰的功能描述、详细的参数说明、完善的权限信息以及规范的示例代码,能够帮助开发者更快地理解和使用HarmonyOS的API。

赋能套件全景——最佳实践

最佳实践涵盖了应用架构、性能优化、多端开发实例、流水线搭建等方面,旨在帮助开发者构建高体验的应用。

HarmonyOS还提供了一个优秀的实践案例“HMOS世界”APP,展示了HarmonyOS 2D特性在实际开发中的运用。

赋能套件全景——Sample

Sample对于开发者具有实际使用价值,帮助开发者理解技术原理,开发者可重用代码片段,快速搭建出原型验证,有助于节省开发时间。

赋能套件全景——FAQ

在HarmonyOS应用开发的全程中,我们还提供了FAQ作为支持,提高开发效率和开发质量。我们为开发者获取FAQ提供了以下途径:

  • 智能客服:全量FAQ内容的载体,负责主要的内容输出。开发者输入FAQ问题内容,即可获得对应问题的参考答案。

  • FAQ:开发者可以浏览FAQ的各个分类和问题,找到自己需要的答案。

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

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

相关文章

25.4.30数据结构|并查集 路径压缩

书接上回 上一节:数据结构|并查集 前言 (一)理论理解: 1、在QuickUnion快速合并的过程中,每次都要找根ID,而路径压缩让找根ID变得更加迅速直接。 2、路径压缩 针对的是findRootIndex()【查找根ID】进行的压…

C++-Lambda表达式

目录 1.什么是 Lambda? 2.例子:打印每个元素(和 for_each 一起用) 3.捕获外部变量(Capture) 3.1. 捕获值(拷贝):[] 3.2. 捕获引用:[&] 3.3. 指定捕…

每日一题洛谷P8635 [蓝桥杯 2016 省 AB] 四平方和c++

P8635 [蓝桥杯 2016 省 AB] 四平方和 - 洛谷 (luogu.com.cn) 直接暴力枚举,不做任何优化的话最后会TLE一个,稍微优化一下就过了(数据给的还是太良心了) 优化:每层循环用if判断一下,如果大于n就直接跳 当然…

罗技K580蓝牙键盘连接mac pro

罗技K580蓝牙键盘,满足了我们的使用需求。最棒的是,它能够同时连接两个设备,通过按F11和F12键进行切换,简直不要太方便! 连接电脑 💻 USB连接 1、打开键盘:双手按住凹槽两边向前推&#xff0…

C语言与指针3——基本数据类型

误区补充 char 的 表示范围0-127 signed char 127 unsigned char 0-255enum不常用,但是常见,这里记录一下。 enum Day {Monday 1,//范围是IntTuesday 2,Wednesday 3 }; enum Day d Monday; switch (d) {case Monday:{printf("%d",Monday);…

如何理解 MCP 和 A2A 的区别?|AI系统架构科普

你有没有发现,现在越来越多AI项目的架构图里,都开始出现一些看不懂的新缩写。 MCP(Multi-component Pipeline),还有另一个也经常出现在大模型系统搭建中的词,叫 A2A(Agent-to-Agent)。 这俩东西看起来都跟智能体(Agent)有关,但到底有啥区别?谁更强?谁更适合你?…

C语言中 typedef 关键字

在C语言中,typedef 关键字用于为现有数据类型定义新的别名(类型重命名),其核心目的是‌提高代码可读性‌和‌简化复杂类型的声明‌。以下是其用法详解及典型场景: 1.基本语法‌ typedef original_type new_type_name…

Learning vtkjs之TubeFilter

过滤器 沿着线生成管道 介绍 vtkTubeFilter - 一个在每条输入线周围生成管的过滤器 vtkTubeFilter是一个在每条输入线周围生成管的过滤器。管由三角形条带组成,并随着线法线的旋转而旋转。如果没有法线存在,它们会自动计算。管的半径可以根据标量或向…

python常用科学计算库及使用示例

​一、NumPy - 数值计算基础库​​ ​​安装​​ pip install numpy ​​核心功能示例​​ 1. 数组创建与运算 import numpy as np# 创建数组 arr np.array([1, 2, 3, 4]) matrix np.array([[1, 2], [3, 4]])# 数学运算 print(arr 1) # [2 3 4 5] print(matrix …

中科院黄飞敏等人证明希尔伯特第六问题使用的或然判断(估计)-没有使用演绎推理的必然判断

国家自然科学基金委在2013年介绍黄飞敏的工作,居然是错误的:黄飞敏等人73页的论文,全篇都是用或然判断的“估计”代替必然判断的演绎证明,将没有实验的推演当成事实。 首页 >>年度报告 >>2013年度报告 >>第二部…

【安装指南】Chat2DB-集成了AI功能的数据库管理工具

一、Chat2DB 的介绍 Chat2DB 是一款开源的、AI 驱动的数据库工具和 SQL 客户端,提供现代化的图形界面,支持 MySQL、Oracle、PostgreSQL、DB2、SQL Server、SQLite、H2、ClickHouse、BigQuery 等多种数据库。它旨在简化数据库管理、SQL 查询编写、报表生…

vite项目tailwindcss4的使用

1、安装taillandcss 前几天接手了一个项目,看到别人用tailwindcss节省了很多css代码的编写,所以自己也想在公司项目中接入tailwindcss。 官网教程如下: Installing Tailwind CSS with Vite - Tailwind CSS 然而,我在vite中按…

第 13 届蓝桥杯 C++ 青少组省赛中 / 高级组 2022 年真题

一、选择题 第 1 题 题目:已知char a; float b; double c;,执行语句c a b c;后变量c的类型是( )。 A. char B. float C. double D. int 正确答案:C 答案解析: 在 C 中,表达式运算会进行类型…

解决GoLand无法Debug的问题

文章目录 解决GoLand无法Debug的问题问题描述解决方案方法一:安装并替换Delve调试工具方法二:通过GoLand自动安装方法三:配置自定义Delve路径 验证解决方案常见问题排查总结 解决GoLand无法Debug的问题 问题描述 在使用GoLand进行Go语言开发…

5.2刷题

P1064 [NOIP 2006 提高组] 金明的预算方案 背包&#xff0b;附属品DP #include<bits/stdc.h> using namespace std; #define int long long int n, m, v, p, q; struct node{int id, v, s, f; }a[100]; int b[32010], dp[32010]; bool cmp(node a, node b){if(a.id b.…

轻舟系列FPGA加速卡:大模型分布式训练中的高效协同者

在超大规模模型&#xff08;如千亿级参数&#xff09;的分布式训练中&#xff0c;计算、存储与通信的协同优化是突破性能瓶颈的关键。绿算技术公司的轻舟系列FPGA加速卡凭借其低延迟、高能效和可编程特性&#xff0c;能够成为分布式训练架构中的异构加速节点。其在训练集群中的…

序列数据(Sequential Data)​​:按顺序排列的动态信息载体

核心定义​​ 序列数据是​​按特定顺序排列​​的数据集合&#xff0c;其中元素的​​位置或时间顺序​​蕴含关键信息。例如&#xff1a; ​​时间序列​​&#xff1a;股票价格、气温变化&#xff08;按时间戳排列&#xff09;。​​文本​​&#xff1a;句子中的词语序列…

【单片机数码管实现第一位开始走0~9,1s后第二位再开始亮】2022-5-2

缘由怎么让单片机数码管实现第一位开始走0~9,1s后第二位再开始亮? - 24小时必答区 #include "REG52.h" void sm7447(unsigned char mz, unsigned char w) {unsigned char Xd0;P2255;P2mz;P3w;while(Xd); } void main() {unsigned char jz0,zhi128;unsigned int Ys4…

InnoDB索引的原理

在鹅厂后端开发一面&#xff0c;我遇到了如题这样一个比较宽泛的问题&#xff0c;当时可能只是背了相关概念&#xff0c;对于索引的了解不是很深刻。 最近&#xff0c;我花了很大的功夫去深入了解MySQL的索引。 下面是我的一些思考&#xff1a; 索引&#xff0c;对于InnoDB来说…

FormCalc 支持的编程语言和软件

FormCalc 是一种专为 PDF 表单计算设计的脚本语言&#xff0c;主要应用于 Adobe 生态及 SAP 相关工具。以下是支持 FormCalc 的主要软件和平台&#xff1a; 1. Adobe LiveCycle Designer&#xff08;最佳支持&#xff09; 原生支持&#xff1a;FormCalc 是 LiveCycle Designe…