ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 程序的组件模式

程序的组件模式

原创 Linux操作系统 作者:broadviewbj 时间:2012-02-22 15:33:35 0 删除 编辑

程序的组件模式

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通知和状态栏通知)的方式和用户简单交互。

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

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

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

 

 

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

 

 

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

图书详细信息:http://space.itpub.net/13164110/viewspace-716807

1.jpg

Android经典应用程序开发.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13164110/viewspace-716939/,如需转载,请注明出处,否则将追究法律责任。

下一篇: Android中的控件
请登录后发表评论 登录
全部评论

注册时间:2008-02-22

  • 博文量
    1031
  • 访问量
    1598894