1.4 分析第一个HarmonyOS工程
本节将分析HarmonyOS工程的结构,主要包括HarmonyOS工程的目录结构和配置文件config.json的核心选项。
1.4.1 HarmonyOS工程的目录结构
HarmonyOS工程的目录结构如图1-16所示。
图1-16 HarmonyOS工程的目录结构
尽管HarmonyOS工程的目录结构比较复杂,但并不是所有的目录和文件都经常被使用。本节将介绍两个比较常用的目录——java目录和resources目录。这两个目录的位置如下。
● java目录:<HarmonyOS工程根目录>/entry/src/main/ java。
● resources目录:<HarmonyOS工程根目录>/entry/src/ main/resources。
java目录用来保存HarmonyOS App中的Java代码文件,resources目录用来保存HarmonyOS App中的各种资源,如图像、字符串、数据库等。
我们打开java目录,会看到该目录中会有若干个java包,如果是新创建的HarmonyOS工程,里面只有一个java包,如本例的com.unitymarvel.firsttvdemo。在包目录中有若干个Java文件,主要的编码工作会在该目录中完成。
如果HarmonyOS App中要使用资源,而且这些资源要被嵌入到hap文件中,则需要将资源文件放到resources目录下,后面的章节会详细描述具体规则。
1.4.2 HarmonyOS工程的主配置文件——config.json
绝大多数工程都会有一个主配置文件,HarmonyOS工程也不例外,这个主配置文件就是config.json。很明显,config.json是JSON格式的配置文件。
config.json文件由3个顶层属性组成,这3个属性如表1-1所示。
表1-1 config.json的顶层属性
在这3个属性中,app和module的使用比较频繁,尤其是module属性,修改的次数会比较多。因为HarmonyOS App的重要组成部分——Ability,必须在module中进行配置后才能使用。
DevEco Studio提供了自动创建Ability的功能,在HarmonyOS工程中,单击鼠标右键弹出菜单,选择New→Ability菜单项,会弹出图1-17所示的创建各种类型的Ability的菜单项。在创建某一个类型的Ability后,config.json文件中将自动添加相关的信息,通常不需要开发人员手动添加Ability信息,当然,开发人员可以在自动添加的Ability信息的基础上进行修改。
图1-17 创建各种类型的Ability的菜单项
假设要创建一个名为MyAbility的FA,在config.json中将自动生成如下配置代码:
{
"orientation": "landscape",
"formEnabled": false,
"name": "com.unitymarvel.firsttvdemo.MyAbility",
"icon": "$media:icon",
"description": "$string:myability_description",
"label": "entry",
"type": "page",
"launchType": "standard"
}
这段配置代码涉及的属性比较多,例如,orientation用来指定默认的方向(横屏或竖屏),name用来指定当前Ability的类名(包含包名),label用来指定Ability的标题文本等。关于config.json文件中配置的详细描述,读者可以参阅官方的文档,链接如下:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/basic-config-file-elements-0000000000034463#ZH-CN_TOPIC_0000001050708780__table34298422421