HarmonyOS 3.1全新推出了应用开发Stage模型,并在ArkTS语言、应用程序框架、Web、ArkUI等子系统能力方面有所更新或增强。
HarmonyOS 3.1开放的功能包括:
· Ability框架新增Stage开发模型,包含Stage模型生命周期管理、调度、回调、上下文获取、鉴权等。同时增强了应用的运行管理能力。
· ArkUI开发框架增强了声明式Canvas/XComponent组件能力,增强了组件布局能力及状态管理能力,优化了部分组件的易用性。
· 应用包管理新增查询应用、Ability和ExtensionAbility相关属性的接口。
· 公共基础类库新增支持Buffer二进制读写。
· Web服务新增支持文档类Web应用的文档预览和基础编辑功能,以及Cookie的管理和存储管理。
· 图形图像新增支持YUV、WebP图片编解码等能力;新增Native Vsync能力,支持自绘制引擎自主控制渲染节奏。
· 媒体服务新增相机配置与预览功能。
· 窗口服务新增Stage模型下窗口相关接口,增强了窗口旋转能力,增强了避让区域查询能力。
· 全球化服务新增支持时区列表、音译、电话号码归属地等国际化增强能力。
· 公共事件基础能力增强,commonEvent模块变更为commonEventManager。
· 资源管理服务新增资源获取的同步接口,新增基于名称查询资源值的接口,新增number、float资源类型查询接口,新增Stage模型资源查询方式。
· 输入法服务新增输入法光标方向常量。
Ability生命周期切换以及和AbilityStage、WindowStage之间的调度关系如图1-7所示。
图1-7 Ability生命周期
Stage模型定义了Ability组件的生命周期,只包含创建、销毁、前后台等状态,而将与界面强相关的获焦、失焦状态都放在WindowStage中,从而实现Ability与窗口之间的弱耦合;在服务侧,窗口管理服务依赖于组件管理服务,前者通知后者前后台变化,这样组件管理服务仅感知前后台变化,不感知焦点变化。
需要注意的是,在Ability中存在两个与WindowStage相关的生命周期状态,分别是onWindowStageCreate和onWindowStageDestroy,这两个生命周期状态的变化仅存在于具有显示能力的设备中。前者表示WindowStage已经创建完成,开发者可以通过执行loadContent的操作设置Ability需要加载的页面;后者在WindowStage销毁后调用,以便开发者对资源进行释放。
基于ArkTS的声明式开发范式的方舟开发框架(ArkUI)是一套开发极简、高性能、跨设备应用的UI开发框架,支持开发者高效地构建跨设备应用UI界面。
HarmonyOS提供了支持多种开发语言的API,供开发者进行应用开发,支持的开发语言包括ArkTS、JS(JavaScript)、C/C++、Java。
ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS基于TypeScript(简称TS)语言扩展而来,是TS的超集。这也是ArkTS的原名叫eTS的原因,它是extend TypeScript的简写。
ArkTS继承了TS的所有特性,并且ArkTS在TS基础上还扩展了声明式UI能力,让开发者以更简洁、更自然的方式开发高性能应用。
不同于页面展示的Ability,ExtensionAbility提供的是一种受限的运行环境。
ExtensionAbility组件具有如下特点:
· 运行在独立于主进程的单独进程中,与主进程无IPC(Inter-Process Communication,进程间通信),但共享一个存储沙箱。
· 独立的Context提供基于相应业务场景的API能力。
· 由系统触发创建,应用不能直接创建。
· ExtensionAbility和进程的生命周期受系统管理。