摘要
随着智能手机一步步走进普通人的生活它将成为人们获取信息的主要设备。因此手机的娱乐应用服务将会有很大的发展空间手机星座查询软件就是其中的一项。 Android平台提供给用户非常方便的星座查询功能这将为星座查询服务的设计与实现提供了更好的平台。另外 Android平台基本上是免费的所以能够有效降低软件的成本最终让每个用户能够自由地获取信息也为手机星座查询服务的普及做出贡献。
本文对目前应用的Symbian、 WindowsMobile、 MacOSX和RIM等平台的现状进行了分析与比较。进而研究分析了Android平台的系统架构和组件模型接着解析了Android中的重要API和应用构成 以Intent和生命周期的机制。在此基础上基于Android平台设计和开发手机星座查询软件。本系统界面友好、操作便捷具有良好的可扩展性和可维护性;系统经过测试可以稳定运行能够满足手机用户的基本需求。
关键词:Android;Java;星座查询;Intent;布局
2
Abstract
With the Mobile Phone enters into the live step by step it will becomethemaindevicetoobtaininformation.Servicesof mobile Phone will have great development space Constellation inquires is one of them.Android platform offers users very convenient constellation inquires the function This will be for constellation inquires the design and implementationof service provides abetterplatform. Inaddition, Android platform is basically free, so can effectively reduce the software costs,Finally let each user will be free to get information, Also for the popularization of mobile phone constellation inquires the service contribution.
This paper discusses the present application of Symbian,WindowsMobile, MacOSX and RIM situation of such platform are analysed and compared. Further research and analysis of the Android platform system architecture and the component model, then analyzes the important Android API and the applicationform, with Intent and life cyclemechanism,on this basis, design and development of mobile phone constellation inquires the softwarebased on the Android platform. This system friendly interface,Convenient operation, Has good expansibility and maintainability; after test of system,can stable operation, To meet the basic needs of mobile phone users.
Keywords: Android;Java;Constellation query; Intent; Layout
-2-
目录
1、绪论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1. 1课题背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.2 Android平台与其他平台的比较. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
1.3本文主要工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
1.4论文组织结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2
2、 Android的架构分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
2. 1Android的功能特征. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
2.2 Android架构分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.2. 1应用程序框架. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.2.2类库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
2.2.3 Android运行时组件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
2.3Android应用的构成和工作机制. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
3、 Android应用程序结构剖析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
3. 1 Android的API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
3.2Android应用程序结构解析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
3.2. 1活动. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
3.2.2意图接收器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10
3.2.3服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.2.4内容提供者. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.3 Intent的详细解析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.3. 1Intent的抽象描述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
3.3.2Android如何解析Intent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12
3.4Android活动的生命周期. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13
3.4. 1活动的生命状态. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
3.4.2活动的运作流程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
-3 -
4、手机“星座”查询软件设计实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4. 1系统设计需求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4. 1. 1需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4. 1.2下载开发资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4. 1.3更新Ec1ipse并下载ADT(Android开发插件). . . . . . . . . . . . . . . . . . .18
4. 1.4使用Ec1ipse开发Android应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
4.2 “星座”查询软件程序中各类组件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
4.2. 1Package Explorer中的组件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
4.2.2应用程序的资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
4.2.3布局文件main.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
4.2.4AndroidManifest.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
4.3手机“星座”查询软件设计实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
4.3. 1系统主界面的实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
4.3.2 “星座”查询功能实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24
4.3.3常见的错误分析解决. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
5、结语. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
5. 1总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
5.2展望. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
6、参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
7、谢辞. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
-4-
1 、绪论
1 . 1课题背景
随着移动通信的发展以及互联网向移动终端的普及网络和用户对移动终端的要求越来越高而Symbian windows Mobile Palm OS等手机平台过于封闭不能很好的满足用户的需求 因此市场迫切需要一个开放性很强的平台。
Android是一套真正意义上的开放性移动设备综合平台它包括操作系统、中间件和一些关键的平台应用。 Android是由Linux+Java构成的开源软件允许所有厂商和个人在其基础上进行开发。Android平台的开放性等特点既能促进技术(包括平台自身)的创新又有助于降低开发成本还可以使运营商能非常方便地制定自己的特色化的产品。因此它具有很大的市场发展潜力。
经过多年的发展,第三代数字通信( 3G)技术获得了广泛的接受,它为移动终端用户带来了更快的数据传输速率。随着3G网络的使用,移动终端不再仅是通讯网络的终端,还将成为互联网的终端。因此,移动终端的应用软件和需要的服务将会有很大的发展空间。 Google与包括中国移动、摩托罗拉在内的三十多家技术和无线应用的领军企业组成的开发联盟为此于2007年11月推出了一个专为移动设备设计的软件平台———Android。
Android最大特点在于它是一个开放的体系架构,具有非常好的开发和调试环境,而且还支持各种可扩展的用户体验, Android里面具有非常丰富的图形系统,对多媒体的支持功能和非常强大的浏览器。
本课题的目的在于掌握Java手机应用开发技术和移动软件平台开发技术。在以Java语言为基础结合Android移动开发平台并利用Android提供的SDK完成在Android平台上运行的“星座”查询软件形成一款具有一定功能的手机应用软件。
本课题的意义在于通过开发一款“星座”查询手机应用软件可以熟练应用Android平台提供的应用程序接口掌握Android平台上的各种应用。
1 .2 Android平台与其他平台的比较
首先看一下Symb ian它存在着以下的致命不足:Symb ian的主导者为诺基亚、索尼爱立信等传统的手机厂商因此虽然Symb ian非常成熟但它基本上还带有浓厚的保守色彩应用软件与我们日常的PC软件有较大的理念差异。再者Symb ian与互联网的结合给人感觉仍不够紧密互联网应用更多只是作为陪衬存
1
在。 Android平台与此相反移动互联网是它最重要的应用无论系统内核、应用软件还是硬件设计几乎都是围绕着快捷的移动互联网应用所展开 同时Android与PC平台存在先天的基因联系可以很好的实现与PC设备的信息互享更容易获得用户的广泛认可。与Android拥有相同属性的还有微软的Windows mobile。
至于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
2
应用的构成和工作机制。
第三章提出了在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方面则是使用
3
OpenGLES1.0(openGL for Embedded systems)规范的类库。它们是一种非常快的图形引擎并且支持硬件加速。
(5)SQLite数据库:SQLite提供结构化的数据存取。 SQLite是一款轻型的数据库它的设计目标是嵌入式的 目前已经在很多嵌入式产品中使用了它它占用的资源非常低。它能够支持Windows/Linux/U nix等主流的操作系统 同时能够跟很多程序语言相结合比如phpJava等还有ODBC接口同样比起MysqlPostgreSQL来讲它的处理速度比它们都快。它无需安装和管理配置它是一个储存在单一磁盘文件中的完整数据库体积小只有250KB但支持数据库大小至2TB。它虽然很小巧但是支持的SQL语句毫不逊色于其它开源数据库。 同时它还支持事务功能和并发处理等等。 SQLite也是一套开放性的关联式资料库其特点在于轻量性方面的设计结构更适合在手机上使用。
(6)多媒体的支持能力:主要用于播放媒体文件。这同时包括对音频(如播放MP3或其他音乐文件等)和视频(如播放从网上下载的视频)的支持并支持“播放URI地址” (Note:URI即是统一资源识别地址)模式—在网络上直接播放的流媒体。另外支持各种通用的静态图像格式例如:JPG、 PNG、 GIF等格式。
(7)GSM技术:Global System for Mobile Communications 即全球移动通讯系统俗称”全球通”是一种起源于欧洲的移动通信技术标准是第二代移动通信技术其开发目的是让全球各地可以共同使用一个移动电话网络标准让用户使用一部手机就能行遍全球。 GSM技术是属于手机硬件方面的展现也是在开发Android应用程序时可以突出的特点之一。
(8)蓝牙、 EDGE、 3G及Wi-Fi:蓝牙是一种新型、开放、低成本、短距离的无线连接技术可取代短距离的电缆实现话音和数据的无线传输。EDGE(Enhanced Data Rate for GSM Evolution) 即增强型数据速率GSM演进技术。 EDGE是一种从GSM到3G的过渡技术它主要是在GSM系统中采用了一种新的调制方法即最先进的多时隙操作和SPSK调制技术。 由于8PSK可将现有GSM网络采用的GMSK调制技术的信号空间从2扩展到8从而使每个符号所包含的信息是原来的4倍。 Wi-Fi (WirelessFidelity) 即无线保真技术与蓝牙技术一样 同属于在办公室和家庭中使用的短距离无线技术。该技术使用的是2.4GHz附近的频段该频段目前尚属没用许可的无线频段。其目前可使用的标准有两个分别是IEEE802. lla和IEEE802. 11b。这些通讯能力也是属于手机硬件方面的展现也是在开发Android应用程序时可以突出的特点之一。
4
(9)GPS: Global Positioning System 即全球定位系统它是一个由覆盖全球的24颗卫星组成的卫星系统。这个系统可以保证在任意时刻和任何地点都可以同时观测到4颗卫星以保证卫星可以采集到该观测点的经纬度和高度以便实现导航、定位、授时等功能。这项技术可以用来引导飞机、船舶、车辆以及个人。这个同样也是属于手机硬体方面的体现也是在开发Android应用程序是可以突出的特点之一。
2.2 Android架构分析
图中显示的是Android架构的五个主要部分。
2.2. 1应用程序框架
在Android SDK中定义了让开发者使用与核心应用程序相同API的权限应用程序框架是为了要简化组件的重新利用而设计的应用程序可以发布功能为其它应用程序所使用。但是这要受限于应用程序架构的安全机制使用者以用同样的机制来新增、置换组件。 目前所有的应用程序是由服务及系统来组成包含有:
(l)一套强大和可扩展的视图系统:用来建构一个应用程序的基本组件包了在开发系统画面时常用的列表、网格、文本框、按钮等控制项甚至是内嵌的Web浏览器。
图2-1 Android架构的五个部分
(2)内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数
5
厦门靠谱云股份有限公司 双十一到了,站长我就给介绍一家折扣力度名列前茅的云厂商——萤光云。1H2G2M的高防50G云服务器,依照他们的规则叠加优惠,可以做到12元/月。更大配置和带宽的价格,也在一般云厂商中脱颖而出,性价比超高。官网:www.lightnode.cn叠加优惠:全区季付55折+满100-50各个配置价格表:地域配置双十一优惠价说明福州(带50G防御)/上海/北京1H2G2M12元/月...
官方网站:点击访问青果云官方网站活动方案:—————————–活动规则—————————1、选购活动产品并下单(先不要支付)2、联系我司在线客服修改价格或领取赠送时间3、确认价格已按活动政策修改正确后,支付订单,到此产品开设成功4、本活动产品可以升级,升级所需费用按产品原价计算若发生退款,按资源实际使用情况折算为产品原价再退还剩余余额! 美国洛杉矶CN2_GIACPU内存系统盘流量宽带i...
Virmach对资源限制比较严格,建议查看TOS,自己做好限制,优点是稳定。 vCPU 内存 空间 流量 带宽 IPv4 价格 购买 1 512MB 15GB SSD 500GB 1Gbps 1 $7/VirMach:$7/年/512MB内存/15GB SSD空间/500GB流量/1Gbps端口/KVM/洛杉矶/西雅图/芝加哥/纽约等 发布于 5个月前 (01-05) VirMach,美国老牌、稳...