Android应用程序由一些松散连系的组件构成,遵守着一个应用程序清单(manifest),这个清单描述了每个组件以及它们如何交互,还有包含了应用程序的硬件和平台需求的元数据(metadata)。
以下六个组件提供了应用程序的基础部分:
- 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)的消息传递框架。使用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。