电脑计算机论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1126|回复: 0

Android的程序组件模式

[复制链接]
四海一源 发表于 2012-3-3 16:35:24 | 显示全部楼层 |阅读模式
程序的组件模式
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作为对外的接口。从组件的角度,其接口分为对包内的其他组件的接口和对其他应用程序包的接口,它们的实现结构基本相同。
您需要登录后才可以回帖 登录 | 注册

本版积分规则


QQ|手机版|小黑屋|电脑计算机论坛 ( 京ICP备2022023538号-1 )

GMT+8, 2024-11-23 23:29 , Processed in 0.089206 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表