程序的组件模式

Android程序的载体是各个应用程序包(APK),而程序运行的主体是各种“组件”。Android的一个应用程序包一般可以视为运行在一个进程中的组件的集合。

因此,Android应用程序运行的主要单位是组件。Android中的application并不是一个程序运行的实体,仅表明相关组件之间运行的上下文。

Android四种组件是:活动(android.app包中的Activity类),服务(android.app包中的Service类),广播接收器(android.content包中的BroadcastReceiver类)和内容提供者(android.content包中的ContentProvider类)。四种组件都是基础的类,在程序中一般需要经过扩展使用。

Activity是一个可见的、类似在前台运行的部件,它具有一定的生命周期,例如有在前面、在后面但可见、在后面不可见、消失等几种状态。Activity的作用相当于一个“窗口”,它作为各种控件的容器,展示给用户并进行交互。

Service是一个不可见、但是可以长期运行的部件,其他部件可以使用启动或者绑定的方式和服务进行交互。服务在后台长期存在保存上下文,并具有接口与其他部件进行交互。

BroadcastReceiver是一个不可见、只有短期运行的部件。广播的作用相当于一个“回调函数(Callback)”,只有在被调用的时候才运行。

ContentProvider表示的是内容的接口,它实际上是一个静态的部件,提供统一的数据访问和存取方式,在其下部可以使用数据存储系统来实现。

从Android应用程序的角度,各个组件对外的联系是程序处理的一个关键性问题,组件接口包括对用户的接口和对其他包的接口两部分内容。

在对用户的接口的角度,包括呈现给用户的界面和接受用户的控制,主要由Activity及其中的View对外提供,其他组件可以使用通知(Toast通知和状态栏通知)的方式和用户简单交互。

应用程序包之间的接口方面,主要由组件的标准接口提供,Activity、Service和BroadcastReceiver使用Intent作为对外的接口,ContentProvider使用URI作为对外的接口。从组件的角度,其接口分为对包内的其他组件的接口和对其他应用程序包的接口,它们的实现结构基本相同。

提示:Activity具有返回结果的启动方式只能被其他Activity所使用,其他组件对外的接口有Context就可以使用。

Androidy应用程序包的组件接口关系如图7-1所示。

在Android应用程序实现的角度,组件是Android的应用程序架构中强制需要的使用机制。基于组件可以更清晰地划分程序的结构,程序中也将具有和组件无关代码部分,例如:与UI相关控件、2D-3D图形绘制、动画等方面,与UI无关的逻辑、算法、数据存储、硬件控制等方面。这些代码需要提供功能给组件,并通过组件进行组织,进而构成一个完整的应用程序。

——本段文字节选自《Android经典应用程序开发》

图书详细信息:http://blog.csdn.net/broadview2006/article/details/7276196

更多相关文章

  1. android进程间服务通信
  2. Android应用程序框架层和系统运行库层日志系统源代码分析
  3. android Camera模块分析
  4. Android(安卓)Jetpack组件学习 Room
  5. Android(安卓)之 Gallery画廊用法
  6. Android(安卓)app widget 支持的Layout和widget组件
  7. android轮播图组件的制作方法
  8. Android(安卓)实现Activity后台运行
  9. android 使用include 调用内部组件

随机推荐

  1. android Fragment 常用api方法
  2. linux配置android真机调试的步骤
  3. Android(安卓)端天气预报APP的实现(四)使用
  4. Android中获取控件宽高的4大方法
  5. Android:图解Activity启动流程源码(整体流
  6. 【Android】-- adb shell 命令探索
  7. Android(安卓)检查网络是否连接
  8. android 引导用户指示操作 高亮显示 可以
  9. Android2.2的camera应用程序中支持双came
  10. :Android下affinities和任务(task)