赞
踩
鸿蒙Next 横空出世,直接剥离了AOSP,变成纯血的独立操作系统,还有一系列配套措施 比如IDE、编译器、独立开发语言ArkTs、独立的UI体系ArkUI、独立的方舟编译器等,确实让人耳目一新,国产移动端操作系统终于来了吗,本文将从以下几个方面来了解:
鸿蒙发展史
鸿蒙生态透视
鸿蒙NEXT对移动开发者的影响
这4年来确实陆陆续续鸿蒙听到很多概念,关于鸿蒙开源鸿蒙(OpenHarmony)和鸿蒙OS(HarmonyOS)有啥区别 实际上除了OpenHarmony和HarmonyOS不一样之外,就连鸿蒙操作系统都跟OpenHarmony不同
鸿蒙操作系统其实是华为为了实现设备之间的互联化和智能化,内部自研的一个系统,有着自己的技术愿景
不同设备,同一系统
硬件互助,形成超级终端
一次开发,多端部署
当初这个系统的发布其实只在最简单的智慧屏幕设备开始试水
后来老美迎来了制裁,为了让更多开发者能够参与进来,华为在2020年和2021年分2次,将鸿蒙操作系统的基础能力捐给了开放原子开源基金会,然后在开放原子开源基金会的孵化下将鸿蒙操作系统加其他共建伙伴贡献结合起来,就形成了我们常说的OpenHarmony
能在手机上跑的鸿蒙OS是啥? 那是由于一开始OpenHarmony生态太过弱小,很多应用都没有人开发,华为又被美国制裁,为了最大程度保障用户体验,华为选择兼容Android,猥琐发育,比如无法使用GMS,华为开发了自己的HMS,在OpenHarmony基础上把上述这些都加进去形成华为商用版的HarmonyOS
这种兼容的选择,也是造成了"鸿蒙套壳Android"的嘲讽,但是这确实也是无奈只选,生态还没有做好,要是硬着头皮上的话,估计也就是WinPhone的下场了吧。
目前HarmonyOS已经发布到4.0版本,并且有了一个重大的更新就是,在华为将方舟编译器1更新到3.1版本之后在最新的api9上,打通了和OpenHarmony的API,都可以使用ArKTs来开发,这样开发者打出的同一个HAP包就可以在这2个平台上运行,之前是不可以的。现在是一次程序编译器就可以帮你自动适配好 例如折叠屏手机适配等
在华为HDC 上一页PPT一闪而过 但是事后引起的讨论却不小,这次发布的HarmonyOS NEXT 则是鸿蒙未来的演进方向,核心点是不再兼容谷歌的AOSP,这样就是一个纯血的独立操作系统了。从OpenHarmony到HarmonyOS4.0 都在为为Harmony NEXT 这个纯正操作系统铺路,它们两个的生态也在被打通,其实大家都知道做个操作系统不是难事,难得是围绕这个操作系统的生态,早期的国产红旗操作系统,winPhone无一不是倒在了这里,现在看来华为每一步都走得很稳 HarmonyOS NEXT 在 2023 年 8 月 6 日开始面向合作企业开发者开放,2024 年第一季度面向所有开发者开放,更新后的鸿蒙,会使用全自研内核,去掉了传统的 AOSP 代码,仅支持鸿蒙内核和鸿蒙系统的应用减少了 40% 的冗余代码,使系统的流畅度、能效、纯净安全特性大为提升。
也就是说,你的 Android APK 已经不能在 HarmonyOS NEXT 上运行,因为系统已经不存在 AOSP 代码,甚至没有 JVM 。
鸿蒙系统哪来的底气应该谷歌的Android呢,因为在系统设计层面真的是遥遥领先,具备以下3个特征:
一次开发,多端部署
可分可合,自由流转
统一生态,原生智能
"鸿蒙之父"之称的 王成录博士曾经公开表示“鸿蒙OS不是安卓,中国在系统软件领域中,鸿蒙是唯一一个在技术架构领先了全球所有操作系统的”。HarmonyOS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。HarmonyOS技术架构如下所示。
目前Android、苹果都手机、电脑、平板其实都是独立的。鸿蒙OS不仅仅是“单设备的操作系统”,鸿蒙OS更大的意义在于多设备的互通互联,比如设备之间的实时流转、共享算力或屏幕等硬件模块,带来跨平台、跨终端的超高一致性体验。
“一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署,目的是为了 支撑开发者高效地开发多种终端设备上的应用
这里的端是 搭载鸿蒙系统的多种硬件
为了提高开发这么多种端的开发效率,提供了DevEco Studio IDE一站式开发平台,而且也是JetBrain系列的,非常熟悉;UI上也是定义了一套标准极大提高多端开发的效率
鸿蒙系统为元服务提供了更多的分发入口,基于场景和用户意图拉起元服务,实现“服务直达”。鸿蒙生态提供的丰富入口如下图
可分可合
指的是开发阶段,开发者通过业务解耦,把不同的业务拆分为多个模块。在部署态,开发者可以将一个或多个模块自由组合,打包成一个 App Pack 统一上架。在分发运行态,每个 HAP都可以单独分发满足用户单一使用场景,也可以多个 HAP 组合分发满足用户更加复杂的使用场景,下图是2种不同的打包模式
模式一:打包成多个App Pack,不同App Pack的包名是不一样的,每个App Pack都需要单独上架。在运行态,应用和服务的生命周期完全独立。
模式二:打包成一个 App Pack,App Pack 里面的 HAP 包名相同,统一上架。在运行态,应用生命周期完全共享。
自由流转
鸿蒙系统提供了设备间自由流转的能力,使得开发者可以方便地开发出跨越多个设备的应用,自由流转可分为跨端迁移和多端协同两种情况。他们分别是时间上的串行交互和时间上 的并行交互。自由流转不仅带给用户全新的交互体验,也为开发者搭建了一座从单设备时代 通往多设备时代的桥梁。使用过华为手机+平板的人应该深深体会过超级终端带来的便利
手机与电脑、平板、搭载鸿蒙系统的汽车
统一生态
移动操作系统和桌面操作系统的跨平台应用开发框架不尽相同,从渲染方式的角度可以归纳为 WebView 渲染、原生渲染和自渲染这三类,鸿蒙系统对应的提供系统 WebView、ArkUI 框架和 XComponent 能力来支撑三种类型的跨平台框架的接入主流跨平台开发框架已有版本正在适配 HarmonyOS,基于这些框架开发的应用可以以较低成本迁移到鸿蒙系统
原生智能
鸿蒙系统内置强大的 AI 能力,面向鸿蒙生态应用的开发,通过不同层次的 AI 能力开放,满足开发者的不同开发场景下的诉求,降低应用的开发门槛,帮助开发者快速实现应用智能化
目前鸿蒙开发者生态经过4年的沉淀已经初见成效了,官网的学习资料也比较丰富 https://developer.harmonyos.com/cn/develop/覆盖开发者全旅程,内容包含白皮书、Codelabs、视频课程、技术文章、指南、UX设计资源与指南、API 参考、Sample Code 与FAQ。
这个是开发者比较关心,目前鸿蒙开发套件也算比较丰富包含设计、开发、测试、运维套件以及 OS 开放能力集
开发者在应用开发过程中使用到的产品集合,包含 HUAWEI DevEco Studio 以及 HUAWEI DevEco Studio 集成的性能调优、设备模拟、命令行工具和 SDK。
JetBrain全家桶系列之一,非常容易上手
ArkUI 是一套声明式开发框架,它具备简洁自然的 UI 信息语法、丰富的 UI 组件、多维状态管理,以及实时多维度预览等能力,帮助开发者提升应用开发效率,并能在多种设备实现生动而流畅的用户体验,非常容易上手
官方学习地址 https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/arkts-get-started-0000001504769321-V3
使用ArkTS语言来作为开发它在保 持 TypeScript(简称 TS)基本语法风格的基础上,对 TS 的动态类型特性施加更严格的约 束,引入静态类型。同时提供了声明式 UI、状态管理等相应的能力,让开发者以更简洁、 更自然的方式开发高性能应用。
ArkUI 是鸿蒙生态原生的 UI 开发框架。主体结构如下图所示
ArkUI 框架提供给开发者两种开发方式:基于 ArkTS 的声明式开发范式和基于 JS 扩展的类 Web 开发范式。声明式开发范式更加简洁高效,类 Web 开发范式对 Web 及前端开发者更友好。
华为除了争取移动端开发者 更把前端开发者也包含了进来,共建生态
方舟编译器是鸿蒙系统作为手机、平板、电视、车机和智能穿戴等多种设备统一操作系统的编译运行时底座。支持多种编程语言、多种芯片平台联合编译、运行而设计的统一编译运行时平台。支持包括动态类型和静态类型语言在内的多种编程语言,如 ArkTS、TS、JS 主要分成两个部分,编译工具链与运行时。编译工具链以ArkTS/TS/JS 源码作为输入,将其编译生成为 ABC(ArkCompiler Bytecode,即方舟字节码)文件。运行时直接运行字节码文件
是不是有JVM的影子
方舟前端工具链把解析源码、编译字节码 的过程从运行时迁移到编译时,降低运行时的开销
作为Android开发者肯定对gradle构建工具不陌生,在鸿蒙华为自研了HUAWEI DevEco Hvigor
是一款华为自研轻量级编译构建工具,将编译操作进行任务 化管理,为开发者提供自动化的构建服务。其具备强大的构建能力,支持多种语言(ArkTS、C/C++等)、多种文件(低代码描述文件、资源文件等)的快速编译,最终生成 HAP/App 包。
此外Android Studio的 性能调优profile等也是一应俱全,此外HUAWEI DevEco Studio 在传统的“端开发”基础上新增了“云开发”能力,测试测试工具能力也是火力全开,做到人无我有人有我优。
目前来看整体还是不错的。华为之前的技术积累和开发者关系运营的还不错:根据 HDC 最新数据,鸿蒙生态的设备数量目前已超过 7 亿,已有 220 万 HarmonyOS 开发者投入到鸿蒙世界的开发中,API 日调用 590 亿次,软硬件产品超过 350 款。
软件这块头部大厂正在适配鸿蒙,包括微信、抖音等,从华为来公司拜访交流的信息来看,目前已经有主流200+ 应用在适配鸿蒙 鸿蒙的策略就是先稳住大厂,尽量让大厂能跟进[首发适配],已知的腾讯、字节、小红书、百度、美团、东等企业都有一定鸿蒙基础,一些团队也许是基于 KPI ,也许是基于领导要求,都提前开始了 鸿蒙 Next 的支持,所以鸿蒙 Next 在初步生态基础上还是比当年的 WinPhone 好一些的。
游戏适配据官方透露差不多完成了主流50款作用,HarmonyOS NEXT 正在适配整个游戏生态链条。包括引擎、中台等都在进行适配,游戏引擎方面,目前适配了移动端三大引擎:Cocos、Unity、Unreal,并且针对各个引擎版本都在逐一适配,目前 HarmonyOS NEXT 已经完成对各个引擎版本的逐一适配,这个工作量非常大,像是 Cocos 2d-x 和 Creator 加在一起一共有 33 个版本,目前已经对每个版本都逐一适配了。虽然适配引擎很麻烦,但是适配好引擎后,游戏的接入只需要 7 天即可完成!,
不过这条路确实比较难,幸好还有「鸿蒙 4」,这样可以 和「鸿蒙 Next」 共存维护一段时间」,就是你不更新,可以继续用打补丁的鸿蒙 4 过度较长的一段时间,过渡期和用户维护还是需要的。而且一些大厂开始招聘鸿蒙的开发,更是为鸿蒙造势
鸿蒙1.0到4.0都是兼容Android的,这对Android生态其实没有太大影响,可以认为是了套壳Android,但是鸿蒙Next完全不一样了,AOSP直接干掉了,并且这个雄心勃勃的计划还有明确的时间线
又多了一个操作系统,"三分天下",软件研发的成本相应会升高,那么跨端方案肯定是首选。鸿蒙也考虑到了这一点,除了有独立自主的开发UI框架ArkTS外,鸿蒙依然兼容了市面上主流的跨平台方案,比如flutter、ReactNative、Weex等
特别是flutter,距离2017年谷歌IO大会发布差不多6个年头了,是有一定的用户基础的,而且flutter作为UI框架,本身就是为了兼容Android、iOS、Fuchsia等操作系统,因此理论上是可以兼容鸿蒙的, 在引擎层面把桥接Android的底层代码,直接对接到了鸿蒙系统上,这样在这样flutter引擎下开发的代码直接可以跑在鸿蒙系统上,这个尝试美团早在21年时就做过尝试
让 Flutter 在鸿蒙系统上跑起来(https://tech.meituan.com/2021/01/22/flutter-in-harmonyos.html)
现在OpenHarmony-SIG 组织已经开始在flutter引擎上适配鸿蒙系统
flutter作为一个优秀的跨平台方案在鸿蒙趋势下仍然是一个重要方案,不过有实力的大厂肯定都在自研各自的跨端方案了,可能又是一个百花齐放的局面
大前端其实一直都在推进,业务团队可以节省人力成本。近些年 移动端和前端的技术栈模式在趋同,目前移动端的UI框架都在向前端靠拢,flutter、compose、weex、都是朝前端的“声明式”方式靠谱,小程序、uniapp也是大行其道,目前应用层开发移动端和前端的界限正在慢慢模糊,(除了一些实力大厂的可以养着庞大的细分团队)。鸿蒙的ArkTS,更是以js语言切入战场,天然降低的前端开发者的入场成本,ArkUI更是在底层设计上兼容了前端团队,基于 ArkTS 的声明式开发范式和基于 JS 扩展的类 Web 开发范式。声明式开发范式更加简洁高效,类 Web 开发范式对 Web 及前端开发者更友好。鸿蒙的出现也会加速大前端的推进。
最后 华为正在线上线下全力推广,可以保持关注一波,或许国产化对当前低迷的移动端市场是一个利好,是否真的能够遥遥领先 拭目以待吧
渲染引擎分析 - 鸿蒙(OpenHarmony) JS UI 源码阅读笔记 - 掘金
鸿蒙终于不套壳了?纯血 HarmonyOS NEXT 即将到来-CSDN博客
鸿蒙NEXT不再支持安卓这条路真的走的通吗? - 知乎
鸿蒙os系统技术架构特性详解-学习新技术 - 掘金
鸿蒙OS架构及关键技术整理
鸿蒙白皮书
鸿蒙成没成我不知道,但是这路子是真的稳。【差评君】_哔哩哔哩_bilibili
让 Flutter 在鸿蒙系统上跑起来
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。