2019 年,华为 HarmonyOS 横空出生避世,历经4年千锤百炼,面向智能家居、伶俐办公、伶俐出行、运动安康、影音娱乐 5 大场景,自研代码量从 492 万行增长到 2396 万行,API 从 3493 个增长到 16000 个,几乎同步实现了近 4 倍的增长。
HarmonyOS 自研代码量和 API 增长数据
假设说代码量权衡的是 HarmonyOS 本身研发实力,开发东西则意味着对开发者的赋能功力。
在日前举行的 HDC 华为开发者大会 2022 上,HarmonyOS 的多项行动,让我们看到了华为的那股子“向上捅破天,向下扎到根”的精神,通过打造自研开发东西和“根手艺”才能,描画出了鸿蒙世界的蓝图。
开发者四大痛点
从 HDC 现场分享的数据里,能够看到,2019-2022 那四年里,HarmonyOS 已累计搜集到 10 万余条开发者问题反应。那个数字展现出开发者对 HarmonyOS 的等待与改善。
投我以桃,报之以李。我们欣喜地看到,HarmonyOS 也以极大的表示回报开发者的热情。
起首,HarmonyOS 将那些千头万绪的问题阐发回类,最初回结为效率、性能、成本、平安四个方面。
效率方面:跨端应⽤开发代码能否进⼀步简化;跨端应⽤调试能否更⽅便……
性能方面:JS/TS 应⽤性能随便受硬件资本限造;历程⾃拉起持续存在,随便引发应⽤卡顿……
成本方面:⼤型应⽤多⼯程治理成本⾼;多设备应⽤⼯程开发成本⾼……
平安方面:JS/TS 源码随便被反编译,平安度低……
问题摆在那儿了,HarmonyOS 要若何处理呢?
理念+实干,HarmonyOS 开发套件解忧开发者
HarmonyOS 的谜底是理念牵引,实干支持。
HarmonyOS 生态理念
理念只要区区 24 个字:“⼀次开发,多端摆设”“可分可合,⾃由流转”“统⼀⽣态,原⽣智能”,却蕴躲着大内涵。
万物互联时代,设备末端数以百亿计,每个末端都是一个节点,但开发者并没有需要为每个末端零丁开发利用和办事。“⼀次开发,多端摆设”就意味着通过一套工程、多端摆设,统一特征、多端运行,一套界面、多端适配,就以意味着在更大程度地帮忙开发者提拔效率和获得回报。
而现在的大型利用,其代码量动辄上万万行。把所有要修改的处所都开发完,再往测试和上架,周期之长,可想而知。于是,小步快跑、渐进迭代成为开发者的首选项。在鸿蒙看来,在开发态,“可分”即为利用根据优先级拆分为 HarmonyOS 原子化办事,每个办事都能够独立开发和上架;“可合”让 HarmonyOS 原子化办事按需组合成为 HarmonyOS 利用,并且每个原子化办事能够共享生命周期治理,如许做对开发效率的提拔有目共睹。同时,在运营态,能够做到跨端迁徙、“自在流转”,好比手机接听的德律风在上车以后能够无缝流转到车机上,跑步时手机播放的音乐能够无缝流转到智妙手表上,那才是实正做到利用的自在流转了。
HarmonyOS 同一了华为的硬件设备底座,同时还兼容 OpenHarmony 生态,做到同一建立一个大的鸿蒙生态。不只如斯,开发者也能抉择原生的开发框架或者第三方框架开发,与第三方生态共建共荣。同时,依托华为在智能方面的积淀,在芯片层,HarmonyOS 帮忙利用提拔性能、降低功耗;在利用才能开放层,HarmonyOS 将天然语言交互、计算视觉、情景感知等才能以 SDK 的体例开放出来,开箱即用;在办事才能开放层,帮忙开发者精准触达用户,实现贸易闭环。那一切,我们看到的是“统⼀⽣态,原⽣智能”。
在那三大理念的牵引下,HarmonyOS 对设想、开发、测试、分发 4 个阶段的利用开发全生命周期,停止了彻头彻尾的改善和提拔,一口气推出了包罗设想东西、编程语言、编程框架、编译器、IDE 等“鸿蒙开发套件”七件套大礼包,诚心满满。
华为末端 BG 软件部总裁龚体发布鸿蒙开发套件
HarmonyOS Design:为 HarmonyOS 利用开发供给一致的体验设想标准及高效设想东西;设想资本免费开放,撑持开发者快速挪用;
ArkTS:全新声明式开发语言,兼容 JS/TS 语言生态、扩展了声明式 UI 语法和轻量化并发机造,简洁高效,进一步降低跨端利用开发代码量,开发效率提拔 30%;
ArkCompiler:优化编译运行机造,缩短动态类型语言利用启动时间;多种源码庇护手艺,保障动态类型语言源码平安;
ArkUI:晋级衬着机造,简化界面衬着算法;立异 Stage 开发模子,制止了后台历程无序侵犯系统资本;逻辑和 UI 别离手艺,提拔流转开发效率;
开发(DevEco Studio)、测试(DevEco Testing)及利用上架(AppGallery Connect)东西:配套声明式开发系统全面晋级,实现高效开发、快速测试、一键上架分发。
那此中,最能闪开发者面前一亮的有三个字“声明式”,对,就是阿谁开发者求之不得的开发形式。
声明式开发:HarmonyOS 手艺道路转型之基
HarmonyOS 从“号令式开发”全面转型“声明式开发”,意料之中。
关于“号令式”“声明式”,开发者们其实不陌生。
所谓“号令式”,望文生义,法式循序渐进地从命“号令”往施行,没有本身的思惟,不智能,只会遵照开发的标准,被动往施行。施行得好坏、效率高不高,与开发者自己的手艺才能联系关系度很大,要写出让机器若何往干事情(how to do)的代码,也就是说根本取决于开发者的代码“程度”。如今大部门法式开发都是走的那条路。
而“声明式”则大有差别,是对开发形式的一次变化——比 GitHub 的 Cloplite 辅助东西通过函数正文生成代码的体例更进一步,只要“声明”我想要什么样的成果(what to do),法式就挪用相关的 API,自主设想施行途径,以到达预期的成果。能够看出,“声明式”让法式具备必然的智能,开倡议来能有效降低门槛,提拔效率。
声明式 UI 范式
能够看出,“声明式”开发更接近人类语言,具备更高的可读性、易进修气,而且代码简洁可重用、编码高效好测试。
举例来说,要炒一道菜,“号令式”要一步步地批示洗菜、切菜、放油、下锅、加料、翻炒、盛盘;而“声明式”要表达的是想炒一道菜,法式便主动挪用相关的 API,觅觅那道菜的更佳工艺并施行。
跟着 AI 驱动的主动化编程手艺的开展,“声明式”从抱负成为现实,而且正在成为趋向。
恰是看到了如许的趋向,连系本身的积存,HarmonyOS 向“声明式”开发,正式开拔。
要停止“声明式”开发,根在编程语言。在最关键的编程语言转型为“声明式”后,与之配套的利用开发全生命周期的东西,天然要同步转型,遵照同样的语律例则,方能构成合力。
此次发布的声明式开发语言 ArkTS 是 HarmonyOS 的主力利用开发语言,它基于 Type 语言系统扩展了声明式 UI 语法和轻量化并发机造,增加了一些语法糖的才能,让跨端界面开发和并行化使命开发,高效简洁,使利用开发效率提拔 30%。目前,基于 ArkTS 语言的 API 已达 10000+,根本能满足当前利用开发场景的利用需求。
事实上,ArkTS 语言并不是一门全新的语言,而是做为 Type 语言的加强型语言,因而兼容 JS 语言和 TS 语言的生态。总体来说,ArkTS 次要加强了那几个方面的才能。
实现了简洁天然的描述机造:ArkTS 做了一些自定义才能的加强,好比能够自定义组件,实现了组件化机造。自定义组件,能够被此外自定义组件所引用,构成新的更高级的组合型组件,如许我们就能够把营业利用中利用频次高的复杂的几个组件,间接定义成一个组件往反复操纵,那对开发效率的提拔显而易见。
响应式多维形态治理:通过定义一个形态,实如今组件级、页面级以至全局的形态触发。那就便利了在利用编程时,按照需要再停止触发,因为 ArkTS 供给的是响应式 UI(声明式 UI 素质上也是响应式 UI),而响应式 UI 的界面刷新是按照形态来停止触发的。那种形式有利于停止形态治理和定造。
动态组合:能够在运行时停止动态创建、组合内容,而且能够间接引用到别的的运行时中。
在那里,分享一个数字:比拟传统的 HTML+CSS+JS 的类 Web 范式,同样的使命,ArkTS 代码量有超越 50% 的削减。
Stage:全新的标准化历程治理开发模子
在声明式之外,还有一点吸引到我了——Stage 开发模子,可谓是 ArkUI 中的一大立异。
ArkUI 的本意实现“一次开发,多端摆设”,提拔开发效率和设备性能。详细的实现体例有三。
一是跨设备界面开发才能,那是鸿蒙不断在持续构建的才能,不再赘述。
二是晋级了整体衬着框架。传统的衬着,由三棵树来完成,颠末频频的测验考试后,鸿蒙实现了一棵树来完成,同时把多节点组合模子酿成了单节点+属性组合模子。那些架构的调整,对利用开发者来说,是不成见、通明的。那顿操做之后,ArkUI 提拔了界面加载性能——衬着速度提拔 20%,衬着内存降低 30%,衬着指令降低 20%。
三就是 Stage 那个“重生儿”。
之所以推出 Stage 模子,是因为在上一代挪动操做系统中,大大都的设备后台治理比力紊乱。Stage 模子供给了系统对历程数量设置装备摆设、后台办事定义、后台办事拉起等的同一纳管,从而使利用可以更好地组织在一路。目前,Stage 模子撑持两种形式,一种是 JS 语言层的实体类 UIAbility,另一种是鸿蒙供给的一组系统类 Extention Ability。利用假设期看挪用系统供给类似办事的话,不再需要本身写一个 Service,而是本身继续派生出一个基于 Extention 类的自有类,通过那种体例拉起相关的办事。
Stage 模子
如许治理起来之后,后台的常驻法式可大幅削减,从使系统资本愈加有序。
同时,Stage 模子实现了将逻辑与UI解耦。意思是,利用 Stage 模子时,能够让逻辑段代码和 UI 段代码在别离的物理设备上运行,那无疑强化了鸿蒙法式流转的才能。
多设备利用模子回一、Stage 内置的框架能够实现秒级的主动恢复,则进一步强化了 Stage 模子在历程治理方面的优势。
与传统的编程开发形式比拟,Stage 模子实现了碾压,估量后续会逐步成为鸿蒙的支流形式。
鸿蒙开发套件,还有十分多值得深挖的处所,受限于篇幅,我们此次对鸿蒙开发套件的初步看察就先到那里。
鸿蒙开发套件总览
最初,我们想说的是,做开发东西不随便,做笼盖开发全生命周期的全链路开发东西更不随便。更进一步,能同时做操做系统和全链路开发东西的,放眼全球,更是屈指可数。
鸿蒙操做系统+开发东西双轮驱动的鸿蒙生态的将来,值得等待。