基于Android平台的星座查询软件设计.docx
《基于Android平台的星座查询软件设计.docx》由会员分享,可在线阅读,更多相关《基于Android平台的星座查询软件设计.docx(37页珍藏版)》请在冰豆网上搜索。
![基于Android平台的星座查询软件设计.docx](https://file1.bdocx.com/fileroot1/2023-7/5/6fb3c706-ef5e-4e03-9a37-3503ef08ba25/6fb3c706-ef5e-4e03-9a37-3503ef08ba251.gif)
基于Android平台的星座查询软件设计
基于Android平台的手机软件开发
摘要
随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备。
因此,手机的娱乐应用服务将会有很大的发展空间,手机星座查询软件就是其中的一项。
Android平台提供给用户非常方便的星座查询功能,这将为星座查询服务的设计与实现提供了更好的平台。
另外,Android平台基本上是免费的,所以能够有效降低软件的成本,最终让每个用户能够自由地获取信息,也为手机星座查询服务的普及做出贡献。
本文对目前应用的Symbian、WindowsMobile、MacOSX和RIM等平台的现状进行了分析与比较。
进而研究分析了Android平台的系统架构和组件模型,接着解析了Android中的重要API和应用构成,以Intent和生命周期的机制。
在此基础上,基于Android平台设计和开发手机星座查询软件。
本系统界面友好、操作便捷,具有良好的可扩展性和可维护性;系统经过测试,可以稳定运行,能够满足手机用户的基本需求。
关键词:
Android;Java;星座查询;Intent;布局
Abstract
WiththeMobilePhoneentersintothelivestepbystep,itwillbecomethemaindevicetoobtaininformation.ServicesofmobilePhonewillhavegreatdevelopmentspace,Constellationinquiresisoneofthem.Androidplatformoffersusersveryconvenientconstellationinquiresthefunction,Thiswillbeforconstellationinquiresthedesignandimplementationofserviceprovidesabetterplatform.Inaddition,Androidplatformisbasicallyfree,socaneffectivelyreducethesoftwarecosts,Finallyleteachuserwillbefreetogetinformation,Alsoforthepopularizationofmobilephoneconstellationinquirestheservicecontribution.
ThispaperdiscussesthepresentapplicationofSymbian,WindowsMobile,MacOSXandRIMsituationofsuchplatformareanalysedandcompared.FurtherresearchandanalysisoftheAndroidplatformsystemarchitectureandthecomponentmodel,thenanalyzestheimportantAndroidAPIandtheapplicationform,withIntentandlifecyclemechanism,onthisbasis,designanddevelopmentofmobilephoneconstellationinquiresthesoftwarebasedontheAndroidplatform.Thissystemfriendlyinterface,Convenientoperation,Hasgoodexpansibilityandmaintainability;aftertestofsystem,canstableoperation,Tomeetthebasicneedsofmobilephoneusers.
Keywords:
Android;Java;Constellationquery;Intent;Layout
1、绪论
1.1课题背景
随着移动通信的发展以及互联网向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian,windowsMobile,PalmOS等手机平台过于封闭,不能很好的满足用户的需求,因此市场迫切需要一个开放性很强的平台。
Android是一套真正意义上的开放性移动设备综合平台,它包括操作系统、中间件和一些关键的平台应用。
Android是由Linux+Java构成的开源软件,允许所有厂商和个人在其基础上进行开发。
Android平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地制定自己的特色化的产品。
因此,它具有很大的市场发展潜力。
经过多年的发展,第三代数字通信(3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。
随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。
因此,移动终端的应用软件和需要的服务将会有很大的发展空间。
Google与包括中国移动、摩托罗拉在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月推出了一个专为移动设备设计的软件平台———Android。
Android最大特点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验,Android里面具有非常丰富的图形系统,对多媒体的支持功能和非常强大的浏览器。
本课题的目的在于掌握Java手机应用开发技术和移动软件平台开发技术。
在以Java语言为基础,结合Android移动开发平台,并利用Android提供的SDK,完成在Android平台上运行的“星座”查询软件,形成一款具有一定功能的手机应用软件。
本课题的意义在于通过开发一款“星座”查询手机应用软件,可以熟练应用Android平台提供的应用程序接口,掌握Android平台上的各种应用。
1.2Android平台与其他平台的比较
首先看一下Symbian,它存在着以下的致命不足:
Symbian的主导者为诺基亚、索尼爱立信等传统的手机厂商,因此虽然Symbian非常成熟,但它基本上还带有浓厚的保守色彩,应用软件与我们日常的PC软件有较大的理念差异。
再者Symbian与互联网的结合给人感觉仍不够紧密,互联网应用更多只是作为陪衬存在。
Android平台与此相反,移动互联网是它最重要的应用,无论系统内核、应用软件还是硬件设计,几乎都是围绕着快捷的移动互联网应用所展开,同时Android与PC平台存在先天的基因联系,可以很好的实现与PC设备的信息互享,更容易获得用户的广泛认可。
与Android拥有相同属性的还有微软的Windowsmobile。
至于iPhone,它只是苹果公司的封闭平台,用户无法在iPhone中自行安装应用,所有的东西都应该苹果自行设计制造,从而确保利润不被第三方分享。
苹果自己为iPhone开发了嵌入系统以及完整的应用,但它干脆都不宣扬iPhone的软件设计,而是将iPhone作为一个包含软硬件卖点的手机产品出售。
同样,苹果式的奢华与时尚让iPhone大获成功,以至于成为手机市场的风向标。
与苹果相反,Android则是走完全开放的道路,这种模式的巨大优点在PC软件领域已为业界所公认:
自由软件高度活跃,错误可以被快速修正,新的应用、新的创意可以不断出现。
Android平台的另外一个优势是标准化和跨平台。
Android和操作系统进行了紧密的整合,从而可以方便地使用操作系统的功能。
这与难于使用操作系统功能的J2ME相比,无疑对开发者有很大的吸引力。
并且从图形应用界面的开发上面来看,Android可以使用配置文件来描述图形控件的布局,用Java代码编写实际响应代码,这样方便得多。
当然由于Android己经提供了大量现成的应用API和应用工具,使得常规智能手机功能的开发变得非常容易和简单。
1.3本文主要工作
Android是基于Linux+Java的手机操作系统平台,XMPP是基于XML的开源的即时通讯协议,本文从实际应用出来,提出了开发基于Android平台的手机“星座”查询软件。
本文的主要工作包括:
在Eclipse开发环境下,运用java语言和android的sdk开发一款可以实现查询星座功能的软件。
本软件除了即时文本信息的传输显示外,还可以进行图片的显示,并对软件客户端的功能进行了美化扩展,增加了背景和浏览的功能。
并且该系统在Android模拟器上运行,取得了很好的运行效果。
1.4论文组织结构
本文首先分析了系统的研究背景,介绍了Android的发展现状以及本文的主要内容。
并对Android与其它手机操作系统进行了比较,说明了Android的优势。
第二章,介绍了Android的特征、Android的架构,运行组件以及Android应用的构成和工作机制。
第三章,提出了在Android平台上开发基于java的“星座”查询软件,提出了系统的架构、系统服务器端和客户端的解决方案,对系统采用的Intent进行解析,并且介绍了Android的生命周期。
第四章,对如何实现“星座”查询软件功能进行了详细的分析,对软件设计从客户端界面,代码段的实现,XML解析模块,“星座”查询界面跳转和客户端扩展功能几个方面进行了详细的学士学位论文实现,最后对系统的流程进行了描述。
第五章,总结了本文的主要研究内容和研究成果,分析了存在的问题,并对今后的发展方向进行了展望。
2、Android的架构分析
Android是一个包含操作系统、中介架构层及应用程序所产生出来的软件堆栈架构。
由下而上,其核心为嵌入式Linux2.6作业系统,向上搭配Google为Android开发的类库及Android运行时,再配合应用程序架构,来开发各种不同的应用程序。
2.1Android的功能特征
(l)应用程序架构:
在应用程序架构内已经具备多种不同的基础组件,在开发应用程序时,就可以直接调用这些组件来使用,可以节省开发应用程序的心力及时间。
(2)Dalvik虚拟机器:
在Android平台上所使用Java虚拟机,不是Sim公司的标准Java虚拟机,而是使用Google自主开发的代号为Dalvik的虚拟机,它在保证API方面的兼容的同时,针对移动手机进行了大幅优化,占用资源更小,运行效率更高。
(3)集成的浏览器:
集成的浏览器是Android内建的浏览器,是以WebKit的浏览引擎为基础所开发成的。
WedKit是一个开源浏览器网页排版引擎,目前使用WebKit引擎的浏览器主要有:
Safari,Midori,Epiphany等。
配合Android手机的功能,可以在浏览网页时,达到更好的效果,例如:
局部性的缩放网页上的资讯、触控式的操作等效果。
(4)优化的绘图能力:
在程序里可以用到的绘图功能分为2D与3D两个方面。
在2D方面,Android提供了一套特有的类库(SGL;而在3D方面则是使用OpenGLES1.0(openGLforEmbeddedsystems)规范的类库。
它们是一种非常快的图形引擎,并且支持硬件加速。
(5)SQLite数据库:
SQLite提供结构化的数据存取。
SQLite是一款轻型的数据库,它的设计目标是嵌入式的,目前已经在很多嵌入式产品中使用了它,它占用的资源非常低。
它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如php,Java等,还有ODBC接口,同样比起Mysql,PostgreSQL来讲,它的处理速度比它们都快。
它无需安装和管理配置,它是一个储存在单一磁盘文件中的完整数据库,体积小只有250KB但支持数据库大小至2TB。
它虽然很小巧,但是支持的SQL语句毫不逊色于其它开源数据库。
同时它还支持事务功能和并发处理等等。
SQLite也是一套开放性的关联式资料库,其特点在于轻量性方面的设计结构,更适合在手机上使用。
(6)多媒体的支持能力:
主要用于播放媒体文件。
这同时包括对音频(如播放MP3或其他音乐文件等)和视频(如播放从网上下载的视频)的支持,并支持“播放URI地址”(Note:
URI即是统一资源识别地址)模式—在网络上直接播放的流媒体。
另外支持各种通用的静态图像格式,例如:
JPG、PNG、GIF等格式。
(7)GSM技术:
GlobalSystemforMobileCommunications,即全球移动通讯系统,俗称”全球通”,是一种起源于欧洲的移动通信技术标准,是第二代移动通信技术,其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。
GSM技术是属于手机硬件方面的展现,也是在开发Android应用程序时可以突出的特点之一。
(8)蓝牙、EDGE、3G及Wi-Fi:
蓝牙是一种新型、开放、低成本、短距离的无线连接技术,可取代短距离的电缆,实现话音和数据的无线传输。
EDGE(EnhancedDataRateforGSM,Evolution),即增强型数据速率GSM演进技术。
EDGE是一种从GSM到3G的过渡技术,它主要是在GSM系统中采用了一种新的调制方法,即最先进的多时隙操作和SPSK调制技术。
由于8PSK可将现有GSM网络采用的GMSK调制技术的信号空间从2扩展到8,从而使每个符号所包含的信息是原来的4倍。
Wi-Fi(WirelessFidelity),即无线保真技术,与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。
该技术使用的是2.4GHz附近的频段,该频段目前尚属没用许可的无线频段。
其目前可使用的标准有两个,分别是IEEE802.lla和IEEE802.11b。
这些通讯能力也是属于手机硬件方面的展现,也是在开发Android应用程序时可以突出的特点之一。
(9)GPS:
GlobalPositioningSystem,即全球定位系统,它是一个由覆盖全球的24颗卫星组成的卫星系统。
这个系统可以保证在任意时刻和任何地点都可以同时观测到4颗卫星,以保证卫星可以采集到该观测点的经纬度和高度,以便实现导航、定位、授时等功能。
这项技术可以用来引导飞机、船舶、车辆以及个人。
这个同样也是属于手机硬体方面的体现,也是在开发Android应用程序是可以突出的特点之一。
2.2Android架构分析
图中显示的是Android架构的五个主要部分。
2.2.1应用程序框架
在AndroidSDK中,定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能为其它应用程序所使用。
但是,这要受限于应用程序架构的安全机制,使用者以用同样的机制来新增、置换组件。
目前所有的应用程序是由服务及系统来组成,包含有:
(l)一套强大和可扩展的视图系统:
用来建构一个应用程序的基本组件,包了在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。
图2-1Android架构的五个部分
(2)内容提供者:
使应用程序可以访问另一个应用程序的数据(如联系人数库),或者共享它们自己的数据。
(3)资源管理器:
提供各种非程序代码的资源让应用程序去使用。
例如:
本字符串、图形文件或排版相关的布局文件。
(4)通知管理器:
提供应用程序在状态栏中显示应用程序自定义的提示信息。
(5)活动管理器:
管理所有应用程序的生命周期及提供常用的导航回退功能。
例如:
启动应用程序要用到的资源准备及关闭应用程序时释放内存及相关资源等工作。
(6)视窗管理器:
用来管理所有启动程序的视窗。
(7)位置管理器:
用来管理地图服务的相关功能。
(8)电话管理器:
用来管理用户拨打与接听电话的相关功能。
(9)包管理器:
管理所有安装在Android系统内的包。
2.2.2类库
在Android中包含一些C/C++的类库,这些类库能被Android系统中不同的组件来使用。
开发者可以通过应用程序框架使用这些功能。
部分核心类库列表如下:
(1)surfaceManager:
主要的功能是让开发者可以去存取/显示系统及管理的功能,在[显示]与[存取操作]间的对应、互动以及实现无接缝的2D/3D多应用程序之间的整合。
例如:
在2D、2D显示上的合成、叠合动作。
(2)3Dlibraries:
主要是依openGLES1.0规范所定义的3D绘图引擎。
该库使用硬件加速(当硬件可用时),可以将硬件的3D功能做最佳化的处理显示。
(3)SGL:
主要是处理有关显示2D方面的绘图引擎。
(4)MediaFramework:
主要是以packetVideo公司的OpenCORE为基础所发展的多媒体类库,该库支持回放和录制大量流行的音视频格式和静态图片。
例如:
MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等格式
(5)FreeType:
主要是用来显示点阵图和处理向量字形的。
(6)SSL:
(secureSocketsuyer),中文名为“安全套接层协议层”,它是网景公司提出的基于WEB应用的安全协议,当前版本为3.0。
SSL协议指定了一种在应用程序协议(如HTTP、Telenet、NMTP和FTP等)和TCP/IP协议之间提供数据安全性分层的机制,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。
它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP胆协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL协议可分为两层:
SSL记录协议(SSLRecordProtocol):
它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSLHandshakeprotocol):
它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议提供的服务主要有:
①认证用户和服务器,确保数据发送到正确的客户机和服务器;②加密数据以防止数据中途被窃取;③维护数据的完整性,确保数据在传输过程中不被改变。
(7)SQLite:
SQLite是一套开放性的关联式资料库,能够被所有应用程序使用的轻量级的关系数据库引擎。
(8)webKit:
是一个先进的网页浏览器引擎,被用来构建Android浏览器和内嵌的web视图,也可以让开发者利用这个引擎来做不同的应用。
(9)libc:
就是一个BSD标准C类库。
但是,针对Linux嵌入式装置进行过最佳化的调整。
2.2.3Android运行时组件
虽然Android是用Java语言来开发、撰写应用程序,但却不使用Java运行时组件来执行Java程序,而是使用了由Google自行研发的Android运行时组件来执行程序。
Android运行时组件包括两个重要的部分,一个是核心类库,另一个是Dalvik虚拟机。
2.3Android应用的构成和工作机制
对于一个Android应用程序来说,是由Activity、IntentReceiver、Service、ContentProvider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。
在应用程序中使用时,需要在配置文件AndroidManifest.xml中进行配置。
这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。
Android应用的构成和工作流程如图2-2:
图2-2Android的构成和工作流程
3、Android应用程序结构剖析
3.1Android的API
AndroidAPI主要包含了以下几个部分:
(1)AndroidManifest.xml
AndroidManifest.xml是系统的控制文件,它告诉系统如何处理所创建的所有应用组件(尤其是活动(Activity),服务(Service),意图接收器(IntentReceiver)和内容提供者(ContentProvider))。
举例来说,控制文件就是把活动和要接收的意图(Intents)连接在一起的“胶水”。
(2)活动
活动就是一个有生命周期的对象。
一个活动就是完成某些工作的代码块,这部分工作还可能包括对用户UI界面的显示。
不过这不是必须的,有些活动从不显示UI界面。
(3)视图
视图可以将其自身绘制到屏幕上。
Android的用户界面由一系列的视图树构成。
接口都是由一组以树的形式出现的视图组成的。
开发者可以通过创建一个新的视图的方法来使用自定义的图形处理技术(比如开发游戏,或者是使用了不常用的用户图形窗口界面)。
(4)意图
意图是一个简单的消息对象,它表示程序想做某事的“意图”。
比如应用程序想要显示一个网页,那么它可以通过创建一个Intent实例并将其传递给系统来表示意图浏览这个URI。
系统将定位到能处理这一Intent的代码(在当前情况下就是浏览器),并运行之。
意图也可以用于广播系统范围内的有效事件(例如通知事件)。
(5)服务
服务是运行在后台的一段代码。
它可以运行在它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要.。
其它的组件可以绑定到一个服务上来,通过远程过程调用(RPC)来调用这个方法。
例如媒体播放器的服务,当用户退出媒体选择的界面时,仍然希望音乐依然可以继续播放,这时就可用服务来保证当用户界面关闭时音乐还继续播放着。
(6)通知
通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互来接收消息。
最常见的通知包括短信息、通话记录和语音邮件,但是应用程序也可以创建它们自己的通知事件。
(7)内容提供者
内容提供者是用来提供对设备上数据进行访问。
典型的例子就是使用内容提供者来访问联系人列表。
应用程序也可以使用其它程序通过内容提供者提供的数据,同时也可以定义自己的内容提供者来向其它应用提供数据访问服务。
3.2Android应用程序结构解析
通常由以下四个组件来构建一个完整的Android应用程序。
①活动
②意图接收器
③服务
④内容提供者
然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。
当决定使用以上哪些组件来构建Android应用程序时,需要将它们注册在AndroidManifest.xml文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。
这个配置文件是每个Android应用程序所必需的。
3.2.1活动
活动是以上四个组件中最常用的一个。
每个活动都是Activity的子类,并实现了一些独有的功能,如管理UI显示和UI的反馈事件。
一个活动就相当于应用程序的一个用户界面,由事件响应以及视图等组成。
大多数的应用程序通常包括多个界面。
例如:
一个文本聊天应用程序,至少应该包含一个联系人列表界面、一个聊天界面、一个设置界面、一个聊天记录查询界面等等。
每个界面其实都可看作是一个活动。
显示一个新界面就相当于生成一个对应的活动对象。
在一些情况下,活动能够返回给它的上级界面一个返回值,例如一个提供给用户选择照片的活动可以返回给它的调用者用户选择了哪个照片文件。
当一个新的活动出现时,前一个活动被中断并被放入到一个历史堆栈中。
用户可以使用返回键使前一个活动重现。
当一个活动不再需要时,可以将它们从历史堆栈中移除。
默认情况下