Android系统四大组件的注册与激活

时间:2022-10-04 07:59:25

Android系统四大组件的注册与激活

摘 要 Android系统是当前最流行的开源手机操作系统。本文首先对Android系统的四大基本组件做了简单介绍,对四大组件的注册与激活进行了具体说明,同时针对手机与PC的不同,结合现实情况,给出了Android应用的开发方向。

关键词 Android;注册;激活;组件

中图分类号:TP311 文献标识码:A 文章编号:1671—7597(2013)031-016-01

Android是Google于2007年11月5日的开源手机操作系统,它包括一个操作系统,中间件和一些重要的应用程序。主要分为三部分。底层以Linux内核为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和Dalvik虚拟机,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件由各软件公司自行开发。

在国内,Android的应用前景十分广阔,国内很多的厂商和运营商也纷纷加入了Android阵营,包括中国移动、中国联通、华为通讯、联想等大企业。Android系统主要有四大组件:Activity、Service、Content Provider、BroadcastReceiver。

1 四大组件介绍

作为手机应用程序,大部分都有一个和用户交互的界面,这就是Activity,通过它显示一些可视化控件并监听和处理与用户的交互事件。Activity为Android应用提供了可视化的用户界面,如果该Android应用需要多个用户界面,那么这个Android应用将会包含多个Activity,多个Activity组成Activity栈,当前活动的Activity位于栈顶。

Activity之间通过Intent进行通信。Intent中比较常用且重要的是它的动作以及动作对应的数据。

Service与Activity的地位是并列的,它也代表一个单独的Android组件。Service一般在系统后台运行,一般不与用户交互。

BroadcastReceiver是Android应用中非常重要的一个组件,从代码的角度看,它非常类似于事件编程中的监听器。与普通事件监听器不同的是:普通事件监听器监听的事件源是程序中的对象,而BroadcastReceiver监听的事件源是Android应用中的其他组件。

Android平台提供了Content Provider,把一个应用程序的指定数据提供给其他应用程序。这些数据可以存储在文件系统或SQLite数据库中。它提供了统一的数据访问方式。

2 组件的注册

Android系统中的组件需要注册自己的相关信息才能被系统检测到并参与到程序的运行中。注册Activity、服务、Content Provider内容提供者需要用到AndroidManifest文件。清单文件中可以包含应用程序的包名、应用程序兼容的最低版本。使用系统所需的权限说明等等信息。如果Activity、Service服务以及ContentProvider内容提供者未在清单文件中进行注册,则会导致系统检测不到它们,当然这些组件也就不能在程序中起到应有的作用。广播接收者的注册分为静态注册和动态注册两种。静态注册通过在清单文件AndroidManifest.xml中进行配置。动态注册通过代码动态创建并通过调用Context.registerReceiver()的方式来实现。需要注意的是在AndroidManifest.xml文件中进行配置的广播接收者会随系统的启动而一直处于活跃状态。

只要为清单文件添加元素就可以注册activity。Activity的配置通常需要指定三个属性:name、icon以及label。name属性指定实现这个activity的类。icon指定这个activity对应的图标。Label指定该activity对应的标签。

通过在清单文件中添加元素来注册服务,注册服务时也可以添加意图过滤器元素来过滤该服务能被哪些意图启动。因为服务没有界面,所以不用指定label属性。

3 四大组件的激活

Android系统的组件都需要通过某种方式激活才能起作用。Activity、Service以及广播接收器通过Intent来激活。当内容提供者接收到ContentResolver发出的请求以后后,内容提供者会被激活。

Intent对android应用的作用非常大。通过Intent可以激活系统中的另一个Activity,也可以激活一个服务组件,还可以激活系统中的广播接收者。可以通过调用Context的startActivity()方法或者是通过Activity.startActivityForResult()激活一个activity。其中需要的参数Intent中封装了需要被激活的activity的相关信息。激活的activity也可以通过调用getIntent()方法来查看激活它的intent的有关内容。

服务的激活也需要Intent对象。传递一个Intent对象给startService(Intent intent)方法或者是bindService(Intent intent,ServiceConnection con,int flags)方法来激活服务。这个Intent对象是必需的,因为它里面封装了需要激活的目标服务的相关信息。

4 Android应用的开发方向

Android系统发展的大趋势是与传统服务器应用整合,因为手机的硬件资源毕竟是有限的:计算能力有限,存储能力也是有限的。所以Android应用更适合作为应用的客户端:手机携带方便,可以随时随地开机运行应用,而且可以随时访问网络,并通过网络与服务器端应用交互、获取服务器端数据。在不久的将来,运行在手机上的电子商务客户端、金融、证券系统客户端会大量出现。

参考文献

[1]余志龙.Google Android SDK 开发范例大全[M].北京:人民邮电出版社,2009.

[2]李杨,冯刚.基于Android的多媒体应用开发与研究[J].计算机与现代化,2011(04).

[3]彭海文.Android通话拦截和强插应用研究[J].电脑知识与技术,2011(07).

[4]王向辉,张国印.Android应用程序开发[M].北京:清华大学出版社,2010.

作者简介

董晓刚,男,潍坊科技学院中印计算机软件学院,讲师,研究方向:手机开发、对等网络。

上一篇:TIS—B环境下的ADS—B系统 下一篇:数控机床加工过程网络化监控技术的研究分析