Android程序的目录结构(转)
转载链接:http://www.cnblogs.com/dyllove98/archive/2013/06/23/3151180.html
1. Src:该目录中存放的是该项目的源代码
2. Gen:该目录下的文件全部都是ADT自动生成的,一般并不需要去修改,实际上该目录下只定义了一个R.java文件,该文件相当于项目的字典,为项目中用户界面、字符串、图片等资源都会在该类中创建其惟一的ID,当项目中使用这些资源时,会通过该ID得到资源的引用。
3. Android 2.3.3:该目录中存放的是该项目支持的jar包,同时其中还包含项目打包时需要的META-INF目录。
4. Android Dependencies:从ADT16开始,Android项目中多了一个名为“AndroidDependencies” 的库应用文件夹,这是ADT的第三方库新的引用方式。当你需要引用第三方库时,只需在项目中新建一个名为"libs"的文件夹,然后将所有第三方包拷贝到该目录下。ADT就会自动帮你完成库的引用,Android Dependencies会自动增加相应的对jar包的引用。
5. assets:资源路径,不会在R文件注册。主要可以存放一些随程序打包的文件,程序运行时候可以动态读取这些文件内容。该目录用于存放项目相关的资源文件,例如文本文件等,在程序中可以使用 “getResources.getAssets().open("text.txt")”得到资源文件的输入流InputStream对象。
6. bin:二进制文件,包括class、资源文件、dex、apk等
7. libs 若项目使用第三方jar包,放在此文件夹下,这个目录下的jar包自动添加到构建路径里,比如上图中的ANdroid 4.0、android private libraries、android dependencies这些库,其中的jar包都已经添加到构建路径。
7. res:该目录用于存放应用程序中经常使用的资源文件,其中包括图片、声音、布局文件、字符串以及参数描述文件等,R.java内容根据此目录自动生成,其中包括多个目录
a) 其中以drawable开头的三个文件夹用于存储.png、.9.png、.jpg等图片资源(.9.png是Android特有的图片格式,可以根据情况进行拉伸,达到不变形的效果)
b) layout文件夹存放的是应用程序的布局文件
c) raw用于存放应用程序所用到的声音等资源。raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;相比较assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
d) values存放的则是所有xml格式的资源描述文件,例如:字符串资源的描述文件strings.xml、样式的描述文件styles.xml、颜色描述文件colors.xml、dimens.xml尺寸描述文件以及数组描述文件arrays.xml等。
e) menu文件夹存放菜单文件
8. AndroidManifest.xml:清单文件,在软件安装的时候被读取,整个项目的配置文件,程序中定义的四大组件必须在此文件注册,及添加权限声明等。
9. Android中的四大组件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在该文件中注册程序所需的权限也需要在此文件中声明,例如:电话、短信、互联网、访问SD卡
10. project.properties:工程属性的配置文件,ADT14 以后, project.properties和default.properties合并成了project.properties。供Eclipse使用,读取该项目使用sdk版本号。
11. proguard-project.txt:代码混淆相关文件
最后我们介绍一下一个项目做好之后,程序的启动过程:Eclipse将.java源文件编译成.class;使用dx工具将所有.class文件转换为.dex文件;再将.dex文件和所有资源打包成.apk文件;将.apk文件安装到虚拟机完成程序安装;启动程序 – 开启进程 – 开启主线程;创建Activity对象– 执行OnCreate()方法;按照main.xml文件初始化界面