android 组件

 

Android组件相关概念总结
2010-01-25 15:10 佚名 博客园  我要评论(0) 字号: T |  T
一键收藏,随时查看,分享好友!

Android组件能够支持相应的特性,那么今天咱们将会经过对Activities;Services;Broadcast receivers;Content providers这四个组件进行详细的介绍。数据库

AD:编程

 

Android 手机操做系统是一款开源的系统。对编程有所了解的朋友们能够经过各类编写方式来使这款系统应用于手机中来知足各类需求。下面咱们将会对Android组件的一些概念进行一个总结,以方便你们的学习。ide

 

Android的一个核心特性就是,一个应用程序能利用另外应用程序的元素(假如这些应用程序容许这样作)。举个例子,若是你的程序须要展现一个能够滚动的图片列表,正好有另一个程序已经有这样一个合适的滚动条而且也容许其余程序使用,那么你就可使用这个滚动条来完成你的工做,而不是开发你本身的。你的应用不须要内含其余应用的代码或者链接到他。相反,它只是简单的启动了须要的部分。函数

为了让这个特性可以工做,系统必须可以实现运行一个部分组件被须要的应用,并为那个部分实例化一个Java对象。所以,与大多数系统上的应用不同,Android应用没有为应用中的任何部分提供一个单一的入口(好比说,没有main()函数)。相反的,他们用系统能实例和运行的本质组件。下面是4种组件:工具

Android组件之Activities布局

一个活动为一个具备焦点、用户能够操做的行为展现了一个可视化的用户接口。举例,一个活动能够展现一个用户能够选择的菜单选项列表,或者展现有字幕的照片。一个文字短信应用可能有一个用来展现能够选择发送短信联系人列表的活动,一个用来给这个选择的联系人写短信的活动,其余用来查看之前的短信和改变设置的一些活动。虽然他们一块儿工做,构成了一个联系紧密的用户接口,每个活动相对于其余活动倒是独立的。每个活动都是继承于基类Activity。性能

一个应用能够只有一个活动,或者就像上面的文字短信应用同样,能够有几个。这些活动是什么,有多少,固然,取决于应用程序和他的设计。典型的,这些活动中的一个Activity被标记为程序启动后第一个呈如今用户眼前。从一个活动转到另一个活动只是在当前的活动启动下一个。学习

每个活动都被给与一个缺省的窗口用来绘制。典型的,这个窗口填充了整个屏幕,可是他能够比这个窗口小,漂浮在其余窗口之上。一个活动也可利用额外的窗口。举例,一个弹出的对话框等待用户的反应,出如今这个活动的中间,或者当用户在屏幕上选择特别的选择时的一个位用户展现重要信息的窗口。ui

这个视觉上的窗口的内容由一套视图提供,继承于基类View的实例。每个视图控制一个在窗口内的特殊的矩形空间。父类视图包含并安排了子类的布局。在这套视图体系底部的视图在他们所控制的矩形空间中绘制,并对用户直接对这个空间的行为做出反应。所以,视图就是用户行为发生交互的地方。举例,一个视图可能展现了一个很小的图像,并在用户触摸这个图片时建立了一个动做。Android有大量的已经完成,你可使用的视图,包括按钮,文字框,滚动条,菜单项,复选框…。url

一套视图经过Activity.setContentView()填充到Activity所在窗体中。这个内容视图使这套体系的根视图。

Android组件之Services

服务不须要可视化的用户界面,相反在一段不肯定的时间段里运行在后台。举例,当用户在处理其余问题时,服务能够播放背景音乐,或者他能够从网上获取数据,计算,提升,提供给活动所须要的结果。每一个服务继承于服务基类。

一个基本的例子就是媒体播放器播放列表中的歌曲。播放应用程序可能会有一个或多个活动,容许用户选择歌曲并播放它们。可是,音乐回放不会被一个活动处理,由于用户指望音乐在他们离开这个播放程序界面后仍能播放。为了知足这个要求,这个播放活动应该开启一个在后台运行的服务。系统就能继续播放音乐,即便用户选择播放音乐后离开了这个界面。

能够实现链接到(绑定到)一个正在运行的服务(也能够开启一个当前没有运行的服务)。链接以后,你能够经过系统给出的一个接口与这个服务进行通讯。对于这个音乐服务,这个借口能够容许用户去暂停,倒退,中止,重放和回放。

就像活动和其余的组件,服务运行在应用程序进程中的主线程中。所以,他们不会阻塞到其余组件或者用户界面,服务一般会生成其余线程用来作那些耗时间的任务(就像音乐播放同样)。

Android组件之Broadcast receivers

广播接收器只能接收广播,对广播的通知作出反应。不少广播都产生于系统代码--举例,时区改变的通知,电池电量不足,照了一张相片,或者用户改变了语言偏好。应用也能够发出广播--举例,让其余应用知道已从网上下载了一些数据,而且它们可使用这些数据。

一个应用能够有不少广播接收器来对它认为重要的通知作出反应。全部的接收器继承于BroadcastReceiver基类。

广播接收器不展现一个用户界面。可是,它们能够为他们接收到得信息启动一个活动,或者它们可使用NotificationManager来通知用户。通知能够以不一样形式获得用户的注意--闪烁背景灯,震动手机,发出声音,等等。它们一般在状态栏上放置一个暂时的图标,用户能够经过打开这个图标获取信息。

Android组件之Content providers

内容提供者提供了一套特殊的可供其余应用使用的数据。这些数据能够存储在文件系统中,SQLite数据库中,或者其余有意义的形式。内容提供者继承于ContentProvider基类,实现了一套标准的容许其余用户检索,储存数据的方法。可是,应用程序并不能直接使用这些方法。他们必须使用ContentProvider的实例,调用它的方法。ContentResolver能够与任何内容提供者交流,他们之间的合做能够管理进程间的通讯。

无论何时有一个须要被一个特殊的Android组件处理的请求,Android确保这个应用组件的进程在运行中,若是有须要就启动它,确保组件的合适的实例是可用的,若有须要就实例化它。

相关文章
相关标签/搜索