建立一个 Android 程式

来源:互联网 发布:超声波电子捕鱼器淘宝 编辑:程序博客网 时间:2024/04/28 01:39


建立一个 Android 程式


身高体重指数(又称身体质量指数,英文为Body Mass Index,简称BMI)是一个计算值。
...当我们需要比较及分析一个人的体重对于不同高度的人所带来的健康影响时,
BMI值是一个中立而可靠的指标。

简而言之,我们要设计的程式就是允许输入身高体重,按下「计算BMI」键后就在萤幕上显示BMI 值,并弹出「你应该节食啰」、或「你应该多吃点」. ..等健康建议。健康建议的判断: 只要BMI 值超过「25」 时就算偏胖、BMI 值低于「20」 就算偏瘦。判断写得很简单。毕竟我们要学习的关键知识,不是在于BMI 值的算法或健康建议的内容,而是在于Android 程式的运作方式。


我们这就先从建立一个新的程式专案开始吧。
建立新程式专案

首先,我们照前面章节的教学,建立一个新的程式专案。并将新专案名称命名为 BMI。在「内容」栏里,我们选择「在工作区域中建立新专案」(Create new project in workspace)。这时,如果在"选择栏"取消掉勾选「使用预设目录」(Use default location) 选项,我们就可以切换储存专案的资料夹。大部分的时候我们并不需去改动这个选项,而是直接使用预设的资料夹。

前面章节中都是开启现有的专案,因此那些专案属性(Properties) 等内容都被自动填写好了。这章中要从无到有新建一个专案,因此我们必须自行填写专案相关的属性。

在此对"New Android Project" 对话框中出现的这些栏位作些简单的说明:

名称 描述
Project Name 包含这个项目的资料夹的名称
Application Name 显示在应用程式上的标题
Package Name 套件(Package)名称,JAVA 的习惯是用套件名称来区分不同的类别(class)。依照专案的不同,我们会起不同的路径名称。
Create Activity 使否建立这个是项目的主要类别,勾选后可以指定这个类别的名称。这个类别是一个Activity 类别的子类别。我们可以在「Activity」中启动程式和控制程式流程,或是根据需要控制萤幕、界面。
Build Target 选择用来编译专案的SDK 版本。当选定了Build Target 后,开发工具会在Min SDK Version 栏位中自动填入对应的值
Min SDK Version 本应用程式所支援的最低SDK 版本代号。

我们在栏位中分别填入以下的值:

名称 值
Project Name BMI
Application Name BMI
Package Name com.demo.android.bmi
Create Activity Bmi
Min SDK Version 5(自动填入)

填好值后按下「Finish」 按钮,就建立好新专案了。

注意Package Name 的设定,必须至少由两个部分所构成,例如:com.android。 「Activity Name」是指定用来产生预设java 程式码的文件名称,与文件中预设Activity 类别(class) 的名称。依照java 语言的命名习惯,「Activity Name」最好采用开头大写的形式。

回到Eclipse 主画面,我们注意到在左侧Package Explorer 视窗中已顺利新增加了一个BMI 目录。
程式专案架构

乍看之下,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 类别后,才能顺利调用。

原创粉丝点击