【结论】
(1)默认资源目录其实差异有限,但在限定词目录的设置上,鸿蒙比安卓设置的更细化,同时也可以看出其分布式设计的理念,这一点更具有优势;
(2)鸿蒙的base与安卓的res类同,可以以此来对比学习;
【鸿蒙】
resources目录
应用的资源文件(字符串、图片、音频等)统一存放于resources目录下,便于开发者使用和维护。resources目录包括两大类目录,一类为base目录与限定词目录,另一类为rawfile目录,详见表1。
资源目录示例:
resources
|---base // 默认存在的目录
| |---element
| | |---string.json
| |---media
| | |---icon.png
|---en_GB-vertical-car-mdpi // 限定词目录示例,需要开发者自行创建
| |---element
| | |---string.json
| |---media
| | |---icon.png
|---rawfile // 默认存在的目录
表1 resources目录分类
限定词目录
限定词目录可以由一个或多个表征应用场景或设备特征的限定词组合而成,包括语言、文字、国家或地区、横竖屏、设备类型和屏幕密度等六个维度,限定词之间通过下划线(_)或者中划线(-)连接。开发者在创建限定词目录时,需要掌握限定词目录的命名要求以及与限定词目录与设备状态的匹配规则。
限定词目录的命名要求
限定词的组合顺序:语言文字国家或地区-横竖屏-设备类型-屏幕密度。开发者可以根据应用的使用场景和设备特征,选择其中的一类或几类限定词组成目录名称。
限定词的连接方式:语言、文字、国家或地区之间采用下划线(_)连接,除此之外的其他限定词之间均采用中划线(-)连接。例如:zh_Hant_CN、zh_CN-car-ldpi。
限定词的取值范围:每类限定词的取值必须符合表2中的条件,否则,将无法匹配目录中的资源文件。
表2 限定词取值要求
限定词目录与设备状态的匹配规则
在为设备匹配对应的资源文件时,限定词目录匹配的优先级从高到低依次为:区域(语言文字国家或地区)> 横竖屏 > 设备类型 > 屏幕密度。
如果限定词目录中包含语言、文字、横竖屏、设备类型限定词,则对应限定词的取值必须与当前的设备状态完全一致,该目录才能够参与设备的资源匹配。例如,限定词目录“zh_CN-car-ldpi”不能参与“en_US”设备的资源匹配。
资源组目录
base目录与限定词目录下面可以创建资源组目录(包括element、media、animation、layout、graphic、profile),用于存放特定类型的资源文件,详见表3。
表3 资源组目录说明
【安卓】
资源目录结构
res为资源目录,主要以xml语法编写静态的资源。
资源的命名标准:小写字母和数字,且以小写字母开头。
资源的生成,为了和java语法沟通,资源文件会自动的生成在【gen】目录的R.java文件里面。
资源为了适应不同的场景,会把不同场景资源区分开,区分方法为在资源目录后面加上-,例如一个图片分为高中低三种不同的分辨率,那么我们把这三个图片的名称取名一样,分别放在drawable-hdpi、drawable-ldpi、drawable-mdpi三个资源目录,Android操作系统会根据实际硬件环境去获取对应的图片
(1)drawable-xxxxx主要是针对不同尺寸和分辨率的资源解决方案
(2)layout-xxxxx主要是针对布局文件的不同的资源解决方案,例如layout是竖屏幕,layout-land是横屏幕
(3)values-xxxx主要是针对国际化的解决方案。
a、字符串(String)资源,文件strings.xml
b、数组(Array)资源,文件strings.xml
c、颜色(Color)资源,文件strings.xml
d、尺寸(Dimension)资源,dimens.xml,但是依然可以放在strings.xml
e、样式(Style)资源,styles.xml,但是依然可以放在strings.xml
f、颜色(Drawable)资源,文件strings.xml
资源目录示例:
res
|values // 默认存在的目录
| |---string.xml
| |---color.xml
| |---dimens.xml
| |---attrs.xml
| |---styles.xml
|drawable // 默认存在的目录
| |---*.png
| |---*.jpg
| |---*.gif
| |---*.9.png
|mipmap // 默认存在的目录
| |---同上
|anim // 默认存在的目录
| |---*.xml
|layout // 默认存在的目录
| |---*.xml
|raw // 默认存在的目录
| |---.
|xml// 默认存在的目录
| |---*.xml
|asserts // 默认存在的目录
备注:
【anim】:动画资源
【color】:颜色资源
【layout】:布局资源
【menu】:菜单资源
【raw】:本地文件存储资源
【values】:值资源
【xml】:xml文件资源
【drawable】:图片资源和图形资源
本文由GZH程序员小小叶发布!