V3.0 版权所有©华为终端有限公司2022。保留一切权利。 本材料所载内容受著作权法的保护,著作权由华为公司或其许可人拥有,但注明引用其他方的内容除外。未经华为公司或其许可人事先书面许可,任何人不得将本材料中的任何内容以任何方式进行复制、经销、翻印、播放、以超级链路连接或传送、存储于信息检索系统或者其他任何商业目的的使用。 商标声明 以上为华为公司的商标(非详尽清单),未经华为公司书面事先明示许可,任何第三方不得以任何形式使用。 注意 华为会不定期对本文档的内容进行更新。 本文档仅作为使用指导,文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。 华为终端有限公司 地址:广东省东莞市松山湖园区新城路2号网址:https://consumer.huawei.com CONTENT O1 万物互联时代应用开发的机遇、挑战和趋势 O2鸿蒙生态应用开发核心概念 O3 鸿蒙生态应用核心技术理念 1)一次开发,多端部署···········9 2)可分可合,自由流转···········18 3)统一生态,原生智能···········21 O4 鸿蒙生态应用开发能力全景 1)赋能套件···············24 2)鸿蒙开发套件·············26 3)三方库·················45 4)鸿蒙生态伙伴SDK市场········46 5)开发者支持平台·············47 O5高效开发与测试 1)典型开发场景··············50 2)ArkTS语言··············50 3)ArkUI框架··············51 4)应用程序框架··············63 5)HarmonyOSSDK···········66 6)集成开发环境··············71 7)测试工具················81 1)快速上架················ 94 O6统一上架与多端分发 2)应用分发················ 3)服务分发················ 98 101 O7 自由流转与分布式运行环境 1)价值与架构定义············· 2)跨端迁移················ 3)多端协同················ 108 111 112 O8全方位运维分析 O9全场景案例参考 1O附录:术语 2 Chapter1 万物互联时代应用开发的机遇、挑战和趋势 经过十多年的发展,传统移动互联网的增长红利已渐见顶。万物互联时代正在开启,应用的设备底座将从几十亿手机扩展到数百亿IoT设备。GSMA预测到2025年,全球物联网终端连接数量将达246亿个,其中消费物联网终端连接数量将达110亿个(注:数据来自于全球移动通信系统协会发布的《2020年移动经济》报告)。IDC预计到2025年,中国物联网总连接量将达到102.7亿个(注:数据来自于IDC发布的《中国物联网连接规模预测,2020—2025》报告)。全新的全场景设备体验,正深入改变消费者的使用习惯。同时应用开发者也面临设备底座从手机单设备到全场景多设备的转变,通过全场景多设备作为全新的底座,为消费者带来万物互联时代更为高效、便捷的体验。 新的场景同时也带来了新的挑战。开发者不仅需要支持更加多样化的设备,还需要支持跨设备的协作。不同设备类型意味着不同的传感器能力、硬件能力、屏幕尺寸、操作系统和开发语言,还意味着差异化的交互方式。同时跨设备协作也让开发者面临分布式开发带来的各种复杂性,例如跨设备的网络通信、数据同步等。若采取传统开发模式,适配和管理工作量将非常巨大。当前移动应用开发中遇到的主要挑战包括: 针对不同设备上的不同操作系统,重复开发,维护多套版本。 多种语言栈,对人员技能要求高。 多种开发框架,不同的编程范式。 命令式编程,需关注细节,变更频繁,维护成本高。 与此同时,AI时代全面来临,在PC互联网到移动互联网到智能化终端演进过程中,AI计算主要在云端数据中心进行,非常依赖网络,具有一定的时延,且数据传输的安全性、私密性不能得到有效保证。随着人们对交互和信息获取的智能化要求越来越高,移动设备的计 算能力越来越强,在设备侧就能提供AI的相关能力,例如自然语言交互、环境智能感知、图像识别等。如何快速地使用设备侧的强大AI能力,使自己的应用更加智能化,进而更好的服务消费者,也是开发者面临的全新挑战。 移动终端上的应用生态发展到今天也面临着变革。传统厚重的App,整体体验好,功能齐全,但开发成本高、周期长,且存在搜索,安装,升级,卸载等一系列需要用户主动关注的显性操作,这些显性操作给用户带来了实质性的使用成本。轻量化、可快速达成消费者意图、可独立执行、完成单一功能的程序实体正成为新的趋势,例如小程序、AppClips、快应用等。根据阿拉丁指数的统计,全网小程序已经突破700万个(注:数据来自于阿拉丁研究院发布的《2021年度小程序互联网发展白皮书》),远超App数量。大型应用开发者普遍向用户提供轻量化程序实体。在很多特定的使用场景下,小程序等轻量化程序实体的使用占比已超过App,成为面向用户的主要触达方式。 轻量化的程序实体所具备的“即用即走、无需安装卸载、持续更新”的特征,也推动了App基于搜索下载的“人找应用”的传统分发向“服务找人”的智慧分发的演进。App遵循“搜索、下载、安装、使用”的模式,用户主动发现的成本高,拉新、促活、召回的全生命周期流程相对被动。轻量化的程序实体具有即用即走的体验,可通过各类终端的系统级智慧入口进行分发,甚至可以在三方App中分发,依托无所不在的入口流量和标签化识别,向用户主动提供精准服务。配合CPS(CostPerSale)等商业模式,可以为开发者带来更高的ROI(ReturnofInvestment)。 为了更好的抓住机遇,应对万物互联所带来的一系列挑战,新的应用生态应该具备如下特征: 4 单一设备延伸到多设备:应用一次开发就能在多个设备上运行,软件实体能够从单一设备转移到其他设备上,且多个设备间能够协同运行,给消费者提供全新的分布式体验。 厚重应用模式到轻量化服务模式:提供轻量化的服务,较低的资源消耗,一步直达,快速完成消费者特定场景的任务。 集中化分发到AI加持下的智慧分发:为消费者提供智慧场景服务,实现“服务找人”。 纯软件到软硬芯协同的AI能力:提供软硬芯协同优化的原生AI能力,全面满足应用高性能诉求。 6 Chapter2 鸿蒙生态应用开发核心概念 HarmonyOS应用:使用HarmonyOSSDK开发的应用程序,能够在华为终端设备 (如:手机、平板等)上运行,其有两种形态: 传统方式的需要安装的App。 轻量级,具备免安装,随处可及,服务直达,自由流转等关键特征的元服务。 HarmonyOS元服务:元服务是HarmonyOS面向万物互联时代提供的一种轻量级应用程序形态。它基于HarmonyOS平台开放能力开发,打包为AppPack形态,运行在HarmonyOS操作系统,由HarmonyOS应用程序框架管理,具备随处可及、服务直达、跨设备等核心特征。 万能卡片:HarmonyOS系统定义的一种界面展示形式,它是HarmonyOS应用和元服务的一个可选组成部分,将重要信息或操作前置到卡片,以达到服务直达,减少操作层级的目的。万能卡片常用于嵌入到其他系统应用(桌面/负一屏)中作为其界面的一部分显示,并支持点击拉起应用或元服务。 HarmonyOS应用与元服务基于同一个鸿蒙系统技术栈开发,同属一个鸿蒙生态。开发者通过业务解耦将应用分解为若干元服务独立开发,按需根据场景组合成复杂应用。 7 8 Chapter3 鸿蒙生态应用核心技术理念 -1)一次开发,多端部署 -2)可分可合,自由流转 -3)统一生态,原生智能 在万物智联时代重要机遇期,鸿蒙系统结合移动生态发展的趋势,提出了三大技术理念:一次开发,多端部署;可分可合,自由流转;统一生态,原生智能。 图3-1:核心技术理念 1)一次开发,多端部署 “一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。目的是为了支撑开发者高效地开发多种终端设备上的应用。为了实现这一目的,鸿蒙系统提供了几个核心能力,包括多端开发环境,多端开发能力以及多端分发机制。 9 图3-2:一次开发多端部署 多端开发环境 HUAWEIDevEcoStudio是面向全场景多设备提供的一站式开发平台,支持多端双向预览、分布式调优、分布式调试、多设备模拟、低代码可视化开发等能力,帮助开发者降低成本、提升效率、提高质量。HUAWEIDevEcoStudio提供的核心能力如下图所示: 图3-3:HUAWEIDevEcoStudio核心功能和特征 10 1.多端双向预览 在鸿蒙生态应用的开发阶段,因不同设备的屏幕分辨率、形状、大小等差异,开发者需要在不同设备上查看UI界面显示,确保实现效果与设计目标一致。传统的开发模式下,开发者需要获取大量不同的真机设备用于测试验证。HUAWEIDevEcoStudio提供了多种设备的双向预览能力,支持同时查看UI代码在多个设备上的预览效果,并支持UI代码和预览效果的双向定位修改。 2.分布式调试 鸿蒙生态应用具有天然的分布式特征,体现在同一个应用在多个设备之间会有大量的交互。开发过程中,对这些交互进行调试时,需要对每个设备分别建立调试会话,并且需要在多个设备之间来回切换,容易造成调试不连续、操作繁琐等问题。为了提升开发效率,HUAWEIDevEcoStudio提供了分布式调试功能,支持跨设备调试,通过代码断点和调试堆栈可以方便地跟踪不同设备之间的交互,用于定位多设备互动场景下的代码缺陷。 图3-4:分布式调试交互图 11 3.分布式调优 分布式应用的运行性能至关重要。在跨端迁移场景中,需要应用在目标设备上快速启动,以实现和原设备之间的无缝衔接;在多端协同场景中,需要应用在算力和资源不同的多个设备上都能高效运行,以获得整体的流畅体验。以往开发者在分析分布式应用的性能问题时,需要单独查看每个设备的性能数据,并手动关联分析这些数据,操作繁琐,复杂度高。HUAWEIDevEcoStudio提供了分布式调优功能,支持多设备分布式调用链跟踪、跨设备调用堆栈缝合,同时采集多设备性能数据并进行联合分析。 图3-5:多设备联合分析 4.多设备模拟 移动应用开发时需要使用本地模拟器来进行应用调试,实现快速开发的目的。鸿蒙生态应用需要运行在多种不同类型的设备上,为此HUAWEIDevEcoStudio提供了不同类型的终端设备模拟,支持开发者在多个模拟设备上进行开发调试,降低门槛、节约成本。 12 5.低代码可视化开发 低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序。低代码开发的产物如组件、模板等可以被其他模块的代码引用,并且能通过跨工程复用,支持开发团队协同完成复杂应用的开发。 多端开发能力 应用如需在多个设备上运行,需要适配不同的屏幕尺寸和分辨率、不同的交互方式(如触摸和键盘等)、不同的硬件能力(如内存差异和器件差异等),开发成本较高。因此,多端开发能力的核心目标是降低多设备应用的开发成本。为了实现该目标,鸿蒙系统提供了以下几个核心能力,支持多端UI适配,交互事件归一,设备能力抽象,帮助开发者降低开发与维护成本,提高代码复用度。 1.多端UI适配 不同设备屏幕尺寸、分辨率等存在差异,鸿蒙系统将对屏幕进行逻辑抽象,包括尺寸和物理像素,并提供丰富的自适应/响应式的布局和视觉能力,方便开发者进行不同屏幕的界面适配。 屏幕逻辑抽象:鸿蒙系统提供虚拟像素vp(virtualpixel)对分辨率进行抽象,不同设备的