在创建Android程序时,eclipse会为其构建一个基本结构,设计者可以在此结构上开发应用程序,因此掌握Android程序的结构是很有必要的。接下来展示程序的组成部分,结构如图所示
从图中可以看出一个Android程序是由多个文件以及文件夹组成,这些文件分别用于不同的功能,常用文件和文件夹如下:
1. src:该目录是放置所有Java代码的地方,在这里的含义和普通Java项目下的src目录是完全一样的,在src目录中可以创建多个包,每个包中可以存放不同的文件或者Activity。
2. gen:该目录是自动生成的,主要有一个R.java文件,在项目中添加的任何资源文件都会在其中生成一个相应资源Id,这个文件一定不要手动修改,当res资源文件修改时,R.Java文件都会重新编译。
R.java文件
a) R.java文件是ADT自动生成的文件,包含对drawable、layout和values目录内的资源的引用指针,Androi d程序能够直接通过R类引用目录中的资源
b) R.java文件不能手工修改,如果向资源目录中增加或删除了资源文件,则需要在工程名称上右击,选择R efresh来更新R.java文件中的代码
c) R类包含的几个内部类,分别与资源类型相对应,资源ID便保存在这些内部类中,例如子类drawable表示 图像资源,内部的静态变量icon表示资源名称,其资源ID为0x7f020000。一般情况下,资源名称与资源文 件名相同
3. Android4.1.2:该目录中存放的是当前工程使用的Android SDK,从图中可以看出当前应用程序引用的是Android SDK4.1.2,不同版本的SDK文件名称也不相同。
4. assets:该目录用于存放一些随程序打包的文件,通常放置一些项目中用到的多媒体资源。当Android程序打包时它会原封不动地一起打包,安装时会直接解压到对应的assets目录中。
5. bin:该目录不需要过多的关心,它主要包含了一些在编译时自动产生的文件,其中会有一个当前项目编译好的安装包,展开bin目录会看到HelloWorld程序的安装包HelloWorld.apk,把这个文件复制到手机上就可以直接安装了。但是不能作为发布版本使用。
6. libs:如果项目中用到了第三方的Jar包,就需要把这些Jar包都放在libs目录下,放在这个目录下的Jar包都会被添加到构建路径中去。
7. res:该目录中放置的是Android要用到的各种资源,如图片、布局、字符串等。
a) drawable文件夹用于存储.png、.9.png、.jpg等图片资源(.9.png是Android特有的图片格式,可以根据情 况进行拉伸,达到不变形的效果).drawable目录又分为不同的文件夹:drawable-hdpi、drawable-ldpi、 drawable-mdpi、drawable-xhdpi、drawable-xxhdpi,这些文件夹中存放的图片分别对应不同的手机屏幕大 小,以便做屏幕适配。
b) layout文件夹存放的是应用程序的布局文件
d) values存放的则是所有xml格式的资源描述文件,例如:字符串资源的描述文件strings.xml、样式的描述文 件styles.xml、颜色描述文件colors.xml、dimens.xml尺寸描述文件以及数组描述文件arrays.xml等
8. AndroidManifest.xml该文件是整个项目的配置文件,在程序中定义的四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明,也可以重新指定创建项目时程序最低兼容的版本和最高版本。清单文件配置的信息会配置到Android系统中。当程序运行时,系统会先找到清单文件中配置的信息,然后根据设置的信息打开相应的组件。
9. proguard-project.txt该文件是Android提供的混淆代码工具proguard的配置文件,通过该文件可以混淆应用程序中的代码,防止应用程序被反编译出源码。
10. project.properties:该文件记录了Android项目运行时的环境,并通过一行代码指定编译程序时所使用的SDK版本,这个版本可以手动更改,但必须是已下载的版本。