基于Android的手机天气预包系统设计毕业设计论文.docx
- 文档编号:27221383
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:41
- 大小:260.10KB
基于Android的手机天气预包系统设计毕业设计论文.docx
《基于Android的手机天气预包系统设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于Android的手机天气预包系统设计毕业设计论文.docx(41页珍藏版)》请在冰豆网上搜索。
基于Android的手机天气预包系统设计毕业设计论文
合肥学院
2013届毕业论文(设计)
论文(设计)题目
基于Android的手机天气预
报系统
院系名称
计算机科学与技术系
专业(班级)
计算机科学与技术
2009级本科3班
姓名(学号)
指导教师
系负责人
完成时间
2013-06-02
基于Android的手机天气预报系统
中文摘要
天气预报为人们了解天气状况和出行安排带来了方便,但是,大多数天气预报软件都是基于PC端,查询起来并不是很便捷。
而随着智能手机的普及和3G技术的发展,手机端实现天气查询成为了可能,因此,实现手机端的天气预报系统成为了人们迫切需要且切实可行的需求。
本设计使用Android设计技术开发了一种运用在Android系统上的手机天气预报软件系统,本系统通过选择城市来获得天气,风向,温度等信息。
基于手机的天气预报系统软件可以使用户对于各地的天气情况的实时掌握,极大的方便了用户的出行和行程安排,避免了不必要的麻烦,具有很强的实用性。
本论文首先进行了项目的背景介绍,开发的目的及意义,接着进行系统分析(包括需求分析、研究目标和内容),接着分析了Android系统的框架,然后介绍了本系统的用到的技术以及平台的搭建,最后论述了本系统的详细设计(包括功能模块设计、数据库设计等),接着进行了项目的测试用例分析,最后给出了结论以及展望。
关键词:
天气预报;Android;linux内核
BasedontheAndroidofmobilephoneweatherforecastsystem
ABSTRACT
WeatherForecastforpeopletounderstandweatherconditionsandtravelarrangementstobringtheconvenience,however,mostweatherforecastsarebasedonthePCsidesoftware,checkitisnotveryconvenient.Withthepopularityofsmartphonesand3Gtechnology,mobileclientqueriesbecomepossibletoachieveweather,therefore,realizethephonesideofweatherforecastingsystemhasbecomeanurgentneedforpeoplewithpracticalneeds.
ThisdesignusesdesigntechniquesdevelopedanAndroidapplicationintheAndroidsystemmobileweathersoftwaresystem,thesystembyselectingthecitytogetweather,winddirection,temperatureandotherinformation.Phone-basedweatherforecastingsystemsoftwareallowsusersaroundtheweatherconditionsforreal-timecontrol,whichgreatlyfacilitatestheuser'stravelandtravelarrangements,toavoidunnecessarytrouble,andhighlypractical.
Thispaperfirstintroducesthebackgroundfortheproject,thedevelopmentofpurposeandmeaning,followedbysystemsanalysis(includingneedsanalysis,researchobjectivesandcontent),andthenanalyzestheframeworkoftheAndroidsystem,thenintroducesthetechnologyusedinthissystemaswellasplatformstructures,andfinallydiscussesthedetaileddesignofthesystem(includingfunctionalmoduledesign,databasedesign,etc.),followedbyanalysisoftheproject'stestcases,andfinallygivestheconclusionandoutlook.
Keyword:
android;theLinuxkernel;theweatherforecast
第一章绪论
1.1引言
手机是已经成为了生活中不可少的通信设备,没有手机有时会让人觉得寸步难行,手机将脱离传统的打电话,发短信等基本功能,而基于智能手机的处理能力和可扩展能力,基于3G网络高速数据传输,越来越多的功能和业务将被开发出来并大规模的应用。
正基于此,当全世界的目光聚集在此的时候,Google于2007年11月5日宣布推出基于linux平台的开源手机操作系统,号称首个为移动终端打造的真正开发和完整的移动软析------android[1]。
现有的3G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。
本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。
1.2系统开发的背景介绍
Android是基于Linux内核的软件平台和操作系统,早期由Google开发,后由开放手机联盟(OpenhandsetAlliance)开发。
它采用了软件层(Softwarestack)的构架,主要分为三个部分。
底层以Linux为内核作为基础,由C语言开发,只提供基础功能,中间层次包话函数库和虚拟机,由C++开发。
最上层是各种应用软件,包话通话程序,短信程序。
应用软件由各公司自行开发,以JAVA编写[2]。
Android这个平台对于Google对于大众的意义不在于手机本身,Android存在的目的也不在于挑起手机操作系统之间的混战,而在于推动移动互联网产业链的迅速成型。
以Google,苹果和诺基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正是Google发布Android平台的意义,也是Android平台存在的使命所在,而作为Android平台成员之一的中国移动也投资成立了一家通讯公司,专门从事Google手机平台上添加飞信,输入法等一系列符合国内用户使用特色的功能。
国内众多个业也将目光投入了Android上面,并启动了相关的计划来深入地理解并发展Android。
更多的手机软件开发企业已经或者筹备着将公司进行转型,从其主向的开发转向到Android的开发。
基于此,我们有必要通过进行相关的研究来了解Android平台,来了解开发Android的那一大批人的先进的理念和思想,并通过这些来了解手机软件行业,进而了解未来移动互联网的发展趋势,从而更好的适应时代的需要。
1.3系统开发的目的
在科技日益发达的今天,社会竞争越来越激烈,这要求人们不断的摄取信息,同时手机发展到现在已经成为广大人民群众的日常使用的通读工具,手机的功能也日趋完善。
我国的通读移动通讯功能同样得到了很大的提高。
手机软件可以安装在手机上的软件,完善原始系统的不足与个性化。
随着科技的发展,现在手机的功能也越来越多,越来越强大。
经济发展和社会进步,人们的出行更加频繁,对于天气的关注更加强烈,基于这种原因我们开发了一种运用在Android系统上的手机天气预报软件系统,本系统通过选择城市来获得天气,风向,风向,温度等信息。
基于手机的天气预报系统软件可以使用户对于各地的天气情况的实时掌握,极大的方便了用户的出行和行程安排,避免了不必要的麻烦。
本次设计在Android手机系统可以准确预测包括:
时间,温度,风向等,并显示在手机界面上,方便准确地了解天气信息。
1.4项目开发的意义
Android平台3G手机气象软件的开发可以进一步扩大气象信息的覆盖面,让广大公众能够在第一时间方便且快捷地获取最新的气象预报(预警)信息,以便提前预防,把气象灾害造成的损失降到最低。
同时也可以强化气象公共服务的职能,完善公共服务体系、改善公共服务手段、增加公共服务产品、提高公共服务质量,更好地发挥了气象事业对经济社会发展的现实性作用。
第二章系统分析
2.1研究目标
1)了解Android应用程序的设计和开发过程;
2)使用多种组件进行Android平台的手机气象软件的开发。
本软件是基于Eclipse的开发环境,依托国家气象局提供的气象数据接口建立气象信息数据库,开发出了针对Android平台的手机天气预报系统。
2.2需求分析
设计完成一个实用稳定的天气预报系统,同时要廉价使其能滿足大部分用户的需求,因此针对上述要本设计应滿足:
1)加载界面
程序开始运行时显示加载界面,此界面是应用程序最先展现的窗口,应尽量保持界面信息简洁。
2)天气显示界面
显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当日的建议,用户可通过按菜单键来显示更新当前天气与设置天气显示的界面背景,以及跳转至设置预报城市界面来更换预报城市。
3)预报城市设置
由自动设置预报城市与手动设置两部分组成,自动设置实现GPS定位功能,自动确定当前用户所在地;而手动设置则通过可伸展性下拉列表单击选择系统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形式来过滤查询预报城市。
当单击选中城市时跳转至天气显示界面,来显示该城市三天内的天气状况;在天气界面用户可通过菜单键选择城市,更新天气与更换背景,第一次运行时自动跳到该界面。
4)Widget桌面小部件
为了方便用户实时了解天气状况,特别添加在Android系统桌面上显示当前天气与时间的小部件,使用户拿起手机第一刻就能了解当前天气与时间的小部件,使用户拿起手机第一刻就能了解天气,同时当用户单机小部件时,自动跳转至天气显示界面,显示三天内的详细天气。
2.3系统研究内容
1)数据源的选取
2)界面的设计
3)代码的设计
4)程序的测试
5)产品的发布
2.4项目需求分析
根据功能的需求,分析此项目的主要功能应该具有以下几点:
1)系统比较稳定,具有实用性和通用性
2)系统设计界面应尽量美观得体,操作简便明了,便于人们使用
3)可以较好的查询出人们需要查询的有关天气的相关信息,包括天气,风力,温度,建议等等。
4)可以进行对使用者所在城市的定位以及对其他城市的天气查询
5)个性化的widget桌面部件
第三章系统架构分析
Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。
目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,最初主要支持手机。
2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
Android的主要竞争对手是苹果公司的iOS以及RIM的BlackberryOS。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%[3]。
Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、KeyApps、Middleware、LinuxKernel四个部分在内的全套手机软件方案。
它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。
Android平台为我们开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用[4]。
3.1Android系统的特点
1)开放性。
Google与开放性手机联盟合作开发了android,Google通过与动行商,通过与运营商,设备制造商,开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化,开放式的移动电话软件平台,在移动产业内形成一个开放式生态系统。
2)应用程序无界限。
Android上的应用可以通过标准API访问核心移动设备功能。
通过互联网,应用程序可以声明它们的功能可提供其它应用程序使用。
3)应用程序是在平等的条件下创建的,移动设备上的应用程序可以被替换或扩展,即使是拨号或主屏幕这样的核心组件。
4)应用程序可以轻松地嵌入网络。
应用程序可以轻松地嵌入HTML,javascript和样式表,还可以通过Webview显示内容。
5)应用程序可以并行运行。
Android是一种完整的多任务环境,应用程序可以在其中并行运行,在后台运行时,应用程序可以生成通知引起注意[5]。
3.2Android的功能
1)支持虚拟键盘。
虚拟键盘的出现意味着基于Android1.5或以上的版本的移动设备可以同时支持特理键盘和虚拟键盘。
2)使用widget实现桌面的个性化。
可以用widget修饰自已的桌面。
大多数小的Web应用都是从网络上获得实时数据并展示给用户的,android预装了5个桌机Widget,包括数字时钟,日历,音乐播放器,相框。
3)用在线文件快速浏览数数,类似于OSXLeopard的Quicklook特征,Android的在线文件夹可显示的数据条目,比如联系人,喜欢的应用,E-mail信息,播放列表,书签,RSS源等,并不需要运行系统程序处理特定的数据条目。
4)视频录制和分享。
Android还有录制和分享视频的功能,对回放和MPEG-4,3GP等视频也有了更好的支持。
可以通过E-mail,MMS或直接上传到youtube等方式来分享视频。
5)更快,更兼容的浏览器,Android的基于Webkit内核的浏览器带来了重要的调速半置,这得益于新的Wenkit渲染引擎和优化的JAVA脚本编译器。
6)Voicesearch语音搜索。
带有语音识别技术的Google手机已于2008年11月面世,它支持语音搜索功能,该功能增强了默认的搜索能力,已超过了纯文本搜索。
7)立体蓝牙和免提电话。
除了增强的免提电话体验,Android还支持立体蓝牙(A2Dphe和AVCRP),并有自动配对功能。
8)强大的GPS技术.Android内部提供了大量的GPS组件,我们可以很轻松地获得设备当前的位置等信息,让导航等功能更加完善。
9)Android系统硬件检测,android可自动检测和修复SD卡的文件系统,允许第三方应用显示Android系统的硬件特征,为了让用户下载到与自已的设备匹配的应用,我们可以检测用户设备的硬件信息,让满足应用要求的设备安装该程序,当更多的android设备建立在不同的硬件上时,这个功能显得很实用[6]。
3.3Android架构
Android的系统架构和其它操作系统一样,采用了分层的架构。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
图3-1Android架构
Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统[7]。
3.3.1LinuxKernel
Android基于Linux2.6提供核心系统服务,例如:
安全、内存管理、进程管理、网络堆栈、驱动模型。
LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。
也就是说各层各尽其职,各层提供固定的SAP(ServiceAccessPoint),专业点可以说是高内聚、低耦合。
如果你只是做应用开发,就不需要深入了解LinuxKernel层。
3.3.2AndroidRuntime
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。
每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。
Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。
Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。
两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。
dx是一套工具,可以将Java.class转换成.dex格式。
一个dex文件通常会有多个.class。
由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。
Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。
3.3.3Library
Android包含一个C/C++库的集合,供Android系统的各个组件使用。
这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。
下面列出一些核心库:
系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备媒体库——基于PacketVideo的OpenCORE。
这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层LibWebCore——新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图SGL——基本的2D图形引擎3D库——基于OpenGLES1.0APIs的实现。
库使用硬件3D加速或包含高度优化的3D软件光栅FreeType——位图和矢量字体渲染SQLite——所有应用程序都可以使用的强大而轻量级的关系数据库引擎。
3.3.4ApplicationFramework
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。
开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。
开发者可以完全使用核心应用程序所使用的框架APIs。
应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。
这一机制允许用户替换组件。
所有的应用程序其实是一组服务和系统,包括:
视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。
包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(ContentProviders)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(ResourceManager)——提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(NotificationManager)——使所有的应用程序能够在状态栏显示自定义警告活动管理器(ActivityManager)——管理应用程序生命周期,提供通用的导航回退功能。
3.3.5Application
Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。
所有应用程序都是用Java编程语言写的。
更加丰富的应用程序有待我们去开发!
从上面我们知道Android的架构是分层的,非常清晰,分工很明确。
Android本身是一套软件堆叠(SoftwareStack),或称为「软件叠层架构」,叠层主要分成三层:
操作系统、中间件、应用程序。
从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。
3.4系统组件
Android开发四大组件分别是:
活动(Activity):
用于表现功能。
服务(Service):
后台运行服务,不提供界面呈现。
广播接收器(BroadcastReceiver):
用于接收广播。
内容提供商(ContentProvider):
支持在多个应用中存储和读取数据,相当于数据库[8]。
3.4.1Activity
应用程序的显示层。
每一个画面对应于你的应用程序,将会是Activity类的扩展。
Activity使用Views去构建UI来显示信息和响应用户的行为。
就桌面开发而言,一个Activity相当于一张Form。
一个Activity通常展现为一个可视化的用户界面。
例如,一个Activity可能展现为一个用户可以选择的菜单项列表或者展现一些图片以及图片的标题。
一个消息服务应用程序可能包含一个显示联系人列表的Activity,一个编写信息的Activity,以及其它一些查看信息和修改应用程序设置的Activity。
虽然这些Activity一起工作,共同组成了一个应用程序,但每一个Activity都是相对独立的。
每一个Activity都是Activity(android.app.Activity)的子类。
3.4.2Service
Android应用程序中不可见的“工人”。
Service组件运行时不可见,但它负责更新的数据源和可见的Activity,以及触发通知。
它们常用来执行一些需要持续运行的处理,当你的Activity已经不处于激活状态或不可见。
Service没有用户界面,但它会在后台一直运行。
例如,Service可能在用户处理其它事情的时候播放背景音乐,或者从网络上获取数据,或者执行一些运算,并把运算结构提供给Activity展示给用户。
每个Service都扩展自类Serivce。
应用程序可以连接到一个正在运行中的Service。
当连接到一个Service后,可以使用这个Service向外暴露的接口与这个Service进行通信。
对于上面提到的播放音乐的Service,这个接口可能允许用户暂停,停止或重新播放音乐。
与activity以及其它组件一样,Service同样运行在应用程序进程的主线程中。
所以它们不能阻塞其它组件或用户界面,通常需要为这些Service派生一个线程执行耗时的任务。
3.4.3BroadcastReceiver
Intent广播的“消费者”。
通过创建和注册一个BroadcastReceiver,应用程序可以监听符合特定条件的广播的Intent。
BroadcastReceiver会自动的启动你的Android应用程序去响应新来的Intent。
BroadcastReceiver是事件驱动程序的理想手段。
BroadcaseReceiver不执行任何任
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Android 手机 天气 系统 设计 毕业设计 论文