时间:2022-12-12 20:19:01
2019年,华为的HarmonyOS操作系统问世,历经4年的百炼,面向智能家居、智能办公、智能移动、运动健康、视频娱乐五大场景,自研码量从492万行到2396万行如果说HarmonyOS的自研码量和API增长数据码量衡量的是HarmonyOS自身的研发实力,那么开发工具就意味着对开发者的贡献。 在日前召开的HDC华为开发者大会2022上,HarmonyOS的多项举措让我们看到了华为“顶天立地、齐根扎下”的精神。 通过构建自我研发工具和“根技术”能力,描绘了鸿蒙世界的蓝图。 开发者的四大痛点是从HDC现场共享的数据中发现,2019-2022年间,HarmonyOS累计收集了10万多条开发者问题反馈。 这个数字表明了开发者对HarmonyOS的期待和改善。 我扔桃子,把它报告给李。 HarmonyOS也很高兴用巨大的性能回报开发者的热情。 首先,HarmonyOS对这些千头万绪的问题进行了分析分类,最终归纳为效率、性能、成本、安全四个方面。 效率方面:应该端到端开发的代码能否进步和简化……端到端调试是否更方便……性能方面: JS/TS容易受到硬件资源的限制。进程持续提升,会引起应卡顿多设备应用开发成本……安全方面: JS/TS源代码容易反编译,安全度低……问题就在这里,HarmonyOS操作系统怎么解决? 理念坚定,harmony操作系统开发工具包由开发者harmony操作系统的答案由理念引领,支撑稳固。 HarmonyOS生态理念只有24个字,“二次开发、多配置”、“不可分割、流转”、“统态、原智能”,但蕴藏着巨大的内涵。 在万物互联时代,设备的终端数达到百亿,每个终端是一个节点,但开发者不需要为每个终端分别开发APP和服务。 “二次开发、大量部署”意味着通过一系列的工程、大量部署,具有相同的特性、大量操作、一系列的接口、大量匹配,最大限度地帮助开发人员提高效率和获得利润。 在当今的大规模APP应用中,代码量往往高达数千万行。 开发了所有需要修改的地方之后再去测试和陈列,这是考虑到周期的长短。 因此,小步快跑、渐进迭代成为开发者的首选。 在鸿蒙看来,在开发状态下,“可分离”是指APP应用按照优先级划分为HarmonyOS原子化服务,每个服务独立开发和陈列。 “可协作”将HarmonyOS原子化服务按需组合为harmony OS APP,允许每个原子化服务共享生命周期管理,从而提高开发效率。 同时,在运营状态下,可以实现终端之间的转移、“自由流动”。 例如,手机收到的电话在上车后无缝流向车上,行驶中手机播放的音乐无缝流向智能手表。 这才是真正APP的自由流动。 HarmonyOS统一了华为的硬件设备基础,同时兼容OpenHarmony生态,实现了统一建设一个大鸿蒙生态。 不仅如此,开发者还可以选择开发本机开发框架或第三方框架,与第三方生态共同繁荣。 同时,由于华为在智能方面的沉积,在芯片层,HarmonyOS有助于提高APP融合性能和降低功耗; 在应用能力开放层,HarmonyOS以SDK方式开放了自然语言交互、计算视觉、场景识别等能力,开箱即用; 服务能力开放层帮助开发人员准确地访问用户,实现业务闭环。 这一切,我们看到的是“统一状态,原来的智能”。
在这三个理念的引领下,HarmonyOS对设计、开发、测试和分发四个APP开发生命周期进行了彻底的改进和改进,包括设计工具、编程语言、编程框架、编译器华为终端BG软件部总裁龚体发布鸿蒙开发工具包HarmonyOS Design :为harmony OS APP开发提供一致的体验设计规范和高效的设计工具; 设计资源免费开放,支持开发者快速调用( ArkTS )与JS/TS语言生态兼容,声明式UI语法扩展,轻量级并发机制,简洁高效,进一步减少了跨端APP开发代码量。 新的声明式开发语言ArkCompiler :提高30%的开发效率。多种源代码保护技术ArkUI :呈现机制,用于优化编译执行机制,缩短动态语言APP应用的启动时间,确保动态语言源代码的安全创新Stage开发模式,避免后台进程无序抢占系统资源的逻辑与UI分离技术,提高流开发效率; 开发( DevEco Studio (,测试)、应用货架)工具)集声明式开发体系全面升级,实现高效开发、快速测试、一键陈列分发。 其中,开发者眼前最亮的是“宣言式”这三个词。 是的,这是那个开发者梦寐以求的开发模式。 声明式开发:作为硬件操作系统技术路线转换基础的硬件操作系统将从“命令式开发”全面转变为“声明式开发”,这一点出乎意料。 关于“命令式”“宣言式”,开发者们不知道。 “命令式”,顾名思义,程序按照“命令”执行。 没有自己的思想,没有智能,只有遵循开发的规范,才会被动地执行。 执行的好坏、效率不高,与开发者自身的技术能力关联度很大,如何编写让机器工作( how to do )的代码,也就是说基本上取决于开发者的代码“水平”。 目前,大多数程序开发都是走这条路的。 另一方面,“宣言式”大不相同。 作为对开发模式的一次变革,——比GitHub的Cloplite辅助工具从函数注释生成代码的方式更进一步,只要“声明”想要什么样的结果,程序就会调用相关的API,自主地执行“宣言式”使程序具有一定的智能,可以看出开发对降低门槛、提高效率是有效的。 从声明式UI范式中可以看出,“声明式”开发更接近人类语言,可读性更强,具有易学的习性,代码简洁可重用,代码得到了高效的测试。 比如,炒一道菜,“命令式”就要一步一步指挥洗菜、切菜、上油、下锅、上料、炒菜、装盘; “声明式”意味着如果你想炒菜,程序会自动调用相关的API,寻找并执行该菜的最佳技术。 随着AI驱动的自动化编程技术的发展,“宣言式”逐渐由理想变为现实,并成为一种趋势。 看到这样的趋势,结合自身的积累,HarmonyOS被“声明式”开发,并被正式淘汰。 要进行“宣言式”开发,必须扎根于编程语言。 在最重要的编程语言迁移到“声明式”后,要相应地开发全生命周期的工具,可以自然地同步迁移,通过遵循相同的语法规则进行协作。 此次发布的声明性开发语言ArkTS是HarmonyOS的主力APP开发语言,基于TypeScript语言体系扩展了声明性UI语法和轻量级并发机制,增加了一些语法糖的功能,并提供了跨端接口目前,基于ArkTS语言的API已达10000个,基本能够满足当前APP应用开发场景的使用需求。 事实上,ArkTS语言不是全新的语言,而是TypeScript语言的强化语言,因此与JS和TS语言的生态兼容。
总体而言,ArkTS主要加强了这些方面的能力。 实现了简洁自然的记述机制。 ArkTS对一些定制功能进行了增强,包括可以定制组件,从而实现了组件化机制。 定制组件可以被另一个定制组件引用,以形成新的更高级组合组件。 显然,这样可以将业务APP应用程序中频繁使用的复杂组件直接定义为单个组件并重用,从而提高开发效率。 响应多维状态管理:通过定义状态,实现组件级、页面级甚至全局的状态触发。 这是因为ArkTS提供了响应型UI (声明型UI本质上也是响应型UI ),响应型UI的界面更新是基于状态进行的,所以在APP定位编程时便于根据需要重新触发。 该模型有助于状态管理和定制。 动态合并—允许在运行时动态创建和合并内容,并在其他运行时直接引用。 这里分享的数字是,与传统的HTML CSS JS类Web范式相比,同一任务的ArkTS代码量减少了50%以上。 Stage :除了声明式之外,新的标准化流程管理开发模式还吸引了我们的——Stage开发模式。 可以说是ArkUI的一大创新。 ArkUI的初衷是实现“一次开发、多部署”,提高开发效率和设备性能。 具体的实现方法有三种。 一种是设备之间的接口开发能力,这是鸿蒙一直在构建的能力,不再赘述。 二是升级了整体渲染框架。 传统的渲染是通过三棵树完成的,经过反复试验,鸿蒙实现并完成了一棵树,同时将多节点组合模型变成了单节点属性组合模型。 这些体系结构的调整对于APP应用程序开发人员来说是不可见和透明的。 执行此操作后,ArkUI将接口加载性能提高——渲染速度20%,渲染内存降低30%,渲染命令降低20%。 第三个是名为Stage的“新生儿”。 之所以推出Stage机型,是因为在前几代移动操作系统中,很多设备的后台管理都很混乱。 Stage模型对进程数配置、后台服务定义、后台服务提升等提供了系统统一的管理,可以更好地组织APP事务。 目前,Stage模型支持两种模式。 一个是JS语言层的实体体系UIAbility,另一个是鸿蒙提供的一系列系统系统扩展UIAbility。 如果APP应用程序希望调用系统提供同样的服务,则不是自己写服务,而是通过自己继承并派生基于扩展类的专有类来完成相关服务。 这样管理Stage模型可以大大减少后台的驻留程序,使系统资源更加有序。 同时,Stage模型实现了逻辑与UI的解耦。 使用Stage模型意味着逻辑段代码和UI段代码可以在不同的物理设备上运行,无疑增强了鸿蒙程序的流量能力。 多设备APP模型集成在一起,Stage中的嵌入式框架提供每秒自动恢复,进一步增强了Stage模型的流程管理优势。 与传统的编程开发模式相比,Stage模式实现了碾压,预计今后将越来越成为鸿蒙的主流模式。 鸿蒙开发工具包需要深入挖掘的地方很多,篇幅有限,此次对鸿蒙开发工具包的初步观察就到此为止。 在鸿蒙开发工具包概述的最后,我想说制作开发工具不容易,制作覆盖开发全生命周期的全链接开发工具更不容易。 而且,放眼世界,能够同时制作操作系统和全链接开发工具的数量更是屈指可数。 鸿蒙OS开发工具双轮驱动的鸿蒙生态未来值得期待。