V1.0 ࢝所$©华为ॏ$ୡ公司2022。保ࣚ—切利。 本材料所载内容受著作权法的保护,著作权由华为公司或其许可人拥有,但注明引用其他方的内容除外澞未经华为公司或其许可人事先书வ许可,任何人不得将本材料中的任何内容以任何方式进行复制˛经销˛翻印˛播放˛以超级链路连接或传送˛存储于信息检索系统或者其他任何商业目的的使用澞 商ƒ声明 以上为华为公司的商标("详尽清单),未经华为公司书வ事先明示许可,任何第三方不得以任何形式使用澞 ࡉ意 华为会不定期对本文档的内容进行更新澞 本文档仅作为使用指导,文档中的所有陈述˛信息和建议不构成任何明示或暗示的担保澞 华为ॏ$ୡ公司 地址:广东省东唔市松山湖ⴃ区新城路2号网址:https://consumer.huawei.com CONTENT O1 万物互联时代应用开发的机遇˛挑战和趋势 1)—次开发,多端部署·············· 7 O2渇蒙生态应用核心技术理念 2)可分可合,自由流转16 3)统—生态,原生智能19 O3 渇蒙生态应用开发能力全景 1)赋能套件24 2)渇蒙开发套件26 3)三方库44 4)开发者支持平台45 O4 效开发与测试 1)典型开发场景48 2)设计48 3)ArkTS语言49 4)ArkUI框架50 5)用户程序框架61 6)SDK··················································64 7)த成开发环境69 8)测试工具78 O5 统—上架与多端分发 1)快速上架91 2)应用分发95 3)服务分发····················· O6 自由流转与分布式运行环境 1)价值与架构定义················· 98 104 2)跨端迁移106 3)多端协同108 O7全方位运维分析 O8全场景案例参考 O9附录:术语 2 Chapter1 万ࢢ互时代应࣐开发g.挑战和મ势 经过十多年的发展,传统移动互联网的增长红利已渐见½澞万物互联时代正在开启,应用的设备底座将从几十亿手机扩展到数百亿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 渇ਞ࣏㓆应࣐ ½心技Lࣂ念 -1)—次开发,多端部署 -2)可分可合,自由流转 -3)统—生态,原生智能 在万物智联时代重要机遇期,渇蒙系统结合移动生态发展的趋势,提出了三大技术理念: —次开发,多端部署;可分可合,自由流转;统—生态,原生智能澞 图2-1:核心技术理念 1)—ࠊ开发,多ॏ “—次开发,多端部署”指的是—套代码,—次开发上架,多端按部署澞目的是为了支㣜开发者效地开发多种终端设备上的应用澞为了实现这—目的,渇蒙系统提供了几个核心能力,包括多端开发环境,多端开发能力以及多端分发机制澞 7 多ॏ开发ࢺ境 图2-2:—次开发多端部署 HUAWEIDevEcoStudio是வ向全场景多设备提供的—站式开发平台,支持多端双向实时览˛分布式调优˛分布式调测˛超级终端模拟˛低代码可视化开发等能力,帮助开发者降低成本˛提升效率˛提质量澞HUAWEIDevEcoStudio提供的核心能力如下图所示: 1.多ॏ双向ஓ 图2-3:HUAWEIDevEcoStudio核心功能和特征 在渇蒙生态应用的开发阶段,因不同设备的屏幕分辨率˛形状˛大小等差异,开发者要在不同设备上查看界வUI显示,确保实现效果与设计目标—致澞传统的开发模式下,开 8 发者要获取大量不同的真机设备用于测试证澞HUAWEIDevEcoStudio提供了多种设备的双向览能力,支持同时查看UI代码在多个设备上的览效果,并支持UI代码和览效果的双向定位修改澞 2.分布式ઁੰ 渇蒙生态应用具有天然的分布式特征,体现在同—个应用在多个设备上会有大量的交互澞开发过程中,对这些交互进行调试时,要对每个设备分别建立调试会话,并且要在多个设备之间来回切换,容易造成调试不连续˛操作繁䛒等问ொ澞为了提升开发效率,HUAWEIDevEcoStudio提供了分布式调试功能,支持跨设备调试,通过代码断点和调试堆栈可以方便地跟踪不同设备之间的交互,用于定位多设备互动场景下的代码缺陷澞 图2-4:分布式调试交互图 3.分布式ઁ优 分布式应用的运行性能至关重要澞在跨端迁移场景中,要应用在目标设备上快速启动,以实现和原设备之间的无缝衔接;在多端协同场景中,要应用在算力和资源不同的多个设 9 备上都能效运行,以获得整体的流畅体澞以往开发者在分析分布式应用的性能问ொ时, 要单独查看每个设备的性能数据,并手动关联分析这些数据,操作繁䛒,复杂度澞HUAWEIDevEcoStudio提供了分布式调优功能,支持多设备分布式调用链跟踪˛跨设备调用堆栈缝合,同时采த多设备性能数据并进行联合分析澞 图2-5:多设备联合分析 4.®ঃॏࠆ拟 移动应用开发时要使用本地模拟器来进行应用调试,实现快速开发的目的澞渇蒙生态应用要运行在多种不同类型的设备上,为此HUAWEIDevEcoStudio提供了不同类型的终端模拟,支持开发者在多个模拟终端上进行开发调试,降低门㵬˛节约成本澞同时,多个模拟终端˛真机设备也可以自由地组成超级终端,进—步降低开发者获取分布式调测环境的 度澞 10 5.低代№可ੑ化开发 低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速览效果,所见即所得澞通过拖拽式编排˛可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序澞低代码开发的产物如组件˛模板等可以被其他模块的代码引用,并且能通过跨工程复用,支持开发团队协同完成复杂应用的开发澞 多ॏ开发ৗ力 应用如在多个设备上运行,要适配不同的屏幕尺寸和分辨率˛不同的交互方式(如触摸和键盘等)˛不同的硬件能力(如内存差异和外设差异等),开发成本较澞因此,多端开发能力的核心目标是降低多设备应用的开发成本澞为了实现该目标,渇蒙系统提供了以下几个核心能力,支持界வ和业务逻辑代码复用,帮助开发者降低开发与维护成本,提代码复用度澞 1.多ॏUI૯କ 不同设备屏幕尺寸˛分辨率等存在差异,系统要对屏幕进行逻辑抽象,包括尺寸和物理像素,并提供丰富的自适应/响应式的布局和视觉能力,方便开发者进行不同屏幕的界வ适配澞 屏幕逻辑抽象:渇蒙系统提供虚拟像素vp(virtualpixel)对分辨率进行抽象,为应用开发者提供统—单位,不同设备的系统会在显示时,在底层进行像素转化澞不同设备的尺寸存在差异,渇蒙操作系统根据设备的屏幕水平宽度,抽象和定义了四种尺寸:超小(xs)˛小(sm)˛中(md)˛大(lg)澞这四种抽象后的屏幕尺寸与日常使用的设备屏幕类型有— 11 定的对应关系,例如:超小对应智能穿戴设备,小对应手机和折叠屏,中对应平板,大对应 PC与智㘸屏澞开发者可வ向应用运行的目标设备进行所属屏幕类型的适配澞 图2-6:尺寸抽象化 布局:渇蒙系统提供的布局主要分为自适应布局和响应式布局澞自适应布局是当外部容器大小发生变化时,容器内元素可以根据相对关系自动变化以适应外部容器变化的布局能力澞相对关系包含占比˛固定宽比˛显示优先级等澞当前自适应布局能力主要有7种:拉伸能力˛均分能力˛占比能力˛缩放能力˛延伸能力˛隐藏能力˛折行能力澞自适应布局能力可以实现界வ显示随外部容器大小连续变化澞响应式布局是当外部容器大小发生变化时,元素可以根据断点˛栅格或特定的特征(如屏幕方向˛窗口宽等)自动变化以适应外部容器变化的布局能力澞当前响应式布局能力主要有3种:断点˛媒体查询˛栅格布局澞 视觉:渇蒙系统提供的视觉样式能力,包括分层参数˛多态组件和主ொ澞 2.事件交互归— 不同设备间的交互方式等存在差异,如触摸˛键盘˛ë标˛语˛手写笔等,系统要对不同输入方式进行统—处理,向开发者提供归—的逻辑交互事件澞 12 以缩放交互为例,通过多指触控的张合来完成缩放动作,在多设备场景下,缩放交互会出现多种不同的操作输入方式澞为了让应用更好的支持这些缩放交互,渇蒙系统提供如下统 —的缩放交互规则澞 表2-1:缩放交互的规则 操作方式 触屏双指㟃合交互 键盘Ctrl键+ë标滚轮交互 键盘C