android 应用程序的目录结构

1.src目录

src目录中存放的是该项目的源代码,其内部结构会根据用户所声明的包自动组织,该目录的组织方式为src/aaa/bbb/HelloWord.java,其中aaa/bbb为包名软件开发人员在项目开发过程中,大部分时间是对该目录下的源代码文件进行编写。

2.gen目录

该目录下的文件全部都是ADT自动生成的,一般并不需要去修改,实际上该目录下定义了一个R.java文件,该文件相当于项目的字典,为项目中用户界面、字符串、图片等资源都会在该类中创建其惟一的ID,当项目中使用这些资源时,会通过该ID得到资源的引用。

3.Android4.x

该目录中存放的是该项目支持的jar包,同时其中还包含项目打包时需要的META-INF目录。我们所引用的android类都是在这里面。

4.bin

该目录放的是本项目的apk和各种配置等文件

5.libs

当你需要引用第三方库时,只需在项目中将所有第三方包拷贝到”libs”文件夹。当eclipse启动时,ADT就会自动帮你完成库的引用,而不需要像以前一样自己Build Path,也不再需要Referenced Libraries了。

Android Dependencies:从ADT16开始,Android项目中多了一个名为“Android Dependencies” 的库应用文件夹,这是ADT的第三方库新的引用方式。

6.res目录(不支持深度子目录)

该目录用于存放应用程序中经常使用的资源文件,其中包括图片、声音、布局文件以及参数描述文件等,其中包括多个目录,ADT会为res下面的文件在R文件中生成一个ID。
drawable:主要存放不同分辨率的图片文件 :

(1)drawable-hdpi里面存放高分辨率的图片,如WVGA(480×800),FWVGA480x854)

(2)drawable-ldpi里面存放低分辨率的图片,如QVGA (240×320)

(3)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320×480)

(4)drawable-xhdpi里面存放非常高分辨率的图片,如720P

(5)drawable-xxhdpi里面存放超高分辨率的图片,如1080P

 

layout:存放用于布局的xml文件

menu:程序的菜单设置。

values:资源描述文件,用于存放一些常量(不同类型的变量存放在不同的文件中,该目录中xml的文件名 是不能改的)

strings.xml 定义字符串和数值

arrays.xml 定义数组

colors.xml 定义颜色和颜色字串数值

dimens.xml 定义尺寸数据

styles.xml 定义样式

values-sw600dp:针对600x1024mdip的屏幕(7英寸平板)

values-sw720dp-land:针对720x1280mdip的屏幕(10英寸平板)

values-v11:代表在API 11+的设备上(其中API 11+代表android 3.0 +),用该目录下的styles.xml代替res/values/styles.xml

values-v14:代表在API 14+的设备上(其中API 14+代表android 4.0 +),用该目录下的styles.xml代替res/values/styles.xml

 

anim:存放一些和动画有关的xml文件

xml:存放一些自定义的xml文件

raw:在该目录中的文件虽然也会被封装在apk文件中,但不会被编译。在该目录中可以放置任意类型的文件,例如,各种类型的文档、音频、视频文件等。如果想按字流读取该目录下的图像文件,需要将图像文件放在res\raw目录中。

7.assets目录

assets也是一个资源文件夹,assets中的资源可以被打包到程序里面,和Res不同的地方是,ADT会为res下面的文件在R文件中生成一个ID,而不会为assets中的资源生成ID,因此要使用该目录下面的文件,可以通过完整路径的方式进行调用。或是在程序中使用 “getResources.getAssets().open(“text.txt”)”得到资源文件的输入流InputStream对象。(该目录下面的文件不会被编译,直接复制到程序安装包中)
注意:

res/raw和assets文件夹来存放不需要系统编译成二进制的文件,例如字体文件等,这两个文件夹有很多相同的地方,例如都可以把文件夹下的东西原封不动的拷贝到应用程序目录下,但是两个文件夹也有一些不同的地方,首先就是访问方式不同,res/raw文件夹不能有子文件夹,文件夹下的资源可以使用getResources().openRawResource(R.raw.id)的方式获取到,而assets文件夹可以自己创建文件夹,并且文件夹下的东西不会被R.java文件索引到,必须使用AssetsManager类进行访问。如果你需要更高的自由度,尽量不受android平台的约束,那么/assets这个目录就是你的首选了,因为支持深度子目录

8.AndroidManifest.xml文件

该文件为应用程序的系统控制文件,其中对应用程序的权限、应用程序中Activity、Service等进行声明,同时还对程序的版本进行说明。

9.proguard-project.txt文件

该文件负责配置项目的混淆。

10.project.properties文件

该文件为项目的配置文件,从不需要人为改动,系统会根据情况自动对其进行管理,其中主要描述了项目的版本等基本信息。

标签