2. 资源目录组织
每种资源在源码目录中都有其特定的位置,它们的根目录是源码目录中的res/目录,资源打包工具(aapt)会根据其所在的子目录和文件格式对其进行编译。下面看一下res/目录的组织。
res/anim/
res/drawable/
res/layout/
res/values/
res/xml/
res/raw/
res/drawable/
res/layout/
res/values/
res/xml/
res/raw/
1)anim目录
该目录下存放着描述animation类型的xml文件。
2)drawable目录
该目录下存放着.png,.9.png,.jpg等图片文件。
3) layout目录
该目录下存放着屏幕UI的layout文件,格式为xml。
4)values目录
该目录下可以存放多种资源类型的xml文件,例如定义了数组的array.xml,定义了颜色的colors.xml,定义了dimension的dimnes.xml,定义了字符串的strings.xml,定义了style的styles.xml。
5)xml目录
该目录存放了用户自定义的xml文件。
6) raw目录
该目录可存放了用户的原始数据文件,如声音文件等,这些文件在编译应用程序过程中不被编译,直接加到apk文件中。
上述目录中的文件在编译应用程序的过程中会被aapt编译成特定的格式以加快访问速度,并打包成Zip文件。如下图所示,在编译过程中,aapt会为每个资源生成一个唯一的ID值,并产生一个包含这些ID信息的类R。应用程序的JAVA文件中通过R.java中定义的这些ID来访问资源。
