从零开始学HarmonyOS之Ability(Feature Ability)

Python028

从零开始学HarmonyOS之Ability(Feature Ability),第1张

Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板(如上图所示)。

      在指定目录右键 ->New ->Ability ->Empty Page Ability(Java)

输入Page Name , 下面package name和Layout Name 这里默认,根据自己需要可以手动修改

点击Finish后会生成以下几个文件:

同时也会在config.json自动配置相关信息是:

Page生命周期的不同状态转换及其对应的回调

setMainRoute (String entry) 是用来设置Ability默认显示的AbilitySlice页面

如果要在Page里添加多个AbilitySlice时可使用 addActionRoute( String action, String entry )

AbilitySlice作为Page的内部单元,以 Action 的形式对外暴露,因此可以通过配置Intent的 Action 导航到目标AbilitySlice

Page间的导航可以使用 startAbility() 或 startAbilityForResult() 方法,获得返回结果的回调为 onAbilityResult() 。在Ability中调用 setResult() 可以设置返回结果。

AbilitySlice作为Page的组成单元,其生命周期是依托于其所属Page生命周期的。AbilitySlice和Page具有相同的生命周期状态和同名的回调,当Page生命周期发生变化时,它的AbilitySlice也会发生相同的生命周期变化。此外,AbilitySlice还具有独立于Page的生命周期变化,这发生在同一Page中的AbilitySlice之间导航时,此时Page的生命周期状态不会改变。

当AbilitySlice处于前台且具有焦点时,其生命周期状态随着所属Page的生命周期状态的变化而变化。当一个Page拥有多个AbilitySlice时,

例如:MyAbility下有FooAbilitySlice和BarAbilitySlice,当前FooAbilitySlice处于前台并获得焦点,并即将导航到BarAbilitySlice,在此期间的生命周期状态变化顺序为:

FooAbilitySlice从ACTIVE状态变为INACTIVE状态。

BarAbilitySlice则从INITIAL状态首先变为INACTIVE状态,然后变为ACTIVE状态(假定此前BarAbilitySlice未曾启动)。

FooAbilitySlice从INACTIVE状态变为BACKGROUND状态。

对应两个slice的生命周期方法回调顺序为:

FooAbilitySlice.onInactive() -->BarAbilitySlice.onStart() -->BarAbilitySlice.onActive() -->FooAbilitySlice.onBackground()

在整个流程中,MyAbility始终处于ACTIVE状态。但是,当Page被系统销毁时,其所有已实例化的AbilitySlice将联动销毁,而不仅是处于前台的AbilitySlice。

由于AbilitySlice承载具体的页面,开发者必须重写AbilitySlice的onStart()回调,并在此方法中通过setUIContent()方法设置页面,如下所示:

AbilitySlice实例创建和管理通常由应用负责,系统仅在特定情况下会创建AbilitySlice实例。例如,通过导航启动某个AbilitySlice时,是由系统负责实例化;但是在同一个Page中不同的AbilitySlice间导航时则由应用负责实例化。

引用官方文档地址:  Page Ability生命同期

harmonyos读音:英[ˈhɑːməni] [əʊ] [es]、美[ˈhɑːrməni] [oʊ] [es] 。

华为鸿蒙系统(HUAWEI HarmonyOS),是华为在2019年8月9日于东莞举行华为开发者大会,正式发布的操作系统鸿蒙OS。

华为鸿蒙系统是一款全新的面向全场景的分布式操作系统,创造一个超级虚拟终端互联的世界,将人、设备、场景有机地联系在一起,将消费者在全场景生活中接触的多种智能终端实现极速发现、极速连接、硬件互助、资源共享,用合适的设备提供场景体验。

发展历程

2021年10月14日,美的发布了美的物联网操作系统1.0,是首个基于鸿蒙OpenHarmony 2.0的全场景智能家居操作系统。

2021年10月27日,Eclipse基金会发布公告,宣布推出基于开源鸿蒙OpenHarmony的操作系统Oniro。

2021年11月9日,于北京举行的“操作系统产业峰会2021”宣布鸿蒙已经实现了内核技术共享,未来将进一步在分布式软总线、安全OS、设备驱动框架、以及新编程语言等方面实现共享。通过能力共享,实现生态互通及云边端协同,更好地服务数字化全场景。”

2021年11月17日,HarmonyOS迎来第三批开源,新增开源组件769个,涉及工具、网络、文件数据、UI、框架、动画图形及音视频7大类。HarmonyOS前两次开源已上线超过700个Java/JS组件。

2022年,鸿蒙系统Harmony OS将登陆欧洲。截至2021年12月2日,华为宣布HarmonyOS 2已有135款设备已经升级正式版,6款设备正在测试招募,而且各种升级设备数量已超过1.5亿。

2021年12月,鸿蒙系统推出不到半年用户已超过1.5亿。华为鸿蒙此次出海,用户量有望暴增,将成为继安卓、iOS之后的全球第三大系统