鸿蒙开发套件全面升级,助力鸿蒙生态蓬勃发展

news2024/11/23 11:31:31

        

目录

1. 全场景分布式系统

2. HarmonyOS的超能力:ArkTS API万箭齐发

3.解锁“鸿蒙开发套件”的新技能

(1) 智能代码编辑器

(2)Hvigor编译构建

(3)热重载:向看直播一样查看运行结果

(4)跨语言调试,打通多种语言之间的虫洞

(5)场景化性能调优工具:DevEco Insight

(6)云端一体化开发

4. 新形态UI

5. 轻量化并发

6. ArkUI全新开发模型:Stage模式

7. HMS Core集成


         2022年华为开发者大会(HDC.Together)于11月4日在东莞松山湖揭开帷幕,带来了鸿蒙生态的最新成果,展示了鸿蒙生态的全新格局。在大会主题演讲中,华为带来了多种令人震撼的技术成果,如分布式能力、原子化服务、AI、AR、地图、游戏、音视频、隐私安全、HarmonyOS座舱等。同时鸿蒙开发套件推出了升级的ArkTS、ArkUI、ArkCompiler等技术,通过这些技术的加持,让HarmonyOS App从开发、到布局,再到性能,都得到了质的飞跃。从而全面加速推进HarmonyOS应用生态。
        下面就向各位展示一下鸿蒙开发套件以及其他炫酷的技术:

1. 全场景分布式系统

        自从HarmonyOS在2020年9月份发布以来,就确认了HarmonyOS发展的总策略,要成为全场景的分布式系统。所谓全场景主要体现在无处不在。现在各种类型的电子设备已经填满了我们生活和工作的每一个角落,闹钟、手机、平板电脑、微波炉、电磁炉、热水器、耳机、电视、电脑、电动汽车、手表、智能手环、吸尘器、电冰箱、洗衣机,这些都是我们生活中常见的电子设备,如果要让它们单独运作再容易不过了,不过HarmonyOS的目的是让这些设备组成一个整体,就是组成人体的每一个器官,在需要的时候,会有合适的器官完成特定的工作,以形成一个超级终端,对,这就是HarmonyOS的最终目的。HarmonyOS会隐藏在背后完成所有的工作,包括处理特定的任务,协调各种电子设备,数据同步等,而用户并不会感知HarmonyOS的存在,真正做到无影无形,无处不在。

        HarmonyOS要想达到这个目的,拥有强大的开发套件以及灵活的特性是必备技能。而一次开发,多端部署,可分可合、自由流转,统一生态,原生智能正是HarmonyOS的最高指导原则。为了实现这些原则,HarmonyOS逐渐支持了多种技术(如ArkUI、ArkTS、ArkCompiler、原子化服务等),并提出了Stage等开发模式。下面将为大家逐一解锁这些新技能。

2. HarmonyOS的超能力:ArkTS API万箭齐发

        不管是任何类型的编程语言或是具有开发能力的平台,都需要提供大量可供用户操控的接口,也称为API。ArkTS随着几年的发展,已经提供了海量的API可供用户使用,到目前为止,HarmonyOS 3.1中的ArkTS API已经有超过10000个,能力覆盖了方方面面。例如,用于设计UI的声明式布局API、Web相关的API、多媒体相关的API、网络相关的API等,总之,ArkTS目前支持的API足够开发出非常强大的HarmonyOS App

3.解锁“鸿蒙开发套件”的新技能

        有一套好的开发工具,会让你的开发效率倍增,出错显著下降,最关键的一点可以让你心情更好,防止脱发。

        华为最新先推出的DevEco Studio 3.1堪称是目前为止最强大的HarmonyOS App开发套件。新版的DevEco Studio支持大量的新特性,以便让我们在开发HarmonyOS App时感觉更爽,例如,通过强大的智能代码编辑器可以更快速,更准确定位错误,增量编译可以让我们在编译的过程中不再闲得无聊。

(1) 智能代码编辑器

        人类进入智能代码编辑器时代是从微软的Visual Studio开始的,不过当时的编辑器相当简陋,或者说是原始。随着时代的发展,代码编辑器开始变得智能,甚至成为开发工具的标配。

        最初的智能代码编辑器只是可以列出类或对象的成员,以及参数等。不过随着API数量的大量增加,语法变得越来越复杂,代码编辑器就需要可以帮助开发人员快速编写代码,这一点从DevEco Studio代码智能补齐功能就可以看出,输入某些特定的语法结构(如循环、条件、lambda表达式等),编辑器会为我们生成这些语法结构的默认形式,即使我们忘记了具体的语法也无关紧要,只需要在默认语法形式的基础上照猫画虎即可,这项功能大大增加了开发工具的可用性。

        如果代码比较多,每次需要对全部代码进行校验,会大量消耗CPU的资源,可能还会出现卡顿的现象,DevEco Studio为了解决这个问题,提供了代码增量校验的特性,在大多数时候,只针对新增加或修改的代码进行校验,这样可以大大提升IDE的性能

(2)Hvigor编译构建

        对于一个大型的项目,编译简直就是噩梦。我曾经有一个非常大的项目,编译一次竟然要20多分钟,所以提高编译速度是开发工具必须要改进的方向之一。

        DevEco Studio利用Hvigor构建工具可以明显地提升编译HarmonyOS App工程的效率。Hvigor可以通过多种技术提升编译性能,例如,通过多线程并行编译,可以在多核、多CPU的环境下大幅度提升编译效率。还可以通过增量编译技术,只编译增加或修改的部分,这样也可以在一定程度上提升整体的编译效率。

(3)热重载:向看直播一样查看运行结果

        “写代码 -> 编译 ->运行 ->查看结果”,这是大多数开发工具的日常。不过DevEco Studio可不需要这么麻烦,“保存 -> 展示”是DevEco Studio最炫酷的特性之一。写完代码,不再需要漫长的编译和运行过程,只要将代码保存,就可以立刻看到代码运行的效果,简直酷毙了。这个特性被称为:热更新。

        不仅如此,如果当时正处于运行状态,这时修改代码,仍然会热重载,而且设置的断点并不需要重新设置。也就是说,DevEco Studio支持编辑状态和运行状态的热重载。

(4)跨语言调试,打通多种语言之间的虫洞

        在很多场景下,一个App会由多种编程语言共同实现,这就会带来一个棘手的问题:跨语言调试。通常的做法是只在调用者语言中调试,而被调用语言或者通过输出日志调试,或者通过函数向调用者返回值的方式调试。不管是哪种调试方式,都非常不方便,尤其是定位跨语言的错误,更是费劲。

        为了解决这个问题,最新版的DevEco Studio允许ArkTSC++混合开发,并且支持跨语言调试,也就是说,ArkTS中设置断点,一直可以跟踪到C++代码中,这样非常方便定位错误

(5)场景化性能调优工具:DevEco Insight

        DevEco Insight可以根据典型性能问题提炼场景化调优模板,结合实时性能监控智能推荐分析模板。还可以关联分析多维度性能数据,性能问题可以定位到具体的代码行。

(6)云端一体化开发

        DevEco Studio为了解决开发Serverless不方便的问题,支持直接在DevEco Studio中建立云函数文件,也就是端云融合,统一技术栈。当编写完云函数后,可以一键发布到服务的,以便端侧调用。

4. 新形态UI

HarmonyOS 3有2个重要理念:

(1)超级设备(ONE SUPER DEVICE,协同高效体验)

(2)灵活可定制(如通过万能卡片定制各种各样的服务)

        超级设备会带给我们非常炫酷的理念,其中的超级桌面允许在智能座舱、智慧屏中打开手机上的应用,并且所有的UI都可以自动适配。还支持在不同设备之间拖拽文本、图标篇,以及超级文件中转站,并且支持语音操控。这一切无不体现着创新形态,创新体验,创新设计。

        由于HarmonyOS需要在不同设备上运行,这些设备的屏幕尺寸千差万别,要想适应尽可能多的屏幕尺寸,华为推出了自适应UI引擎。 

        自适应UI引擎可以根据屏幕尺寸的大小,自动调整布局。例如,手机屏幕较小,所以水平方向只会显示2个图像,在平板电脑上,水平方向可能会显示4个图像。这些都是UI引擎自动调整的。而且UI引擎还可以根据不同的设备,将UI组件映射到不同的设备上(跨平台渲染和多端部署能力)。例如,手表、手机、智能电视的屏幕尺寸和组件样式有很大差异,UI引擎在渲染组件时会根据具体的设备,将组件渲染成设备特有的样式。

5. 轻量化并发

        并发一直是提升运行效率的重要手段,不过并发也会带来一些麻烦。例如,多线程共享数据,有可能会造成脏数据,虽然可以利用线程锁(线程同步技术)解决脏数据的问题,但线程锁如果使用不当,还会造成死锁,而且多线程引发的bug并不好调试。

        为了解决以上问题,HarmonyOS推出了轻量级并发技术,通过LiteActor,可以将每一个线程都放到Actor中,然后由主线程循环执行。由于LiteActor目前不支持线程锁,以及共享可写数据,所以并不会引发传统线程的各种问题。当然,在未来的HarmonyOS中,LiteActor也会通过某些手段支持共享可写数据,就让我们拭目以待吧。

6. ArkUI全新开发模型:Stage模式

        Stage模型主要是为了解决FA模型无法解决的开发场景问题,方便开发者更加方便地开发出分布式环境下的复杂应用。
​      Stage模型的设计思想如下图所示:

Stage模型的设计基于如下3个出发点:

(1)应用的能力与系统总体功能和功耗的平衡。在系统运行过程中,前台应用的资源占用会被优先保障,与此同时由于应用能力不同而产生的功耗,也需要符合系统整体功耗的要求。Stage模型通过Ability与UI分离、严格的后台管控、基于场景的服务机制及单进程模型来达成这种应用能力与整体系统功耗的平衡。

(2)原生支持组件级的迁移与协同。OpenHarmony是原生支持分布式的操作系统,应用框架需要从架构设计上使得组件更易于实现迁移和协同。Stage模型通过Ability与UI分离及UI展示与服务能力合一等模型特性,实现这一设计目标。

(3)支持多设备和多窗口形态的特点。为了支持多种设备形态和更易于实现多种不同的窗口形态,需要组件管理服务和窗口管理服务在架构层面上是解耦的,从而方便裁剪,更有利于定制不同的窗口形态。Stage模型通过重新定义了Ability生命周期定义和设计组件管理服务和窗口管理服务的单向依赖解决这一问题。

7. HMS Core集成

鸿蒙开发套件本身的能力有限,但可以通过HMS Core增强HarmonyOS App的能力。

        HMS Core包含众多服务,这些服务有的需要网络连接(如账号与应用内支付服务、AI等),有的可以本地操作(如手写服务等)。用户可以通过简单的配置和几行代码,将HMS Core的相关功能集成到HarmonyOS App中。

        经过前面的体验和分析,HarmonyOS 3从用户体验到开发体验,都得到了明显的增强。在大会上也出现了很多第三方厂商利用华为技术开发的产品,如Bilibili、润和、支付宝等。希望HarmonyOS的生态越来越强大。

-----------------------

《Python从菜鸟到高手》第2版隆重上市

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

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

相关文章

MySQL : 彻底搞懂一条SQL的执行过程

整体流程 组件介绍 连接器 处理客户端的连接,一般处理我们这个命令,判断是否满足接入server的条件 mysql ‐h host[数据库地址] ‐u root[用户] ‐p root[密码] ‐P root查询缓存 在8.0之前,如果用户开启了查询缓存的开关,那么…

vue2.6 + ts 使用vuex

目录vue2.6 ts 使用vuex安装01:直接使用 store / index.ts的数据store / index.tsmain.ts001:同步mutation操作vuex数据与获取getters001:效果002:异步action、mutation操作vuex数据002:效果02:引入其他模…

CANoe 简介

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…

Go 语言项目源码解析:定时任务库 cron

环境准备 首先我们将源码克隆(Fork)为自己的个人仓库,只需要在 GitHub 项目主页点击 Fork 按钮,然后输入项目名称点击确认即可。克隆完毕后,可以下载到本地,或者直接在科隆后的 GitHub 仓库主页上点击 Cre…

RabbitMQ

RabbitMQ 1.MQ引言 MessageQueue: 消息队列 模块之间的耦合度多高,导致一个模块宕机后,全部功能都不能用了,并且同步通讯的成本过高,用户体验差。 1.1什么是MQ MQ(Message Queue)消息队列,是基…

Android Studio App开发实战项目之广告轮播(附源码 可用于大作业)

需要图片集和源码请点赞关注收藏后评论区留言即可~~~ 电商App的首页上方,都在明显位置放了一栏广告条,并且广告条会轮播,非常吸引眼球,这种广告轮播的功能,为推广热门事物出力甚大。 轮播视频已上传至我的主页&#x…

【云原生】docker 搭建ElasticSearch7

前言 本篇演示如何基于docker环境快速搭建起es7的环境 安装es7.6 1、拉取镜像 docker pull elasticsearch:7.6.2 2、执行下面的命令进行安装 docker run -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e ES_JAVA_OPTS"-Xms512m -Xmx512m"…

Android Studio App开发实战项目之计时器(附源码 简单易懂,适合新手学习)

运行有问题或需要源码请点赞关注收藏后评论区留言~~~ 一、Handler的延迟机制 活动页面的Java代码通常是串行工作的,而且App界面很快就加载完成容不得半点延迟,不过偶尔也需要某些控件时不时的动一下,好让界面呈现动画效果更加活泼&#xff0…

shiro框架04会话管理+缓存管理+Ehcache使用

目录 一、会话管理 1.基础组件 1.1 SessionManager 1.2 SessionListener 1.3 SessionDao 1.4 会话验证 1.5 案例 二、缓存管理 1、为什么要使用缓存 2、什么是ehcache 3、ehcache特点 4、ehcache入门 5、shiro与ehcache整合 1)导入相关依赖&#xff0…

2019银川F,ccpc威海D - Sternhalma 2022

1401D - Maximum Distributed Tree 求每个边经过的次数,假设求u,v这条边的次数,边的左端是u这个集合一共有n-siz[v]个点,右端是v这个集合有siz[v]个端点,经过这条边的次数就是siz[v]*(n-siz[v]),然后再按照次数多的乘以大的质因数…

【附源码】Python计算机毕业设计汽车租赁管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Go 语言中的 Moduels 管理(Let‘s Go 三十四)

在 Go 1.11以前使用包管理一直被开发者所诟病。既然GOPATH这种包管理引起了一线开发者的一片骂声,所以,Go官方体恤一线开发者对GOPATH这种包管理的情绪,一直致力努力提供对一线开发者友好的包管理解决方法而奋斗。从最初的GOPATH到GO VENDOR&…

基于遗传算法、元胞自动机邻域和随机重启爬山混合优化算法(GA-RRHC)的柔性车间调度研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

LeetCode50天刷题计划第二季(Day 27 — 寻找旋转排序数组中的最小值(9.50- 11.20)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、题目寻找旋转排序数组中的最小值示例提示:二、思路三、代码前言 芜湖 一、题目 寻找旋转排序数组中的最小值 已知一个长度为 n 的数组&#…

web前端期末大作业——基于HTML+CSS+JavaScript实现中国茶文化(30页)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

大数据开发是做什么的?怎样入门?

其实现在有很多小伙伴看中了大数据的发展前景,但是其实不知道大数据开发具体是做什么的,又该怎么学习?学习了之后又该做什么? 下面具体给你分析下大数据开发是做什么的,又需要学习和掌握哪些技能~ 大数据开发做什么&a…

致远OA ajax.do 任意文件上传 (CNVD-2021-01627) 漏洞复现

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓01 漏洞描述02 影响范围03 验证方式04 利用方式05 修复方案01 漏洞描述 致远OA是一套办公协同管理软件。由于致远OA旧版本某些接口存在未授权访问,以及部分函数存在过滤不足,攻…

大数据实战之前戏

开发背景 因为要开发一套通话详单系统。该系统上每天产生1亿条通话话单,要保存一个月的通话话单。也就是保存30亿条通话,能够做到准实时的通话详单查询。于是采用大数据架构进行话单的保存和查询。 服务器规划 为了验证系统的可用性,我先搭…

从零学习 InfiniBand-network架构(七) ——IB协议中数据如何传输

从零学习 InfiniBand-network架构(七) —— IB协议中数据如何传输 🔈声明: 😃博主主页:王_嘻嘻的CSDN主页 🔑未经作者允许,禁止转载 🚩本专题部分内容源于《InfiniBand-n…

C++ 智能指针最佳实践源码分析

智能指针在 C11 标准中被引入真正标准库(C98 中引入的 auto_ptr 存在较多问题),但目前很多 C开发者仍习惯用原生指针,视智能指针为洪水猛兽。但很多实际场景下,智能指针却是解决问题的神器,尤其是一些涉及多…