首页 > 其他分享 >细读鸿蒙应用生态开发白皮书

细读鸿蒙应用生态开发白皮书

时间:2024-02-29 19:22:37浏览次数:24  
标签:场景 鸿蒙 细读 白皮书 编译 应用 组件 设备 分布式

下载鸿蒙应用生态开发白皮书

版本:V2.0,发布时间:2022

万物互联IoT设备量级到2025将达到百亿级,万物互联IoT场景下的挑战,开发者需要支持多样化的设备、跨设备的协作,但目前不同的设备类型包含不同的传感器能力、硬件、屏幕尺寸、OS和开发语言,还有不同的交互方式,跨设备协作面临分布式开发带来的各种复杂性,如跨设备间的网络通信、数据同步。采用传统开发模式,适配、管理工作量巨大。

总结移动App开发面临的主要挑战:

  • 针对不同设备上的不同OS,重复开发、维护多套版本
  • 多种语言栈,对开发者技能要求高
  • 多种开发框架,不同编程范式
  • 命令式编程,关注过程细节、变更频繁、维护成本高

AI的演进,云化(计算在云端数据中心进行),依赖网络,有一定时延,且数据传输的安全性、私密性不能得到有效保证。端侧AI可派上用场,它可提供自然语言交互、环境智能感知、图像识别等。

传统厚重App-体验好、功能全,开发成本高、周期长,且用户需主动搜索、安装、升级、卸载等显性操作。
小程序-轻量化、快速达成消费者意愿、可独立执行、完成单一功能,即用即走、无需安装卸载、永远最新

提出新的应用生态特征:

  • 跨设备:一次开发多端运行,软件实体转移、跨设备协同运行,分布式体验
  • 轻量化:轻量化服务、最小化资源消耗
  • AI智慧分发: 智慧场景服务找人
  • 软硬AI协同:满足应用高性能

应用核心技术理念:

  1. 一次开发多段部署
  2. 可分可合自由流转
  3. 统一生态原生智能

核心技术理念

鸿蒙为一多提供了:多端开发环境、多端开发能力、多端分发机制

一次开发多段部署


多端开发环境

面向全场景多设备提供的一站式开发平台 - HUAWEI DevEco Studio

HUAWEI DevEco Studio 核心功能和特征

能力细分:

  1. 多端双向预览
  2. 分布式调试 分布式调试交互图
  3. 分布式调优 多设备联合分析
  4. 超级终端模拟
  5. 低代码可视化开发

多端开发能力:

  1. 多端UI适配。尺寸抽象化:尺寸抽象化
  2. 交互事件归一。缩放交互的规则:缩放交互的规则
  3. 设备能力抽象。使用SysCap来定义每个部件对App开发者提供的系统软硬件能力。API、SystemCapability、部件和设备的关系: API、SystemCapability、部件和设备的关系

多端分发机制

开发多设备应用,一套工程一次打包出多个HAP,统一上架,按需分发。

1.多设备按需分发,两种模式:多设备按需分发的两种模式
2.多入口按需分发:


可分可合,通过业务模块解耦,部署时可将一个或多个模块自由组合,打包成一个App Pack统一上架,在分发运行态,每个HAP都可以单独分发满足用户单一使用场景,也可多个HAP组合分发来满足复杂使用场景。两种打包上架模式:两种打包上架模式

  • 模式1:打包成多个App Pack,不同App Pack包名不一样,需单独上架,运行态中的应用、服务的生命周期完全独立。
  • 模式2:打包成1个App Pack,App Pack中的包名相同,统一上架,运行态中的应用生命周期共享。

统一生态。跨平台App开发框架从渲染方式分为3类:WebView渲染、原生渲染、自渲染。鸿蒙对应提供系统WebView、ArkUI框架、XComponent。

原生智能。原生智能 AI 能力分层开放框架:原生智能 AI 能力分层开放框架

  • 场景化能力:通用卡证识别、实时语音识别
  • AI控件能力:融合文字识别
  • Core DeepLearning API:高性能、低功耗、端侧推理、端侧学习

鸿蒙生态应用开发能力全景图

赋能套件全景图

鸿蒙开发套件全景图

开发套件全景图

测试标准覆盖范围

鸿蒙生态应用测试工具概览

典型测试工具能力简介


上架分发测试能力介绍

运维分析能力介绍


OS开放能力集

涵盖:

  • ArkUI框架
    • 开箱急用的组件、丰富的动效、状态和数据管理、API扩展
  • Ability
    • 组件生命周期回调、系统环境变化通知、应用跳转、万能卡片。
    • MVVM、声明式UI、分布式、多设备
  • 分布式服务
    • 通信方式差异化:WLAN、蓝牙、ETH、PLC、NFC、USB、Zigbee、红外、超声波
    • 分布式软总线(分布式文件、分布式数据库、分布式硬件)、融合感知能力:
  • 安全
    • 设备互信认证、用户身份认证、应用隔离、权限管理、数据分级访问、数据防泄漏
  • 方舟编译器(ArkCompiler)
    • 支持ArkTS、TS、JS,编译为ABC(ArkCompiler Bytecode),方舟编译器:
    • 方舟编译器特点:
      • 原生支持类型(业界执行TS是先把TS转为JS,方舟编译器则是推导TS类型信息并将其传递给运行时,运行时使用类型信息在运行前预生成内联缓存InlineCache来加速字节码执行。TSAOT Compiler可利用字节码中的类型信息,直接编译生成优化机器码。)
      • 并发模型优化与并发API。ECMAScript中没有并发语义表述,浏览器或Node.js通常会提供基于Actor并发模型的Worker API来支持多线程开发。Actor模型下的执行体之间不共享任何数据对象,通过消息机制进行通信,导致Worker启动速度慢、内存占用高。方舟编译器运行时实现了Actor实例中的不可变或不易变对象的共享,较大程度优化了Actor的启动性能和启动内存。
      • 简洁的并发API。提供了TaskPool作为并发API的增强。它支持优先级调度、工作线程自动扩容。
      • 安全。静态编译为ABC时提供了多重混淆能力。且不支持sloppy模式(严格模式)的JS代码,不支持eval等运行动态字符串的功能。
  • 基础软件服务
    • 多媒体服务:相机、视频、音频、图片、多媒体数据管理
    • 通信服务:WLAN、传统蓝牙、低功耗蓝牙、NFC、电话、网络管理
    • 图形服务:绘制、动画、效果、渲染、显示与内存管理、2D图形库、3D图形引擎
  • 硬件服务
    • 电源
    • USB
    • 泛sensor。订阅、控制、服务管理、数据上报、权限管控、维测。
    • 位置服务。GPS、网络定位、地理编码、被动定位、地理围栏、区域管理。
  • App Service
    • 云端服务:账号服务、推送服务、应用内支付服务、分析服务、广告服务。
  • 三方库
    • ArkTS/TS/JS三方库
    • C/C++三方库,NAPI方式使用
    • 鸿蒙生态三方库发布与使用完整的流程:

鸿蒙应用的典型开发场景:

  1. 独立开发一个应用
  2. 独立开发一个元服务
  3. 同时开发应用和元服务

Harmony Design细节:

  • 全场景设计规范: 包括设计理念、人因研究、应用架构、人机交互、视觉风格、动效、声音、多态控件、界面用语、全球化、无障碍、隐私设计等。
  • 丰富的设计资源:图标、媒体音效、字体(支持GB18030-2022 L2)
  • 设计工具:响应式布局、6种动态布局能力。

ArkTS语言细节:它使用.ets作为源码文件后缀,它在TS语法风格基础上,对TS的动态类型添加更严格的约束,引入静态类型,将编译时所确定的类型应用到运行时性能优化中(由于在编译时就可确定对象布局,对象属性的访问可更高效)。同时提供声明式UI、状态管理等能力。ArkTS引入并行、并发能力增强、类型系统增强等语言特性。

ArkUI框架,主体结构图:


声明式开发范式,

  1. 状态管理

应用范围的数据以 AppStorage 为中心进行管理,根据使用场景分为提供系统环境数据管理的 Environment,提供持久化存储支持的 Persistent Storage。组件范围的数据通过装饰器方式提供管理机制,称为状态变量装饰器:

  • @State,组件拥有的状态属性,发生更改时,组件会重新渲染更新UI
  • @Link,组件依赖父组件中的某些状态属性,当任何一个组件中的数据更新时,另一个组件的状态都会更新,父子组件重新渲染
  • @Prop,类似@Link,但子组件的更改不会同步到父组件上,属于单向传递
  • @Provide,作为数据提供方,可更新其子孙节点的数据并触发页面渲染
  • @Consume,在感知到@Provide数据更新后,触发当前自定义组件的重新渲染

基于 AppStorage 还提供了两个状态变量装饰器:

  • @StorageLink,通过该状态变量与 AppStorage 建立双向数据绑定,key 为 AppStorage 中所的属性键值。
  • @StorageProp,单向数据绑定。
  1. 布局
  • 页面布局结构
  • 页面元素构成
  • 适合的布局容器组件、属性控制元素位置和大小约束
  • 支持多种布局方式:弹性布局、列表、宫格、栅格
  1. 组件化

一切UI显示都是组件,ArkUI框架提供的为预置组件,开发者定义的为自定义组件,特点:

  • 可组合
  • 可冲用
  • 配置化生命周期回调
  • 数据驱动更新
  1. 装饰器
  • @Builder,修饰函数,可在 build() 之外生命,在一个自定义组件内快速生成多个布局内容
  • @Styles,将多条样式提炼成一个方法,直接在组件声明的位置使用。
  • @Extend,将新的属性函数添加到内置组件上
  1. 动效

声明式UI的动画由数据变化驱动,而不是直接控制动画的播放,UI框架根据配置自动地进行动画执行:

  • 属性动画
  • 显式动画,animateTo接口
  • 转场动画
  1. 事件交互
  • UI组件事件
  • 交互事件:点击、拖拽、焦点、触摸、按键、鼠标、手势
  1. 绘制能力
  • 图形组合,布局、绝对定位、各种图形组合实现
  • Canvas绘制
  1. 混合开发

游戏、地图需要C++ SDK独立渲染,或相机、视频播放器需要独立纹理填充,XComponent组件支持加载应用动态库、NAPI跨语言调用。

  1. 跨平台

ArkUI-X


类Web开发范式

应用于LiteOS,HML+CSS+JS,单项数据绑定,事件绑定、列表渲染、条件渲染、逻辑控制。后端采用C++实现,可将JS框架下沉到C++层以减少JS内存占用。


可视可说框架

系统级-无需应用适配,自动支持标准控件文本,语音操控
应用级-开发者对控件场景、角标、别名、个性化播报等元素适配

可视可说框架 :

单次语音交互生命周期:


应用程序框架

Stage模型,主要特点:

  • 规范化后台进程管理,四类后台任务:短时任务、长时任务(如音乐播放、投屏、导航)、延时任务(实时性要求不高的场景)、托管任务(如下载、提醒、定位)
  • 原生支持分布式
  • 跨端统一窗口管理
  • 组件共享及面向对象,多个应用组件在运行时共享同一个虚拟机引擎,减少复杂应用的内存占用
  • 逻辑与界面解耦
  • 灵活扩展,如万能卡片、输入法、快捷开关、分享、壁纸、长时任务

Ability 是鸿蒙应用的最基本抽象单位,能够完成一个独立功能,Stage模型中Ability分为:

  • UIAbility,应用主入口,对应桌面图标。一个 UIAbility 实例对应一个任务,一般一个 UIAbility 包含多个 ArkUI 页面。
  • ExtentionAbility,拥有多个具体子类型,如 FormExtention 用于开发万能卡片,InputMethodExtensionAbility 用于开发输入法。

Stage模型的相关概念:

Module 的编译结果的三种目标形态:

  • HAR(HarmonyOS Archive),中间编译产物,最终将被编译合并到HSP或HAP中。
  • HSP(HarmonyOS Shared Package),使得模块可以以运行态服用的形式共享。相较HAR,当有多个 HAP 包依赖与同一个 HSP 时,最终的打包产物中,HSP 只存在一份,
  • HAP(HarmonyOS Ability Package),可单独安装的容器包,同一个HAP包支持在多个设备上运行,但当设备差异较大时,可为不同设备设计不同的 HAP 包。

SDK

ArkTS API,涵盖应用服务、声明式UI、多媒体、图形窗口、通信、安全、Web、AI等
C API,覆盖部分基础底层能力,如libc、图形库、窗口系统、多媒体、压缩库,适合游戏、复用C/C++库、针对CPU特性专项定制如neon加速

C API接口组成:

N-AP接口,类Node的N-API接口mm
方舟工具链

普通 JS 运行时与方舟编译运行时比对图

前端流水线在发起编译时,进行工程参数解析,依赖分析,语法校验,语法转换,代码编译等各个编译动作的编排。前端编译器负责编译流水线中源代码编译,提供对应的触发接口给编译流水线。

编译流水线

前端编译器负责将 ArkTS 代码编译成方舟字节码 ABC,鸿蒙生态应用编译流程中,分为两种编译模式。分别是 bundle 和 esmodule 编译模式。两者的区别主要在源码文件的处理上,bundle 编译把各个有依赖关系的源代码通过打包方式打成一个 bundle 文件,然后通过前端编译器编译成 ABC 字节码文件;而 esmodule 编译是保持用户写的 ArkTS 模块不变,通过前端编译器编译成 ABC 字节码文件,字节码文件内保留各个模块的代码段,依赖关系等信息;当前推荐开发者使用 esmodule 模式,保持模块语义。

前端编译器架构

前端编译器是根据输入的 ArkTS 源码,进行词法,语法解析、转换、编译、输出字节码文件;在这个过程中会提取代码中标注的类型信息,进行类型检查,类型绑定,最终作为元数据生成到字节码 ABC 文件中。


集成开发环境

界面预览全景

代码调试:

  • 分布式调试:分布式调试用于定位跨设备交互场景下的代码缺陷。使用跨设备的断点调试,可以使断点在不同设备的代码间跳转,自动寻找目标设备并建立调试会话。通过查看跨设备的调试堆栈,可以快速准确地跟踪设备交互的详细情况,包括每次流转的起点(设备、函数栈)、终点(设备、函数栈)和详细交互数据。
  • 跨语言调试:支持 ArkTS 和 C/C++两种语言同时调试,并支持断点从 ArkTS 语言跳转到被调用的 C/C++语言;提供统一的调试堆栈,便于快速查阅两种语言代码的调用层次关系,整体操作体验与单一语言调试一致。
  • Hot Reload:修改代码后,无需重新创建调试会话和启动鸿蒙生态应用、元服务,即时生效,大幅缩短调试时间。
  • 多维日志:查看系统消息日志时,可根据设备、进程、日志级别以及自定义的规则灵活过滤,快速筛选,协助定位代码缺陷。在分布式场景下,可以同时查看多个设备的系统消息日志。其中特别重要的异常日志在独立的窗口呈现,避免淹没在大量系统消息日志中。
  • ArkUI Inspector:支持显示视图的布局及组件关系,查看组件属性列表,过滤组件及属性,用于定位真机上的 UI 显示问题。
  • 反向调试:支持通过反向单步,反向 continue 等操作,查看历史快照,线程,栈帧,变量等信息。通过反向时间线界面,查看多线程场景下的快照时序,用于定位偶现问题以及多线程并发的资源竞争等问题。

性能调优,常用场景化调优模板 :

设备模拟:

  • 超级终端
  • 器件模拟:外设、传感器、电池、WLAN、移动网络、GPS、Camera、陀螺仪、心率
  • 场景化数据注入:低电量、弱网络信号、摇一摇、GPS、跑步
  • 统一设备管理

命令行:

  • sdkmgr,管理HarmonyOS SDK
  • hdc,设备间传输文件、管理应用
  • bytrace,内核ftrace的封装扩展

端云一体:


测试:

单元测试框架

集成测试
1.UI 测试框架 ,uitest-api 核心类功能列表
2. 性能测试工具 SmartPerf 功能介绍
3. 稳定性测试工具
4. 分布式设备录制回放

专项测试
1.应用与服务体检
2.专项测试云测平台


上架与分发

上架

一站式分发能力

签名方案

统一上架能力

上架审核 开发者检测 , 应用/服务检测

应用分发

应用分发全景图

分发阶段

智慧分发 引擎介绍

服务分发

基于场景感知的 AI 分发元服务


自由流转

自由流转的两种形态

分布式运行环境

跨端迁移示意

显示协同示意

交互协同示意

算力协同示意


运维监控架构图

崩溃服务功能

性能管理功能

云服务监控功能


全场景案例

多机位直播场景

分布式健身场景

分布式打车场景

分布式办公场景

分布式游戏场景

标签:场景,鸿蒙,细读,白皮书,编译,应用,组件,设备,分布式
From: https://www.cnblogs.com/hencins/p/18036722

相关文章

  • 【专题】2023年中国智能家居(AIoH)发展白皮书报告PDF合集分享(附原数据表)
    全文链接:https://tecdat.cn/?p=33358原文出处:拓端数据部落公众号智能家居行业目前已经基本实现了家用物联网的建设。为了满足用户个性化和弹性化的需求,智能家居3.0阶段着重于将云计算、边缘计算和人工智能等支持技术深化应用于智能家居产品中。阅读原文,获取专题报告合集全文,解锁......
  • Hybird App开发,一种快速实现纯血鸿蒙App开发的理念
    2024年1月18日的开发者(HDC)大会上,就官宣了“纯血鸿蒙”操作系统即将于2024年3季度正式投产。与此同时,支付宝、京东、小红书、微博、高德地图、中国移动等在内的超百个头部应用都启动了鸿蒙原生应用开发,鸿蒙开发者日新增注册量已过万,同时众多985、211高校接连开设HarmonyOS相关课程......
  • 《业务建模驱动的企业架构转型白皮书》
    ​当前,我国金融等国民经济重点行业和企业的数字化转型,仍存在战略落地难、业务技术协同难以及投入产出匹配难等问题,亟需通过实施企业架构,从顶层设计出发,制定符合自身需要的转型战略;从全局视角出发,将战略拆解细化为具体可行的措施;从业技融合出发,把握全局需求,优化业务与IT的协同机制......
  • 鸿蒙的系统安全
    系统安全在搭载HarmonyOS的分布式终端上,可以保证“正确的人,通过正确的设备,正确地使用数据”。通过“分布式多端协同身份认证”来保证“正确的人”。通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”。通过“分布式数据在跨终端流动的过程中,对数据进行分类分级......
  • 鸿蒙的技术特性
    硬件互助,资源共享多种设备之间能够实现硬件互助、资源共享,依赖的关键技术包括分布式软总线、分布式设备虚拟化、分布式数据管理、分布式任务调度等。分布式软总线分布式软总线是手机、平板、智能穿戴、智慧屏、车机等分布式设备的通信基座,为设备之间的互联互通提供了统一的分布......
  • 【专题】2023年全球移动应用(非游戏)营销趋势白皮书报告PDF合集分享(附原数据表)
    原文链接:https://tecdat.cn/?p=35180原文出处:拓端数据部落公众号随着国内政策调整,移动APP业务前景充满不确定性,但这也为出海应用带来了新机遇。2023年,AI和短剧应用的崛起为出海行业注入了信心。随着用户需求增长和技术进步,这两个领域有望在2024年迎来更大发展。阅读原文,获取专......
  • 【专题】中国企业财务数字化转型白皮书报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32389原文出处:拓端数据部落公众号新冠疫情等对商业活动进行了重新塑造,并使金融活动在商业活动中的位置发生了变化。在可持续发展的时代背景下,财务人员需要适应新的工作模式,主动接受新的技术,将关注的重点从传统的财务报告范围拓展到可持续性、包容性......
  • [转]多端统一框架Taro基础教程(支持转小程序/React Native(安卓/iOS)/鸿蒙)
    原文地址:多端统一框架Taro基础教程-知乎随着微信小程序越来越火,其它平台也都推出了自己的小程序产品(支付宝、快应用、百度、抖音)。小程序最大的特点就是平台能为你提供强大的流量,所以小程序开发变成了前端必会知识。作为一个从来不想写程序,一心只想泡妹子的程序员,我一直期盼......
  • 鸿蒙Next怎么升级更便捷?
    早在2023年11月,市场上有自媒体博主表示,华为HarmonyOSNEXT的升级计划是2X年底到2X年初完成一亿部,2X年底完成三亿部。虽然该博主没有明确具体年份,但预计是2024年底2025年初升级一亿部HarmonyOSNEXT设备,2025年底完成三亿部。  紧接着,2024年1月18日,华为的开发者(HDC)大会......
  • 【译】IEEE白皮书 6G 太赫兹技术的基本原理 2023版
    第一章简介太赫兹波是介于微波和光波之间的光谱区域,频率从0.1THz~10THz之间,波长在3mm~30μm之间。提供大块连续的频带范围以满足对Tbit/s内极高数据传输速率的需求,使该区域成为下一代无线通信(6G)的重点研究领域。预计在2030年左右实现商业部署,太赫兹区域在成像、光......