Android应用程序由一些松散连系的组件构成,遵守着一个应用程序清单(manifest),这个清单描述了每个组件以及它们如何交互,还有包含了应用程序的硬件和平台需求的元数据(metadata)。
Android应用由Activites、Services、Content Providers、Intents、Broadcast Receivers、Widgets、Notifications7个模块构成但是,并不是每一个Android应用程序都需要这7种构造块,这不是必须的,某些时候,我们只需要这7种中的几种组合成我们的应用。
以下是对7种构造块做一些说明:
- Activites(活动)应用程序的表示层,Activites就是一个有生命周期的对象。应用程序的每个界面都将是Activity类的扩展。Acitvities用视图(View)构成GUI来显示信息、响应用户操作。就桌面开发而言,一个活动(Activity)相当于一个窗体(Form)。
- Services(服务)应用程序中的隐形工作者。Service组件在后台运行,更新你的数据源和可见的Activities,触发通知(Notification)。在应用程序的Activities不激活或不可见时,用于执行依然需要继续的长期处理。
- Content Providers(内容管理器)可共享的数据存储。Content Providers用于管理和共享应用程序数据库。是跨应用程序边界数据共享的优先方式。这表示你可以配置自己的Content Providers以允许其他应用程序的访问,用他人提供的Content Providers来访问他人存储的数据。Android设备包括几个本地Content Providers,提供了像媒体库和联系人明细这样有用的数据库。
- Intents(意图) 一个应用程序间(inter-application)的消息传递框架,它表示程序想做某事的“意图”(intention)。使用Intents你可以在系统范围内广播消息或者对一个目标Activity或Service发送消息,来表示你要执行一个动作。系统将辨别出相应要执行活动的目标(target)。
- Broadcast Receivers(广播接收器)Intent广播的消费者。如果你创建并注册了一个Broadcase Receiver,你的应用程序就可以监听匹配了特定过滤标准的广播Intent。Broadcase Receiver会自动开启你的应用程序以响应一个收到的Intent,使得可以用它们完美地创建事件驱动的应用程序。
- Widgets(小组件)可以添加到主屏幕界面(home screen)的可视应用程序组件。作为Broadcase Receiver的特殊变种,widgets让你可以为用户创建可嵌入到主屏幕界面的动态的、交互的应用程序组件。
- Notifications(通知)一 个用户通知框架。Notification让你不必窃取焦点或中断当前Activities就能通知用户,通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互式操来接收消息。最常见 的通知包括短信息,通话记录,语音邮件,但是应用程序也可以创建它们自己的通知事件。这是在Service和Broadcast Receiver中获取用户注意的推荐技术。例如,当设备收到一条短消息或一个电话,它会通过闪光灯、发出声音、显示图标或显示消息来提醒你。你可以在你 的应用程序中使用Notifications触发相同的事件。
通过解耦应用程序组件间的依赖,你可以和其他应用程序(你自己的和第三方的)共享和交换单独的组件,如Content Providers、Services甚至Activities。