Page Ability是Feature Ability唯一支持的Ability,它本质上是一个窗口,类似于Android中的Activity,用于提供与用户交互的能力。另外,HarmonyOS还提供了AbilitySlice,AbilitySlice的功能与Page Ability类似,只是在切换时可以在同一个Page Ability内完成。从Page Ability切换到Page Ability,相当于Web页面用新窗口导航到另一个页面。从AbilitySlice切换到AbilitySlice,相当于Web页面用同一个窗口导航到另一个页面。
一个Page Ability可以不使用AbilitySlice,也可以使用一个或多个AbilitySlice。在创建HarmonyOS工程时,生成的Demo代码中包含了一个默认的AbilitySlice(MainAbilitySlice.java)。图2—1是Page Ability和AbilitySlice的关系。
图2—1 Page Ability和AbilitySlice的关系
如果在Page Ability中使用多个AbilitySlice,那么这些AbilitySlice提供的业务能力应高度相关。
例如,在线视频播放器的主界面可以用一个Page Ability来实现,在主界面中包含了两个AbilitySlice,一个用于展示视频列表,另一个用于播放视频。
在DevEco Studio中创建HarmonyOS工程时,IDE会提供一些Ability模板,如图2—2所示。通过这些Ability模板,可以生成HarmonyOS工程的代码框架,其中会包含一些简单的例子,相当于HelloWorld工程。
图2—2 创建HarmonyOS工程时IDE提供的Ability模板