对Android应用程序而言,应用组件主要由Activity、Service、Broadcast Receivers、Intent、Content Providers、AndroidManifest等构成。
Activity是与用户直接交互UI组件; Service是运行在后台、用户不可见的服务组件;Broadcast Receivers是进行系统消息广播的广播组件;Intent是应用组件间、进程间进行通信的通信组件;Content Providers是不同应用间传递、分享数据的内容组件;Android Manifest为应用程序的管理组件。
其他组件还有App Widgets、Graphics、Audio and Video、Data Storage、Resources等
在通常情况下,Activity作为一个全屏的窗口出现,也可以作为浮动窗口或者其他Activity的子Activity出现。
在Android中,Activity的管理是通过Activity栈的方式来进行的,在Activity的生命周期中,存在4种状态:激活(active)、运行(running)、停止(stopped)、暂停(paused)。
主要的Activity属性包括:taskAffinity 、launchMode 、allowTaskReparenting 、clearTaskOnLaunch 、alwaysRetainTaskState finishOnTaskLaunce等。
服务(Services)组件通常运行在后台,对用户而言不具有可视性,守护进程和硬件服务、原生服务等多是服务组件。
AIDL 接口:
服务根据驻留的对象不同可以分为本地服务(Local Services)和远程服务(Romate Services)
一般将远程服务分为应用级远程服务和系统级远程服务两种
系统级的服务实现颇为复杂。除了定义服务本身外,还需要定义被上层应用调用的接口。一般通过AIDL调用。而应用级远程服务除了AIDL外,Android还提供了较为简单的Message方式的调用。但如果实现的服务希望被其他应用调用,则必须通过AIDL进行。
广播接收器(Broadcast Receivers)是用来接收或者响应广播、通告的一个应用组件,它与通知管理器密切相关。当时区发生改变、电量不足、工作语言发生改变等事件发生时,注册相应广播接收器的应用将会收到这些信息。