学过 Android的伙伴们学习鸿蒙时会有一些优势,基本结构都差不多,后面在学习的过程中我会用Android的结构和鸿蒙两者相对比,加深印象。
APP基本组成
HarmonyOS由APP Pack、Ability、库文件、资源文件、配置文件、pack.info几个组成。
对比于Android应用组成:
src文件:项目源文件存放
R.java文件:eclipse自动生成,无需修改
Android Library:为应用运行的Android库
assets目录:主要放置多媒体文件
res目录:放置应用会用到的资源文件
drawable目录:放置应用程序会用到的图片 layout目录:放置用到的布局文件(XML格式)
value目录:主要放置字符串,颜色,数组(strings.xml; colors.xml; arrays.xml)
Androidmanifest.xml:相当于应用的配置文件
APP Pack
它是由一 个或多个 HAP(HarmonyOS Ability Package)以及描述每个 HAP 属性的 pack.info 组 成。HAP 是 Ability 的部署包,一个 HAP 是由代码、资源、第三方库及应用配置文件组成的模块包,可分为 entry 和 feature 两种模块类型。
其中entry为应用的主模块,一个 APP 中,对于同一设备类型必须有且只有一个 entry 类型的 HAP,可独立安装运行。
而feature是应用的动态特性模块。一个 APP 可以包含一个或多个 feature 类型的 HAP,也
可以不含。只有包含 Ability 的 HAP 才能够独立运行。
Ability
对比于Android,相当于activity和service。分为FA(Feature Ability)和 PA(Particle Ability)。FA/PA 是应用的基本组成 单元,能够实现特定的业务功能。FA 有 UI 界面,而 PA 无 UI 界面。
库文件
与Android定义基本一致,都是应用依赖的第三方代码形式,是.so 文件,Android还有jar格式,都存放在 libs 目录。
配置文件
Android的配置文件是Androidmanifest.xml,而鸿蒙的配置文件是config.json,Android是配置四大组件信息以及权限,鸿蒙相对应是配置应用的 Ability 信息以及应用所需 权限等信息。
pack.info
Android没有与之对应,它用于描述应用中 HAP 的属性,由 IDE 编译生成,应用市场根据该文件进行拆包和 HAP 的分类存储。HAP 的具体属性包括:
• delivery-with-install: 用于标识该 HAP 是否需要在主动安装时进行安装。
• name:HAP 文件名。
• module-type:模块类型,entry 或 feature。
• device-type:用于标识支持该 HAP 运行的设备类型。
鸿蒙应用基本组成大概就是这些,后面就深入了解一下组成部分。
应用配置文件(config.json)
这个配置存放与HAP 的根目录,“config.json”由“app”、“deviceConfig”和“module”三个部分组成,缺一不可。
app:表示应用的全局配置信息。同一个应用的不同HAP包的“app”配置必须保持一致。
"app": {
"bundleName": "com.aos.learning", //应用包名PackageName,必需
"vendor": "aos", //对应用开发厂商的描述,可不填
"version": { //版本。必填
"code": 1, //版本号
"name": "1.0" //版本名,API 5及更早版本:推荐使用三段式,格式为A.B.C(也兼容A.B),其中A、B、C取值为0~999范围内的整数,API 6版本起:推荐采用四段式数字版本号,如A.B.C.D,其中A、B、C取值为0~99范围内的整数,D取值为0~999范围内的整数。
},
"apiVersion": { //表示应用依赖的HarmonyOS的API版本。必填
"compatible": 3, //最小版本,必填
"target": 3 //API目标版本,可缺省,缺省值为应用所在设备的当前API版本。
"releaseType": "Beta1" //表示应用运行需要的API目标版本的类型。取值为“CanaryN”、“BetaN”或者“Release”,其中,N代表大于零的整数。Canary:受限发布的版本。Beta:公开发布的Beta版本。Release:公开发布的正式版本。可缺省,缺省值为“Release”。
}
}
deviceConfig:表示应用在具体设备上的配置信息,可以包含default、phone、