Android程序架构基本内容概述

移动开发 Android
我们在这里为大家总结的Android程序架构都包括有:src/ 原始码(source)目录;s/ 资源(Resource)目录;layout/ 版面配置(layout)目录;values/ 参数值(value)目录等等。

Android操作系统中开发的应用程序都有一个结构缜密的架构。我们今天就来对这一Android程序架构做一个详细的分析。帮助大家了解程序开发的特点,以方便将来在应用程序开中明确自己的程序架构。#t#

Android程序架构1. 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 类别调用资源。编译时编译器也会查看这个资源列表,没有使用到的资源就不会编译进去,为手机应用程式节省不必要没用的空间。

Android程序架构2. s/ 资源(Resource)目录

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

Android程序架构3. layout/ 版面配置(layout)目录

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

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

Android程序架构4. values/ 参数值(value)目录

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

Android程序架构5. AndroidManifest.xml

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

责任编辑:曹凯 来源: javaeye.com
相关推荐

2010-03-02 15:53:02

WCF服务合同

2010-02-06 13:58:13

C++ Bost库

2010-03-02 17:55:37

WCF终结点地址

2010-02-25 17:04:54

WCF实例上下文

2010-02-02 15:12:09

C++ explici

2010-02-05 13:35:19

C++虚析构函数

2010-01-04 15:21:37

Silverlight

2010-04-22 09:36:56

Oracle数据字典

2010-02-25 15:49:05

WCF消息模式

2010-02-25 17:51:04

WCF服务地址

2010-03-05 11:53:20

Python命名约定

2017-10-25 06:50:27

数据科学数据数据分析

2010-02-05 10:08:55

C++名字空间

2010-02-04 15:51:07

C++迭代器

2010-03-03 15:26:54

Python编码规范

2010-05-11 14:19:52

MySQL 5.0

2010-04-12 12:52:54

WiMAX无线技术

2009-09-10 10:47:05

C# form

2010-02-03 15:06:02

C++可变参数表

2010-03-05 15:56:02

Python流程控制关
点赞
收藏

51CTO技术栈公众号