HarmonyOS(鸿蒙)—— Ability与页面
目录
一、简介
1.1 什么是页面
2.1 HarmonyOS(鸿蒙)中的页面
二、Ability
2.1 简介
2.2 Page Ability
2.3 Service Ability
2.4 Data Ability
三、HarmonyOS页面的设计
3.1 原子化服务与HAP简介
3.2 可分可合思想
3.3 HAP中的Ability
四、开发DEMO
一、简介
1.1 什么是页面
信息以页面信息组织,信息页面由语言来实现,在各个信息页面之间建立超文本链接以便浏览,这就是页面。页面一般包括:文本、图像、表格、超链接等基本元素。
2.1 HarmonyOS(鸿蒙)中的页面
当我们打开手机App之后看到的都是页面!
在HarmonyOS中,一个页面可以被当做一个Ability,更准确的说是Page Ability中的AbilitySlice(指应用的单个页面及其控制逻辑的总和),这里先简单介绍Ability。
二、Ability
2.1 简介
Ability是应用所具备能力的抽象(我感觉也可以理解为模板,模块),也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。
Ability分为两种:
- FA(Feature Ability)
- PA(Particle Ability)
Ability类型 | 支持模板 | 描述 |
---|---|---|
Feature Ability | Page Ability | Page模板:用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice实例表示。 |
| Particle Ability | Service Ability和Data Ability | Service模板:用于提供后台运行任务的能力。
Data模板:用于对外部提供统一的数据访问抽象。 |
2.2 Page Ability
Page Ability是 Feature Ability唯一支持的模板。
用于提供与用户的交互能力,其实就是页面的父级。一个Page可以由一个或多个AbilitySlice构成,AbilitySlice是指应用的单个页面及其控制逻辑的总和。官方认为当一个Page由多个AbilitySlice共同构成时,这些AbilitySlice页面提供的业务能力应具有高度相关性。
HarmonyOS支持不同Page之间的跳转,并可以指定跳转到目标Page中某个具体的AbilitySlice。
2.3 Service Ability
Service Ability是 Particle Ability支持的模板之一。
用于后台运行任务(如执行音乐播放、文件下载等),但不提供用户交互界面。Service可由其他应用或Ability启动,即使用户切换到其他应用,Service仍将在后台继续运行。
Service是单实例的。在一个设备上,相同的Service只会存在一个实例。如果多个Ability共用这个实例,只有当与Service绑定的所有Ability都退出后,Service才能够退出。由于Service是在主线程里执行的,因此,如果在Service里面的操作时间过长,开发者必须在Service里创建新的线程来处理,防止造成主线程阻塞,应用程序无响应。
如下是HarmonyOS线程间通信开发概述官网地址:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/inter-thread-overview-0000000000038958
2.4 Data Ability
Data Ability是 Particle Ability支持的模板之一。
用于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。数据的存放形式多样,可以是数据库,也可以是磁盘上的文件。Data对外提供对数据的增、删、改、查,以及打开文件等接口,这些接口的具体实现由开发者提供。
三、HarmonyOS页面的设计
3.1 原子化服务与HAP简介
HarmonyOS中的应用与传统App应用有一个很大的亮点,HarmonyOS提供了一种面向未来的服务提供方式,原子化服务。
原子化服务可以免安装(无需显示安装,由系统后台按需主动安装非常方便),它支持运行在1+8+N设备上。
原子化服务与传统的App应用对比如下:
项目 | 原子化服务 | 传统App应用 |
---|---|---|
件包形态 | APP Pack(.app) | APP Pack(.app) |
分发平台 | 由原子化服务平台(Huawei Ability Gallery)管理和分发 | 由应用市场(AppGallery)管理和分发 |
安装后有无桌面icon | 无桌面icon,但可手动添加到桌面,显示形式为服务卡片 | 有桌面icon |
HAP包免安装要求 | 所有HAP包(包括Entry HAP和Feature HAP)均需满足免安装要求 | 所有HAP包(包括Entry HAP和Feature HAP)均为非免安装的 |
官网地址:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/atomic-service-definition-0000001090840664
原子化服务由HAP包组成,HAP是Ability的部署包,HarmonyOS应用代码围绕Ability组件展开。一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为entry和feature两种模块类型。
详细内容可以查看官网:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/basic-fundamentals-0000000000041611
一个原子化服务可以有一个或者多个HAP组成,而一个HAP对应1个FA或者1个PA,每个FA或PA均可独立运行,完成1个特定功能;1个或多个功能(对应FA或PA)完成1个特定的便捷服务。
所以HarmonyOS的App安装包的结构示意图如下:
3.2 可分可合思想
根据3.1中HarmonyOS的App安装包的结构可知,一个HarmonyOS安装包可以由任意需要的一个或者多个HAP组成,这里的组成是可以选择的,可以根据用户需求和硬件设备做合理的选择进行应用组合。
打个比方使用搭载HarmonyOS系统的电视和手机分别可以具有如下的一些功能:
HarmonyOS电视机:
HarmonyOS手机:
电视机没有短信和通话的功能,但是它拥有控制频道切换的功能,因此可以安装控制频道.HAP;而手机拥有短信和通话的功能,因此可以安装短信.HAP和通过.HAP。两者都拥有游戏的功能,因此均可以安装游戏.HAP。因此HarmonyOS的HAP安装包,可以根据用户的实际需求或者硬件设施进行合理的安装,实现安装包的可分可合思想。
针对不同的功能,建议统一写入同一个HAP中,比如短信.HAP,这样可以减少用户使用某一个特定功能的时候,系统下载安装包的复杂度或者用户字段安装的复杂度。
3.3 HAP中的Ability
针对上面的游戏.HAP,比如说是男人就下一百层,我们会开发一个Ability,它会存在很多子功能,比如登录、注册、游戏、装备、聊天、等等。这些不同的功能都可以整合到不同的AbilitySlice中,一个AbilitySlice对应一个页面。
游戏.HAP的Ability与其AbilitySlice关系图如下:
登录、注册、游戏、装备、聊天、等等AbilitySlice统一加入一个Ability中,不同的AbilitySlice之间可以实现跳转,最终打包成一个可以运行的游戏.HAP
四、开发DEMO
HarmonyOS(鸿蒙)DevEco Studio开发环境搭建
HarmonyOS(鸿蒙)开发一文入门
两个案例五分钟轻松入门Harmony(鸿蒙)开发
armonyOS与Android的全面对比
HarmonyOS(鸿蒙)全网最全资源汇总,吐血整理,赶紧收藏!
还没有评论,来说两句吧...