DevEco Studio自动创建的目录结构如图4-1所示。那么,这些目录结构到底是什么含义?每个文件的作用是什么?这些都是本章将要探索的话题。
图4-1 DevEco Studio自动创建的目录结构
App就是应用。例如,在Android手机上安装一个软件,这个软件就称为App。
Android平台是以APK(Android Application Package,Android应用程序包)形式发布的,当要在Android手机上安装一个App时,首先是要找到该App对应的APK安装包,执行该APK安装包即可。
同理,HarmonyOS的应用软件包以App Pack(Application Package)形式发布,它由一个或多个HAP以及描述每个HAP属性的pack.info组成。HAP是Ability的部署包,HarmonyOS应用代码围绕Ability组件展开。
一个HAP是由代码、资源、第三方库及应用配置文件组成的模块包,可分为entry和feature两种模块类型,如图4-2所示。
图4-2 HAP
(1)entry:应用的主模块。一个App中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行。
(2)feature:应用的动态特性模块。一个App可以包含一个或多个feature类型的HAP,也可以不包含。只有包含Ability的HAP才能独立运行。
应用的build目录下有一个名为entry-debug-unsigned.hap的文件,如图4-3所示,该文件就是HarmonyOS的应用软件包。
图4-3 HarmonyOS的应用软件包
在代码层次,可以看到图4-4所示的MyApplication就是整个应用的入口。
图4-4 MyApplication
从代码中可以看到,MyApplication继承自AbilityPackage。AbilityPackage是用来初始化每个HAP的基类。