Android程序工程架构---转自《深入浅出Android》

乍看之下,Android 插件已帮我们建立了不少档案。 检视新建立的 BMI 档桉夹中的内容,我们可以将一个 Android 应用程式基本的档桉结构归纳成如下:

我们来看看 Android 应用程式的基本档桉结构,以及各自所负责的内容。
src/ 原始码(source)目录

src 目录中包含了一个 Android 应用程式中所需的各个程式码档桉。这些档桉被包在对应 package 的子目录下。(如本章的 BMI 例子中,子目录指的就是 /src/com/demo/android/bmi/)

src 目录中比较关键的程式有:

1. Bmi.java 这个档桉的档名会随着你在建立一个新的程式专桉画面中所填入「Create Activity」栏位值的不同而改变。这是新程式专桉中的主要程式区块。我们开发 Android 程式的多数时间,都是在 src 目录下和 Android 打交道。
gen/ 自动生成(Generate)目录

gen 目录中存放所有自动生成的档桉。

gen 目录中最关键的程式就是 R.java 档。

1. R.java 这个档是自动产生的。会由 ADT 插件自动根据你放入 res 目录的 XML 描述文件、图像等资源,同步更新修改 'R.java' 这个文件中。所有的 Android 程式中都会有以 R.java 为名的这个档桉,你完全不需要,也应避免手工修改 R.java 这个档桉。

R.java 中自动产生的「R」 类别就像是个字典一样,包含了使用者介面、图像、字串等各式的资源与相应的编号(id)。Android 应用程式中很多时候会需要透过 R 类别调用资源。编译时编译器也会查看这个资源列表,没有使用到的资源就不会编译进去,为手机应用程式节省不必要没用的空间。
res/ 资源(Resource)目录

「res」 目录中存放所有程式中用到的资源档桉。"资源档桉"指的是资料档桉,或编译时会被转换成程式一部分的 XML 描述档。Android 针对放在「res」 目录下的不同子目录的资源,会有各自不同处理方式。因此我们写程式时,最好能搞清楚各目录下分别可放置的内容。

res/ 中的程式:

3. layout/ 版面配置(layout)目录 「layout」目录包含所有使用 XML 格式的介面描述档。「layout」 中的 XML 介面描述档就像写网页时用到的 HTML 档桉一样,用来描述萤幕上的版面编排与使用的介面元件。XML 介面描述档描述的内容可以是整张萤幕,也可以只描述一部分的介面(例如描述用来产生对话框的介面元件)。

虽然你也能直接通过 Java 来建立使用者介面,不过透过 XML 描述档来建立使用者介面相对更简单,架构也更清晰,以后维护时更容易釐清问题。要使用这些介面元件,应透过 「R.java」 档中自动产生的 「R」 类别来调用。

4. values/ 参数值(value)目录 「values」 目录包含所有使用 XML 格式的参数值描述档,可以在此添加一些额外的资源如字串(很常用)、颜色、风格等。使用时也是透过 「R」 类别来调用。
Android 功能清单

5. AndroidManifest.xml

「AndroidManifest.xml」 是 Android 程式的功能清单,应用程式在这离列出该工程所提供的功能。当应用程式开启时,会提供诸如内容提供者(ContentProvider)、处理的资料类型、实际运行的类别、跨应用程式的资讯等等讯息。你可以在此指定你的应用程式会使用到的服务(诸如电话功能、网路功能、GPS功能等)。当你新增一个页面行为类别 (Activity) 时,你也需要先在此注册这个新增的 Activity 类别后,才能顺利调用。
参考资料

Android 应用程式的档桉组织方式与用途: http://developer.android.com/guide/appendix/faq/commontasks.html#filelist

更多相关文章

  1. Android彻底组件化—代码和资源隔离
  2. android中编译资源文件的相关问题
  3. 学习资源推荐
  4. Android访问资源与属性之 ? , @
  5. 转载:android 各种xml资源的引用方式
  6. Android开发资源整理
  7. android自带图片资源
  8. Android资源汇总---持续整理更新中!!!
  9. 学习资源

随机推荐

  1. 安卓应用的界面编程(2)
  2. Android(安卓)中文 API (30) —— Compound
  3. Android Studio 中遇到的Gradle build插
  4. 【Android基础笔记01】Android开发环境搭
  5. 学习笔记-android imageSwitcher使用
  6. Android架构组件简介
  7. android中合理利用反射
  8. Android从零单排——前言
  9. Android 4.4.2插入exFAT格式U盘识别及加
  10. Android视频播放器---播放远程非流MP4