2022HDC见闻与新技术学习体验分享 原创 精华
一、创新照见未来,共建鸿蒙世界,主题演讲笔记
以创新照见未来,共建鸿蒙世界为主题的第四界HDC大会于2022年11月4日在东莞松山湖线上与线下同时开启。本次大会展示了鸿蒙生态的最新成果与发展规划。第一天的主题演讲中,华为发布了解一下分布式能力、原子化服务、AI、地图、音视频、隐私安全等创新技术成果;汇聚了鸿蒙生态中智能家居、智慧办公、影音娱乐、智慧出行、运动健康五大场景下的创新体验及全新开放能力。基于声明式开发体系发布了鸿蒙开发套件等内容,全面加速推进鸿蒙应用生态。在后面几天的开发者主题演讲、松湖对话、开发者技术论坛、Tech.Hour、Codelabs等活动中让我们大家更加直观地互动体验这一系列的成果和未来发展规划。
通过参与本次HDC大会,我们了解到截至目前,鸿蒙智联合作伙伴超2200+,产品发货量超2.5亿;鸿蒙生态开发者超200万+,HarmonyOS原子化服务达50000个;清华大学等166所国内高校开设HarmonyOS课程,为2万+学生开发者提供丰富的学习资源,教育部产学合作项目鸿蒙生态方向已累计支持95项。鸿蒙为消费者带来视觉、听觉、手语、适老化等无障碍服务,不断引领数字健康新发展。同时OpenHarmony开源鸿蒙不断增强开放能力,使能千行百业加速数字化、智能化转型。
就像我们了解到的,华为将鸿蒙生态中领先的各项创新技术定义成标准能力进行开放,我们认为鸿蒙生态相关的开发者黄金时代已来。
二、原子化服务与新应用,鸿蒙生态开发者的黄金时代
通过参加本次HDC大会中鸿蒙开发套件(语言与框架)、鸿蒙开发套件(DevEco开发者工具)、原子化服务等技术论坛活动与体验DevEco Studio、DevEco Testing、AppGallery Connect等开发套件对鸿蒙最新的发展有更深的体会。
原生轻量化服务是鸿蒙应用生态的重要部分,HarmonyOS原子化服务即用即走、无需传统的下载、注册、登录,更易获取与分享,直达服务,为用户带来系统级、卡片化、多入口、跨设备无缝流转、主动服务的创新体验。HarmonyOS生态还为原子化服务提供了超过30+分发入口,包括负一屏、桌面、小艺建议、小艺语音、智慧搜索等,为开发者带来更强的服务分发和触达。
华为以JS/TS语言生态体系为基础,构建更高效便捷的鸿蒙开发语言ArkTS,且通过ArkUI、Stage模型和ArkCompiler解决大型和复杂声明式应用的性能和安全问题,这标志与预示着鸿蒙原生应用生态不仅有轻量化原子化服务体系,同时正向大型多工程、高负载复杂原生应用全面推进。
本次HDC大会华为发布了《鸿蒙生态应用开发白皮书V1.0》,提出面向万物互联时代应用与服务开发的三大理念,包括一次开发,多端部署即一套代码、业务逻辑与UI适配不同智能终端设备,原子化服务的可分可合,自流转,HarmonyOS与OpenHarmony统一生态,实现应用原生智能,拥包三方框架,从底层芯片到上层应用、服务能力开放,为用户带来原先生智能的使用体验,未来HarmonyOS将持续基于声明式开发体系和三大理念长期演进,全方面发展鸿蒙应用生态。
在整体流程上,华为从设计>开发>测试>上架,端到端切换声明式开发系统,将应用开发套件升级为“鸿蒙开发套件”,这代表了HarmonyOS确定以声明式开发体系为方向,应用全面鸿蒙化的里程碑点。
三、鸿蒙开发套件系列与HarmonyOS3.1初体验
具体的鸿蒙开发套件主要特征与体验如下:
HarmonyOS Design 涵盖全面的全场景设计规范,丰富的设计资源,以及设计工具, 帮助开发者提升开发效率。全面的全场景设计规范,包括设计理念、人因研究、应用架构、人机交互、视觉风 格、动效、声音、多态控件、界面用语、全球化、无障碍、隐私设计等。
丰富的设计资源,提供上千种的图标资源,媒体音效专项分类,快速开发调用;字体再升级,支持新版国标汉字等。
高效的设计工具,动态响应式布局,六种动态布局能力,控件元素自由组合,无缝 适配多尺寸界面。首创自适应 UI 引擎,自动学习优化布局 ,提升开发效率与实现 效果;提供支持手机、平板、折叠屏、智慧屏、智能座舱等多设备多品类的响应式。提供了多类、多场景布局模板,支撑快速设计开发。
ArkTS 是鸿蒙生态应用的开发语言。它在 TypeScript(简称 TS)的基础上,提供了声明式 UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发高性能应用。TS 是 JavaScript(简称JS)的超集,而基于TS的ArkTS会结合应用开发和运行的需求持续演进, 包括引入分布式开发范式、并行和并发能力增强、类型系统增强等方面的语言特性。 目前 ArkTS 针对 TS 的扩展主要是从 UI 框架的需求角度,在 TS 基础上做了进一步的扩展,包括定义了各种装饰器、自定义组件和 UI 描述机制,再配合 UI 框架中的 UI 内置组件、 事件方法、属性方法等共同构成了应用开发的主体。 在应用开发中,除了 UI 的结构化描述之外,还有一个重要的方面是状态管理。ArkUI 是 基于 ArkTS 的 UI 框架,基于 ArkTS 提供的扩展语法, ArkUI 框架中提供了多维度的状态管 理机制。例如 UI 相关联的数据,不仅可以在组件内使用,还可以在不同组件层级间传递, 比如父子组件之间,爷孙组件之间,也可以是全局范围内的传递,还可以是跨设备传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。开发者可以灵活地利用这些能力来实现数据和 UI 的联动。
总体而言,全新声明式开发语言ArkTS为更简洁高效的JS/TS语言“超集”,进一步降低跨端应用开发代码量,开发效率提升30%;ArkTS 通过扩展成熟语言、结合语法支持 ArkUI 提供简洁高效的声明式开 发范式,再结合 UI 组件、状态管理等方面设计,统一鸿蒙生态应用的开发范式。
ArkUI 框架 ArkUI 是鸿蒙生态原生的 UI 开发框架。ArkUI 框架提供给开发者的主要能力。如多种开箱即用的 UI 组件,如文本显示、图片显示、按键等;多种布局方式,如弹性布局、列表、宫格、栅格布局等; 包含了属性动画、转场动画和自定义动画能力; 包含了多种绘制能力,支持图形绘制、颜色填充、文本绘制、图片绘制等; 提供了多种交互能力,应用在不同平台通过不同输入设备均可正常进行 UI 交 互响应; 提供 API 扩展机制,通过此种机制进行封装风格统一的 JS 接口;其中开发范式分别是基于JS扩展的类Web开发范式和基于ArkTS的声明式开发范式,两者长期共存,类 Web 开发范式对于 Web 及前端开发者更友好,声明式开发范式开发更加简洁高效。
总之,ArkUI渲染机制升级,独特的渲染三树合一技术,极大简化界面渲染算法,使应用界面滑动加载速度提升45%;创新的Stage开发模型,在开发阶段规范化后台进程启动机制,从根本上解决应用卡顿问题。逻辑和UI分离技术,则并进一步提升流转开发效率。
方舟工具链,传统的 JS 程序开发中,应用程序往往带的是经过前端打包工具处理过的 JS bundle 文件,在程序运行阶段进行解释执行;这种运行方式需要设备有强大的计算能力。鸿蒙系统能 够支持的设备范围广泛,覆盖从低端的 IoT 设备到高性能手机设备。采用传统的方式,无法保证多类型设备的体验一致性。在鸿蒙开发环境中,应用代码是通过前端编译器完成编译的。前端编译器按照语言规范 解析源代码,编译成方舟运行时能够理解的二进制字节码格式(ABC,ArkCompiler ByteCode),最后打包到应用中。
前端编译器是鸿蒙应用框架与其它 JS 应用框架最主要的差别之一。前端流水线在发起编译时,进行工程参数解析,依赖分析,语法校验,语法转换,代码编译等各个编译动作的编排。前端编译器负责编译流水线中源代码编译,提供对应的触发接口给编译流水。前端编译器是根据输入的 ArkTS 源码,进行词法,语法解析、转换、编译、输出字节码文件;在这个过程中会提取代码中标注的类型信息,进行类型检查,类型绑定,最终作为元 数据生成到字节码 ABC 文件中。
ArkCompiler编译运行机制优化带来业界首个动态类型语言字节码AOT编译技术,极大缩短动态类型语言应用启动时间;同时提供多种源码保护技术,提高动态类型语言源码安全。
开发、测试工具及应用上架配套声明式开发体系全面升级。
集成开发环境 HUAWEI DevEco Studio 是面向鸿蒙生态的集成开发环境,提供了一站式的鸿蒙生态应用、原子化服务开发能力。具体功能特征包括如下等内容。
工程管理 ,提供基础的工程管理能力,包括工程向导,工程模板,鸿蒙视图,SDK 管理,样例导入 等,并提供模板市场,支持扩展丰富的模板。开发者可以方便地安装和更新鸿蒙 SDK,利用 模板创建鸿蒙生态应用、原子化服务,使用鸿蒙视图聚焦到关键文件及配置,也能导入样例。
代码编辑 ,针对 ArkTS 语言及 ArkUI 框架,HUAWEI DevEco Studio 提供了代码补全、跳转、校 验、重构、高亮、折叠、格式化等一系列编辑功能,辅助开发者便捷地阅读代码,高效地编 写代码,实时地纠正代码错误。相较于传统的代码编辑,HUAWEI DevEco Studio 还结合了 人工智能技术,根据待补全位置的上下文代码特征进行预测和推荐,使补全项更精准,推荐内容更完整,开发人员可以更快速地完成鸿蒙生态应用、原子化服务开发。同时,HUAWEI DevEco Studio 内置鸿蒙生态应用、原子化服务开发最佳编程规范校验功能,实时提示代码错误,支持快速纠错,可高效地将建议修复结果应用于代码中。 界面预览 ,在开发过程中,开发者需频繁修改 UI 代码,查看对应的呈现效果,确保开发与实现目标一致。传统的开发模式下,开发者每次修改代码后,执行编译构建,并推送应用到设备上 重新运行,才能查看到界面的呈现效果,整个过程冗长,产生极大的时间浪费。HUAWEI DevEco Studio 提供了界面预览能力,使开发者更方便快速地调测应用界面,大幅提升界面开发效率。
编译构建 ,HUAWEI DevEco Hvigor 是一款华为自研轻量级编译构建工具,将编译操作进行任务化 管理,为开发者提供自动化的构建服务。其具备强大的构建能力,支持多种语言(ArkTS、 C/C++等)、多种文件(低代码描述文件、资源文件等)的快速编译,最终生成 HAP/App 包。 此外,Hvigor 还具备高效编译、差异构建、灵活扩展、独立运行特点。
代码调试,在开发过程中,代码调试是使用频率最高的功能之一,开发者可以使用断点跟踪或日志 分析,快速定位代码缺陷。HUAWEI DevEco Studio 提供了常用的代码调试功能,如设置断 点(普通断点、条件断点、异常断点、符号断点等)、断点跳转(Step Over/Into/Out)、变量值查询、表达式计算、调试堆栈、命令行工具等。此外,基于鸿蒙系统的特点,还提供分布式调试、跨语言调试、多维日志等功能,一进一步提升效率。
性能调优,应用的运行性能至关重要,一旦出现卡顿、发热、电量消耗过快等问题,便会导致体验 急速下降,造成用户流失。性能调优是鸿蒙生态应用开发阶段中非常重要的一环,然而性能 优化过程充满挑战,需要开发者了解应用程序框架、系统、硬件各方面知识,并对多维度性 能数据进行综合分析。为了降低性能调优技术难度,HUAWEI DevEco Studio 推出了场景 化调优工具 DevEco Insight,提供以下四点关键能力,场景化调优模板,模板自动推荐,高效数据分析,一键定位代码行。
设备模拟 ,HUAWEI DevEco Studio 提供了设备模拟的能力,解决鸿蒙生态应用、原子化服务开发 过程中遇到的真机设备不足、无分布式应用调试环境等问题,为开发者提供低成本、易获取 的调测验证环境。 包括超级终端模拟,丰富的器件模拟,场景化数据注入, 统一设备管理。命令行工具 HUAWEI DevEco Studio 提供了一系列命令行工具,辅助开发者更高效的管理 SDK、 设备,提升调试、调优的效率。目前包括sdkmgr,查看、安装和卸载 HarmonyOS SDK。 hdc,管理设备、本地和设备之间传输文件、安装和卸载应用、启动和终止应用。 bytrace:对内核 ftrace 进行了封装和扩展,配合应用打点,追踪进程轨迹,分析 应用性能。
端云一体化开发 ,HUAWEI DevEco Studio 在传统的“端开发”基础上新增了“云开发”能力,支持开发鸿蒙生态应用、原子化服务的云侧服务,提供端云一体的开发体验。端云一体化开发,支持端侧代码和云侧代码的协同开发,统一管理端侧和云侧代码 目录,进行端云代码的端到端开发、调试和部署。 端云一体化组件,内置完整的云侧逻辑,开发者在集成 UI 组件的同时即可自动实现 云侧逻辑,快速实现特定场景的功能。 Serverless,为鸿蒙生态应用、原子化服务的云侧服务提供 Serverless 化托管服务, 具有开箱即用、一键部署、自动弹性伸缩、免运维等特点,开发者可聚焦业务逻辑 本身,降本增效。
DevEco Testing,鸿蒙应用开发的测试工具,鸿蒙生态应用、原子化服务的测试分层模型分为单元测试、集成测试、专项测试。
单元测试是函数级别的验证。函数是产品开发实现的最基本单位,单元测试通过验证产 品代码的函数输入输出,最终保证整个产品的质量。 DevEco Testing hypium 单元测试框架可以在真机或者模拟器上运行。单元测试框架采 用插件化机制开发,具备空间占用最小化、功能可定制、语法兼容特点。测试框架由核心模块和扩展模块组成。其中核心模块是测试框架的最小集,包含执行必 备核心接口和逻辑。扩展模块是在核心模块的基础上增加一些常用能力。核心模块采用插件化机制,提供接入能力和运行时上下文,扩展模块通过插件的方式接入。 DevEco Testing hypium 单元测试框架具备语法统一,可定制,轻量化的特点。
集成测试分为模块测试和特性测试。模块测试把若干个单元组装,发现模块缺陷;特性测试把若干个模块集成,发现特性缺陷。鸿蒙生态为开发者提供多种集成测试的能力,方便开发者针对不同的集成测试场景,快速便捷的进行测试。
UI 测试框架 ,通过简洁易用的 API 提供查找和操作界面控件能力,支持开发者编写基于界面操作的自动化测试脚本。
性能测试工具 ,DevEco Testing SmartPerf 提供一套完整的应用测试和调优工具,为应用开发者提供方便快捷的应用性能测试手段。
专项测试是应用/服务的多维度测试,包括全方位的质量体检,同时也提供性能、功耗、 稳定性、兼容性、UX、安全等专项自动化测试。 应用与服务体检用于检测并评价应用与服务的质量,提供评估结果和改进建议,帮助开发者提升产品质量。通过 DevEco Studio 连接本地设备或模拟器,自主遍历应用或者服务。 检测维度目前包含设计约束、兼容性、性能、稳定性。 DevEco Testing 专项测试服务以云端服务的方式提供了多维度的专项测试能力,无需 人工干预,自动完成应用/服务的测试。专项测试报告可以帮助开发者提前识别和定位问题, 为消费者带来更佳的使用体验。
云端的 DevEco Testing 专项测试服务提供了多设备环境,可用于一次开发多端部署测试,降低开发者获取测试设备的门槛,并提供自动化的测试能力。 云端测试包含设计约束、安全漏洞检测、隐私合规检测、兼容性测试、稳定性测试、性 能测试、功耗测试、UX 测试。可检测应用或服务从安装、启动、运行、卸载全生命周期的 问题,如应用崩溃、冻屏、启动响应耗时长、前后台内存/CPU 占用高、启动/卸载异常等。
HUAWEI AppGallery Connect 为开发者提供全球化、全场景一站式应用分发能力,并为开发者提供质量、安全、工程管理等领域的能力,大幅降低应用开发与运维难度,提升版 本质量,帮助开发者获得用户并实现收入的规模增长。
快速上架 HUAWEI AppGallery Connect 作为开发者统一提交入口,集成证书管理、项目管理、 版本管理等功能,支持鸿蒙生态应用、原子化服务的快速上架与分发。
证书颁发 ,提供统一的证书颁发入口,支持软件证书和 Provision Profile 管理,保障开发者合法性 与应用合法性。
统一上架 ,开发者开发完成之后,上传包体、描述信息、素材等,提交上架审核。也可委托 SaaS 厂商为其代理完成开发上架。
上架审核 ,为了给用户提供更安全且出色的体验,HUAWEI AppGallery 对开发者提交的鸿蒙生态 应用、原子化服务进行严格的审核与测试。开发者需了解并遵循《华为应用市场审核指南》。
应用分发 ,HUAWEI AppGallery 提供了灵活的分发能力,支持按阶段、维度、场景等多种形式, 高效、精准地分发到用户设备上。
开发者可以在应用的不同成熟阶段采用不同的分发手段,结合应用的运行数据与用户声音,不断改进应用质量,持续提供优质服务。
分发维度 ,开发者可以通过多种维度灵活分发应用。具体包括设备维度,OS 维度,区域维度,应用属性维度等。
开发者上架应用之后,HUAWEI AppGallery 会根据不同的分发场景,选择最优的分发方式,从而实现高效分发,提升用户体验。
开发者可以将应用进行合理拆分,将非核心的功能做成动态特性;用户首次下载应用时,只下载基本功能模块,仅在执行到动态特性时才按需下载,既满足了业务功能,也减少了存储空间的占用,消耗更少的网络流量,提升下载转换率。 当开发者发现代码 bug 或者关键漏洞时,HUAWEI AppGallery 提供代码方法级的快速修复方案,支持快速解决问题。
HUAWEI AppGallery 构建了搜索、推荐、推广三大引擎,从海量数据中构建丰富的画像和知识图谱,基于 AI 能力实现精准送达。
本次大会期间,华为还发布HarmonyOS 3.1开发者尝鲜版本,SDK全面升级ArkTS声明式应用开发。 HarmonyOS 3.1支持1万+ArkTS APIs,从声明式UI能力、应用开发框架、多媒体能力、WEB能力、通讯能力到分布式系统服务全方位增强。实现HarmonyOS应用生态与OpenHarmony应用生态兼容,HarmonyOS 3.1 SDK兼OpenHarmony API能力。
看到这么多的新理念与新技术,充满无限可能与快速发展的鸿蒙生态,抓紧参与吧。
前排学习老师总结
看完对鸿蒙更有信心了
线上看的直播,华为还是实力强劲
全面升级,持续前进中。