Android程序主要组成部分概述

时间:2022-08-03 10:54:23

Android程序主要组成部分概述

摘要:近几年,在智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统。Android 凭借其开放性和良好的人机界面,受到广大手机生产商的重视,随着3G时代的到来,Android有可能会改变现在智能手机市场的格局。Android是由Linux 操作系统、中间件以及核心应用程序组成的专门为移动终端设备开发的层次软件集。在对Android学习中,主要做了以下的研究:首先,Android系统是一个层次的软件集,所以先从层次方面对Android进行系统研究,主要对其运行时环境层以及Android应用框架层的研究;其次,通过对Android平台上应用的开发,更进一步了解 Android这个系统,在开发中,尤其注重Android的Intent机制的使用。随着Android手机的诞生,其无可替代的灵活性与轻便性致使Android手机成为智能手机市场的又一亮点。

关键词:Android;Activity;Service;BroadcastReceiver;Intent

中图分类号:TP18 文献标识码:A

一般来说Android程序主要由下列四个部分组成,它们分别是:

活动(Activity) - 用于表现功能

服务(Service) - 相当于后台运行的 Activity

广播接收器(BroadcastReceiver) - 用于接收广播

意图(Intent)- 用于连接以上各个组件,并在其间传递消息

1 Activity介绍

Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android当中最基本的模块之一。在Android的程序当中,Activity一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Acitivity就相当于一个网页。在Activity当中可以添加一些Button、Check box等控件。可以看到Activity的概念和网页的概念相当类似。一般一个Android应用是由多个Activity组成的。这多个Activity之间可以进行相互跳转,例如,按下一个Button按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity之间的跳转有可能返回值,例如,从Activity A跳转到Activity B,那么当Activity B运行结束的时候,有可能会给Activity A一个返回值。这样做在很多时候是相当方便的。

当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,因为Android会把每个应用的开始到当前的每一个屏幕保存在堆栈中。

Activity是由Android系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期,对于Activity,关键是其生命周期的把握,其次就是状态的保存和恢复(onSaveInstanceState onRestoreInstanceState),以及Activity之间的跳转和数据传输(intent)。

2 Service介绍

Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长的时间,但是它却没有用户界面。这么说有点枯燥,我们来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android的浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲的播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。

3 BroadcastReceiver介绍

在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager来通知用户这些事情发生了。BroadcastReceiver既可以在AndroidManifest.xml中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast()将它们自己的intent broadcasts广播给其他应用程序。注册BroadcastReceiver有两种方式:

4 Intent介绍

Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity)。为了实现这个目的,listActivity 需要构造一个 Intent,这个Intent用于告诉系统,我们要做"查看"动作,此动作对应的查看对象是"某联系人",然后调用startActivity (Intent intent),将构造的Intent传入,系统会根据此Intent中的描述,到ManiFest中找到满足此 Intent要求的Activity,系统会调用找到的Activity,即为detailActivity,最终传入 Intent,detailActivity则会根据此Intent中的描述,执行相应的操作。Intent主要是用来启动其他的activity 或者service,所以可以将intent理解成activity之间的粘合剂。Intent具体有一下3种形式:

通过startActivity方法来启动一个新的Activity;

通过broadcast Intent机制可以将一个Intent发送给任何对这个Intent感兴趣的BroadcastReceiver。

通过startService(Intent)或bindService(Intent,ServiceConnection,int)来和后台的Service进行交互。

5 小结

Activity是应用的"眼睛",其展示给用户,可以用来交互;而BroadcastReceiver是"耳朵",其接收发生的Intent;Service则相对于"手",其把事情做完。Intent作为它们的辅助工具起到串联的作用,辅助这些组件完成通讯的任务。

参考文献

[1]Android SDK开发范例大全.人民邮电出版社, 5(4).

[2]Android开发入门与实战.人民邮电出版社, 20(4).

[3]大话企业级android开发全集.国士工作室, 36(1).

[4]Android编程入门教程andbook.

上一篇:智能小区的宽带网络基本概念 下一篇:浅论光纤通信技术发展趋势