乍看之下,Android 插件已帮我们建立了不少档案。 检视新建立的 BMI 档桉夹中的内容,我们可以将一个 Android 应用程序基本的档桉结构归纳成如下:
我们来看看 Android 应用程序的基本档桉结构,以及各自所负责的内容。
src/ 源代码(source)目录
src 目录中包含了一个 Android 应用程序中所需的各个程序码档桉。
这些档桉被包在对应 package 的子目录下 。
(如本章的BMI例子中,子目录指的就是/src/com/demo/android /bmi/)
src 目录中比较关键的程序有 :
- Bmi.ja va 这个档桉的档名会随着你在建立一个新的程序专桉画面中所填入「 Create Activity」栏位值的不同而改变。
这是新程序专桉中的主要程序区块。我们开发 Android 程 序的多数时间,都是在 src 目录下和 Android 打交道。
gen/ 自动生成(Generate)目录
gen 目录中存放所有自动生成的档桉。
gen 目录中最关键的程序就是 R.java 档。
- R.java 这个档是自动产生的。会由 ADT 插件自动根据你放入 res 目录的 XML 描述文件、图像等资源,同步更新修改 ‘R.ja va’ 这个文件中。
所有的 Android 程序中都会有以 R.java 为名的这个档案,你完全不需要,也应避免手工修改 R.java 这个档案。
R.java 中自动产生的「R」 类别就像是个字典一样,包含了使用者界面、图像、字串 等各式的资源与相应的编号 (id)。
Android 应用程序中很多时候会需要透过 R 类别调用资源。
编译时编译器也会查看这个资源列表,没有使用到的资源就不会编译进去,为手机应 用程序节省不必要没用的空间。
res/ 资源(Resource)目录
「res」 目录中存放所有程序中用到的资源档桉。"资源档桉"指的是资料档桉,或编译 时会被转换成程序一部分的 XML 描述档。
Android 针对放在「res」 目录下的不同子目 录 的资源,会有各自不同处理方式。
因此我们写程序时,最好能搞清楚各目录下分别可放置的内容。
res/ 中的程序:
- layout/ 版面配置(layout)目录 「layout」目录包含所有使用 XML 格式的界面描述档 。
「layout」 中的 XML 界面描述档就像写网页时用到的 HTML 档桉一样,用来描述萤幕 上的版面编排与使用的界面元件。
XML 界面描述档描述的内容可以是整张萤幕,也可以只 描述一部分的界面 (例如描述用来产生对话框的界面元件 )。
虽然你也能直接通过Java 来建立使用者界面,不过透过 XML 描述档来建立使用者 界 面相对更简单,架构也更清晰,以后维护时更容易釐清问题。
要使用这些界面元件,应透过「R.java」 档中自动产生的 「R」 类别来调用。
- values/ 参数值(value)目录 「values 」 目录包含所有使用 XML 格式的参数值描述档 , 可以在此添加一些额外的资源如字串 (很常用)、颜色、风格等。
使用时也是透过 「R」 类 别来调用。
Android 功能清单
- AndroidManifest.xml「AndroidManifest.xml」 是 Android 程序的功能清单,应用程序在这离列出该工程所提供的功能。
当应用程序开启时,会提供诸如内容提供者 (ContentProvider) 、处理的资料类 型、实际运行的类别、跨应用程序的资讯等等讯息。
你可以在此指定你的应用程序会使用到的服务(诸如电话功能 、网路功能、GPS 功能等)。
当你新增一个页面行为类别 (Activity) 时 , 你也需要先在此注册这个新增的 Activity 类别后,才能顺利调用。