Android 应用开发札记 - 应用程序设计基础

Android 应用开发笔记 - 应用程序设计基础 3.1 Android程序架构 3.1.1 Android项目目录结构与一般的Java项

Android 应用开发笔记 - 应用程序设计基础

 

3.1 Android程序架构

 

3.1.1 Android项目目录结构

与一般的Java项目一样,src文件夹是项目的所有包及源文件(.java),res文件夹中则包含了项目中的所有资源,比如程序图标(drawable)、布局文件(layout)、常量(values)等。

下面来介绍其他Java项目中没有的gen文件夹中R.java、BuildConfig.java文件和每个Android项目都必须有的AndroidManfest.xml文件。

gen文件夹中所有文件都是自动生成的,而且是只读的不能更改。

2       R.java文件是定义该项目所有资源的索引文件。

 

代码清单:R.java

                                                                                    

 

说明

mainfest

根节点,描述了package中所有的内容

xmlns

包含命名空间的声明。

xmlns:android=http://schemas.android.com/apk/res/android,使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。

package

声明应用程序包

uses-sdk

该程序使用的Android SDK版本

android:icon

应用程序图标

android:label

应用程序名字

android:theme

程序外观

activity

用来与用户交互的主要工具。

Activity是用户打开一个应用程序的初始页面,大部分被使用到的其他页面也由不同的Activity所实现,并声明在另外的Activity标记中。

注意,每一个Activity必须有一个<activity>标记对应,无论它给外部使用或是只用于自己的package中。

如果一个Activity没有对应得标记,你将不能运行它。另外,为了支持运行时查找Activity,可包含一个或多个<intent-filter>元素来描述Activity所支持的操作

android:name

应用程序默认启动的Activity

intent-filter

声明了指定的一组组件支持的Intent值,从而形成了IntentFilter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需的唯一的标签、icon和其他信息。

action

组件支持的Intent action

category

组件支持的Intent Category。这里指定了应用程序默认启动的Activity

 

下面我们看看资源文件中一些常量的定义,如strings.xml

 

代码清单:string.xml

    

 

代码清单中,有以下几个布局和参数。

2       RelativeLayout 相对布局。

2       android:layout_width:定义当前视图在屏幕上所占的宽度,fill_parent即填充整个屏幕。

2       android:layout_height:定义当前视图在屏幕上所占的高度,fill_parent即填充整个屏幕。

2       android:layout_centerHorizontal:水平对齐,居中

2       android:layout_centerVertical:垂直对齐,其中

 

我们在其后的章节,要详细讲解它们。

 

 

 

 

 

 

 

3.1.2 Android应用解析

Android应用程序由4个模块构造而成:Activity, Intent, Content Provider, Service。

 

当然,也不是每个Android应用程序都必须由这4部分组成;但是,任何一个应用程序都必须在AndroidManfest.xml文件中声明使用到的这些模块。

1. Activity

Activity是最基本的模块。就像Delphi程序中的Form一样。

他继承自Activity类。

2. Intent

Intent实现Activity与Activity之间的切换。相当于Delphi中的“program”

3. Content Provider

当想将应用数据与其他的应用共享时,Content Provider就可以发挥作用了。

在Android中,Content Provider是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取和操作数据。并且,Android自身也提供了现成的Content Provider:Contacts、Browser、CallLog、Settings、MediaStore。应用可以通过唯一的ContentResolver界面来使用具体的某个Content Provider,然后就可以用ContentResolver提供的方法来使用你需要的Content Provider了。其中,ContentResolver提供的方法包括query()、insert()、update()等。

4. Service

等同Windows中的Service。

 

 

 

 

 

3.2 Android的生命周期Android 应用开发札记 - 应用程序设计基础Android 应用开发札记 - 应用程序设计基础