Android开发天气预报APP的设计与实现毕业设计.pdf
《Android开发天气预报APP的设计与实现毕业设计.pdf》由会员分享,可在线阅读,更多相关《Android开发天气预报APP的设计与实现毕业设计.pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要随着移动互联网技术和通信技术的发展,智能手机几乎成为人们 生活的必需品。近年来,Android系统已经成为智能手机中用户量最 多的操作系统。通过Android程序开发和设计天气预报手机应用,可 以使手机用户能够随时随地的了解天气状况。本文首先介绍了课题的背景和需求分析,并介绍了系统的详细设 计等。使用Android开发系统设计手机天气预报应用,通过Eclipse 开发软件,设计APP界面、各个功能模块,并实现成功运行,最后对 整个设计进行详细的总结。关键词:智能手机;Android开发;Eclipse;天气预报2This document is produced by trial vers
2、ion of Print2Flash.Visit for more information目录引言.5第一章需求分析.51.1开发背景.61.2 Android开发平台的优势.61.3需求分析及设计目标.7第二章总体设计.72.1设计规划.82.2功能模块设计.82.3功能模块流程图.9第三章APP界面及数据库的设计.93.1开发及运行环境.103.2创建项目.103.3界面各模块的设计.113.4数据库的设计.12第四章 主要程序代码.134.1 Android应用程序设计原理.144.2连接数据库.144.3功能实现.154.4功能测试.24总结.25-3This document is
3、produced by trial version of Print2Flash.Visit for more information致谢错误!未定义书签。错误!未定义书签。错误!未定义书签。34参考文献.274This document is produced by trial version of Print2Flash.Visit for more information引言随着时代的进步,手机已经成为了生活中必不可少的移动通信设备,手机的功能越来越 多,应用的范围也越来越大,所以谷歌在2007年11月5日宣布推出基于Linux平台的开源 移动操作系统,即Android!Android以
4、它独特的性能优势与人性化的UI设计,使它在短短的几年内迅速的占领了 大部分的智能移动设备的市场份额!而伴随着Android的迅速兴起,各种Android的APP 软件也逐渐的被广泛应用。APP的英文全称是Application,意思是应用,Android系统的 手机软件应用。现在的智能手机有各种用途的应用,例如,我们最熟悉的社交类应用QQ与微信,视频 类应用爱奇艺、土豆等。本文所设计的天气预报APP则是属于生活类的手机应用,利用网络 快速获取并在移动终端上显示天气信息,为人们提供实时天气查询服务,给出行和行程安排 带来便利。5This document is produced by trial
5、 version of Print2Flash.Visit for more information第一章需求分析1.11.1开发背景Android就像它的图标一样,本义是指“机器人”,是基于Linux内核的操作系统和软 件平台,由谷歌首先开发研究,后由开放手机联盟开发使用。该平台由应用软件、用户界面、中间件和操作系统组成,采用的是软件层的构架,它的基本架构分为4个层次,分别是:应 用程序层、应用框架层、系统运行层和底层。安卓的基础多媒体框架是Op encore o安卓具有WiFi、蓝牙以及蜂窝(cellular)连接 等多种无线传输的方式。安卓的软件栈还可以提供通过G PS及加速计来确定位置
6、的信息。安 卓采用的是S QLite数据库系统的多媒体数据库。安卓系统一般都是使用Dalvik虚拟机来实 现应用程序的开发的,且多是以Java的形式来实现。通过使用Java虚拟机来实现跨平台运 行程序的功能,Java虚拟机中比较常见的一种虚拟机就是Dalvik,它具备较为完善的硬件 结构,并且具有具体的操作指令,它大多都是通过C语言来实现核心内容库。1.2 Android1.2 Android开发平台的优势安卓在开发初期,就是由一系列应用程序组成的平台。除了能运行所有应用程序的核心 引擎,也就是虚拟机,提供一系列应用于硬件资源和应用程序间进行通讯的API外,其他的 都是属于应用程序。因此,你可
7、以随意的替换你的安卓系统中任意的应用程序,通过下载市 场下载你喜欢的任何应用来替换,你也可以改变桌面或界面等窗口的排版核内容。所以说,安卓算得上是真正意义上具有开放性的包括用户界面、操作系统和移动端工作的应用程序所 需的所有软件在内的移动端综合平台。近年来,安卓社区越来越繁荣火热,在国内,一些有名的安卓社区还起到了相当不错的 推广作用。通过这些安卓社区的推广宣传,为安卓产品的销售提供了庞大的市场。因此,包 括华为,联通,移动,联想等大型企业在内的许多国内的厂商和运营商也纷纷投入到了安卓 产品的开发与生产中来。安卓智能终端已然成为当前智能手机、信息家电等领域所要发展的 主要方向。This doc
8、ument is produced by trial version of Print2Flash.Visit for more information1.31.3需求分析及设计目标随着智能移动端科技的发展和进步,手机已经发展成为人们的日常生活中不可缺失的移 动端工具,手机的应用程序也越来越多。而随着智能手机的日益普及,人们也越来越依赖手 机的各种应用程序的功能。其中天气情况是人们每天所必须了解的重要信息之一。为了方便 用户的出行和安排,分析此应用的主要功能应具备:能够精确查询定位全国各地城市的实时 天气状况;能方便快捷的切换所需要知道的城市;能够直观了当的显示所选城市的天气情况;界面显示简洁
9、明了,符合用户查看信息的习惯。在大量的APP应用中,一款方便快捷的天气预报软件是大多数用户手机中必不可少的。本天气预报APP主要以简便快捷为目的,包括可以快捷的选择所需要知道的城市或县城的天 气信息,使用户能够快速便捷的了解到所在城市的天气情况,极大地方便了用户的出行;能 够快速的切换城市,查询其他城市的天气情况,以方便用户的行程安排。7This document is produced by trial version of Print2Flash.Visit for more information第二章总体设计2.12.1设计规划通过上述的需求分析,现在将应用程序分为两个模块,城市选择模
10、块和天气显示模块。各模块功能规划如下:(1)城市选择模块:设计可上下滑动的列表,通过单击选择已经预存在程序数据库中的省 份、城市或区县。当单击选中的城市或区县时,界面会直接跳转至天气显示页面,显示该城 市或区县实时的天气状况;在首次运行程序时,会自动显示城市选择页面。(2)天气显示模块:显示所选定的城市实时的天气情况,包括当前日期、城市或区县名称、温度范围等,用户可通过刷新按键了解实时的天气信息,通过点击按键跳转至选择城市界面 来更换城市天气信息。2.22.2功能模块设计结合上述的需求分析,此天气预报APP应该具有以下几个功能。(1)列表具有全国所有的省份、城市和区县。(2)能够查询全国任意城
11、市或区县实时的天气信息。(3)能够随意切换城市,随时查看其他需要了解的城市天气情况。(4)能够手动的刷新实时的天气情况。(5)后台能够自动更新天气状况。全国的省份、城市及区县等信息都是通过连接服务器获取的,因此需要访问特定的网址“http:/www.weather, document is produced by trial version of Print2Flash.Visit for more information续表1.106吉林16甘肃26贵州07辽宁17宁夏27四川08内蒙古18河南28广东09河北19江苏29云南10山西20湖北30广西通过代号来区别不同的城市及区县,如北京的代
12、号是01,湖南的代号是25,如果想要 查询湖南所在的城市的天气信息,则将访问的网址后面改为city25.xmL同样的道理,想 要查询湖南长沙的天气,则在省级代号后面加上市级代号,如湖南长沙市的城市代号为 2501,则想查询长沙市的天气信息将访问的网址后面改为city2501.xmL以此类推,想要 查询县级地区的天气,只要修改为县级的代号访问即可。2.32.3功能模块流程图APP共分为两大模块,分别为城市选择和天气显示。其中城市选择模块分为省份选择、城市选择与区(县)选择;天气显示模块分为城市切换模块、天气显示模块、手动刷新天气 模块和后台自动更新天气模块,具体流程图如下:图1.1功能模块流程图
13、9This document is produced by trial version of Print2Flash.Visit for more information第三章APPAPP界面及数据库的设计3.13.1开发及运行环境本应用程序开发所用的是Windows 7操作系统,开发软件是Eclipse。在进行安卓开发 之前,首先要安装JDK(Java Development Kit)并且设置Java的环境变量。JDK是整个Java 的核心,包括一系列Java开发的程序,安装完毕需要配置好环境变量。JDK的安装路径本 身并不存在环境变量,需要自己创建。环境变量就是下载好的Android S
14、DK文件的安装目录 adt-bundle-windows-x86-20131030 w。创建完则可以利用%JAVA_H0ME%作为一个路径,其 值就是JBK在电脑上的安装路径。打开电脑桌面的计算机属性,点击“高级系统设置,选 择“环境变量”,在系统变量中找到Path变量,双击“Path”,在变量值的后方添加S DK 文件的安装目录,点击确定,这样环境变量就算是修改完毕了。在安装完JDK和设置完环境变量之后,就要安装Eclipse和Android S DK。Eclipse为 Java及Android开发的IDE。Eclipse不需要安装,只要在下载的解压包解压后,将eclipse 文件夹剪切到你
15、想安装的磁盘的指定文件夹,打开时设置你的工作目录,也就是项目所储存 的地方即可。Android S DK其实就是安卓管理开发包工具,提供了安卓各级开发平台的开发 包和工具。因为是独立安装,不是一体化(集成系列工具)所以需要单独下载S DK。3.23.2创建项目在Eclipse中创建一个名为weather forecast的项目,项目框架如下图所示:,矽 weather forecastweather forecastA A A A Android 4.4Android 4.4 副 Android Private Librariesarcgen Android Private Libraries
16、arcgen Generated Java FilesGenerated Java Filesassetsbinassetsbin libslibs resres0 0 weather forecastweather forecastQ Q AndroidManifestxmlAndroidManifestxml icjauncher-web.pngicjauncher-web.png i_j i_j proguard-project.txtproguard-project.txt 凰 project.propertieproject.propertie5 5图2.1项目框架-10涝卷&四卷卷
17、This document is produced by trial version of Print2Flash.Visit for more information将项目中src文件里的com,example,weather forecast包和layout文件里的 activity_main.xml删除,以便重新创建。3.33.3界面各模块的设计在 dr awab 1 ehdp i 目 录中 添加 图片 app photo,png home,png up date.pngoAppphoto.png 做为APP图标,home,png做为界面中的跳转键图标,update,png做为界面中的刷
18、新图标。在layout文件夹中新建一个choice_city.xml文件,将界面代码全部删除,重新从控 件列表Palette中拖一个垂直线性布局LinearLayout(vertical)到界面中,再在垂直布 局中添加一个相对布局RelativeLayouto在相对布局中添加一个TextVlew控件,在垂直布 局中添加一个ListView控件。对添加的控件加以修改与排列。界面显示效果如下:图3.1界面模块设计在layout文件夹中新建一个weather_show.xml文件。与上一个界面相同,将原来的代 码删除,添加一个LinearLayout(vertical)垂直线性布局,再在垂直布局中添
19、加两个相 对布局Relat iveLayout o在第一个相对布局中添加两个Button控件和一个TextView控件,在第二个相对布局中添加一个TextView控件、一个垂直线性布局LinearLayout(vertical)和一个水平线性布局LinearLayout(horizontal),垂直线性布局中添加两个TextView控 件,水平线性布局中添加三个TextView控件。对添加的控件加以修改与排列。This document is produced by trial version of Print2Flash.Visit for more information界面显示效果如下:
20、图3.2天气显示模块设计3.43.4数据库的设计为了方便后面连接数据库,先准备好创建数据库表格的语句,主要内容是城市选择功能模块中全国省份、城市与区县的信息:创建用于存放全国省份数据的表Provence:Create table Provence(id integer primazy key autoincrement,provinee_name text,provinee_code text)图 4.1 Provence 表id为自增长主键,province_name表示省名,province_code text表示省级代号。创建用于存放全国城市数据的表City:12This documen
21、t is produced by trial version of Print2Flash.Visit for more informationCreate table City(id integer primary key 球城敦函;city_nae tex七city_code textjprovmce_id integer)图 4.2 City 表city_name 表小省名,city_code text 表小市级代号,province_id 为 City 表关联 Provence 表的外键。创建用于存放全国区县数据的表County:Create table County(id integ
22、er pximaxy key auto increment,county_najne text,county_code text3city_id integer)图 4.3 County 表county_name 表示省名,county_code text 表示市级代号,province_id 为 county 表关联 City表的外键。13This document is produced by trial version of Print2Flash.Visit for more information第四章主要程序代码4.1 Android4.1 Android应用程序设计原理Andro
23、id的应用程序,通常由四种功能组件构成,分别为Content Provider S ervice、Intent Receiver、Activity。同时,并非每个安卓应用程序都需要用到这四种功能组件,而只需要这四种功能组件中的某些组合即可。安卓最基本的应用程序组件就是Activity o大多数应用程序是由多个页面组成,一个 单独的页面通常只由一个Activity来表示。安卓程序中实现在页面与页面之间的移动的功 能,就是通过使用Intent这个特殊类,通过解析,就能实现从一个页面跳转到另一个页面。在向前跳转时,Activity将会调用start Activity(Intent roy Inten
24、t)这个方法,然后,系统会在所有安装好的应用程序中所定义的Intent Filter中解析查找与Intent的和my Intent匹配的对应Activity。接收到roy Intent通知后的新建Activity,就会开始运 行。当start Activity方法被调用时,将触发解析roy Intent的动作。这个架构具有可 以在任何时候被一个具有相同Intent Filter的新Activity取代以及能够重复利用从其他 组件中以Intent形式产生的一个请求的优势。4.24.2连接数据库在src文件中创建一个名为db的包,用于存储所有与应用程序数据库相关的代码。在 db包里新建一个类,名称
25、为WeatherOpenHelper,编辑代码,并将建表语句代入:public static final String CREATE_PROVINCE=create table Province(M+id integer primary key autoincrement,M+,rprovince_name text+,province_code text)Mjpublic static final String CREATECITY=create table City(+w,id integer primary key autoincrement,+,rcity_name text+*cit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 开发 天气预报 APP 设计 实现 毕业设计
限制150内