应用组件
共有四种不同的应用组件类型:
- Activity
- 服务
- 广播接收器
- 内容提供程序
每种类型都有不同的用途和生命周期,后者会定义如何创建和销毁组件。
Activity
Activity 是与用户交互的入口点。它表示拥有界面的单个屏幕。
Activity 有助于完成系统和应用程序之间的以下重要交互:
- 追踪用户当前关心的内容(屏幕上显示的内容),以确保系统继续运行托管 Activity 的进程。
- 了解先前使用的进程包含用户可能返回的内容(已停止的 Activity),从而更优先保留这些进程。
- 帮助应用处理终止其进程的情况,以便用户可以返回已恢复其先前状态的 Activity。
- 提供一种途径,让应用实现彼此之间的用户流,并让系统协调这些用户流。
Activity 作为 Activity
类的子类来实现
服务
服务是一个通用入口点,用于因各种原因使应用在后台保持运行状态。它是一种在后台运行的组件,用于执行长时间运行的操作或为远程进程执行作业。服务不提供界面。
服务作为 Service
的子类来实现。
广播接收器
借助广播接收器组件,系统能够在常规用户流之外向应用传递事件,从而允许应用响应系统范围内的广播通知。由于广播接收器是另一个明确定义的应用入口,因此系统甚至可以向当前未运行的应用传递广播。
广播接收器作为 BroadcastReceiver
的子类实现,并且每条广播都作为 Intent
对象进行传递。
内容提供程序
内容提供程序作为 ContentProvider
的子类实现,并且其必须实现一组标准 API,以便其他应用能够执行事务。
清单文件
在 Android 系统启动应用组件之前,系统必须通过读取应用的清单文件 (AndroidManifest.xml
) 确认组件存在。您的应用必须在此文件中声明其所有组件,该文件必须位于应用项目目录的根目录中。
除了声明应用的组件外,清单文件还有许多其他作用,如:
- 确定应用需要的任何用户权限,如互联网访问权限或对用户联系人的读取权限。
- 根据应用使用的 API,声明应用所需的最低 API 级别。
- 声明应用使用或需要的硬件和软件功能,如相机、蓝牙服务或多点触摸屏幕。
- 声明应用需要链接的 API 库(Android 框架 API 除外),如 Google 地图库。
声明组件
清单文件的主要任务是告知系统应用组件的相关信息。