下面是HelloAndroid项目在eclipse中的目录层次结构:
由上图能够看出项目的根目录下共有九个文件(夹),下面就这九个文件(夹)进行详解:
1.1src文件夹和assets文件夹:
每个Android程序都包括资源目录(src)和财物目录(assets),资源和财物听起来感觉没有多大不同,但在存储外部内容时用资源(src)比较多,其间它们的差异在于寄存在资源(src)下的内容能够经过运用程序的R类进行拜访,而寄存在财物(assets)下的内容会坚持原始文件的格局,假如需求拜访,则有必要运用AssetManager以字节省的方法来读取,用起来十分的不方便。为了方便运用,一般文件和数据都会保存在资源(src)目录下
1.2res(Resource)目录:资源目录
能够寄存一些图标,界面文件和运用中用到的文字信息,下图为res目录截图:
1.2.1 drawable-*dpi文件夹:将图标按分辨率的凹凸放入不同的目录,其间draeable-hdpi用来寄存高分辨率的图标,drawable-mdpi用来寄存中等分辨率的图标,drawable-ldpi用来寄存低分辨率的图标
1.2.2 values文件夹:用来寄存文字的信息
(1)strings.xml:用来界说字符串和数值
每个string标签生命了一个字符串,name特点指定它的引证值
(2)为什么要把这些呈现的文字独自放在strings.xml文件中?
答案:一是为了国际化,假如需求将文件中的文字换成其他国家的言语,就能够只需求替换掉一个strings.xml文件就能够了
二是为了削减运用的体积,例如,咱们要在运用中运用“哥想你了”这句话1000次,假如咱们没有将“哥想你了”界说在strings.xml文件中,而是直接在运用中运用时写上这几个字,那么咱们就会在运用中写4000个字。4000个字和4个字占用的内存可是有很大距离的啊,何况手机的内存本来就小,所以应该是能省就省
(3)别的还有arrays.xml,color.xml等界说数组,色彩的,都最好用独自的一个xml文档
1.2.3 layout文件:用来寄存界面信息
本例中的布局文件是主动生成的“main.xml”
android:layout_width=fill_parent
android:layout_height=fill_parent
android:orientation=vertical>
android:layout_width=fill_parent
android:layout_height=wrap_content
android:text=@string/test/>
1.3 gen目录:gen目录下只要一个主动生成的“R.java”文件
/*AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated bythe
* aapt tool from the resource data itfound. It
* should not be modified by hand.
*/
packagecn.csdn.android.demo;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int button1=0x7f050000;
public static final int radioButton1=0x7f050001;
public static final int toggleButton1=0x7f050002;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040001;
public static final int hello=0x7f040000;
public static final int start=0x7f040004;
public static final int startButton=0x7f040003;
public static final int test=0x7f040002;
}
}
R.java文件:默许有attr,drawable,layout,string这四个静态内部类,每个静态内部类对应一中资源,如layout静态内部类对应layout中的界面文件,string静态内部类对应string内部的string标签。假如在layout中在添加一个界面文件或许在string内添加一个string标签,R.java会主动在其对应的内部类添加所添加的内容。
R.java除了主动标识资源的索引功用外,还有另一个功用,便是当res文件中的某个资源在运用中没有被用到,在这个运用被编译时,体系不会把对应的资源编译到运用中的APR包中。
1.4 AndroidManifest.xml 功用清单文件
每个运用程序都会有一个AndroidManifest在它的根目录里边。这个清单为Android体系供给了这个运用的基本信息,体系在运转之前有必要知道这些信息,别的,假如咱们运用体系自带的服务,如拨号服务,运用装置服务等,都有必要在AndroidManifest.xml文件中声明权限
AndroidManifest.xml的功用:
命名运用程序的Java运用包,这个包名用来仅有标识运用程序;