006 Android应用开发的9个组件

来源:互联网 发布:知乎女神芈十四真名 编辑:程序博客网 时间:2024/05/29 12:30

本章节要弄懂的问题:

1. Android开发有哪四大组件?

2. Android中的Intent是什么?

3. AndroidLauncherWidgetNotification是什么?

4. AndroidApplication是什么?

 

前言

Android提供了应用程序开发的四大组件,分别是ActivityServiceBroadcastReceiverContentProvider,每个应用程序至少包含了其中的一个。

IntentAndroid提供的另外一个组件,Intent的使用跟ActivityServiceBroadcastReceiver有关。

LauncherWeightNotificationAndroid的主界面开发有关,应用程序极有可能要跟它们产生关联。

Android提供了一个Application组件,每个应用程序有且仅有一个Application组件。

所以,综合起来讲,Android应用开发有9个基本的组件。


Activity

Activity是应用程序的业务主体之一,是应用程序的界面,用来实现人机交互,例如查看联系人、拨打电话的应用程序界面,一个应用程序通常包含若干个Activity子类。

Activity在应用程序的位置类似于Java EE开发中的Bean,和.net中的aspx,其作用是将视图和数据模型链接起来,并且通过布局管理器来管理视图中的View组件,这就是典型的MVC模式。

Activity通过Activity.setContentView()方法将res/layout目录下的布局文件绑定到Activity,从而将是如渲染呈现到屏幕上。

Activity必须在AndroidManifest文件中进行注册配置。

 

Service

Service也是应用程序的业务主体之一,不过Service不提供应用程序的界面,用来在程序的后台处理一些有持续时间的处理操作,例如下载数据、播放音乐等等。一个应用程序可以包含若干个Service子类。

除此之外,在Service中还可以做一些在Activity中可以做的事情,例如启动另外一个Activity等。

Service必须在AndroidManifest文件中进行注册配置。

 

ContentProvider

Android应用程序的数据是应用程序私有的,AndroidContentProvider提供在多个程序之间进行数据共享的机制:通过ContentProvider来对外部程序提供一套数据CRUD的接口,外部程序就可以使用这套接口来访问操作该程序的数据,避免了数据CRUD的内部实现细节。

ContentProvider必须在AndroidManifest文件中进行注册配置。

 

BroadcastReceiver

BroadcastReceiver负责对广播消息进行响应,BroadcastReceiver通常用在ActivityService中。BroadcastReceiver可以接受程序内部的广播消息,也可以接受外部程序甚至是Android系统的广播消息。

想要使用BroadcastReceiver,必须继承BroadcastReceiver,并且在应用程序中注册BroadcastReceiver:可以在AndroidManifest文件中进行静态注册,也可以在ActivityService中进行动态注册。

 

Intent

Intent是一个特殊的组件,其字面意义是“意图”,ActivityServiceBroadcastReceiver都需要Intent的支持才能使用。

Intent可以用作以下几点:

1. 启动ActivitystartActivity()startActivityForResult()方法可以用来启动另外一个Activity,而这两个方法中有一个重要的参数Intent,通过Intent可以指定要启动的Activity,并且通过Intent向被启动的Activity传递数据信息。

2. 启动ServicestartService()bindService()方法可以启动一个Service,而这两个方法中有一个重要的参数Intent,通过Intent可以指定要启动的Service,并且通过Intent向被启动的Service传递数据信息。

3. 发送广播:sendBroadcast()sendOrderedBroadcast()sendStickyBroadcast()方法可以发送广播消息,而这三个方法中有一个重要的参数Intent,通过Intent可以携带想要发送的数据信息。

4. 执行一个对外部程序数据的查询:外部程序必须提供了ContentProvider,然后内部程序中通过ContentResolverquery来查询外部程序的数据,在这里就有可能要使用到Intent作为query的参数。

 

Launcher

LauncherAndroid系统的桌面主体程序,属于系统级别的应用程序。在一些Android系统定制开发时,就可能会要求重新开发一个Launcher来满足项目的需求。

既然Launcher也是一个应用程序,那么Launcher中包含的要素也会有ActivityService等组件要素。

 

Widget

Widget字面意义是“小插件”,一般在Launcher中呈现,可以在Launcher中添加系统自带的Widget,也可以添加第三方应用程序的Widget。如图006-01中的显示时间日期的那块区域就是一个背景透明的Widget


图 006-01


Notification

Notification一般位于Launcher中的屏幕正上方的区域,如图006-01中的显示信号、电量的那块区域,如果在那个区域执行下拉操作,就会显示各种通知信息,如图006-02所示。


图 006-02


Application

ApplicationAndroid应用程序的唯一入口,在所有ActivityService启动之前启动,每个Android应用程序有且仅有一个Application:如果没有自定义Application的子类,那么Android应用程序就会使用一个默认的Application子类来作为该程序的Application;如果自定义了一个Application,那么就需要在AndroidManifest文件注册该Application的子类,用来作为Android应用程序的Application

0 0