Ability框架概述:
Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型
FA支持Page Ability:
Page模板是FA唯一支持的模板,用于提供与用户交互的能力。一个Page实例可以包含一组相关页面,每个页面用一个AbilitySlice 实例表示
PA支持Service Ability和Data Ability:
Service模板:用于提供后台运行任务的能力。 Data模板:用于对外部提供统一的数据访问抽象
在配置文件(config.json)中注册Ability时,可以通过配置Ability元素中的“type”属性来指定Ability模板类型,==“type”的取值可以为“page”、“service”或“data”==
config.json配置文件解析
分为三部分app 、deviceConfig 、module
- app:是整个项目的配置,包含了厂商信息、版本号等。
- deviceConfig:表示应用在设备上的配置信息。(比如:是否允许应用使用网络流量、是否支持在设备未解锁状态直接启动等)
- module:表示整个代码的配置信息。(比如:程序在运行时候的所有界面,以及第一个要启动的界面是谁。)
app:
- bundleName:包名
- vendor:是应用开发厂商的描述,也就是开发公司的名字
- version
- name:是用户看到的版本号。
- code:是用户看不到的,只能公司内部人员使用的版本号。
deviceConfig: 应用在设备上的配置信息 比如,应用需要获取手机里面的一些权限,就可以写在deviceConfig里面。如果不需要任何权限就可以空着不写。
module:
- package:包名
- name:hap包的名字
- mainAbility:表示HAP包的入口ability名称
- deviceType表示项目可以在哪些设备上运行。(因为可能有多个设备,所以有个方括号,表示这些值可以写到一个数组中。 phone:手机)
- distro:表示HAP包的描述信息
- deliveryWithInstall:当前hap包是否可以支持随应用安装。一般都写成true。
- moduleName:当前HAP的名称
- moduleType:表示当前HAP的类型。entry也表示当前的hap是一个主要的模块,可以单独安装并运行
- abilities:代码中每一个页面的配置信息。
具体参考: HarmonyOS应用开发官网:配置文件的元素