- 浏览: 40692 次
- 性别:
- 来自: 上海
最新评论
Android组件相关概念总结
- 博客分类:
- 技术杂绘
Android 手机操作系统是一款开源的系统。对编程有所了解的朋友们可以通过各种编写方式来使这款系统应用于手机中来满足各种需求。下面我们将会对Android组件的一些概念进行一个总结,以方便大家的学习。 Android的一个核心特性就是,一个应用程序能利用另外应用程序的元素(假如这些应用程序允许这样做)。举个例子,如果你的程序需要展示一个可以滚动的图片列表,正好有另外一个程序已经有这样一个合适的滚动条并且也允许其他程序使用,那么你就可以使用这个滚动条来完成你的工作,而不是开发你自己的。你的应用不需要内含其他应用的代码或者连接到他。相反,它只是简单的启动了需要的部分。
为了让这个特性能够工作,系统必须能够实现运行一个部分组件被需要的应用,并为那个部分实例化一个Java对象。因此,与大多数系统上的应用不一样,Android应用没有为应用中的任何部分提供一个单一的入口(比如说,没有main()函数)。相反的,他们用系统能实例和运行的本质组件。下面是4种组件:
Android组件之Activities
一个活动为一个具有焦点、用户可以操作的行为展示了一个可视化的用户接口。举例,一个活动可以展示一个用户可以选择的菜单选项列表,或者展示有字幕的照片。一个文字短信应用可能有一个用来展示可以选择发送短信联系人列表的活动,一个用来给这个选择的联系人写短信的活动,其他用来查看以前的短信和改变设置的一些活动。虽然他们一起工作,构成了一个联系紧密的用户接口,每一个活动相对于其他活动却是独立的。每一个活动都是继承于基类Activity。
一个应用可以只有一个活动,或者就像上面的文字短信应用一样,可以有几个。这些活动是什么,有多少,当然,取决于应用程序和他的设计。典型的,这些活动中的一个Activity被标记为程序启动后第一个呈现在用户眼前。从一个活动转到另外一个活动只是在当前的活动启动下一个。
每一个活动都被给与一个缺省的窗口用来绘制。典型的,这个窗口填充了整个屏幕,但是他可以比这个窗口小,漂浮在其他窗口之上。一个活动也可利用额外的窗口。举例,一个弹出的对话框等待用户的反应,出现在这个活动的中间,或者当用户在屏幕上选择特别的选择时的一个位用户展示重要信息的窗口。
这个视觉上的窗口的内容由一套视图提供,继承于基类View的实例。每一个视图控制一个在窗口内的特殊的矩形空间。父类视图包含并安排了子类的布局。在这套视图体系底部的视图在他们所控制的矩形空间中绘制,并对用户直接对这个空间的行为作出反应。因此,视图就是用户行为发生交互的地方。举例,一个视图可能展示了一个很小的图像,并在用户触摸这个图片时创建了一个动作。Android有大量的已经完成,你可以使用的视图,包括按钮,文字框,滚动条,菜单项,复选框…。
一套视图通过Activity.setContentView()填充到Activity所在窗体中。这个内容视图使这套体系的根视图。
Android组件之Services
服务不需要可视化的用户界面,相反在一段不确定的时间段里运行在后台。举例,当用户在处理其他问题时,服务可以播放背景音乐,或者他可以从网上获取数据,计算,提高,提供给活动所需要的结果。每个服务继承于服务基类。
一个基本的例子就是媒体播放器播放列表中的歌曲。播放应用程序可能会有一个或多个活动,允许用户选择歌曲并播放它们。但是,音乐回放不会被一个活动处理,因为用户期望音乐在他们离开这个播放程序界面后仍能播放。为了满足这个要求,这个播放活动应该开启一个在后台运行的服务。系统就能继续播放音乐,即使用户选择播放音乐后离开了这个界面。
可以实现连接到(绑定到)一个正在运行的服务(也可以开启一个当前没有运行的服务)。连接之后,你可以通过系统给出的一个接口与这个服务进行通信。对于这个音乐服务,这个借口可以允许用户去暂停,倒退,停止,重放和回放。就像活动和其他的组件,服务运行在应用程序进程中的主线程中。因此,他们不会阻塞到其他组件或者用户界面,服务通常会生成其他线程用来做那些耗时间的任务(就像音乐播放一样)。
Android组件之Broadcast receivers
广播接收器只能接收广播,对广播的通知做出反应。很多广播都产生于系统代码--举例,时区改变的通知,电池电量不足,照了一张相片,或者用户改变了语言偏好。应用也可以发出广播--举例,让其他应用知道已从网上下载了一些数据,并且它们可以使用这些数据。
一个应用可以有很多广播接收器来对它认为重要的通知做出反应。所有的接收器继承于BroadcastReceiver基类。
广播接收器不展示一个用户界面。但是,它们可以为他们接收到得信息启动一个活动,或者它们可以使用NotificationManager来通知用户。通知可以以不同形式得到用户的注意--闪烁背景灯,震动手机,发出声音,等等。它们通常在状态栏上放置一个暂时的图标,用户可以通过打开这个图标获取信息。
Android组件之Content providers
内容提供者提供了一套特殊的可供其他应用使用的数据。这些数据可以存储在文件系统中,SQLite数据库中,或者其他有意义的形式。内容提供者继承于ContentProvider基类,实现了一套标准的允许其他用户检索,储存数据的方法。但是,应用程序并不能直接使用这些方法。他们必须使用ContentProvider的实例,调用它的方法。ContentResolver可以与任何内容提供者交流,他们之间的合作可以管理进程间的通信。
不管什么时候有一个需要被一个特殊的Android组件处理的请求,Android确保这个应用组件的进程在运行中,如果有需要就启动它,确保组件的合适的实例是可用的,如有需要就实例化它。
发表评论
-
SQL Server2005截取字符串并操作
2012-07-06 09:51 615以前看过别人写的,但是实在记不起来是怎么写的了,今天自己写 ... -
用正则表达式验证密码强度
2012-07-06 09:45 766项目中有个需要验证密码强度,我对正则表达式并不熟悉,每次都 ... -
shell脚本系列-正则表达式介绍
2012-07-06 09:37 658正则表达式介绍 随着对UNIX和LINUX熟悉程度的不 ... -
Symbian 更换主题
2012-07-06 09:30 699http://wiki.forum.nokia.com/i ... -
JS 正则表达式各种验证
2012-07-05 20:45 710判断手机的: ... -
flex ant 例子
2012-07-02 10:31 505Flex Ant Task" def ... -
Flex之数据格式化
2012-07-02 10:31 618数据格式化是对某 ... -
flex 日期下拉框,选择一段日期
2012-07-02 10:31 609在一般网页的制作过程中,我们做的程序,日期选择框,通过js ... -
SWFAddress实现Flex深度链接(不同模块具有不同的URL)
2012-07-02 10:30 569众所周知,Flex明显区别于传统B/S开发模式的特性中,有 ... -
The architecture of Flex and Java applications two (Flex 和 Java 应用程序架构 2)
2012-07-01 00:09 572Flex and Java application ... -
Adobe Flex Application LifeCycle
2012-07-01 00:09 566Flex的根对象就是Sys ... -
Flex4中 一个使用Module的例子
2012-07-01 00:09 598使用Flex的Module技术, 将各个业务子模块分散成若 ... -
flex linkbutton 数据加载
2012-07-01 00:09 752类似于导航条的一种。 flex/spark& ... -
Flex加载flash_as3_swf,并响应其中的按钮事件
2012-07-01 00:09 774注:flash_as3_swf里的源码里有一个btn_fu ...
相关推荐
Android应用开发的哲学是把一切都看作是组件。把应用程序组件化的好处是降低模块间的耦合性,同时提高模块的复用性。Android的组件设计思想与传统的组件设计思想最大的区别在于,前者不依赖于进程。也就是说,进程...
android组件,对android常用组件的解释 android组件,对android常用组件的解释
android安卓组件库android安卓组件库android安卓组件库
原理解释请参考文章Android彻底组件化方案实践 demo解读请参考文章Android彻底组件化demo发布 实现功能: 组件可以单独调试 组件之间通过接口 实现的方式进行数据传输 使用scheme和host路由的方式进行activity之间...
Android项目组件化学习demo,内容包含底层基础类模块,网络请求类模块,常用工具栏模块,多模块简单集成,内容简单,思想醇厚
android组件化demo,包含了网路请求之类的框架,下载下来可以直接使用
android组件Fragment介绍,官方翻译
一种简单有效的android组件化方案,支持组件的单独调试、集成调试、组件交互以及组件之间的完全隔离
AndroidStudio项目组件化,便于大型项目团队并行开发。项目中集成路由框架,友盟统计,腾讯Bugly日志,
这是一个Android组件化入门的实例demo,主要包括如下功能: 1、集成模式和组件模式的灵活切换 2、使用ARouter实现组件化通信 3、组件化最佳实践
Android组件TimePicker组件的深入解析,自定义TimePicker组件
uni小程序 SDK android 组件化
android四大组件详细介绍,activity,service等从基础到应用开发,熟练的掌握android 组件的应用。
android基础组件功能演示.android基础组件功能演示
一个强大完善的Android组件化方案
Android四大组件简述demo用例。
android组件之 ratingBar processbar listview tabhost seekbar gallery ImageSwitcher 大集合,并且ratingBar的背景图片自定义
android开发中组件之间通信-广播的方式总结。
文档主要是讲Android开发的四大组件详解,包含 Activity详解 ,Service详解,Broadcast Receiver详解,Content Provider详解 外加一个重要组件 intent的详解。 文章内容来自网络,本文是一个总结性文章。