之前我们创建了第一个Android项目HelloWorld.下面就以HelloWorld应用为基础进行目录结构概述。下面为HelloWorld应用在Eclipse中的目录层次结构:
其中,各个目录及文件的详解如下:
src/ 用来存放编写的java源代码的包。
gen/ 用来存放由Android开发工具所生成的目录。该目录下的所有文件都不是由开发人员创建的,而是由ADT自动生成的。
R.java 文件中默认有attr、drawable、layout、string四个静态内部类。其内容如下:
package cn.class3g.activity;
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 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;
}
}
其,每个静态内部类分别对应一种资源。且,每个静态内部类中的静态常量分别对应一条资源标识符。其中,drawable静态内部类对应res/drawable中的文件,“ publicstaticfinalint ic_launcher=0x7f020000;”则对应res/drawable目录下的ic_launcher.png文件,同时将in_launcher.png文件转意为16进制的整型;同样的,layout静态内部类对应res/layout中的文件,“publicstaticfinalint main=0x7f030000;”对应的是main.xml文件,同时将main.xml文件转意为16进制的整型;而,string静态内部类对应的是res/values中的文件,“publicstaticfinalint app_name=0x7f040001; publicstaticfinalint hello=0x7f040000;”对应的是strings文件中的string标签声明的字符串的引用名。当,res/资源目录中的文件更改时,R.java文件内容将自动更新。
android/ 用来存放Android自身的jar包
asstes/ 用来存放应用中用到的类似于视频、MP3的一些媒体文件。
bin/ 程序自动生成的应用文件夹,用来存放应用文件。
res/ res为resource的缩写。该目录为资源目录。用来存放图标、界面文件、应用中用到的文字信息。
res/drawable res/目录下的三个drawable文件夹——【drawable-*dpi】,区别只是将图标按分辨率高低来存放入不同的目录,【drawable-hdpi】用来存放高分辨率图标,【drawable-mdpi】用来存放中等分辨率图标,【drawable-ldpi】用来存放低分辨率图标。
res/values/ 用来存放strings.xml等类似于定义属性值的资源文件。
strings.xml 用来定义字符串和数值, HelloWorld项目中的string.xml文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World World, HelloWorldActivity!</string>
<string name="app_name">HelloWorld</string>
</resources>
其中,string 标签声明一个字符串,name属性指定其引用名。
把应用中出现的文字单独存放在string.xml文中的原因有二:一是为了国际化。二是为了减少应用体积,降低数据冗余。
res/layout/ 用来存放布局文件。
main.xml 布局文件。下面是HelloWorld项目的main.xml的内容:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
</LinearLayout>