1、 V2.0 1)一次开发,多端部署 3)统一生态,原生智能 O1 O3 万物互联时代应用开发的机遇、挑战和趋势 鸿蒙生态应用核心技术理念 9 21 2)可分可合,自由流转 18 CONTENTCONTENT O2 鸿蒙生态应用开发核心概念 O4 O5 O6 鸿蒙生态应用开发能力全景 2)鸿蒙开发套件 3)三方库 4)开发者支持平台 26 46 45 高效开发与测试 1)典型开发场景 3)ArkTS 语言 4)ArkUI 框架 48 50 49 5)应用程序框架 6)SDK 7)集成开发环境 62 71 65 8)测试工具 80 统一上架与多端分发 1)快速上架 2)应用分发 3)服务分发 93
2、 101 97 2)设计 48 1)赋能套件 24 全方位运维分析 O9 全场景案例参考 1O 附录:术语 O8 O7 自由流转与分布式运行环境 1)价值与架构定义 2)跨端迁移 3)多端协同 107 111 110 2 2 万物互联时代应用开发 的机遇、挑战和趋势 ChapterChapter 1 1 3 3 经过十多年的发展,传统移动互联网的增长红利已渐见顶。万物互联时代正在开启,应用的设备底座将从几十亿手机扩展到数百亿 IoT 设备。GSMA 预测到 2025 年,全球物联网终端连接数量将达 246 亿个,其中消费物联网终端连接数量将达 110 亿个(注:数据来自于全球移动通信系统协会发
3、布的2020 年移动经济报告)。IDC 预计到2025 年,中国物联网总连接量将达到 102.7 亿个(注:数据来自于 IDC发布的中国物联网连接规模预测,20202025报告)。全新的全场景设备体验,正深入改变消费者的使用习惯。同时应用开发者也面临设备底座从手机单设备到全场景多设备的转变,通过全场景多设备作为全新的底座,为消费者带来万物互联时代更为高效、便捷的体验。新的场景同时也带来了新的挑战。开发者不仅需要支持更加多样化的设备,还需要支持跨设备的协作。不同设备类型意味着不同的传感器能力、硬件能力、屏幕尺寸、操作系统和开发语言,还意味着差异化的交互方式。同时跨设备协作也让开发者面临分布式开发
4、带来的各种复杂性,例如跨设备的网络通信、数据同步等。若采取传统开发模式,适配和管理工作量将非常巨大。当前移动应用开发中遇到的主要挑战包括:针对不同设备上的不同操作系统,重复开发,维护多套版本。多种语言栈,对人员技能要求高。多种开发框架,不同的编程范式。命令式编程,需关注细节,变更频繁,维护成本高。与此同时,AI 时代全面来临,在 PC 互联网到移动互联网到智能化终端演进过程中,AI计算主要在云端数据中心进行,非常依赖网络,具有一定的时延,且数据传输的安全性、私密性不能得到有效保证。随着人们对交互和信息获取的智能化要求越来越高,移动设备的计 4 4 算能力越来越强,在设备侧就能提供 AI 的相关
5、能力,例如自然语言交互、环境智能感知、图像识别等。如何快速地使用设备侧的强大 AI 能力,使自己的应用更加智能化,进而更好的服务消费者,也是开发者面临的全新挑战。移动终端上的应用生态发展到今天也面临着变革。传统厚重的App,整体体验好,功能齐全,但开发成本高、周期长,且存在搜索,安装,升级,卸载等一系列需要用户主动关注的显性操作,这些显性操作给用户带来了实质性的使用成本。轻量化、可快速达成消费者意图、可独立执行、完成单一功能的程序实体正成为新的趋势,例如小程序、App Clips、快应用等。根据阿拉丁指数的统计,全网小程序已经突破 700 万个(注:数据来自于阿拉丁研究院发布的2021 年度小
6、程序互联网发展白皮书),远超 App 数量。大型应用开发者普遍向用户提供轻量化程序实体。在很多特定的使用场景下,小程序等轻量化程序实体的使用占比已超过 App,成为面向用户的主要触达方式。轻量化的程序实体所具备的“即用即走、无需安装卸载、永远最新”的特征,也推动了 App 基于搜索下载的“人找应用”的传统分发向“服务找人”的智慧分发的演进。App 遵循“搜索、下载、安装、使用”的模式,用户主动发现的成本高,拉新、促活、召回的全生命周期流程相对被动。轻量化的程序实体具有即用即走的体验,可通过各类终端的系统级智慧入口进行分发,甚至可以在三方 App 中分发,依托无所不在的入口流量和标签化识别,向用
7、户主动提供精准服务。配合 CPS(Cost Per Sale)等商业模式,可以为开发者带来更高的 ROI(Return of Investment)。为了更好的抓住机遇,应对万物互联所带来的一系列挑战,新的应用生态应该具备如下特征:5 5 单一设备延伸到多设备:应用一次开发就能在多个设备上运行,软件实体能够从单一设备转移到其他设备上,且多个设备间能够协同运行,给消费者提供全新的分布式体验。厚重应用模式到轻量化服务模式:提供轻量化的服务,最小化资源消耗,一步直达,快速完成消费者特定场景的任务。集中化分发到 AI 加持下的智慧分发:为消费者提供智慧场景服务,实现“服务找人”。纯软件到软硬芯协同的
8、AI 能力:提供软硬芯协同优化的原生 AI 能力,全面满足应用高性能诉求。6 6 鸿蒙生态应用 开发核心概念 ChapterChapter 2 2 7 7 HarmonyOS应用:使用 HarmonyOS SDK 开发的应用程序,能够在华为终端设备(如:手机、平板等)上运行,其有两种形态:传统方式的需要安装的 App。轻量级,具备免安装,随处可即,服务直达,自由流转等关键特征的元服务。HarmonyOS 元服务:元服务是 HarmonyOS 面向万物互联时代提供的一种轻量级应用程序形态。它基于 HarmonyOS 平台开放能力开发,打包为 App Pack 形态,运行在HarmonyOS操作系
9、统,拥有一张或者多张万能卡片,由 HarmonyOS应用程序框架管理,具备随处可及、服务直达、跨设备等核心特征。万能卡片:HarmonyOS 系统定义的一种界面展示形式,它是 HarmonyOS 元服务的一个组成部分,将重要信息或操作前置到卡片,以达到服务直达,减少操作层级的目的。万能卡片常用于嵌入到其他系统应用(桌面/负一屏)中作为其界面的一部分显示,并支持点击拉起元服务。HarmonyOS 元服务必须实现万能卡片。HarmonyOS 应用与元服务基于同一个鸿蒙系统技术栈开发,同属一个鸿蒙生态。开发者通过业务解耦将应用分解为若干元服务独立开发,按需根据场景组合成复杂应用。8 8 鸿蒙生态应用
10、鸿蒙生态应用 核心技术理念核心技术理念 ChapterChapter 3 3 1 1 -1)一次开发,多端部署-2)可分可合,自由流转-3)统一生态,原生智能 9 9 在万物智联时代重要机遇期,鸿蒙系统结合移动生态发展的趋势,提出了三大技术理念:一次开发,多端部署;可分可合,自由流转;统一生态,原生智能。图 3-1:核心技术理念 1)一次开发,多端部署“一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。目的是为了支撑开发者高效地开发多种终端设备上的应用。为了实现这一目的,鸿蒙系统提供了几个核心能力,包括多端开发环境,多端开发能力以及多端分发机制。1010 图 3-2:一次开发 多
11、端部署 多端开发环境 HUAWEI DevEco Studio 是面向全场景多设备提供的一站式开发平台,支持多端双向预览、分布式调优、分布式调试、超级终端模拟、低代码可视化开发等能力,帮助开发者降低成本、提升效率、提高质量。HUAWEI DevEco Studio 提供的核心能力如下图所示:图 3-3:HUAWEI DevEco Studio 核心功能和特征 1.多端双向预览 在鸿蒙生态应用的开发阶段,因不同设备的屏幕分辨率、形状、大小等差异,开发者需要在不同设备上查看 UI 界面显示,确保实现效果与设计目标一致。传统的开发模式下,开 1111 发者需要获取大量不同的真机设备用于测试验证。HU
12、AWEI DevEco Studio 提供了多种设备的双向预览能力,支持同时查看 UI 代码在多个设备上的预览效果,并支持 UI 代码和预览效果的双向定位修改。2.分布式调试 鸿蒙生态应用具有天然的分布式特征,体现在同一个应用在多个设备之间会有大量的交互。开发过程中,对这些交互进行调试时,需要对每个设备分别建立调试会话,并且需要在多个设备之间来回切换,容易造成调试不连续、操作繁琐等问题。为了提升开发效率,HUAWEI DevEco Studio 提供了分布式调试功能,支持跨设备调试,通过代码断点和调试堆栈可以方便地跟踪不同设备之间的交互,用于定位多设备互动场景下的代码缺陷。图 3-4:分布式调
13、试交互图 3.分布式调优 分布式应用的运行性能至关重要。在跨端迁移场景中,需要应用在目标设备上快速启动,以实现和原设备之间的无缝衔接;在多端协同场景中,需要应用在算力和资源不同的多个设备上都能高效运行,以获得整体的流畅体验。以往开发者在分析分布式应用的性能问题时,1212 需要单独查看每个设备的性能数据,并手动关联分析这些数据,操作繁琐,复杂度高。HUAWEI DevEco Studio 提供了分布式调优功能,支持多设备分布式调用链跟踪、跨设备调用堆栈缝合,同时采集多设备性能数据并进行联合分析。图 3-5:多设备联合分析 4.超级终端模拟 移动应用开发时需要使用本地模拟器来进行应用调试,实现快
14、速开发的目的。鸿蒙生态应用需要运行在多种不同类型的设备上,为此 HUAWEI DevEco Studio 提供了不同类型的终端模拟,支持开发者在多个模拟终端上进行开发调试,降低门槛、节约成本。同时,多个模拟终端、真机设备也可以自由地组成超级终端,进一步降低开发者获取分布式调测环境的难度。5.低代码可视化开发 低代码开发提供 UI 可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码 1313 编写,快速地构建多端应用程序。低代码开发的产物如组件、模板等可以被其他模块的代码引用,并且能通过跨工程复用,支持开发团
15、队协同完成复杂应用的开发。多端开发能力 应用如需在多个设备上运行,需要适配不同的屏幕尺寸和分辨率、不同的交互方式(如触摸和键盘等)、不同的硬件能力(如内存差异和器件差异等),开发成本较高。因此,多端开发能力的核心目标是降低多设备应用的开发成本。为了实现该目标,鸿蒙系统提供了以下几个核心能力,支持多端 UI 适配,交互事件归一,设备能力抽象,帮助开发者降低开发与维护成本,提高代码复用度。1.多端 UI 适配 不同设备屏幕尺寸、分辨率等存在差异,鸿蒙系统将对屏幕进行逻辑抽象,包括尺寸和物理像素,并提供丰富的自适应/响应式的布局和视觉能力,方便开发者进行不同屏幕的界面适配。屏幕逻辑抽象:鸿蒙系统提供
16、虚拟像素 vp(virtual pixel)对分辨率进行抽象,不同设备的系统在底层将物理像素转化成虚拟像素,为应用开发者提供统一单位。不同设备的尺寸存在差异,鸿蒙系统根据设备的屏幕水平宽度,抽象和定义了四种尺寸:超小(xs)、小(sm)、中(md)、大(lg)。这四种抽象后的屏幕尺寸与日常使用的设备屏幕类型有一定的对应关系,例如:超小对应智能穿戴设备,小对应手机和折叠屏折叠态,中对应折叠屏展开态和平板,大对应智慧屏。开发者可面向应用运行的目标设备进行屏幕类型的适配。1414 图 3-6:尺寸抽象化 布局:鸿蒙系统提供的布局主要分为自适应布局和响应式布局。自适应布局是当外部容器大小发生变化时,容
17、器内元素可以根据相对关系自动变化以适应外部容器变化的布局能力。相对关系包含占比、固定宽高比、显示优先级等。当前自适应布局能力主要有 7 种:拉伸能力、均分能力、占比能力、缩放能力、延伸能力、隐藏能力、折行能力。响应式布局是当显示空间大小发生变化时,布局可以根据预设断点、栅格或特定的特征(如屏幕方向、窗口宽高等)进行自动切换。当前响应式布局能力主要有 3 种:断点、媒体查询、栅格布局。鸿蒙系统将响应式布局能力下沉到默认组件的基础属性中,比如网格、列表和轮播组件等,支持自动增加显示列数,以便充分利用屏幕宽度,节省应用开发工作量。视觉:鸿蒙系统提供的视觉样式能力,包括分层参数、多态组件和主题。2.交
18、互事件归一 事件归一抽象:不同设备间的交互方式等存在差异,如触摸、键盘、鼠标、语音、手写笔等,鸿蒙系统将不同设备的输入映射成归一交互事件,从而简化开发者适配逻辑。以缩放交互为例,通过多指触控的张合来完成缩放动作,在多设备场景下,缩放交互会出现多种不同的操作输入方式,如表 3-1 所示。为了让应用更容易的支持不同的交互方式,鸿蒙系统提供归一的缩放交互事件。1515 表 3-1:缩放交互的规则 操作方式 触屏双指捏合交互 键盘 Ctrl 键+鼠标滚轮交互 键盘 Ctrl 键+“+/-”键交互 触控板双指捏合交互 表冠旋转交互 上报事件 触屏双指捏合事件 按键+滚轮组合事件 按键组合点击事件 触控板
19、双指捏合事件 表冠旋转事件 组件归一响应:当应用部署在不同设备上供用户使用时,需要支持多种 I/O 设备,界面呈现出相应的状态为用户提供正确的视觉引导。例如触摸时显示按压状态,鼠标特有的悬停状态,键盘走焦状态。鸿蒙系统默认提供多种交互方式的组件实现,方便开发者支持多种输入方式。3.设备能力抽象 不同设备间的软、硬件能力等存在差异,如设备是否具备定位能力、是否具备摄像头、是否具备蓝牙功能等,鸿蒙系统需要对设备能力进行逻辑抽象,并提供接口来查询设备是否支持某一能力,方便开发者进行不同软、硬件能力的功能适配。在鸿蒙系统中,使用SystemCapability(简写为 SysCap)定义每个部件对应用
20、开发者提供的系统软硬件能力。应用开发者基于统一的方式访问不同设备的能力。1616 图 3-7:API、SystemCapability、部件和设备的关系 多端分发机制 如果需要开发多设备上运行的应用,一般会针对不同类型的设备多次开发并独立上架。开发和维护的成本大,为了解决这个问题,鸿蒙系统提供了“一次开发,多端部署”的能力,开发者开发多设备应用,只需要一套工程,一次打包出多个 HAP,统一上架,即可根据设备类型按需进行分发。除了可以开发传统的应用,开发者还可以开发元服务。元服务是一种面向未来的服务提供方式,具有独立入口的、免安装的、可为用户提供一个或多个便捷服务的应用程序形态。鸿蒙系统为元服务
21、提供了更多的分发入口,方便用户获取,同时也增加了元服务露出的机会。1717 1.多设备按需分发 鸿蒙系统提供了两种模式帮助开发者基于“一次开发,多端部署”能力分发应用和元服务到不同设备上。图 3-8:多设备按需分发的两种模式 模式 1:应用或服务的 UI 自适应不同尺寸的设备屏幕,并且在不同设备的功能相同,可以实现多设备共享一个 HAP 包。这种场景下建议开发者通过一个模块来开发,并配置该模块支持多设备,然后再编译构建生成一个 HAP,分发到不同类型的设备上运行。模式 2:应用或服务的 UI、功能在不同设备间存在差异,无法实现 HAP 包多设备归一。可根据实际情况设置不同模块适用的设备类型,编
22、译构建多个 HAP 包,一起上架。HUAWEI AppGallery Connect 会自动提取 HAP 中的设备类型的配置信息,为对应的设备自动分发正确的 HAP 包组合。1818 2.多入口按需分发 鸿蒙系统为元服务提供了更多的分发入口,基于场景和用户意图拉起元服务,实现“服务直达”。鸿蒙生态提供的丰富入口如下图所示:图 3-9:多入口按需分发 2)可分可合,自由流转 元服务是鸿蒙系统提供的一种全新的应用形态,具有独立入口,用户可通过点击、碰一碰、扫一扫等方式直接触发,无需显式安装,由程序框架后台静默安装后即可使用,可为用户提供便捷服务。传统移动生态下,开发者通常需要开发一个原生应用版本,
23、如果提供小程序给用户,往往需要开发若干个独立的小程序。鸿蒙生态下,鸿蒙原生支持元服务开发,开发者无需维护多套版本,通过业务解耦将应用分解为若干元服务独立开发,按需根据场景组合成复杂应用。1919 元服务基于鸿蒙系统 API 开发,支持运行在 1+8+N 设备上,供用户在合适的场景、合适的设备上便捷使用。元服务是支撑可分可合,自由流转的轻量化程序实体,帮助开发者的服务更快触达用户。具备如下特点:触手可及:元服务可以在服务中心发现并使用,同时也可以基于合适场景被主动推荐给用户使用,例如用户可在服务中心和小艺建议中发现系统推荐的服务。服务直达:元服务无需安装卸载,“秒开体验”,即点即用,即用即走。万
24、能卡片:支持用户无需打开元服务便可获取服务内重要信息的展示和动态变化,如天气、关键事务备忘、热点新闻列表。自由流转:元服务支持运行在多设备上并按需跨端迁移,或者多个设备协同起来给用户提供最优的体验。例如手机上未完成的邮件,迁移到平板继续编辑,手机用作文档翻页和批注,配合智慧屏完成分布式办公;例如分布式游戏场景,手机可作为手柄,与智慧屏配合玩游戏,获得新奇游戏体验。可分可合 在开发态,开发者通过业务解耦,把不同的业务拆分为多个模块。在部署态,开发者可以将一个或多个模块自由组合,打包成一个 App Pack 统一上架。在分发运行态,每个 HAP都可以单独分发满足用户单一使用场景,也可以多个 HAP
25、 组合分发满足用户更加复杂的使用场景。开发者可以在以下两种模式中选择,进行鸿蒙生态应用、元服务的打包和上架。2020 图 3-10:两种打包上架模式 模式一:打包成多个App Pack,不同App Pack的包名是不一样的,每个App Pack都需要单独上架。在运行态,应用和服务的生命周期完全独立。模式二:打包成一个 App Pack,App Pack 里面的 HAP 包名相同,统一上架。在运行态,应用生命周期完全共享。自由流转 传统应用只能在单个设备内运行,当用户有多个设备,且要完成多个任务时,则需要在多个设备间来回切换。因此应用能够在设备之间流转,不间断给用户提供服务的能力就变得非常重要。
26、鸿蒙系统提供了自由流转的能力,使得开发者可以方便地开发出跨越多个设备的应用,用户也能够方便地使用这些功能。2121 自由流转可分为跨端迁移和多端协同两种情况。他们分别是时间上的串行交互和时间上的并行交互。自由流转不仅带给用户全新的交互体验,也为开发者搭建了一座从单设备时代通往多设备时代的桥梁。关于跨端迁移和多端协同详细说明,会在第七章中详细展开。3)统一生态,原生智能 统一生态 移动操作系统和桌面操作系统的跨平台应用开发框架不尽相同,从渲染方式的角度可以归纳为 WebView 渲染、原生渲染和自渲染这三类,鸿蒙系统对应的提供系统 WebView、ArkUI 框架和 XComponent 能力来
27、支撑三种类型的跨平台框架的接入 主流跨平台开发框架已有版本正在适配 HarmonyOS,基于这些框架开发的应用可以以较低成本迁移到鸿蒙系统。原生智能 鸿蒙系统内置强大的 AI 能力,面向鸿蒙生态应用的开发,通过不同层次的 AI 能力开放,满足开发者的不同开发场景下的诉求,降低应用的开发门槛,帮助开发者快速实现应用智能化。2222 图 3-11:原生智能 AI 能力分层开放框架 通过基础API提供AI能力,满足开发者各类AI能力诉求?MachineLearning Kit:提供场景化能力,包括通用卡证识别、实时语音识别等;提供 AI 控件能力,使系统控件融合文字识别等 AI 能力。?Core A
28、I API:提供图像语义、语言语音解析、OCR 文字识别等能力。?Core DeepLearning API:提供高性能低功耗的端侧推理和端侧学习环境。意图框架提供了 HarmonyOS 系统级的意图标准体系,通过多维系统感知、大模型等能力构建全局意图范式,实现对用户显性与潜在意图的理解,并及时、准确地将用户需求传递给生态伙伴,匹配合时宜的服务,为用户提供多模态、场景化进阶场景体验。2323 ChapterChapter 4 4 -1)赋能套件-2)鸿蒙开发套件-3)三方库-4)开发者支持平台 鸿蒙生态应用鸿蒙生态应用 开发能力全景图开发能力全景图 2424 围绕开发者旅程,鸿蒙系统为开发者提
29、供了端到端的开发能力支持。如下图所示,鸿蒙系统为开发者提供了赋能套件、鸿蒙开发套件、三方库、开发者支持平台。具体能力全景图如下图所示:图 4-1:鸿蒙生态应用开发能力全景图 1)赋能套件 开发者了解和学习鸿蒙系统的各类资源,覆盖开发者全旅程,内容包含白皮书、Codelabs、视频课程、技术文章、指南、UX设计资源与指南、API参考、Sample Code与FAQ。2525 图 4-2:赋能套件全景图 鸿蒙生态应用开发白皮书:全面阐释了鸿蒙生态下应用开发核心理念、关键能力以及创新体验,旨在帮助开发者快速、准确、全面的了解鸿蒙开发套件给开发者提供的能力全景和未来的愿景。Codelabs:以教学为目
30、的的代码样例及详细的开发指导,帮助开发者一步步地完成指定场景的应用开发并掌握相关知识。Codelabs 将最新的鸿蒙生态应用开发技术与典型场景结合,让开发者快速地掌握开发高质量应用的方法。同时支持互动式操作,通过文字、代码和效果联动为开发者带来更佳的学习体验。视频课程:基于真实的开发场景,提供向导式学习,多维度融合课程等内容,给开发者提供全新的学习体验。技术文章:针对新发布特性及热点特性提供详细的技术解析和开发最佳实践。开发、测试及上架指南:提供系统能力概述、快速入门,用于指导开发者进行场景化的开发。指南涉及到的知识点包括必要的背景知识、符合开发者实际开发场景的操作任务流(开发流程、开发步骤、
31、调测验证)以及常见问题等。2626 UX 设计资源与指南:提供开发鸿蒙生态应用所需的 UX 设计规范、指导文档以及推荐的设计资源,满足各种场景的设计要求,可以帮助开发者设计出体验一致的鸿蒙生态应用。API 参考:面向开发者提供鸿蒙系统开放接口的全集,供开发者了解具体接口使用方法。API 参考详细地描述了每个接口的功能、使用限制、参数名、参数类型、参数含义、取值范围、权限、注意事项、错误码及返回值等。Sample Code:面向不同类型的开发者提供的鸿蒙生态应用开发优秀实践,每个Sample Code 都是一个可运行的工程,为开发者提供实例化的代码参考。FAQ:开发者常见问题的总结,开发者可以通
32、过 FAQ 更高效地解决常见问题。FAQ 会持续刷新,及时呈现最新的常见问题。具体的内容请访问 https:/ 鸿蒙开发套件包含设计、开发、测试、运维套件以及 OS 开放能力集。通过鸿蒙开发套件,开发者可以高效开发鸿蒙生态应用、元服务。2727 图 4-3:鸿蒙开发套件全景图 设计套件 HarmonyOS Design 是面向万物互联的设计系统,为用户带来全新交互体验。其秉承万物归一,和谐共生,衍生万物的设计理念。设计套件涵盖全面的全场景设计规范、丰富的设计资源,以及设计工具,帮助开发者提升设计和开发效率。开发套件 开发者在应用开发过程中使用到的产品集合,包含 HUAWEI DevEco St
33、udio 以及HUAWEI DevEco Studio 集成的性能调优、设备模拟、命令行工具和 SDK。2828 图 4-4:开发套件全景图 HUAWEI DevEco Studio:鸿蒙生态应用、元服务开发配套的集成开发环境(IDE),提供了工程管理、代码编辑、界面预览、编译构建、代码调试等基础功能,同时还集成了性能调优工具、设备模拟工具、命令行工具等帮助开发者解决特定领域的问题。SDK:集成在 HUAWEI DevEco Studio 中,包含开发者可以使用的 API 定义以及调试编译等基础的工具链。请访问 https:/ 获取最新的HUAWEI DevEco Studio 以及 SDK。
34、测试套件 包括测试标准和测试工具两部分。1.测试标准 覆盖鸿蒙生态应用性能、功耗、稳定性、兼容性、UX、安全、分布式、游戏等测试规范,帮助开发者解决测什么的问题。2929 表 4-1:测试标准覆盖范围 测试标准名称 测试标准覆盖范围说明 性能测试 任务启动时间、界面刷新帧率、应用内存占用及 CPU 占用等。功耗测试 后台长驻任务/托管任务场景功耗、后台硬件器件资源/软件系统资源占用场景功耗及分布式资源占用场景功耗。稳定性测试 长时间运行故障率(App Crash/App Freeze)、长时间运行内存泄漏及长时间运行踩内存等异常场景。兼容性测试 应用和 OS 兼容、应用升级兼容、应用交互兼容及
35、应用分布式兼容。UX 测试 应用 UX 规范一致性、控件截断、文字截断、布局变形、图片模糊、黑边及白块等 UX 显示异常。安全测试 基础安全、用户隐私、权限管理及跨设备安全。分布式测试 流转交互一致性、跨端迁移功能及多端协同功能。游戏测试 游戏音效、消息免打扰、帧率、屏幕点时延、GPU 使用率及后壳温度等。2.测试工具 提供鸿蒙生态应用开发、调试、单元测试、集成测试、上架测试等各开发阶段所需的测试工具集,支持手机、折叠屏、平板、智慧屏、手表、音箱等 1+8+N 设备,帮助开发者全面高效测试。3030 图 4-5:鸿蒙生态应用测试工具概览 典型测试工具能力简介见下表:表 4-2:典型测试工具能力
36、简介 测试能力名称 简介 专项测试套件 覆盖性能、功耗、稳定性、兼容性、UX、安全共 6 项专项自动化测试用例,基于测试标准实现自动化,并以测试服务化方式提供。测试框架 包括单元测试框架和 UI 测试框架,并支持 ArkTS 语言,单元测试框架提供支撑用例运行的基础能力,UI 测试框架提供 UI控件查找、点击、检视、按键注入等模拟用户操作的 API。性能测试工具 应用性能能效调优和测试工具平台;提供测试过程中实时采集FPS、RAM、CPU、GPU 等性能数据的采集能力,同时提供性能能效数据分析可视化分析等能力。稳定性测试工具 应用 UI 随机压测工具,提供 UI 随机事件注入、控件级事件顺序或
37、随机注入、用户操作录制回放、异常日志捕获、可视化报告生成等应用稳定性测试基础能力。3131 测试能力名称 简介 分布式设备录制回放 支持多设备多模输入操作录制,生成基于控件的脚本,开发者添加检查点后形成自动化测试用例脚本,快速自动执行。应用与服务体检 本地速测工具,支持兼容性、设计约束、性能等专项测试,无需编写用例;集成于 HUAWEI DevEco Studio 一键式测试。云测平台 云测平台提供性能、功耗、稳定性、兼容性、UX、安全自动化测试能力,支持流转、万能卡片等鸿蒙系统关键特征自动化测试,支持华为 1+8+N 多设备运行。测试套件获取途径如下表:表 4-3:测试套件获取途径 名称 获
38、取途径 测试套件 华为官网访问路径:https:/ 社区官网访问路径:https:/ 运维套件 主要包括由 HUAWEI AppGallery Connect 提供的上架分发测试和运维分析两大能力。3232 1.上架分发测试能力 提供多种上架分发测试能力,满足开发者在不同阶段的上架分发测试诉求。具体如下表介绍:表 4-4:上架分发测试能力介绍 分发阶段 简介 云测试/调试 快速获取目标机型,便捷远程测试,零脚本、低成本,通过自动化测试快速发现应用的兼容性、性能、稳定性、功耗、安全等问题,出具详细报告,复现与修复应用问题。开放式测试 可以让开发者的应用在正式发布给所有用户前,面向特定用户群组发布
39、测试版本。参与测试的用户可以向开发者反馈,帮助开发者及时发现技术问题或用户体验问题,以在应用/服务正式上架前完成改进,从而在此过程中最大限度地降低对用户的影响。全网上架 开发者在开发测试验证完成后,正式提交应用上架申请,审核人员审核通过后应用就会变为“已上架”状态,用户可在设备上搜索到该应用/服务。分阶段发布 在当前上架版本为全网发布时,开发者可以采用分阶段发布的方式进行升级。采用分阶段发布,可以先向一定比例的用户发布更新的版本,然后再逐步提升用户比例,最终实现全网发布。通过小范围的版本更新,可以快速获取用户对新版本的反馈意见,降低全网发布后版本出现问题的风险。3333 2.运维分析 提供崩溃
40、服务、性能管理及云服务监控,支撑开发者精准定位问题,同时支持多维度分析,智能诊断问题并给出解决方案。表 4-5:运维分析能力介绍 能力名称 简介 崩溃服务 帮助开发者快速发现、定位、解决应用崩溃(又称闪退)问题。无需开发任何代码,即可实时查看可视化数据报告并检测到应用在每个设备上的运行状态,及时快速发现或者定位、解决应用崩溃问题,从而确保应用稳定运行,避免崩溃给用户带来糟糕体验。性能管理 性能管理(APM,App Performance Management)服务提供分钟级应用性能监控能力,检测应用在每个设备上的运行性能数据,帮助开发者快速发现、定位、解决应用性能问题。云服务监控 云服务监控是
41、面向云函数、云数据库等云服务的质量监控解决方案,帮助开发者快速发现、定位、解决云服务的业务层性能问题。OS 开放能力集 OS 开放能力集通过 SDK 的形式对开发者呈现,提供应用开发所需的一系列系统开放能力,包括 UI 框架、Ability、分布式服务、安全、方舟编译器、App Service、基础软件服务、硬件服务等。3434 1.ArkUI 框架 ArkUI 是一套声明式开发框架,它具备简洁自然的 UI 信息语法、丰富的 UI 组件、多维状态管理,以及实时多维度预览等能力,帮助开发者提升应用开发效率,并能在多种设备实现生动而流畅的用户体验。其基础能力如下所示:开箱即用的组件:提供丰富的系统
42、预置组件,可以通过链式调用的方式设置组件的呈现效果。开发者可以组合预置组件为自定义组件,通过这种方式将页面组件转化为一个个独立的 UI 单元,实现页面不同单元的独立创建、开发和复用。丰富的动效接口:提供多种绘制图形能力,同时开放了丰富的动效接口,开发者可以通过封装的物理模型或者调用动画能力接口实现自定义动画。多维度状态与数据管理:状态与数据管理作为声明式开发范式的特色,不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。状态管理包括组件和应用状态管理,合理使用两种状态管理机制,可以在不同场景中仅通过改变数据,自动刷新UI。API 扩展机制:通过相应的扩展机制,封装丰富的系统能力接口,开发者
43、可以通过相应的接口调用,实现高效的业务开发。2.Ability 应用所具备能力的抽象,是应用程序的基本组成部分,主要包括组件生命周期回调、系统环境变化通知、应用跳转、万能卡片开发等能力。具备如下核心的技术特征:基于 MVVM(Model-View-ViewModel)模型:充分结合 ArkUI 的声明式 UI 特性,应用更易于实现界面与逻辑解耦。3535 原生分布式:自带分布式接口,支持跨端迁移和多端协同。支持多设备:Ability 实体与窗口实体解耦,可扩展窗口形态,适应不同的设备形态。3.分布式服务 由于具体场景的差异,以及技术演进、生态构建等各种复杂因素的存在,多设备之间的通信方式各不相
44、同(比如WLAN、蓝牙、ETH、PLC、NFC、USB、Zigbee、红外、超声波等),为了使开发者可以方便快捷地进行分布式开发,鸿蒙系统将跨设备交互涉及的关键能力统一封装并开放给开发者。根据不同的使用场景,分布式服务具体可分为:分布式软总线:支持多设备间协同实现异构组网,对开发者屏蔽不同通信介质和通信协议带来的差异。分布式软总线通过软硬件协同,提供高吞吐、低时延、高可靠、安全可信的通信通道,克服无线通信不可靠、不稳定的挑战,为开发者提供接近本地化访问效果的通信能力。分布式文件:基于分布式软总线,为应用跨设备文件相互访问提供完整解决方案。分布式文件系统是一个直接构建在内核态,无中心、高性能的文
45、件系统。提供了标准的 POSIX 操作能力,使开发者可以像使用本地文件一样访问分布式文件系统。分布式数据库:基于分布式软总线实现数据的分布式管理。用户数据不再与单一物理设备绑定,跨设备的数据处理如同本地数据处理一样方便快捷,对外呈现一份全局唯一的数据视图,让开发者能够轻松处理多设备下的数据存储、共享和访问。分布式硬件:打破单一设备的硬件边界,是软件定义各种新产品形态和体验的“新硬件”所需的关键技术。分布式硬件能够将硬件设备化整为零,形成“超级终端”3636 硬件资源池,供多个设备共享使用,真正达到软件定义硬件、设备间实现系统级融合并灵活按需适应不同场景的目的。融合感知:构筑在传感器技术和多模感
46、知技术上的系统开放能力,提供了对设备、环境、用户等的各类状态的感知能力,例如设备的摆放姿态、操作行为、多设备间的空间拓扑关系、用户的移动状态、位置信息,甚至是用户的情绪等。融合感知目前提供了六种不同的感知能力:表 4-6:融合感知能力 分类 描述 空间感知 多设备空间感知模块,基于综合传感处理平台的空间感知原子算法能力,提供多设备间的空间感知结果,包括设备间距离、角度、方位关系等。移动状态感知 移动感知模块,通过加速度传感器、陀螺仪、磁力计、气压计等传感器及 Modem 基站信息,判断用户所处移动状态:乘车、步行、乘坐直梯、自行车、走、跑、静止、快步走、高铁、步行、电梯、相对静止、手持步行、躺
47、卧、智能飞行、飞机、车载(不包含地铁、火车、高铁等轨道交通和自行车之外的交通工具)、停留、地铁。设备状态感知 设备状态服务,通过加速度传感器、陀螺仪、接近光等传感器及Modem 基站、Wi-Fi 扫描信息,判断用户手机状态:高精度静止、中精度静止等。手势感知 能够感知操作手势,比如拿起、翻转、靠近耳朵、摇一摇、旋转、口袋模式、拿离耳朵、落腕、抬腕、招一招。地理围栏 地理围栏服务,负责围栏监控及围栏进出事件上报。3737 分类 描述 时间线 时间线服务,根据移动感知的信息,区分家和公司的场景,保存一天内用户停留和移动的行为,用于智慧画像。4.安全 鸿蒙系统提供严格的隐私保护和数据安全系统能力,保
48、护消费者智能终端安全。具体的安全隐私能力包括:设备互信认证服务:为保证分布式系统的连接安全,实现用户数据在分布式场景下各个设备之间的安全流转,需要保证设备之间相互正确可信,即设备和设备之间建立信任关系,并能够在验证信任关系后搭建安全的连接通道,实现用户数据的安全传输。设备之间的信任关系包括同帐号设备之间的可信关系,以及点对点绑定的设备可信关系。用户身份认证:鸿蒙系统除提供数字密码、图形密码的传统身份认证方式,还提供指纹识别、人脸识别等生物认证手段。根据不同认证方式的安全能力和特点,可应用于相应的身份认证场景,如设备解锁、应用锁,移动支付等。同时,针对分布式业务场景,为提升用户认证的便捷性,鸿蒙
49、系统提供分布式协同认证能力,使用户可便捷地以近端设备为入口完成用户身份认证。应用程序隔离和权限管理:权限访问控制是基于 Access Token构建的应用权限管理能力,系统化地规范应用程序的行为准则与权限许可并强制执行。由于应用通过沙箱机制彼此隔离,默认情况下,应用只能访问有限的系统资源。但应用为了扩展功 3838 能,需要访问沙箱外的系统或其它应用的数据或能力,系统或应用也需要具备共享数据或能力。为了保证这些数据或能力不被不当或恶意使用,Access Token 权限管理机制提供了程序操作某种对象的许可,在应用层面,使用显式定义且经用户授权的权限控制机制。数据分级访问控制架构:为用户数据提供
50、了全生命周期的安全防护措施,确保在每一个阶段,数据都能获得与其个人数据敏感程度、系统数据重要程度和应用程序数据资产价值匹配的保护措施。数据创建时即指定数据分级标签,基于标签关联全生命周期的访问控制权限和策略。在数据存储时,基于不同分级标签,采取不同的加密措施。在数据传输时,高敏感等级的数据禁止向低安全能力的设备上传递,同时禁止低安全能力的设备发出指令控制高敏感等级的资源和外设。数据防泄露保护:数据生命周期范围内,数据的存储、访问和传输过程中数据泄漏风险比较大。数据防泄漏保护服务保证数据跨设备传输到另一设备后,依然具有相应的访问管控能力。5.方舟编译器(ArkCompiler)支持多种编程语言、