鸿蒙OS:万物互联,方舟Compiler
1.方舟JS运行时组件
简介
方舟JS运行时(ARK JavaScript Runtime)是OpenHarmony上JS应用使用的运行时。包含JS对象的分配器以及垃圾回收器(GC)、符合ECMAScript规范的标准库、用于运行ARK前端组件生成的方舟字节码(ARK Bytecode,abc)的解释器、用于存储隐藏类的内联缓存、方舟JS运行时对外的函数接口(AFFI)等模块。
方舟JS运行时组件架构图:
/ark/js_runtime
├─ ecmascript # 方舟JS运行时实现,包括ECMAScript标准库、解释器、内存管理等
│ ├─ base # 基础帮助类
│ ├─ builtins # ECMAScript标准库
│ ├─ class_linker # 字节码预处理模块
│ ├─ compiler # JS编译器
│ ├─ hprof # 内存分析工具
│ ├─ ic # 内联缓存模块
│ ├─ interpreter # JS解释器
│ ├─ jobs # 微任务队列
│ ├─ js_vm # 命令行工具
│ ├─ mem # 内存管理模块
│ ├─ napi # C++接口模块
│ ├─ regexp # 正则引擎模块
│ ├─ snapshot # 快照模块
│ ├─ tests # 单元测试用例
│ ├─ thread # 线程池
│ ├─ tooling # JS调试器
│ └─ vmstat # 运行时profiling工具
└─ test # 模块测试用例
./build.sh --product-name Hi3516DV300 --build-target ark_js_runtime
接口实现详见:foundation/ace/napi。
表 1 NAPI接口说明
开发步骤
下面以开发一个获取应用包名的JS接口为例介绍如何使用NAPI。
我们要实现的JS接口原型是:
function getAppName(): string;
以下是实现源码:
// app.cpp
鸿蒙OS是华为推出的一款面向未来、面向全场景(移动办公、运动健康、社交通信、媒体、娱乐等)的分布式操作系统,于2019年8月正式发布。
2021年6月2日,华为在线上举办鸿蒙OS 2及华为全场景新品发布会,正式发布鸿蒙OS 2,以及搭载此系统的硬件产品,主要包括:HUAWEI Mate 40系列新版本、Mate X2新版本、HUAWEI WATCH 3系列、HUAWEI MatePad Pro等手机、智能手表、平板产品。
在传统的单设备系统能力的基础上,鸿蒙OS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。
对消费者而言:鸿蒙OS能够将生活场景中的各类终端进行能力整合,形成一个“超级虚拟终端”,可以实现不同的终端设备之间的快速连接、能力互助、资源共享,匹配合适的设备、提供流畅的全场景体验。
对应用开发者而言:鸿蒙OS采用了多种分布式技术,使得应用程序的开发实现与不同终端设备的形态差异无关,降低了开发难度和成本。这能够让开发者聚焦上层业务逻辑,更加便捷、高效地开发应用。
对设备开发者而言:鸿蒙OS采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活裁剪,满足不同形态的终端设备对于操作系统的要求。
鸿蒙OS 2采用全栈优化、动态空间存储读写器,综合性能与基于安卓的EMUI相比大幅提升。此外,鸿蒙OS 2采取了GPU和CPU联合渲染技术,渲染和逻辑分离,减少重复渲染,操作更流畅,续航时间更长。
在鸿蒙OS 2及华为全场景新品发布会上,华为还公布了鸿蒙OS“百机焕新”计划,将陆续向华为手机、平板、智慧屏等智能终端设备推送升级鸿蒙OS 2,到明年上半年计划实现近百款设备升级鸿蒙OS 2,让更多消费者可以体验到鸿蒙OS便捷、流畅、安全的全场景交互。
2.1 技术架构:分层设计,系统功能逐级展开
鸿蒙OS整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统>子系统>功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
2.2 技术特性:三大特性,满足全场景智慧体验
2.2.1 分布式:基于软总线的跨终端无缝体验
鸿蒙OS的“分布式OS架构”和“分布式软总线技术”通过公共通信平台、分布式数据管理、分布式能力调度和虚拟外设四大能力,使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也使最终消费者享受到强大的跨终端业务协同能力为各使用场景带来的无缝体验。
分布式软总线:是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据。
分布式设备虚拟化:分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势。
分布式数据管理:分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件。
分布式任务调度:分布式任务调度基于分布式软总线、分布式数据管理、分布式Profile 等技术特性,构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
鸿蒙OS将N个设备组合成1个“超级终端”,硬件互助、资源共享,根据个人需求自由调用。华为消费者业务软件部总裁王成录在鸿蒙OS 2及华为全场景新品发布会上表示,“超级终端”在控制中心中提供了手机与PC、平板、音箱等各个设备的无线连接组合,只需要手指将不同设备的图标轻轻滑动到一起即可实现深度连接,为万物互联时代提供了一种全新的连接、操作方式。
2.2.2 微内核:更快、更安全、更适配
鸿蒙OS采用全新的微内核设计,拥有更强的安全特性和低时延等特点。微内核技术提供了基于硬件的可信执行环境(TEE, Trusted Execution Environment)来保护用户的个人敏感数据的存储和处理,确保数据不泄露。
在架构方面,宏内核与微内核主要具有以下特点:
宏内核:宏内核把所有系统服务放到内核中,包括文件系统、设备驱动、虚拟内存管理、网络协议栈等,缺点是系统代码量庞大、潜在漏洞量越多、可扩展性差。
微内核:核心思想是简化内核功能,内核只提供最基础的系统服务,其他系统服务均放在内核之外的用户生态中,具有高安全性、高可靠、高扩展性、高可维护性、支持分布式计算等特点。
安卓和iOS受限于较大的系统体积,难以在小型内存终端上广泛搭载。
鸿蒙OS定位于面向未来的IoT操作系统,为满足万物互联的全场景智慧时代对OS提出的新要求,实现模块化解耦,根据不同设备的硬件能力与需求组合拼装,在不同的设备上都可以弹性部署。同时,鸿蒙OS通过分布式软总线连接不同终端,让应用轻松调用其他终端的硬件外设能力,为消费者带来跨终端无缝协同体验。
2.2.3 生态共享:让开发者“书同文”,让终端“车同轨”
鸿蒙OS配备面向多终端开发的统一 IDE(集成开发工具),可支撑开发者实现一次开发、多端部署,最终实现跨终端生态共享。跨终端生态将打破各终端被不同系统隔离的“孤岛效应”,将大大降低用户在不同终端间数据传输的门槛,并提升使用效率与便捷性。
2.3 发展路径:贯彻“1+8+N”战略,全面开源构建生态
2019年3月14日,华为在上海举办了“真生态臻品质”生态大会,华为消费者业务 CEO余承东先生正式宣布将华为loT生态战略升级为“全场景智慧化战略”:华为将围绕着 HiAI、两大开放平台和三层结构化产品的战略,为行业打造一个丰富多彩的智能家居生态系统。
在2021年6月2日举办的鸿蒙OS 2及华为全场景新品发布会上,余承东先生再次强调,华为要重点围绕五大场景实现“全场景1+8+N智慧生活战略”,包括智慧出行、智能家居、运动健康、智慧办公以及影音娱乐。
2.3.1 鸿蒙 2.0 全面开源,助力硬件厂商与开发者
2020年,华为面向开发者发布鸿蒙2.0的Beta版本,并宣布将鸿蒙OS的源代码捐赠给开放原子开源基金会进行开源孵化。根据华为公布的开源路标,2021年10月以后,鸿蒙将面向4GB以上所有设备开源。
面向硬件生产厂商:华为开放源代码、SDK、开发板/模组、HUAWEI DevEco等平台和工具链,为鸿蒙OS设备提供一站式开发环境。
面向应用开发者:鸿蒙借助分布式软总线技术,为开发者提供包括编程框架、APIs、DevEco、方舟编译器等一系列平台及工具链,帮助开发者快速开发基于鸿蒙系统的跨设备、全场景的应用软件。
2.3.2 商业应用逐步落地,预计2021年装机量破3亿
在2021年5月17日的“华为中国生态大会2021”上,华为轮值董事长徐直军指出,鸿蒙操作系统生态已经发展了1000多个智能硬件合作伙伴,50多个模组和芯片解决方案合作伙伴,包括家居、出行、教育、办公、运动健康、政企、影音娱乐等多个领域的合作伙伴。目前华为与全球TOP200的APP厂商也在沟通合作,希望为他们带来全新的跨终端设备的体验。
2021年5月,鸿蒙OS Connect伙伴峰会于上海举办,华为宣布将“HUAWEI HiLink”与“Powered by HarmonyOS”两大品牌全面升级为“HarmonyOS Connect”,面向1+8+N生态伙伴硬件产品实现技术认证品牌归一,将鸿蒙OS能力做为全场景智慧生态的底座。
实现合作伙伴快速、低成本连接用户:
合作伙伴的智能硬件产品能够基于鸿蒙OS,实现极简配网、万能卡片、极简交互、硬件互助等能力。用户手机一碰即可将智能设备联网,无需安装APP也能随时控制,有效解决了设备智能特性使用率低等难题。
各合作厂商产品可融合成为“超级终端”:
基于鸿蒙OS,各合作品牌厂商之间相互分离的设备可以根据消费者不同的需求、不同的场景,组合不同设备的软硬件能力,融合成“超级终端”。
华为官方预计,2021年鸿蒙OS装机量有望超过3亿。
在2021年5月17日的“华为中国生态大会2021”上,华为轮值董事长徐直军预计,到 2021年底,搭载鸿蒙OS的设备数量将达3亿台,其中华为设备超过2亿台,面向第三方合作伙伴的各类终端设备数量超过1亿台。
3.1 润和软件:提供多芯片平台适配,相关业务快速增长
润和软件以“金融科技”+“智能物联”的“一体两翼、双轮驱动”发展战略,向国内外客户提供以数字化、信息化、智能化为核心的产品、解决方案和综合科技服务。
金融科技:公司围绕国内金融行业国产化、数字化转型需求,聚焦金融测试、DevOps数字化软件交付、新一代分布式核心系统、业务中台、数据中台等业务方向,为银行、保险、证券、基金、国债、信托、资产及其他持牌金融客户提供专业的数字化解决方案。
目前,公司金融科技业务已覆盖除台湾、香港、澳门以外的全国其他所有省份。2020年,公司新增广发银行、恒丰银行、国家开发银行等客户,服务范围已覆盖6大国有银行、2家政策性银行、11家股份制银行及超过200家中小银行、保险公司、持牌金融机构等。
智能物联:公司以国产化核心软件能力为基础,依托自身在芯片与终端设备开发、操作系统、云计算、大数据、人工智能等先进领域的实践积累与技术提升,打通了从端到云、从底层技术到上层应用的物联网解决方案全栈技术能力。
公司以HopeAIOT智能物联解决方案及系列产品为核心,为客户提供包括全部国产化方案在内的物联网软硬件产品、定制开发、技术支持以及生态推广服务,帮助能源、工业、零售、汽车、通讯等重点行业客户加速完成信息化转型升级目标。
公司与华为建立了长期深度的合作关系,是OpenHarmony(开放鸿蒙)发起单位之一、华为鸿蒙OS(鸿蒙操作系统)生态共建者、海思芯片及IoT战略合作伙伴。与华为合作内容主要涉及在芯片与终端设备开发、操作系统、云计算、大数据、人工智能等相关业务领域,合作方式有项目结算型、人力结算型、产品销售型等合作方式。
根据公司5月17日发布的《关于对深圳证券交易所关注函回复的公告》,2020年,公司鸿蒙相关业务对外实现销售收入为155.22万元,毛利约30.30万元;2021年,鸿蒙相关业务在手订单额为2365.75万元,同比快速增长。
3.2 常山北明:华为 HMS 等多产品一级合作伙伴
常山北明全资子公司北明软件是一家新一代 IT 技术和解决方案的综合服务商,致力于运用新一代科技手段助力新型智慧城市等各个领域的数字化转型,打造覆盖全社会、万物互联、万物智联的信息服务体系。
北明软件是鲲鹏生态的深度参与者及鲲鹏计算产业首批认证伙伴之一。
2020年,北明软件完成了一系列基于鲲鹏计算的产品和解决方案适配,全面参与了湖南省鲲鹏生态创新中心的建设和运营,与华为正式签署了鲲鹏一体机合作协议,成为整个鲲鹏计算产业生态链的重要参与者和共建者。
北明软件是华为 HMS 等多产品一级合作伙伴,2019、2020年华为位居公司供应商之首。
2012年,北明软件开始与华为展开合作,2013年正式签署了战略合作协议,公司开始全面销售华为产品,并将公司的产品及解决方案向华为平台转移。
近年来,北明软件向华为采购内容以服务器、数据通讯、软件平台产品为主,金额逐年上升。认为,未来北明软件与华为的联合解决方案有望通过华为的生态系统继续实现快速增长。
3.3 中科创达:鸿蒙 2.0 的首批生态合作伙伴之一
中科创达是全球领先的智能操作系统产品和技术提供商,是国内外少有的能够提供从芯片层、系统层、应用层到云端的全面技术覆盖的操作系统技术公司。截至2020年底,公司在全球拥有超过800家客户,包括百家以上产业链内世界五百强企业。
公司在 Android、Windows、Linux 操作系统和应用开发领域积累了丰富的经验,涵盖了BSP、操作系统内核、驱动、框架、协议栈、多媒体、应用、工具和安全技术,围绕操作系统核心技术,面向智能手机、智能网联汽车、智能物联网、企业市场推出了一系列完整的解决方案及产品。
此外,公司也向产业链各方伙伴提供开发、支持等各类服务,帮助客户完成产品创新和市场拓展。
公司持续布局智能网联汽车与AIoT,成长空间广阔:
目前,公司形成了集软件 IP 授权、产品售卖、开发服务于一体的业务模式,与底层芯片制造商、主机厂等有成熟的合作伙伴关系。
根据 MarketsandMarkets预测,全球智能网联汽车市场规模在2027年将达到2127 亿美元,2019-2027年CAGR 将达到22.3%。2016-2020年,公司智能网联汽车业务收入CAGR高达102%。汽车业务收入在公司业务收入中的占比亦逐年提升,由2016 年的5.45%,提升至2020年的 29.31%。
根据艾瑞咨询预测,中国物联网连接量到2025年将增至198.8亿,2018-2025年 CAGR将达到32.05%。公司向细分领域客户提供差异化物联网产品,包括:机器人、VR/AR、智能Camera、可穿戴设备、资产定位器、远程视频会议系统等,未来市场空间广阔。
2020年9月,中科创达宣布公司作为领先的操作系统产品和技术提供商,成为鸿蒙 OS 2.0的首批生态合作伙伴,将基于鸿蒙OS产品及解决方案,共建鸿蒙OS全场景智慧生态。
3.4 万兴科技:数字创意产品领先,预装于华为鸿蒙平板
万兴科技是国内领先的消费类软件供应商,主要产品包括数字创意软件、办公效率软件以及数据管理软件。近年来,公司以“技术+服务+内容”为导向,打造“PC+移动+云”的多端布局,快速响应市场需求,不断探索新产品新功能,并逐步加快公司 SaaS 化转型升级及内部各体系适配。
2021年6月2日,万兴喵影亮相华为鸿蒙操作系统及全场景新品发布会,成为全球首款搭载鸿蒙OS的华为平板HUAWEI MatePad Pro的唯一预装视频创意软件。此外,华为平板新品海外版也同步预装了万兴喵影海外版 Wondershare FilmoraGo。
认为,以此为切入口:
1)公司有望持续推进产品在华为平板在内的多种移动终端的渗透和应用;
2)公司作为国产数字创意软件领先企业,有望利用自身优势和经验持续赋能华为生态建设,共同推进国产生态布局。
1)鸿蒙OS商业化进展不及预期;
2)中美贸易摩擦加剧,华为发展受阻;
3)软硬件合作生态建设不及预期;
4)操作系统行业竞争加剧。
参考链接:
https://gitee.com/openharmony/ace_napi/blob/master/README_zh.md#%E6%B6%89%E5%8F%8A%E4%BB%93
https://baijiahao.baidu.com/s?id=1701788501998694305&wfr=spider&for=pc