3、分发3)服务分发93101972)设计481)赋能套件24全方位运维分析O9全场景案例参考1O附录:术语O8O7自由流转与分布式运行环境1)价值与架构定义2)跨端迁移3)多端协同10711111022万物互联时代应用开发的机遇、挑战和趋势ChapterChapter1133经过十多年的发展,传统移动互联网的增长红利已渐见顶。万物互联时代正在开启,应用的设备底座将从几十亿手机扩展到数百亿IoT设备。GSMA预测到2025年,全球物联网终端连接数量将达246亿个,其中消费物联网终端连接数量将达110亿个(注:数据来自
4、于全球移动通信系统协会发布的2020年移动经济报告)。IDC预计到2025年,中国物联网总连接量将达到102.7亿个(注:数据来自于IDC发布的中国物联网连接规模预测,20202025报告)。全新的全场景设备体验,正深入改变消费者的使用习惯。同时应用开发者也面临设备底座从手机单设备到全场景多设备的转变,通过全场景多设备作为全新的底座,为消费者带来万物互联时代更为高效、便捷的体验。新的场景同时也带来了新的挑战。开发者不仅需要支持更加多样化的设备,还需要支持跨设备的协作。不同设备类型意味着不同的传感器能力、硬件能力、屏幕尺寸、操作系统和开发语言,还意味着差异化的交互方式。同时跨设备协作
7、院发布的2021年度小程序互联网发展白皮书),远超App数量。大型应用开发者普遍向用户提供轻量化程序实体。在很多特定的使用场景下,小程序等轻量化程序实体的使用占比已超过App,成为面向用户的主要触达方式。轻量化的程序实体所具备的“即用即走、无需安装卸载、永远最新”的特征,也推动了App基于搜索下载的“人找应用”的传统分发向“服务找人”的智慧分发的演进。App遵循“搜索、下载、安装、使用”的模式,用户主动发现的成本高,拉新、促活、召回的全生命周期流程相对被动。轻量化的程序实体具有即用即走的体验,可通过各类终端的系统级智慧入口进行分发,甚至可以在三方App中分发,依托无所不在的入
8、口流量和标签化识别,向用户主动提供精准服务。配合CPS(CostPerSale)等商业模式,可以为开发者带来更高的ROI(ReturnofInvestment)。为了更好的抓住机遇,应对万物互联所带来的一系列挑战,新的应用生态应该具备如下特征:55单一设备延伸到多设备:应用一次开发就能在多个设备上运行,软件实体能够从单一设备转移到其他设备上,且多个设备间能够协同运行,给消费者提供全新的分布式体验。厚重应用模式到轻量化服务模式:提供轻量化的服务,最小化资源消耗,一步直达,快速完成消费者特定场景的任务。集中化分发到AI加持下的智慧分发:为消费者提供智慧场景服务,实现“服务找人”
9、。纯软件到软硬芯协同的AI能力:提供软硬芯协同优化的原生AI能力,全面满足应用高性能诉求。66鸿蒙生态应用开发核心概念ChapterChapter2277HarmonyOS应用:使用HarmonyOSSDK开发的应用程序,能够在华为终端设备(如:手机、平板等)上运行,其有两种形态:传统方式的需要安装的App。轻量级,具备免安装,随处可即,服务直达,自由流转等关键特征的元服务。HarmonyOS元服务:元服务是HarmonyOS面向万物互联时代提供的一种轻量级应用程序形态。它基于HarmonyOS平台开放能力开发,打包为AppPack形态,运行在
10、HarmonyOS操作系统,拥有一张或者多张万能卡片,由HarmonyOS应用程序框架管理,具备随处可及、服务直达、跨设备等核心特征。万能卡片:HarmonyOS系统定义的一种界面展示形式,它是HarmonyOS元服务的一个组成部分,将重要信息或操作前置到卡片,以达到服务直达,减少操作层级的目的。万能卡片常用于嵌入到其他系统应用(桌面/负一屏)中作为其界面的一部分显示,并支持点击拉起元服务。HarmonyOS元服务必须实现万能卡片。HarmonyOS应用与元服务基于同一个鸿蒙系统技术栈开发,同属一个鸿蒙生态。开发者通过业务解耦将应用分解为若干元服务独立开发,按需根据场景组合成复杂应
11、用。88鸿蒙生态应用鸿蒙生态应用核心技术理念核心技术理念ChapterChapter3311-1)一次开发,多端部署-2)可分可合,自由流转-3)统一生态,原生智能99在万物智联时代重要机遇期,鸿蒙系统结合移动生态发展的趋势,提出了三大技术理念:一次开发,多端部署;可分可合,自由流转;统一生态,原生智能。图3-1:核心技术理念1)一次开发,多端部署“一次开发,多端部署”指的是一个工程,一次开发上架,多端按需部署。目的是为了支撑开发者高效地开发多种终端设备上的应用。为了实现这一目的,鸿蒙系统提供了几个核心能力,包括多端开发环境,多端开发能力以及多端分发机制。1010
12、图3-2:一次开发多端部署多端开发环境HUAWEIDevEcoStudio是面向全场景多设备提供的一站式开发平台,支持多端双向预览、分布式调优、分布式调试、超级终端模拟、低代码可视化开发等能力,帮助开发者降低成本、提升效率、提高质量。HUAWEIDevEcoStudio提供的核心能力如下图所示:图3-3:HUAWEIDevEcoStudio核心功能和特征1.多端双向预览在鸿蒙生态应用的开发阶段,因不同设备的屏幕分辨率、形状、大小等差异,开发者需要在不同设备上查看UI界面显示,确保实现效果与设计目标一致。传统的开发模式下,开1111发者需要获取大量不同的真
13、机设备用于测试验证。HUAWEIDevEcoStudio提供了多种设备的双向预览能力,支持同时查看UI代码在多个设备上的预览效果,并支持UI代码和预览效果的双向定位修改。2.分布式调试鸿蒙生态应用具有天然的分布式特征,体现在同一个应用在多个设备之间会有大量的交互。开发过程中,对这些交互进行调试时,需要对每个设备分别建立调试会话,并且需要在多个设备之间来回切换,容易造成调试不连续、操作繁琐等问题。为了提升开发效率,HUAWEIDevEcoStudio提供了分布式调试功能,支持跨设备调试,通过代码断点和调试堆栈可以方便地跟踪不同设备之间的交互,用于定位多设备互动场景下的代码缺
14、陷。图3-4:分布式调试交互图3.分布式调优分布式应用的运行性能至关重要。在跨端迁移场景中,需要应用在目标设备上快速启动,以实现和原设备之间的无缝衔接;在多端协同场景中,需要应用在算力和资源不同的多个设备上都能高效运行,以获得整体的流畅体验。以往开发者在分析分布式应用的性能问题时,1212需要单独查看每个设备的性能数据,并手动关联分析这些数据,操作繁琐,复杂度高。HUAWEIDevEcoStudio提供了分布式调优功能,支持多设备分布式调用链跟踪、跨设备调用堆栈缝合,同时采集多设备性能数据并进行联合分析。图3-5:多设备联合分析4.超级终端模拟移动应用开发时需要使用本地模拟
15、器来进行应用调试,实现快速开发的目的。鸿蒙生态应用需要运行在多种不同类型的设备上,为此HUAWEIDevEcoStudio提供了不同类型的终端模拟,支持开发者在多个模拟终端上进行开发调试,降低门槛、节约成本。同时,多个模拟终端、真机设备也可以自由地组成超级终端,进一步降低开发者获取分布式调测环境的难度。5.低代码可视化开发低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码1313编写,快速地构建多端应用程序。低代码开发的产物如组件、模板等可以被其他模块的代码引用,并且能通
16、过跨工程复用,支持开发团队协同完成复杂应用的开发。多端开发能力应用如需在多个设备上运行,需要适配不同的屏幕尺寸和分辨率、不同的交互方式(如触摸和键盘等)、不同的硬件能力(如内存差异和器件差异等),开发成本较高。因此,多端开发能力的核心目标是降低多设备应用的开发成本。为了实现该目标,鸿蒙系统提供了以下几个核心能力,支持多端UI适配,交互事件归一,设备能力抽象,帮助开发者降低开发与维护成本,提高代码复用度。1.多端UI适配不同设备屏幕尺寸、分辨率等存在差异,鸿蒙系统将对屏幕进行逻辑抽象,包括尺寸和物理像素,并提供丰富的自适应/响应式的布局和视觉能力,方便开发者进行不同屏幕的界面适配。屏
17、幕逻辑抽象:鸿蒙系统提供虚拟像素vp(virtualpixel)对分辨率进行抽象,不同设备的系统在底层将物理像素转化成虚拟像素,为应用开发者提供统一单位。不同设备的尺寸存在差异,鸿蒙系统根据设备的屏幕水平宽度,抽象和定义了四种尺寸:超小(xs)、小(sm)、中(md)、大(lg)。这四种抽象后的屏幕尺寸与日常使用的设备屏幕类型有一定的对应关系,例如:超小对应智能穿戴设备,小对应手机和折叠屏折叠态,中对应折叠屏展开态和平板,大对应智慧屏。开发者可面向应用运行的目标设备进行屏幕类型的适配。1414图3-6:尺寸抽象化布局:鸿蒙系统提供的布局主要分为自适应布局和响应式布局。自适应布局是当外
18、部容器大小发生变化时,容器内元素可以根据相对关系自动变化以适应外部容器变化的布局能力。相对关系包含占比、固定宽高比、显示优先级等。当前自适应布局能力主要有7种:拉伸能力、均分能力、占比能力、缩放能力、延伸能力、隐藏能力、折行能力。响应式布局是当显示空间大小发生变化时,布局可以根据预设断点、栅格或特定的特征(如屏幕方向、窗口宽高等)进行自动切换。当前响应式布局能力主要有3种:断点、媒体查询、栅格布局。鸿蒙系统将响应式布局能力下沉到默认组件的基础属性中,比如网格、列表和轮播组件等,支持自动增加显示列数,以便充分利用屏幕宽度,节省应用开发工作量。视觉:鸿蒙系统提供的视觉样式能力,包括分层参数
19、、多态组件和主题。2.交互事件归一事件归一抽象:不同设备间的交互方式等存在差异,如触摸、键盘、鼠标、语音、手写笔等,鸿蒙系统将不同设备的输入映射成归一交互事件,从而简化开发者适配逻辑。以缩放交互为例,通过多指触控的张合来完成缩放动作,在多设备场景下,缩放交互会出现多种不同的操作输入方式,如表3-1所示。为了让应用更容易的支持不同的交互方式,鸿蒙系统提供归一的缩放交互事件。1515表3-1:缩放交互的规则操作方式触屏双指捏合交互键盘Ctrl键+鼠标滚轮交互键盘Ctrl键+“+/-”键交互触控板双指捏合交互表冠旋转交互上报事件触屏双指捏合事件按键+滚轮组合事件
20、按键组合点击事件触控板双指捏合事件表冠旋转事件组件归一响应:当应用部署在不同设备上供用户使用时,需要支持多种I/O设备,界面呈现出相应的状态为用户提供正确的视觉引导。例如触摸时显示按压状态,鼠标特有的悬停状态,键盘走焦状态。鸿蒙系统默认提供多种交互方式的组件实现,方便开发者支持多种输入方式。3.设备能力抽象不同设备间的软、硬件能力等存在差异,如设备是否具备定位能力、是否具备摄像头、是否具备蓝牙功能等,鸿蒙系统需要对设备能力进行逻辑抽象,并提供接口来查询设备是否支持某一能力,方便开发者进行不同软、硬件能力的功能适配。在鸿蒙系统中,使用SystemCapability(简写为SysC
21、ap)定义每个部件对应用开发者提供的系统软硬件能力。应用开发者基于统一的方式访问不同设备的能力。1616图3-7:API、SystemCapability、部件和设备的关系多端分发机制如果需要开发多设备上运行的应用,一般会针对不同类型的设备多次开发并独立上架。开发和维护的成本大,为了解决这个问题,鸿蒙系统提供了“一次开发,多端部署”的能力,开发者开发多设备应用,只需要一套工程,一次打包出多个HAP,统一上架,即可根据设备类型按需进行分发。除了可以开发传统的应用,开发者还可以开发元服务。元服务是一种面向未来的服务提供方式,具有独立入口的、免安装的、可为用户提供一个或多个便捷服务的应用程
22、序形态。鸿蒙系统为元服务提供了更多的分发入口,方便用户获取,同时也增加了元服务露出的机会。17171.多设备按需分发鸿蒙系统提供了两种模式帮助开发者基于“一次开发,多端部署”能力分发应用和元服务到不同设备上。图3-8:多设备按需分发的两种模式模式1:应用或服务的UI自适应不同尺寸的设备屏幕,并且在不同设备的功能相同,可以实现多设备共享一个HAP包。这种场景下建议开发者通过一个模块来开发,并配置该模块支持多设备,然后再编译构建生成一个HAP,分发到不同类型的设备上运行。模式2:应用或服务的UI、功能在不同设备间存在差异,无法实现HAP包多设备归一。可根据实际情况设置不
23、同模块适用的设备类型,编译构建多个HAP包,一起上架。HUAWEIAppGalleryConnect会自动提取HAP中的设备类型的配置信息,为对应的设备自动分发正确的HAP包组合。18182.多入口按需分发鸿蒙系统为元服务提供了更多的分发入口,基于场景和用户意图拉起元服务,实现“服务直达”。鸿蒙生态提供的丰富入口如下图所示:图3-9:多入口按需分发2)可分可合,自由流转元服务是鸿蒙系统提供的一种全新的应用形态,具有独立入口,用户可通过点击、碰一碰、扫一扫等方式直接触发,无需显式安装,由程序框架后台静默安装后即可使用,可为用户提供便捷服务。传统移动生态下,开发者通常需
24、要开发一个原生应用版本,如果提供小程序给用户,往往需要开发若干个独立的小程序。鸿蒙生态下,鸿蒙原生支持元服务开发,开发者无需维护多套版本,通过业务解耦将应用分解为若干元服务独立开发,按需根据场景组合成复杂应用。1919元服务基于鸿蒙系统API开发,支持运行在1+8+N设备上,供用户在合适的场景、合适的设备上便捷使用。元服务是支撑可分可合,自由流转的轻量化程序实体,帮助开发者的服务更快触达用户。具备如下特点:触手可及:元服务可以在服务中心发现并使用,同时也可以基于合适场景被主动推荐给用户使用,例如用户可在服务中心和小艺建议中发现系统推荐的服务。服务直达:元服务无需安装卸载,“秒开体验”
25、,即点即用,即用即走。万能卡片:支持用户无需打开元服务便可获取服务内重要信息的展示和动态变化,如天气、关键事务备忘、热点新闻列表。自由流转:元服务支持运行在多设备上并按需跨端迁移,或者多个设备协同起来给用户提供最优的体验。例如手机上未完成的邮件,迁移到平板继续编辑,手机用作文档翻页和批注,配合智慧屏完成分布式办公;例如分布式游戏场景,手机可作为手柄,与智慧屏配合玩游戏,获得新奇游戏体验。可分可合在开发态,开发者通过业务解耦,把不同的业务拆分为多个模块。在部署态,开发者可以将一个或多个模块自由组合,打包成一个AppPack统一上架。在分发运行态,每个HAP都可以单独分发满足用户单一使用
26、场景,也可以多个HAP组合分发满足用户更加复杂的使用场景。开发者可以在以下两种模式中选择,进行鸿蒙生态应用、元服务的打包和上架。2020图3-10:两种打包上架模式模式一:打包成多个AppPack,不同AppPack的包名是不一样的,每个AppPack都需要单独上架。在运行态,应用和服务的生命周期完全独立。模式二:打包成一个AppPack,AppPack里面的HAP包名相同,统一上架。在运行态,应用生命周期完全共享。自由流转传统应用只能在单个设备内运行,当用户有多个设备,且要完成多个任务时,则需要在多个设备间来回切换。因此应用能够在设备之间流转,不间断给用户提供服
28、omponent能力来支撑三种类型的跨平台框架的接入主流跨平台开发框架已有版本正在适配HarmonyOS,基于这些框架开发的应用可以以较低成本迁移到鸿蒙系统。原生智能鸿蒙系统内置强大的AI能力,面向鸿蒙生态应用的开发,通过不同层次的AI能力开放,满足开发者的不同开发场景下的诉求,降低应用的开发门槛,帮助开发者快速实现应用智能化。2222图3-11:原生智能AI能力分层开放框架通过基础API提供AI能力,满足开发者各类AI能力诉求MachineLearningKit:提供场景化能力,包括通用卡证识别、实时语音识别等;提供AI控件能力,使系统控件融合文字识别等A
29、I能力。CoreAIAPI:提供图像语义、语言语音解析、OCR文字识别等能力。CoreDeepLearningAPI:提供高性能低功耗的端侧推理和端侧学习环境。意图框架提供了HarmonyOS系统级的意图标准体系,通过多维系统感知、大模型等能力构建全局意图范式,实现对用户显性与潜在意图的理解,并及时、准确地将用户需求传递给生态伙伴,匹配合时宜的服务,为用户提供多模态、场景化进阶场景体验。2323ChapterChapter44-1)赋能套件-2)鸿蒙开发套件-3)三方库-4)开发者支持平台鸿蒙生态应用鸿蒙生态应用开发能力全景图开发能力全景图2424围绕开发者
32、流(开发流程、开发步骤、调测验证)以及常见问题等。2626UX设计资源与指南:提供开发鸿蒙生态应用所需的UX设计规范、指导文档以及推荐的设计资源,满足各种场景的设计要求,可以帮助开发者设计出体验一致的鸿蒙生态应用。API参考:面向开发者提供鸿蒙系统开放接口的全集,供开发者了解具体接口使用方法。API参考详细地描述了每个接口的功能、使用限制、参数名、参数类型、参数含义、取值范围、权限、注意事项、错误码及返回值等。SampleCode:面向不同类型的开发者提供的鸿蒙生态应用开发优秀实践,每个SampleCode都是一个可运行的工程,为开发者提供实例化的代码参考。FAQ:开发者常见
36、升级兼容、应用交互兼容及应用分布式兼容。UX测试应用UX规范一致性、控件截断、文字截断、布局变形、图片模糊、黑边及白块等UX显示异常。安全测试基础安全、用户隐私、权限管理及跨设备安全。分布式测试流转交互一致性、跨端迁移功能及多端协同功能。游戏测试游戏音效、消息免打扰、帧率、屏幕点时延、GPU使用率及后壳温度等。2.测试工具提供鸿蒙生态应用开发、调试、单元测试、集成测试、上架测试等各开发阶段所需的测试工具集,支持手机、折叠屏、平板、智慧屏、手表、音箱等1+8+N设备,帮助开发者全面高效测试。3030图4-5:鸿蒙生态应用测试工具概览典型测试工具能力简介见下表:表
37、4-2:典型测试工具能力简介测试能力名称简介专项测试套件覆盖性能、功耗、稳定性、兼容性、UX、安全共6项专项自动化测试用例,基于测试标准实现自动化,并以测试服务化方式提供。测试框架包括单元测试框架和UI测试框架,并支持ArkTS语言,单元测试框架提供支撑用例运行的基础能力,UI测试框架提供UI控件查找、点击、检视、按键注入等模拟用户操作的API。性能测试工具应用性能能效调优和测试工具平台;提供测试过程中实时采集FPS、RAM、CPU、GPU等性能数据的采集能力,同时提供性能能效数据分析可视化分析等能力。稳定性测试工具应用UI随机压测工具,提供UI随机事
38、件注入、控件级事件顺序或随机注入、用户操作录制回放、异常日志捕获、可视化报告生成等应用稳定性测试基础能力。3131测试能力名称简介分布式设备录制回放支持多设备多模输入操作录制,生成基于控件的脚本,开发者添加检查点后形成自动化测试用例脚本,快速自动执行。应用与服务体检本地速测工具,支持兼容性、设计约束、性能等专项测试,无需编写用例;集成于HUAWEIDevEcoStudio一键式测试。云测平台云测平台提供性能、功耗、稳定性、兼容性、UX、安全自动化测试能力,支持流转、万能卡片等鸿蒙系统关键特征自动化测试,支持华为1+8+N多设备运行。测试套件获取途径如下表:表4-3:测
40、前,面向特定用户群组发布测试版本。参与测试的用户可以向开发者反馈,帮助开发者及时发现技术问题或用户体验问题,以在应用/服务正式上架前完成改进,从而在此过程中最大限度地降低对用户的影响。全网上架开发者在开发测试验证完成后,正式提交应用上架申请,审核人员审核通过后应用就会变为“已上架”状态,用户可在设备上搜索到该应用/服务。分阶段发布在当前上架版本为全网发布时,开发者可以采用分阶段发布的方式进行升级。采用分阶段发布,可以先向一定比例的用户发布更新的版本,然后再逐步提升用户比例,最终实现全网发布。通过小范围的版本更新,可以快速获取用户对新版本的反馈意见,降低全网发布后版本出现问题的风险。3333
41、2.运维分析提供崩溃服务、性能管理及云服务监控,支撑开发者精准定位问题,同时支持多维度分析,智能诊断问题并给出解决方案。表4-5:运维分析能力介绍能力名称简介崩溃服务帮助开发者快速发现、定位、解决应用崩溃(又称闪退)问题。无需开发任何代码,即可实时查看可视化数据报告并检测到应用在每个设备上的运行状态,及时快速发现或者定位、解决应用崩溃问题,从而确保应用稳定运行,避免崩溃给用户带来糟糕体验。性能管理性能管理(APM,AppPerformanceManagement)服务提供分钟级应用性能监控能力,检测应用在每个设备上的运行性能数据,帮助开发者快速发现、定位、解决应用性能问题。
45、设备之间的通信方式各不相同(比如WLAN、蓝牙、ETH、PLC、NFC、USB、Zigbee、红外、超声波等),为了使开发者可以方便快捷地进行分布式开发,鸿蒙系统将跨设备交互涉及的关键能力统一封装并开放给开发者。根据不同的使用场景,分布式服务具体可分为:分布式软总线:支持多设备间协同实现异构组网,对开发者屏蔽不同通信介质和通信协议带来的差异。分布式软总线通过软硬件协同,提供高吞吐、低时延、高可靠、安全可信的通信通道,克服无线通信不可靠、不稳定的挑战,为开发者提供接近本地化访问效果的通信能力。分布式文件:基于分布式软总线,为应用跨设备文件相互访问提供完整解决方案。分布式文件系统是一个直接构建在内
46、核态,无中心、高性能的文件系统。提供了标准的POSIX操作能力,使开发者可以像使用本地文件一样访问分布式文件系统。分布式数据库:基于分布式软总线实现数据的分布式管理。用户数据不再与单一物理设备绑定,跨设备的数据处理如同本地数据处理一样方便快捷,对外呈现一份全局唯一的数据视图,让开发者能够轻松处理多设备下的数据存储、共享和访问。分布式硬件:打破单一设备的硬件边界,是软件定义各种新产品形态和体验的“新硬件”所需的关键技术。分布式硬件能够将硬件设备化整为零,形成“超级终端”3636硬件资源池,供多个设备共享使用,真正达到软件定义硬件、设备间实现系统级融合并灵活按需适应不同场景的目的。融合感知:
47、构筑在传感器技术和多模感知技术上的系统开放能力,提供了对设备、环境、用户等的各类状态的感知能力,例如设备的摆放姿态、操作行为、多设备间的空间拓扑关系、用户的移动状态、位置信息,甚至是用户的情绪等。融合感知目前提供了六种不同的感知能力:表4-6:融合感知能力分类描述空间感知多设备空间感知模块,基于综合传感处理平台的空间感知原子算法能力,提供多设备间的空间感知结果,包括设备间距离、角度、方位关系等。移动状态感知移动感知模块,通过加速度传感器、陀螺仪、磁力计、气压计等传感器及Modem基站信息,判断用户所处移动状态:乘车、步行、乘坐直梯、自行车、走、跑、静止、快步走、高铁、步行、电梯
49、护和数据安全系统能力,保护消费者智能终端安全。具体的安全隐私能力包括:设备互信认证服务:为保证分布式系统的连接安全,实现用户数据在分布式场景下各个设备之间的安全流转,需要保证设备之间相互正确可信,即设备和设备之间建立信任关系,并能够在验证信任关系后搭建安全的连接通道,实现用户数据的安全传输。设备之间的信任关系包括同帐号设备之间的可信关系,以及点对点绑定的设备可信关系。用户身份认证:鸿蒙系统除提供数字密码、图形密码的传统身份认证方式,还提供指纹识别、人脸识别等生物认证手段。根据不同认证方式的安全能力和特点,可应用于相应的身份认证场景,如设备解锁、应用锁,移动支付等。同时,针对分布式业务场景,为提
51、控制架构:为用户数据提供了全生命周期的安全防护措施,确保在每一个阶段,数据都能获得与其个人数据敏感程度、系统数据重要程度和应用程序数据资产价值匹配的保护措施。数据创建时即指定数据分级标签,基于标签关联全生命周期的访问控制权限和策略。在数据存储时,基于不同分级标签,采取不同的加密措施。在数据传输时,高敏感等级的数据禁止向低安全能力的设备上传递,同时禁止低安全能力的设备发出指令控制高敏感等级的资源和外设。数据防泄露保护:数据生命周期范围内,数据的存储、访问和传输过程中数据泄漏风险比较大。数据防泄漏保护服务保证数据跨设备传输到另一设备后,依然具有相应的访问管控能力。5.方舟编译器(ArkCompil
52、er)支持多种编程语言、多种芯片平台联合编译、运行而设计的统一编译运行时平台。支持包括动态类型和静态类型语言在内的多种编程语言,如ArkTS、TS、JS。方舟编译器是鸿蒙系统作为手机、平板、电视、车机和智能穿戴等多种设备统一操作系统的编译运行时底座。主要分成两个部分,编译工具链与运行时。编译工具链以ArkTS/TS/JS源码作为输入,将其编译生成为ABC(ArkCompilerBytecode,即方舟字节码)文件。运行时直接运行字节码文件,实现对应语言规范的语义逻辑。架构图如下图所示:3939图4-6:方舟编译器方舟编译器具备如下核心技术特点:原生支持类型:目前业界引擎执行TS
53、的方式是先把TS转化为JS,再运行JS源码来完成对应的语义逻辑。方舟编译器的编译工具链编译TS源码时,会分析推导TS的类型信息并将其传递给运行时。运行时直接使用类型信息在运行前预生成内联缓存(InlineCache)以加速字节码执行。另外,TSAOT(Ahead-of-Time)Compiler,可以利用字节码文件中的类型信息,直接编译生成优化机器码,使得应用可以直接运行优化机器码,获得高性能运行体验。并发模型优化与并发API:ECMAScript规范没有提供并发语义表述,业界引擎,如浏览器或者Node.js,通常会提供基于Actor并发模型的WorkerAPI
54、来支持多线程开发。Actor模型下执行体之间不共享任何数据对象,通过消息机制进行通信。因此Web引擎或者Node.js引擎的Worker都有启动速度慢、内存占用高这些问题。针对这些问题,方舟编译器运行时已经实现了Actor实例中的不可变或者不易变的对象(方法和字节码)的共享,较大程度地优化了Actor的启动性能和启动内存。简洁的并发API:方舟编译运行时不只提供了业界通用的WorkerAPI,还提供了TaskPool,作为并发API的增强。TaskPool是一个支持优先级调度、工作线程自动扩缩容的任务池功能库。开发者无需关心并发实例的生命周期,也无需关心任务
55、4040负载变化时需要创建或者销毁并发实例,极大地简化了高性能多线程鸿蒙应用的开发。安全:方舟编译器前端编译工具链将ArkTS/TS/JS程序预先静态编译为方舟字节码,并且还提供了多重混淆能力的增强,有效地提升了开发者代码资产的安全强度。同时出于安全的考虑,ArkCompiler不支持sloppy模式的JS代码,也不支持eval等运行动态字符串的功能。6.基础软件服务鸿蒙系统为开发者提供了通用的基础软件服务,包括多媒体、通信、图形、文件存储、升级、无障碍等,下面介绍三个常用的服务。多媒体服务是指用户听觉、视觉信息的表达、存储和还原的处理过程。多媒体服务确保在不同设备上运
56、行的性能和体验,同时也为应用开发者提供统一的接口,让开发者更多专注于业务开发,轻松使用多媒体资源。相机服务:提供精确控制相机镜头,采集视觉信息的能力。视频服务:提供听觉和视觉信息的解压播放和压缩录制的能力。音频服务:提供音频播放、音频采集、音量管理和短音播放的能力。图片服务:提供单张图片信息解压还原和压缩的能力。数据服务:提供音频文件、视频文件、图片文件等数据高效管理能力。4141通信服务为各种各样的终端设备提供多样信息的传递,鸿蒙系统提供业界主流和常见的通信方式,涵盖短距离的无线通信(NFC、蓝牙和WLAN等)、长距离的蜂窝通信,以及有线的以太网通信等服务,并且为其提供网络管
58、高效的显示体验。图形系统按功能维度分为渲染服务、绘制、动画、效果、显示与内存管理、2D图形库和3D图形引擎这几个子模块。绘制:提供高性能的2D渲染服务。动画:提供轻量的、链式的、物理连续的动画实现。效果:提供高性能,基于物理的多类型的动效能力。4242渲染服务:提供应用的界面显示(包括控件、动效等UI元素),将不同应用渲染的图层进行合成,送显的过程。显示与内存管理:提供了硬件合成、送显、Vsync以及显示设备、Surface、Bufferqueue轮转、本地平台化窗口等能力。2D图形库:提供2D渲染库SKIA和轻量并行渲染等能力。3D图形引擎:提供
59、3D图形场景管理、渲染系统、插件平台和物理引擎等能力。7.硬件服务硬件服务通过屏蔽硬件厂家接口差异,为应用提供统一的接口规范,从而使开发者便捷地控制外设,其中包括电源、USB、泛sensor和位置服务等,下面介绍两个常用的服务。泛sensor服务是应用访问底层硬件传感器的一种设备抽象概念。根据鸿蒙系统提供的SensorAPI查询设备上支持的传感器类型,并订阅指定传感器的数据,通过定制相应的算法,开发各类应用,比如指南针、运动健康、游戏等。订阅:提供数据订阅能力,系统将获取到的传感器数据上报给订阅者。控制:提供设置传感器的数据采样间隔和数据上报间隔等控制能力。服务管理:提
60、供各类传感器列表的查询管理能力。数据上报:提供数据接收、解析及分发的能力。4343权限管控:提供传感器权限管控能力。维测:提供传感器的调试和打点能力。位置服务(LBS,LocationBasedServices)又称定位服务,是由移动通信网络和卫星定位系统结合在一起提供的一种增值业务,通过一组定位技术获得移动终端的位置信息(如经纬度坐标数据),提供给移动用户本人或他人以及通信系统。全球导航卫星系统定位:提供GNSS定位服务的全能力,包含GNSS定位请求管理、GNSS芯片参数设置、GNSS芯片参数上报订阅、GNSS缓存等功能。网络定位:提供基站、WLAN和蓝牙等网络
61、定位框架能力。地理编码:提供地理编码转换服务框架能力。被动定位:提供被动定位功能,允许应用进行被动定位,该种类型定位不会主动发起GNSS定位或者网络定位,只有当其他应用有GNSS或者网络定位请求时,被动定位的应用才会收到位置信息。地理围栏:提供地理围栏的能力,支持围栏添加和删除、围栏事件订阅和取消、围栏事件主动通知等功能。区域管理:提供国家码、城市码、区域码等信息的检测能力,对外提供国家码查询接口,主动监听国家码等信息变化并通知给应用。44448.AppService华为移动服务开放能力是为鸿蒙生态应用开发提供场景化服务的平台。同时,依托华为云服务,AppService
65、发者社区:开发者技术交流平台,帮助开发者探索开发实践、交流心得经验、获悉业界动态、答疑解惑。开发者学堂:聚合官方鸿蒙生态课程,课程有慕课、微课、直播课、训练营等多种形式,内容有入门、基础、进阶分级,面向开发者提供学、练、考、证一站式服务,满足开发者不同阶段的学习诉求。开发者成长计划:设置校园开发者计划(HSD)、布道师计划(HDE)等开发者成长计划,助力不同类型开发者提升技能,帮助开发者相互连接、共享能力、彼此启发、协同激励。开发者技术支持:针对开发者在开发实践中的具体问题提供问题反馈平台,其中智能客服提供7*24小时自助式智慧技术问答;工单系统由技术客服为开发者提供问题处理和在线技术支持
66、。4747ChapterChapter5511高效开发与测试高效开发与测试-1)典型开发场景-2)设计-3)ArkTS语言-4)ArkUI框架-5)应用程序框架-6)SDK-7)集成开发环境-8)测试工具48481)典型开发场景基于鸿蒙系统原生开发框架,开发者可以根据自己实际的业务情况选择:独立开发一个应用独立开发一个元服务同时开发应用和元服务开发者可以选择开发简单、场景聚焦的元服务,渐进迭代演进,按需组合元服务成为一个复杂的应用。对于大型游戏类应用,可以直接开发鸿蒙生态应用,针对智慧屏、车机、手表等设备,可以考虑开发元服务并提供万能卡片,让信息更加直接的呈现给用
67、户。2)设计HarmonyOSDesign支持跨设备的超级终端一拖即连,万能卡片轻轻一滑即可获取所需信息,文件中转站、智慧视觉等创新功能,带来全场景智慧生活新体验。HarmonyOSDesign涵盖全面的全场景设计规范,丰富的设计资源,以及设计工具,帮助开发者提升开发效率:全面的全场景设计规范:包括设计理念、人因研究、应用架构、人机交互、视觉风格、动效、声音、多态控件、界面用语、全球化、无障碍、隐私设计等。丰富的设计资源:提供上千种的图标资源,媒体音效专项分类,快速开发调用;字体再升级,支持新版国标汉字完整覆盖GB180302022实现级别2的汉字。4949高效的设计工具
69、比于TS只在编译时进行类型检查,ArkTS将编译时所确定的类型应用到运行性能优化中。由于在编译时就可以确定对象布局,对象属性的访问可以更加高效。面向未来,ArkTS会结合应用开发以及运行时的需求持续演进,引入包括并行和并发能力增强、类型系统增强等方面的语言特性,进一步提升ArkTS应用的开发和运行体验。鸿蒙生态应用开发者可以从官方开发者网站中获取ArkTS语言介绍,快速入门ArkTS语言。对于熟悉TS语言的应用开发者,官方开发者网站也提供了从TypeScript到ArkTS的迁移指导,帮助开发者快速将已有TS代码重构为ArkTS代码。50504)ArkUI
72、提供管理机制,称为状态变量装饰器:State:组件拥有的状态属性,当State装饰的变量更改时,组件会重新渲染更新UI。Link:组件依赖于其父组件拥有的某些状态属性,当任何一个组件中的数据更新时,另一个组件的状态都会更新,父子组件重新渲染。Prop:类似Link,但子组件所做的更改不会同步到父组件上,属于单向传递。Provide:作为数据的提供方,可以更新其子孙节点的数据,并触发页面渲染。Consume:在感知到Provide数据更新后,会触发当前自定义组件的重新渲染。5353同时为了使应用数据变化能够触发组件的更新,基于AppStorage还提供了两个状态变量装饰器:Stora
73、geLink装饰器:组件通过使用StorageLink(key)装饰的状态变量,与AppStorage建立双向数据绑定,key为AppStorage中的属性键值。当创建包含StorageLink的状态变量的组件时,该状态变量的值将使用AppStorage中的值进行初始化。在UI组件中对StorageLink的状态变量所做的更改将同步到AppStorage,并从AppStorage同步到任何其他绑定实例中,如PersistentStorage或其他绑定的UI组件。StorageProp装饰器:组件通过使用StorageProp(key)装饰的
74、状态变量,将与AppStorage建立单向数据绑定,key标识AppStorage中的属性键值。当创建包含StoageProp的状态变量的组件时,该状态变量的值将使用AppStorage中的值进行初始化。AppStorage中的属性值的更改会导致绑定的UI组件进行状态更新。2.布局布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际的开发过程中,需要遵守以下流程保证整体的布局效果:确定页面的布局结构。分析页面中的元素构成。选用适合的布局容器组件或属性控制页面中各个元素的位置和大小约束。ArkUI框架支持多种布局方式,如弹性布局、列表、宫格、栅格
75、布局等。54543.组件化组件是ArkUI框架中的基础显示单元,一切UI显示的内容都是组件。ArkUI框架提供多种开箱即用的UI组件,如文本显示、图片显示、按键等,并提供了面向多种设备形态的多态UI能力。另外,ArkUI框架还提供了组合式扩展相应UI组件的机制,由ArkUI框架直接提供的称为预置组件,由开发者定义的称为自定义组件,其具有以下特点:可组合:允许开发人员组合使用内置组件、其他组件、公共属性和方法;可重用:自定义组件可以被其他组件重用,并作为不同的实例在不同的父组件或容器中使用;配置化生命周期回调:生命周期的回调方法可以在组件中配置,用于业务逻辑处理;
79、提供了UI组件事件以下几类事件:5656UI组件事件:由UI组件内置交互逻辑触发,不同的UI组件有不同的UI组件事件,比如TextInput输入框产生的onEditChange输入文本变更事件,List列表组件产生的onScrollIndex列表项滚动事件,这类事件属于非冒泡事件(非冒泡事件指的是当一个组件上的事件被触发后,该事件不会向父节点传递);挂载卸载事件,当UI组件挂载到UI组件树或者从UI组件树上卸载时触发,典型的场景比如通过if渲染语法控制UI组件的显隐状态,该事件属于非冒泡事件。交互事件:点击事件,拖拽事件,焦点事件,触摸事件,
80、按键事件,鼠标事件,手势事件等。7.绘制能力ArkUI框架提供两种2D自定义绘制能力。一种是通过图形组合的方式,利用布局、绝对定位和各种图形进行组合实现;另一种是通过绘制API在Canvas画布上进行绘制。8.混合开发应用的场景是多样的,部分场景直接采用UI组件组合无法满足诉求,例如游戏、地图这种需要依赖C+SDK进行独立渲染,又或者开发相机、视频播放器这种需要独立纹理填充的场景,因此需要框架提供一种能够在C+侧进行自定义绘制的组件。ArkUI框架提供了XComponent组件,支持加载应用动态库、NAPI跨语言调用,进行C+绘制能力的开发。9.跨平台鸿蒙生态
81、构建了ArkUI跨平台框架的核心设施,将相应的能力扩展到iOS和Android平台上,后续会进一步拓展到更多的平台。开发者可以通过一份代码,结合相应的工具链,5757同时生成多个OS平台的应用工程,并可编译出相应的应用程序,在相应的平台上高效的运行。类Web开发范式使用HML标签文件进行布局搭建,使用CSS文件进行样式描述,使用JS文件进行逻辑处理。UI组件与数据之间通过单向数据绑定的方式建立关联,当数据发生变化时,UI界面自动触发更新。此种开发范式,对Web前端开发者更为友好。类Web范式的整体接口采用与传统Web页面开发相似的设计理念,采用
82、HML、CSS与JS三种类型的文件进行页面开发,开发者可以基于此范式方便地进行UI构建,同时提供数据绑定机制,支持通过JS进行数据更新,进而更新UI。HML语法:是一套类HTML的标记语言,通过组件、事件构建出页面的内容。页面具备数据绑定、事件绑定、列表渲染、条件渲染和逻辑控制等高级能力。在HML文件中不仅可以进行架构描述,也可以进行数据绑定,通过方式进行数据绑定后,也需要在JS文件中进行数据的定义,运行时将使用JS文件中提供的数据content进行替换。CSS语法:CSS是描述HML页面结构的样式语言。所有组件均存在系统默认样式,也可在页面CSS样式文件中对组
83、件、页面自定义不同的样式。ArkUI开发框架提供标准CSS语法的核心功能集,满足应用开发者的诉求。JS语法:在类Web开发范式中,提供了一系列的全局方法与全局对象,进行数据操作与逻辑处理。5858框架后端采用C+开发语言实现,提升了框架的运行性能,使用方舟编译器运行时作为JS引擎,具有更优的JS执行性能,同时还提供了一套完整的包含UI组件、布局机制、动画能力的渲染框架,通过渲染引擎对UI元素进行绘制。类Web范式实现层面可以进一步部署到轻量化的设备上。通过轻量化设计的思路,将JSFramework下沉到C+层,以减小JS的内存占用,使用C+进行更
84、为严格的内存分配管理,并采用更为轻量的JS引擎,UI部分采用轻量的UIKit并结合轻量图形引擎最终实现百K级别设备的支持,从而在轻量化设备上可执行的应用,也可以在硬件规格更高的设备上执行,而无需重新开发。这也就是采用类Web开发范式的优势所在,采用统一的开发范式,开发者无需关心具体运行时的前端框架、JS引擎与后端UI组件,系统会根据运行平台不同,采用最佳的模块,保障应用在不同平台都可具有最佳的运行性能。具体的实现原理如下图所示:5959图5-3:类Web开发范式可视可说可视可说框架提供“系统级”和“应用级”两种实现方式。其中,“系统级”无需应用适配自动支持标
85、准控件文本的语音操控功能;“应用级”接入方式允许开发者对控件场景、角标、别名、个性化播报等元素进行适配,从而提供最佳的用户体验。应用级和系统级两种实现是互补关系,应用级优化用户体验,系统级保证覆盖率。6060图5-4:可视可说框架1.系统级应用使用标准控件开发,无需额外适配,自动识别标准控件界面文本和位置执行,天然支持界面文本可视可说基础体验。2.应用级系统级基础体验无法满足体验目标时,应用可以按照业务特征进行灵活定制适配,以此获得可视可说最佳体验。3.语音交互生命周期可视可说分为信息获取和识别执行,信息获取模块基于界面变化用户监听界面变化获取信息热词,识别执行模块将信息热词传递到
86、语音系统进行AI识别。6161图5-5:单次语音交互生命周期语音唤醒:语音助手唤醒后,发送建立连接给前台应用,应用收到请求后启动可视可说初始化。信息获取分配角标(可选):应用反馈界面需要展示的角标数量给智慧语音。更新角标(可选):界面变化时,自行管理展示角标刷新。获取信息:智慧语音获取界面热词信息,包括文本,图标和角标信息。识别执行语音识别:智慧语音系统根据用户语音和界面信息热词,识别出可视可说意图和指令。执行指令:收到可视可说意图和指令触发执行。隐藏角标:通知应用隐藏界面角标(隐藏角标动作也由适配应用自己完成)。6262语音结束:语音助手释放可视可说,发送解除绑定给前台
90、lity是应用程序框架中最基本的抽象单位,是能够完成独立功能的应用组件。在Stage模型中,Ability分为两大类:UIAbility:应用的主入口,对应桌面上的图标。一个UIAbility实例对应一个任务。一个UIAbility中的通常包含多个ArkUI页面。ExtensionAbility:ExtensionAbility有多个具体的子类型,例如:FormExtension用来开发万能卡片,InputMethodExtensionAbility用来开发输入法等。6464ExtensionAbility正如其名称那样,在鸿蒙新的版本,
92、HSP或HAP格式的包中。HSP(HarmonyOSSharedPackage):这是一种新增的编译产物。HSP使得模块可以以运行态复用的形式共享。相较于HAR,当有多个HAP包依赖与同一个HSP时,最终的打包产物中,HSP只会存在一份。6565HAP(HarmonyOSAbilityPackage),HAP包是鸿蒙应用可单独安装的容器包。借助鸿蒙统一开发框架的能力,同一个HAP包可以支持在多个设备上运行。但是当设备差异较大时(例如手机与手表),开发者可以为不同的设备设计不同的HAP包。在上架时,通过同一个App包来包含多个HAP包。这样可以达到一
95、应用的主要开发语言是ArkTS,同时也提供使用Native语言开发ArkTS模块的扩展方式,鸿蒙系统中支持这种开发方式的C语言接口叫CAPI。CAPI也包含在鸿蒙SDK中,方便开发者使用C或者C+语言实现应用相应功能。CAPI只覆盖了部分鸿蒙基础底层能力,如libc,图形库,窗口系统,多媒体,压缩库等,并没有完全提供类似于ArkTSAPI上的完整鸿蒙平台能力,开发者可以使用CAPI开发支持鸿蒙应用框架的扩展动态库,通过import语句导入到ArkTS环境中使用。建议使用CAPI的场景:应用性能敏感场景,如游戏,物理模拟等计算密集型场
96、景;复用已有的C或C+库场景;需要针对CPU特性进行专项定制场景,如neon加速等。CAPI接口组成如下表所示:6767表5-1:CAPI接口组成接口分类接口功能标准C库以鸿蒙C库为基础提供的标准C库接口,当前包含了1500+的接口。标准C+库C+运行时库,应用使用C+语言,需打包到应用中。hilog日志打印接口。N-API应用框架提供的,方便应用开发接入ArkTS语言环境的一组类Node的C接口。XComponent应用框架XComponent组件中的surface与触屏事件接口,供开发者开发高性能图形应用使用。l
97、ibuv应用框架集成的三方的异步IO库接口。libzzlib库,提供基本的压缩,解压接口。Drawing系统提供的2D图形库,可以在surface上进行绘制。OpenGL系统提供的OpenGLv3接口。Rawfile应用资源访问接口,可以读取应用中打包的各种资源。OpenSLES用于2D,3D音频加速的接口库。包管理包服务接口,方便查询应用包信息。Vulkan业界标准的2D和3D绘图应用程序接口。Purgeablememory一种快速释放与重建机制的内存管理机制,使用此接口标记的内存对象,可被系统自动回收,访问前可通过对象重建方法重建。6868
98、接口分类接口功能多媒体多媒体接口,提供用户视觉、听觉信息的处理能力,如音视频信息的采集、压缩存储、解压播放等。数据管理本地数据库管理机制,提供一系列的增、删、改、查等接口,也可直接运行用户输入的SQL语句。AI提供MindSporeLite、NeuralNetworkRuntime两类推理引擎接口。N-API接口N-API接口提供了使用C/C+封装操作ArkTS对象的能力,使用类Node的N-API接口命名。开发者使用C/C+开发业务,通过N-API接口实现跨语言调用,方便开发者使用高性能C语言能力。开发者开发一个C/C+的ArkTS
99、扩展库后,在ArkTS侧可以通过import引入这个扩展库。方舟工具链传统的JS程序开发中,应用程序往往带的是经过前端打包工具处理过的JSbundle文件,在程序运行阶段进行解释执行;这种运行方式需要设备有强大的计算能力。鸿蒙系统能够支持的设备范围广泛,覆盖从低端的IoT设备到高性能手机设备。采用传统的方式,无法保证多类型设备的体验一致性。在鸿蒙开发环境中,应用代码是通过前端编译器完成编译的。前端编译器按照语言规范解析源代码,编译成方舟运行时能够理解的二进制字节码格式(ABC,ArkCompiler6969ByteCode),最后打包到应用中。前端编译器是鸿蒙应用框
100、架与其它JS应用框架最主要的差别之一。下图展示了两种编译运行方式的差别,方舟前端工具链把解析源码、编译字节码的过程从运行时迁移到编译时,降低运行时的开销。图5-7:普通JS运行时与方舟编译运行时比对图前端流水线在发起编译时,进行工程参数解析,依赖分析,语法校验,语法转换,代码编译等各个编译动作的编排。前端编译器负责编译流水线中源代码编译,提供对应的触发接口给编译流水线。下图为鸿蒙生态应用的编译流水线流程:图5-8:编译流水线配置解析:解析IDE工程中的配置文件,解析程序组件,入口组件,组件包名,代码位置等信息。依赖分析:根据代码中的import等语句,进行各个代码的依赖
101、关系分析。UI语法转换:对UI中的各种语法糖进行转换。7070代码编译:输入转换后代码,解析编译,输出ABC字节码文件。应用打包:获取应用的资源,ABC字节码文件,应用配置文件等,使用用户签名进行应用打包,输出应用包。前端编译器负责将ArkTS代码编译成方舟字节码ABC,鸿蒙生态应用编译流程中,分为两种编译模式。分别是bundle和esmodule编译模式。两者的区别主要在源码文件的处理上,bundle编译把各个有依赖关系的源代码通过打包方式打成一个bundle文件,然后通过前端编译器编译成ABC字节码文件;而esmodule编译是保持用户写的Ark
102、TS模块不变,通过前端编译器编译成ABC字节码文件,字节码文件内保留各个模块的代码段,依赖关系等信息;当前推荐开发者使用esmodule模式,保持模块语义。前端编译器架构前端编译器是根据输入的ArkTS源码,进行词法,语法解析、转换、编译、输出字节码文件;在这个过程中会提取代码中标注的类型信息,进行类型检查,类型绑定,最终作为元数据生成到字节码ABC文件中。图5-9:前端编译器架构解析:前端编译器读取ArkTS源码,进行词法,语法解析,输出抽象语法树(AST)转换:前端编译器识别语法糖,转换成基础语法编译:根据抽象语法树,生成对应的中间表示(IR)7171输出:收
103、集IR,字符资源,常量,等各种元素,按照ABC文件格式生成字节码文件优化:读取ABC文件中的字节码信息,生成IR表示,进行优化处理,重新生成更优的字节码文件。7)集成开发环境HUAWEIDevEcoStudio是面向鸿蒙生态的集成开发环境,提供了一站式的鸿蒙生态应用、元服务开发能力,详细能力如图所示。图5-10:HUAWEIDevEcoStudio集成开发环境工程管理提供基础的工程管理能力,包括工程向导,工程模板,鸿蒙视图,SDK管理,样例导入等,并提供模板市场,支持扩展丰富的模板。开发者可以方便地安装和更新鸿蒙SDK,利用模板创建鸿蒙生态应用、元服务,
106、编写代码,实时地纠正代码错误。相较于传统的代码编辑,HUAWEIDevEcoStudio还结合了人工智能技术,根据待补全位置的上下文代码特征进行预测和推荐,使补全项更精准,推荐内容更完整,开发人员可以更快速地完成鸿蒙生态应用、元服务开发。同时,HUAWEI7373DevEcoStudio内置鸿蒙生态应用、元服务开发最佳编程规范校验功能,实时提示代码错误,支持快速纠错,可高效地将建议修复结果应用于代码中。界面预览在开发过程中,开发者需频繁修改界面代码,查看对应的呈现效果,确保开发与实现目标一致。传统的开发模式下,开发者每次修改代码后,执行编译构建,并推送应用到设备上重新运行,才能
108、式、横竖屏状态等。通过自定义预览profile,开发者能自由组合设备显示能力,查看UI代码在不同设备上的呈现效果。双向定位:支持UI代码和预览效果的双向定位修改。极速预览:对于组件属性的调整,无需保存和编译,极速呈现预览效果。实时预览:开发者修改UI代码,保存后可秒级刷新预览界面,界面调测效率倍增。动态预览:在预览界面中提供点击、滑动、键盘输入等交互能力,操作体验与真机设备一致。编译构建HUAWEIDevEcoHvigor是一款华为自研轻量级编译构建工具,将编译操作进行任务化管理,为开发者提供自动化的构建服务。其具备强大的构建能力,支持多种语言(ArkTS、C/C+等)、多种文
109、件(低代码描述文件、资源文件等)的快速编译,最终生成HAP/App包。此外,Hvigor还具备以下特点:高效编译:充分利用系统资源,并行执行编译请求,提升编译效率;综合历史信息,精确增量检查,高度复用往次构建产物,缩短编译时长;最优化编排任务序列,异步化执行编译操作,减小等待间隙,加速构建流程。7575差异构建:内置多目标构建机制,允许开发者灵活选择源码文件、资源信息、部署设备等应用要素,形成多种组合。通过简易配置,匹配自定义构建目标,一键打包生成不同产物,实现“一套代码,多种产物”。灵活扩展:支持开发者自定义编写构建任务,匹配自身业务需求,扩展编译构建流程。独立运行:拥有完善的命令行
110、工具,兼备良好的跨平台能力,可以脱离HUAWEIDevEcoStudio,独立运行在Windows、Mac、Linux等操作系统上,支持不同环境下的流水线搭建。可视化分析:提供构建全流程任务耗时数据展示能力,展示任务时长、任务线程、日志、历史记录等。点击任务即可以可视化的形式展示构建过程,帮助开发者进行构建瓶颈优化。代码调试在开发过程中,代码调试是使用频率最高的功能之一,开发者可以使用断点跟踪或日志分析,快速定位代码缺陷。HUAWEIDevEcoStudio提供了常用的代码调试功能,如设置断点(普通断点、条件断点、异常断点、符号断点等)、断点跳
111、转(StepOver/Into/Out)、变量值查询、表达式计算、调试堆栈、命令行工具等。此外,基于鸿蒙系统的特点,还提供了以下功能,进一步提升效率:分布式调试:分布式调试用于定位跨设备交互场景下的代码缺陷。使用跨设备的断点调试,可以使断点在不同设备的代码间跳转,自动寻找目标设备并建立调试会话。7676通过查看跨设备的调试堆栈,可以快速准确地跟踪设备交互的详细情况,包括每次流转的起点(设备、函数栈)、终点(设备、函数栈)和详细交互数据。跨语言调试:支持ArkTS和C/C+两种语言同时调试,并支持断点从ArkTS语言跳转到被调用的C/C+语言;提供统一的调试堆栈,便于快速查阅两
114、景化调优模板,自动采集相应维度性能数据。常用场景化调优模板如表5-2所示。模板自动推荐:根据实时监控观测到的性能异常事件,自动推荐对应的场景化模板。高效数据分析:关联分析不同维度性能数据,结合同一时刻的代码调用栈,快速分析代码和性能问题之间的因果关系。一键定位代码行:分析结果中代码堆栈并一键跳转至编辑器中的对应代码行。表5-2:常用场景化调优模板模板名称用途TimeInsight耗时分析模板:通过周期性采集调用栈,识别CPU耗时高的热点代码段,用于分析卡顿、CPU占用高、运行速度慢等问题。AllocationsInsight内存分析模板:录制和分析内存分配记录,用于分
115、析内存峰值高,内存泄漏,内存不足导致应用被强杀等问题。CPUInsightCPU分析模板:录制CPU调度事件、线程运行状态、CPU核频率、Trace等数据,可用于分析卡顿、运行速度慢、应用无响应等问题。EnergyInsight能耗分析模板:录制和分析能耗异常事件、硬件资源使用记录、功耗关联的系统状态,可用于分析电量消耗过快的问题。LaunchInsight启动分析模板:录制和还原从点击应用图标,到显示首帧过程中的CPU、内存等资源使用情况,用于分析启动耗时长的问题。7878模板名称用途FrameInsight卡顿丢帧分析模板:录制卡顿过程中的关键数据,标注出应
116、用侧、RenderService侧卡顿帧,用于分析应用卡顿、丢帧的问题。SnapshotInsight快照分析模板:录制和分析应用程序中ArkTS对象的分布,通过快照方式对比ArkTS对象分布区别,用于分析内存泄漏问题。设备模拟HUAWEIDevEcoStudio提供了设备模拟的能力,解决鸿蒙生态应用、元服务开发过程中遇到的真机设备不足、无分布式应用调试环境等问题,为开发者提供低成本、易获取的调测验证环境。超级终端模拟:支持对手机、智慧屏、手表等多种终端进行模拟,针对不同模拟终端提供了差异化的交互界面,方便开发者快速在多个模拟终端上开发调试应用。此外,开发者可以一键配置分
117、布式组网,组成模拟超级终端,支持对分布式应用进行调试。未来还将支持模拟器与真机组合成超级终端。丰富的器件模拟:提供了多终端常用器件、外设、传感器的模拟,包括电池、WLAN、移动网络、GPS、Camera、陀螺仪、心率等,支持开发者调用模拟器件的能力,进行特定功能的开发。场景化数据注入:通过场景化的数据注入能力,开发者能快速模拟一些常见的设备使用场景,方便调试应用在特定场景下的功能。包括低电量、弱网络信号、摇一摇、GPS导航、户外跑步运动等场景。7979统一设备管理:支持对模拟设备、超级终端、本地真机设备、远程真机设备的统一管理,方便开发者快速切换调试设备,一键配置超级终端。命令行工具HU
118、AWEIDevEcoStudio提供了一系列命令行工具,辅助开发者更高效的管理SDK、设备,提升调试、调优的效率。目前提供以下工具供开发者使用:sdkmgr:查看、安装和卸载HarmonyOSSDK。hdc:管理设备、本地和设备之间传输文件、安装和卸载应用、启动和终止应用。bytrace:对内核ftrace进行了封装和扩展,配合应用打点,追踪进程轨迹,分析应用性能。端云一体化开发HUAWEIDevEcoStudio在传统的“端开发”基础上新增了“云开发”能力,支持开发鸿蒙生态应用、元服务的云侧服务,提供端云一体的开发体验。8080图5-12:端云一体化开发全景图端
119、云一体化开发:支持端侧代码和云侧代码的协同开发,统一管理端侧和云侧代码目录,进行端云代码的端到端开发、调试和部署。端云一体化组件:内置完整的云侧逻辑,开发者在集成UI组件的同时即可自动实现云侧逻辑,快速实现特定场景的功能。Serverless:为鸿蒙生态应用、元服务的云侧服务提供Serverless化托管服务,具有开箱即用、一键部署、自动弹性伸缩、免运维等特点,开发者可聚焦业务逻辑本身,降本增效。8)测试工具鸿蒙生态应用、元服务的测试分层模型分为:单元测试、集成测试、专项测试。8181图5-13:鸿蒙生态应用、元服务分层测试模型单元测试单元测试是函数级别的验证。函数是产品开发
120、实现的最基本单位,单元测试通过验证产品代码的函数输入输出,最终保证整个产品的质量。DevEcoTestingHypium单元测试框架可以在真机或者模拟器上运行。单元测试框架采用插件化机制开发,具备空间占用最小化、功能可定制、语法兼容特点。测试框架的整体结构如下图所示:8282图5-14:单元测试框架测试框架由核心模块和扩展模块组成。其中核心模块是测试框架的最小集,包含执行必备核心接口和逻辑。扩展模块是在核心模块的基础上增加一些常用能力,例如用例超时控制、用例筛选、数据驱动、压力测试、随试执行等。核心模块采用插件化机制,提供接入能力和运行时上下文,扩展模块通过插件的方式接入。DevE
122、操作界面控件能力,支持开发者编写基于界面操作的自动化测试脚本。UI测试框架的整体结构图如下图:图5-15:UI测试框架整个测试框架组主要分为两个部分,一部分是uitest-api,用来提供接口,封装UI测试场景的API,另外一部分是uitest-deamon,是UI测试核心模块,对接系统服务,提供控8484件树获取、解析、查找、操作能力。uitest-api提供核心接口类Driver、On和Component,具体功能如下表:表5-3:uitest-api核心类功能列表类名功能DriverUI测试能力入口类,实现与设备交互,提供页面控件查找、检查存在性及
123、注入按键能力。On页面元素查找条件,用于描述目标控件特性(文本、id、类型等),UiDriver根据On描述控件特征查找控件。Component页面元素实体类,返回查找的控件对象,提供控件属性查询,滑动查找等触控和检视能力。2.性能测试工具DevEcoTestingSmartPerf提供一套完整的应用测试和调优工具,为应用开发者提供方便快捷的应用性能测试手段。主要包括以下部件:8585图5-16:SmartPerf主要结构SmartPerf-Host:可视化展示设备侧抓取的性能数据,帮助开发者快速发现和分析系统性能瓶颈。SmartPerf-Device:支持设备侧F
124、PS、功耗、热、Soc信息的实时采集、实时展示和数据报告生成。预置或安装在设备中使用,针对带屏设备,测试过程中在设备悬浮窗实时展示测试过程中的性能数据;对于无屏设备,通过命令行获取测试过程中生成的性能数据。SmartPerf-Editor:独立的PC客户端,支持用户操作录制回放,定点采集性能,trace自动抓取与报告展示,用户自定义采集场景及采集指标等功能。具体的功能点,请参考下表:8686表5-4:SmartPerf功能介绍部件名功能点功能描述SmartPerf-HostCPU分析CPU线程运行时状态分析。CPU调用栈信息分析。内存分析Nativememo
125、ry申请和调用栈分析。IO分析FileSystem流量和调用栈分析,BIO申请空间与调用栈分析。自定义trace抓取用户自定义抓取的数据结构和展示方式。查询SQL语句查询。SmartPerf-Device基础能力采集CPU、GPU、DDR、Temperature、Power、应用RAM、FPS等数据采集。UI可视化操作可操作采集任务开始、暂停、继续、停止。悬浮框实时监控采集数据的数值变化,通过折线图查看数据走势。报告展示查看csv报告,报告页查看图形化展示。性能数据采集通过采集的trace分析冷热启动,点击完成时延、点击响应时延,滑动帧率、滑动响应
126、时延的数据。SmartPerf-Editor自动化性能测试应用启动完成时延、响应时延、点击滑动响应时延、界面滑动帧率等自动化测试。自定义录制回放测试用户操作脚本的录制、回放、采集点设置。8787部件名功能点功能描述报告展示和数据拉取性能采集数据结果的报告呈现及数据异常的Trace自动拉取。多轮测试性能测试页支持冷启动多轮测试功能。数据管理和查询历史测试报告查询功能,支持根据TaskID模糊查询和测试类型分类查询。3.稳定性测试工具DevEcoTestingwukong是UI自动化稳定性压测工具,用于帮助开发者快速发现应用稳定性问题。支持随机压测、控件顺序遍
127、历、事件录制回放等测试能力,wukong主要功能模块如下图所示:8888图5-17:wukong功能全景图命令行解析:支持命令行获取参数并解析命令行参数。运行环境管理:根据命令行初始化wukong整体运行环境。系统接口管理:检查并获取指定的mgr,注册controller和dfx的faultlog的回调函数。随机事件生成:通过random函数生成指定种子数的随机序列,生成事件。事件注入:根据支持的事件类型向系统注入事件,依赖窗口、多模、安全等子系统。异常捕获处理:通过DFX子系统获取运行中的异常信息。报告生成:保存运行时的异常信息并记录执行日志,生成报告。H
130、、前台内存占用。稳定性:运行时出现崩溃、Crash、冻屏。最终的检测报告中按照测试维度进行分层展示,根据每条规则的权重,综合算出应用/服务的评分。2.专项测试云测平台DevEcoTesting专项测试服务以云端服务的方式提供了多维度的专项测试能力,无需人工干预,自动完成应用/服务的测试。专项测试报告可以帮助开发者提前识别和定位问题,为消费者带来更佳的使用体验。9191云端的DevEcoTesting专项测试服务提供了多设备环境,可用于“一次开发,多端部署”测试,降低开发者获取测试设备的门槛,并提供自动化的测试能力。云端测试包含设计约束、安全漏洞检测、隐私合规检测、兼容性测试、稳定
131、性测试、性能测试、功耗测试、UX测试。可检测应用或服务从安装、启动、运行、卸载全生命周期的问题,如应用崩溃、冻屏、启动响应耗时长、前后台内存/CPU占用高、启动/卸载异常等。9292ChapterChapter66统一上架与多端分发统一上架与多端分发-1)快速上架-2)应用分发-3)服务分发9393HUAWEIAppGalleryConnect为开发者提供全球化、全场景一站式应用分发能力,并为开发者提供质量、安全、工程管理等领域的能力,大幅降低应用开发与运维难度,提升版本质量,帮助开发者获得用户并实现收入的规模增长。图6-1:一站式分发能力1)快速上架HUAWEI
132、AppGalleryConnect作为开发者统一提交入口,集成证书管理、项目管理、版本管理等功能,支持鸿蒙生态应用、元服务的快速上架与分发。9494证书颁发提供统一的证书颁发入口,支持软件证书和ProvisionProfile管理,保障开发者合法性与应用合法性。图6-2:签名方案开发者生成自己的公私钥对(KeyStore),并且使用IDE生成软件证书请求文件(CSR)。开发者上传软件证书请求文件,生成软件发布证书,选择对应的证书可以创建应用的ProvisionProfile。开发者使用ProvisionProfile和开发者私钥完成应用的本地签名,打包应用并
133、提交。只有经过HUAWEIAppGalleryConnect合法性检测、拥有开发者所属软件证书签名的应用才允许提交。经过合法验签之后,使用HUAWEIAppGalleryConnect的秘钥对应用进行重签名。9595允许通过以上步骤的应用安装到搭载鸿蒙系统的设备上。统一上架开发者开发完成之后,上传包体、描述信息、素材等,提交上架审核。也可委托SaaS厂商为其代理完成开发上架。图6-3:统一上架能力应用管理:提供应用的基本信息管理,支持配置全球化名称,管理图标、截图、描述、应用分类、开发者服务信息等内容。版本管理:维护应用的版本信息,支持配置发布区域、发布范围、应用资费
136、动/静态检测,识别是否存在隐私风险,比如违规收集个人信息、超范围收集个人信息、违规使用个人信息、强制/频繁/过渡索取权限、强制用户使用定向推送等问题。兼容性检测通过真机检测,保障分发设备的兼容性,支持检测是否存在崩溃、无响应、运行错误、功能异常、界面异常等问题。合规检测通过AI技术,识别图片、描述、文本等信息,自动检测内容是否存在色情、暴恐违禁、赌博、毒品、政敏、低俗、禁播等违规行为。2)应用分发HUAWEIAppGalleryConnect提供了灵活的分发能力,支持按阶段、维度、场景等多种形式,高效、精准地分发到用户设备上。9898图6-4:应用分发全景图分发阶段开发
137、者可以在应用的不同成熟阶段采用不同的分发手段,结合应用的运行数据与用户声音,不断改进应用质量,持续提供优质服务。9999图6-5:分发阶段分发维度开发者可以通过多种维度灵活分发应用:设备维度:设备类型、PCID、屏幕类型等。OS维度:APILevel等。区域维度:发布国家区域、漫游分发等。应用属性维度:年龄等级、应用分类、软件版本等。分发场景开发者上架应用之后,HUAWEIAppGallery会根据不同的分发场景,选择最优的分发方式,从而实现高效分发,提升用户体验。100100按需分发:开发者可以将应用进行合理拆分,将非核心的功能做成动态特性;用户首次下载应用时,只下载基
138、本功能模块,仅在执行到动态特性时才按需下载,既满足了业务功能,也减少了存储空间的占用,消耗更少的网络流量,提升下载转换率。快速修复:当开发者发现代码bug或者关键漏洞时,HUAWEIAppGallery提供代码方法级的快速修复方案,支持快速解决问题。智慧分发HUAWEIAppGallery构建了搜索、推荐、推广三大引擎,从海量数据中构建丰富的画像和知识图谱,基于AI能力实现精准送达。表6-3:引擎介绍能力简介搜索引擎基于精准的用户意图识别与丰富的鸿蒙生态应用、元服务标签体系,构建以用户体验为中心的多场景、多模态、全球化搜索引擎,高效连接鸿蒙生态和全球消费者。推荐引擎
139、基于海量用户数据,使用机器学习和深度学习算法,提供千人千面的个性化推荐服务,精准触达目标用户。推广引擎面向合作伙伴提供精准、优质、高效的推广服务,支持面向安装、激活、次留、付费等目标的投放,助力合作伙伴快速精准获量,实现商业成功。1011013)服务分发鸿蒙系统作为万物互联时代泛终端服务的载体,面向跨设备多终端环境,实现“服务随身”的跨设备无缝体验,元服务与AI算法深度配合,实现多入口、场景化分发。多入口分发包括设备入口、系统入口、应用入口,场景化分发是系统在理解用户的基础上,结合用户旅程的一种多服务组合分发,从用户场景出发,围绕用户旅程的场景化闭环。例如用户想去旅游,出行前要查看
143、连接能力、运动状态等。基于人物的场景感知:性别,年龄,应用使用偏好等。103103基于事件的场景感知;快递物流,异常天气,订单状态、未接来电等。特别说明,以上场景感知信息均在用户知情同意的前提下收集。知识与理解层:知识与理解层是智能分发决策的重要依据,围绕核心场景,持续构建、学习、丰富知识,并基于全面感知与知识增强,精准理解用户意图。感知数据结合用户的行为习惯,辅以知识图谱提供的结构化数据作为输入,通过对用户、场景建模以及NLU等技术,实现了用户此刻的意图理解。同时在元服务上架的过程中,开发者可以选择服务分类和标签,通过服务分类、标签和智能理解,系统可以将元服务与统一全局意图进行关联
145、设备数量越来越多,跨多个设备间的交ChapterChapter77自由流转与分自由流转与分布式运行环境布式运行环境-1)价值与架构定义-2)跨端迁移-3)多端协同106106随着个人设备数量越来越多,跨多个设备间的交互将成为常态。基于传统OS开发跨设备交互的应用程序时,需要解决设备发现、设备认证、设备连接、数据同步等技术难题,不但开发成本高,还存在安全隐私、兼容性、性能等诸多问题。为了适应万物互联时代的环境变化,鸿蒙系统构建了基于分布式运行环境所需要的基础设施,为开发者提供了基础的分布式框架能力,使开发者可以更方便的实现跨设备的业务开发,向用户提供多设备的交互体验。基于人机
150、户身份管理、身份认证和访问控制判断能力。支持多用户操作系统,支持多种用户身份认证方式(包含PIN、指纹、人脸等)。分布式平台服务:负责拉通多个物理设备上的运行状态,同时提供跨设备间的资源访问和控制能力。核心业务框架:对分布式平台服务层和核心基础服务层所提供能力进行调用,完成相应的业务功能,给应用提供更简单友好的使用接口。开发接口层:所有的应用通过这一层来使用系统提供的能力。图7-2:分布式运行环境1101102)跨端迁移跨端迁移是指将一个软件实体从一台设备转移到另外一台设备上运行。借助跨端迁移能力,鸿蒙生态应用可以自由地在多个设备之间流转,为用户带来无缝的用户体验,也会为开发者带来更
151、多的入口和流量。跨端迁移应用场景用户使用应用的情境发生变化时(例如从室内走到户外、从办公室到车上等),之前使用的设备可能已经不适合继续当前的任务,或者周围有更合适的设备,此时,可以选择使用新的设备来继续当前的任务。图7-3:跨端迁移示意图跨端迁移的应用场景举例:在外时手机上编辑邮件,到家后迁移到平板上继续编辑。在外时手机玩游戏,到家后迁移到平板上继续玩。111111在家里智慧屏上看视频,出门时迁移到手机上继续观看。手机视频通话迁移到智慧屏,更沉浸地视频聊天。3)多端协同多端协同是指运行在多个物理设备上的软件彼此协作完成一项任务。通过充分发挥每种设备的优势能力(例如智慧屏显示能力、手机
152、输入输出能力等),为用户提供更好的体验。根据协同能力的不同,例如显示能力、交互能力等,可以创造出丰富的协同模式。下面以显示协同、交互协同两种模式为例展开介绍。开发者可以根据应用的实际特点基于鸿蒙系统提供的分布式开放能力,选择合适的模式进行体验设计,或者展开更多探索、创造出新的协同模式。显示协同场景举例:文档编辑应用的文档内容和周边工具菜单可以分别显示在智慧屏和手机上,在手机上快速操作编辑菜单,在智慧屏上更清晰地查看编辑的效果。图7-4:显示协同示意图112112交互协同场景举例:在智慧屏上进行搜索时,在手机上进行文本输入。通过智慧屏上网课时,在手机上进行手写答题或绘画。图7-5:交
153、互协同示意图算力协同场景举例:分布式游戏,在手机/大屏上玩游戏时,利用周边设备(手机、平板、笔记本等)协助完成游戏应用的计算任务(AI计算、图像渲染),提升游戏帧率、画质。图7-6:算力协同示意图113113ChapterChapter88全方位运维分析全方位运维分析114114HUAWEIAppGalleryConnect提供低门槛、高效率、多场景的大数据能力,包括质量分析、性能调优、故障定位、行业风向等。同时支持多维度数据分析,智能诊断问题并给出解决方案,为开发者明确质量优化方向,提升用户体验。图8-1:运维监控架构图崩溃服务崩溃服务帮助开发者快速发现、定
155、溃进行排序,确定优先级别。实时监测和提醒分钟级实时报告让您可以实时跟踪应用稳定性,当发生重大崩溃时,系统能及时提醒开发者。性能管理性能管理(APM,AppPerformanceManagement)服务提供分钟级应用性能监控能力,检测应用在每个设备上的运行性能数据,帮助开发者快速发现、定位、解决应用性能问题(包括:应用启动慢、页面加载慢、应用无响应、网络请求慢等),确保应用运行平滑流畅,持续提升应用的用户体验。表8-2:性能管理功能主要功能功能描述可视化实时报告零代码集成,自动生成多维度(国家/地区、运营商、网络等)可视化数据报告。116116主要功能功能描述自动采集应
158、ter99全场景案例参考全场景案例参考119119影音娱乐1.场景描述用户通过手机拍摄短视频/直播时,边拍摄边控制手机非常不方便,且无法做到多视角拍摄。在一些多人场景下如果能支持多机位、多视角拍摄,短视频或者直播的效果会更加出色。例如:乐队直播音乐表演时,智慧屏拍摄整个乐队,多台手机单独拍摄主唱和其他伴奏成员,最后通过一个平板或者手机整体控制切换不同的拍摄视角,完成整个直播的拍摄工作。这样拍摄出来的视频,既可以看到乐队的整体,又可以看到每个乐队成员的细节,体验更佳。图9-1:多机位直播场景示意图2.鸿蒙系统开放能力“多端协同”“分布式硬件(摄像头、麦克风)”等能力。12012
159、0运动健康1.场景描述用户通过智慧屏上的健身课程视频健身,单设备的智慧屏设备无法获取用户在健身过程中的健康数据(例如:心率、消耗热量等),进而无法根据运动数据给出更加科学的健身建议,可能会导致用户出现运动量过大或者不足等问题。基于鸿蒙系统提供的分布式能力,可以通过手表获取用户实时的心率数据,并把数据同步显示在智慧屏上,帮助用户了解健康状态。图9-2:分布式健身场景示意图2.鸿蒙系统开放能力“多端协同”和“分布式硬件(sensor)”等能力。121121智慧出行1.场景描述用户外出旅行或者出差,到达机场之后需要用手机打车到目的地,当用户手上拿了行李时,用手机查看出租车的实时状态非
160、常不方便。通过鸿蒙系统提供的分布式能力可以很轻松的解决这个问题,只需要把出租车信息从手机流转到手表,用户抬腕就可以轻松查看出租车的最新状态。图9-3:分布式打车场景示意图2.鸿蒙系统开放能力“跨端迁移”等能力。122122智慧办公1.场景描述用户在上班路上通过手机编辑文档,到公司之后需要通过PC继续编辑时,传统的文档编辑应用需要借助云同步才能实现该需求。从用户体验看,借助“云”同步文件,如果文件很大,同步速度慢并且需要用户多次操作才能完成文档的接续编辑。从开发者投入成本看,“云”同步文件,需要服务器资源和云文件同步功能的开发,开发者在传统的单设备操作系统上开发“一多”应用也会有
161、很多端侧重复适配工作,大大增加开发成本。通过鸿蒙系统提供的分布式能力,开发者只需要花费很小的成本便可实现用户的跨设备文档同步并接续编辑的需求。用户只需要在手机编辑文档的页面点击流转按钮,选择需要流转的PC,手机的文档就会同步到PC,同步完之后自动打开文档进入编辑页面,用户就可以接着在PC上继续编辑这个文档了。图9-4:分布式办公场景示意图2.鸿蒙系统开放能力“一次开发,多端部署”、“跨端迁移”和“分布式文件”等能力。123123智能家居1.场景描述亲子游戏用于活跃家庭气氛,增进亲子关系。但是一般的多人游戏需要多个游戏手柄才能进入游戏,居家生活中,经常会出现找不到手柄的状况。通
162、过鸿蒙提供的分布式能力,只需要把手机作为游戏手柄,随时可接入游戏。图9-5:分布式游戏场景示意图2.鸿蒙系统开放能力“多端协同”和“分布式硬件(sensor)”等能力。124124ChapterChapter1010附录:术语附录:术语125125AAbility:应用的基本组成部分,是应用所具备能力的抽象。Ability是系统调度应用的最小单元,是能够完成一个独立功能的组件,一个应用可以包含一个或多个Ability。Applicationsandbox(应用沙盒):通过自主访问控制(DiscretionaryAccessControl,DAC)、强制访问控制(Mand
163、atoryAccessControl,MAC)等访问控制机制,隔离系统资源,用于保护应用自身和系统免受恶意应用的攻击。AppPack:HarmonyOS应用程序的打包形态,后缀为.app,每个AppPack可以包含1个或多个HAP包。ArkCompiler:方舟编译器,是鸿蒙系统内置的组件化、可配置的多语言编译和运行平台。ArkCompilerBytecode:即方舟字节码,ArkCompiler编译工具链负责将ArkTS/TS/JS源码编译成字节码,作为运行时的输入,实现对应的语言的语义逻辑。该类字节码文件的后缀缩写为.abc。ArkUI:鸿蒙系统的原生UI
165、HarmonyOSAbilityPackage,一个HAP文件包含应用的所有内容,包括代码、资源、三方库及应用配置文件,其文件后缀名为.hap。HarmonyOS平台开放能力:通过HarmonyOSSDKAPI提供,跟随HarmonyOS版本节奏发布,开发者通过调用API的方式进行使用;MModule:在开发态,专门指IDE中工程管理的一种由开发者决定的功能相对聚合的功能单元。一个IDE工程可以包含多个Module。Module可以被编译打包成一个HAP,用于在设备上安装运行。MSDP(MobileSensingDevelopmentPlatform):