HarmonyOS-Ability与Android-Activity之间有什么区别与联系
HarmonyOS-Ability与Android-Activity之间有什么区别与联系
HarmonyOS Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型。
FA支持Page Ability:
Page模板是FA唯一支持的模板,用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。
PA支持Service Ability和Data Ability:
Service模板:用于提供后台运行任务的能力。
Data模板:用于对外部提供统一的数据访问抽象。
Android Activity是Android应用的四大组件之一, 它提供一个窗口用于应用在其中绘制界面,用户可以在界面上完成交互动作。
相似点:
1. 生命周期
HarmonyOS的Page Ability、Service Ability和Android Activity都具体类似的生命周期
HarmonyOS Service Ability 生命周期
Android Activity生命周期
2. 页面交互
1)页面都需要注册,且注册后才能使用;
2)都提供一个窗口,用于提供与用户的交互能力,都可以通过xml文件或者Code加载显示页面;
3)页面跳转都基于Intent对象,以及使用Intent进行数据传递。
4)HarmonyOS Page Ability中的Fraction 和Android Activity中的Fragment中相似,都可以提供页面重复使用的一部分。
区别:
1. 提供能力
HarmonyOS Ability提供了Page、Service、Data能力,集页面展示、后台服务、数据访问于一身。
Android Activity功能并不能直接提供服务和数据访问的能力,它需要依赖Service、ContentProvider、SharedPreferences以及数据库。
2. 页面路由
HarmonyOS Ability的Page能力,可以由一个或多个AbilitySlice构成,AbilitySlice是指应用的单个页面及其控制逻辑的总和,AbilitySlice可以通过Intent直接进行跳转。
Android Activity则无此能力。
3. 注册使用
HarmonyOS Ability在config.json文件中注册。
Android Activity在AndroidManifest.xml中注册。
4. 跨设备
HarmonyOS Ability可以支持将Page在同一用户的不同设备间迁移,以便支持用户无缝切换的诉求。
Android无此能力。