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的生命周期


