HarmonyOS应用采用Gradle进行项目管理,因此与Maven类似,应用的资源文件(字符串、图片、音频等)都存放在resources目录下,便于开发者使用和维护。
应用的resources目录如图4-9所示。
图4-9 resources目录
resources目录包括两大类目录,一类为base目录与限定词目录,另一类为rawfile目录,详见表4-1。
表4-1 resources的两大类目录
限定词目录可以由一个或多个表征应用场景或设备特征的限定词组合而成,包括语言、文字、国家或地区、横竖屏、设备类型和屏幕密度6个维度,限定词之间通过下画线(_)或者中画线(-)连接。开发者在创建限定词目录时,需要掌握限定词目录的命名要求以及与限定词目录和设备状态的匹配规则。
限定词的组合顺序:语言_文字_国家或地区-横竖屏-设备类型-屏幕密度。开发者可以根据应用的使用场景和设备特征选择其中的一类或几类限定词组成目录名称。
限定词的连接方式:语言、文字、国家或地区之间采用下画线(_)连接,除此之外的其他限定词之间均采用中画线(-)连接,例如zh_Hant_CN、zh_CN-car-ldpi。
限定词的取值范围:每类限定词的取值必须符合表4-2中的条件,否则将无法匹配目录中的资源文件。
表4-2 限定词取值要求
在为设备匹配对应的资源文件时,限定词目录匹配的优先级从高到低依次为:
区域(语言_文字_国家或地区)> 横竖屏 > 设备类型 > 屏幕密度
如果限定词目录中包含语言、文字、横竖屏、设备类型限定词,则对应限定词的取值必须与当前的设备状态完全一致,该目录才能够参与设备的资源匹配。例如,限定词目录zh_CN-car-ldpi不能参与en_US设备的资源匹配。
base目录与限定词目录下可以创建资源组目录(包括element、media、animation、layout、graphic、profile),用于存放特定类型的资源文件。
element表示元素资源,以下每一类数据都采用相应的JSON文件来表征。
· boolean:布尔型。
· color:颜色。
· float:浮点型。
· intarray:整型数组。
· integer:整型。
· pattern:样式。
· plural:复数形式。
· strarray:字符串数组。
· string:字符串。
element目录中的文件名称建议与下面的文件名保持一致。每个文件中只能包含同一类型的数据。
· boolean.json。
· color.json。
· float.json。
· intarray.json。
· integer.json。
· pattern.json。
· plural.json。
· strarray.json。
· string.json。
media表示媒体资源,包括图片、音频、视频等非文本格式的文件。
文件名可自定义,例如icon.png。
animation表示动画资源,采用XML文件格式。
文件名可自定义,例如zoom_in.xml。
layout表示布局资源,采用XML文件格式。
文件名可自定义,例如home_layout.xml。
graphic表示可绘制资源,采用XML文件格式。
文件名可自定义,例如notifications_dark.xml。
profile表示其他类型文件,以原始文件形式保存。
文件名可自定义。