Android应用程序------Android程序结构

在建立HelloAndroid程序的过程中,ADT会自动建立一些目录和文件,这些目录和文件有其固定的作用,有的允许修改,有的不能修改。下面逐一的介绍

在“Package Explore”中,ADT以工程名称HelloAndroid作为根目录,将所有字段生成的和非自动生成的文件都保存在这个根目录下

根目录包含四个子目录:src、assets、res和gen,一个库文件android.jar,以及两个工程文件Androidmanifest.xml和default.properties

src目录是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中

HelloAndroid工程建立初期,ADT根据用户在工程向导中的“Create Activity”选项,自动建立HelloAndroid.java文件

HelloAndroid.java是Android工程向导根据Activity名称创建的java文件,这个文件完全可以手工修改。

为了在Android系统上显示图形界面,需要使用代码继承Activity类,并在onCreate()函数中声明需要显示的内容

HelloAndroid.java文件的代码如下

第3行和第4行的代码通过android.jar从Android SDK中引入了Activity和Bundle两个重要的包,用以子类继承和信息传递

第6行代码声明HelloAndroid类继承Activity类

第8行代码表明需要重写onCreate()函数

第9行代码的onCreate()会在Activity首次启动时会被调用,为了便于理解,可以认为onCreate()是HelloAndroid程序的主入口函数

第10行代码调用父类的onCreate()函数,并将savedInstanceState传递给父类,savedInstanceState是Activity的状态信息

第11行代码声明了需要显示的用户界面,此界面是用XML语言描述的界面布局,保存在scr/ layout/main.xml资源文件

gen目录是1.5版本新增的目录,用来保存ADT自动生成的java文件,例如R.java或AIDL文件

R.java文件是ADT自动生成的文件,包含对drawable、layout和values目录内的资源的引用指针,Android程序能够直接通过R类引用目录中的资源

R.java文件不能手工修改,如果向资源目录中增加或删除了资源文件,则需要在工程名称上右击,选择Refresh来更新R.java文件中的代码

R类包含的几个内部类,分别与资源类型相对应,资源ID便保存在这些内部类中,例如子类drawable表示图像资源,内部的静态变量icon表示资源名称,其资源ID为0x7f020000。

一般情况下,资源名称与资源文件名相同

HelloAndroid工程生成的R.java文件的代码

引用资源

资源引用有两种情况:一种是在代码中引用资源;另一种是在资源中引用资源

代码中引用资源,需要使用资源的ID,可以通过[R.resource_type.resource_name]或[android.R.resource_type.resource_name]获取资源ID

resource_type代表资源类型,也就是R类中的内部类名称

resource_name代表资源名称,对应资源的文件名或在XML文件中定义的资源名称属性

资源中引用资源,引用格式:@ [package:]type:name

@表示对资源的引用

package是包名称,如果在相同的包,package则可以省略

android.jar文件是Android程序所能引用的函数库文件,Android通过平台所支持API都包含在这个文件中

assets目录用来存放原始格式的文件,例如音频文件、视频文件等二进制格式文件。此目录中的资源不能被R.java文件索引。

所以只能以资截流的形式读取。一般情况下为空

res目录是资源目录,有三个子目录用来保存Android程序所有资源

drawable目录用来保存图像文件

layout目录用来保存与用户界面相关的布局文件

valuse目录保存文件颜色、风格、主题和字符串等

在Hello Android工程中,ADT在drawable目录中自动引入了icon.png文件,作为HelloAndroid程序的图标文件;

在layout目录生成了mail.xml文件,用于描述用户界面

main.xml文件的代码

第7行的代码说明在界面中使用TextView控件,TextView控件主要用来显示字符串文本

第10行代码说明TextView控件需要显示的字符串,非常明显,@string/hello是对资源的引用

Strings.xml文件的代码

通过strings.xml文件的第3行代码分析,在TextView控件中显示的字符串应是“Hello World, HelloAndroid!”

如果读者修改strings.xml文件的第3行代码的内容,重新编译、运行后,模拟器中显示的结果也应该随之更改

AndroidManifest.xml是XML格式的Android程序声明文件,包含了Android系统运行Android程序前所必须掌握的重要信息,这些信息包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等,而且每个Android程序必须在根目录下包含一个AndroidManifest.xml文件

(0)

相关推荐