1、教学单位计算机学院学生学号 014301754129 Android 课程设计题目 Android 天气预报课程设计学生姓名王能松专业名称软件工程指导教师祝攀2016 年 11 月 15 日1目录Android 课程设计 11 绪论 12 背景 .13 研究课题 24 研究目的和意义 .25 开发平台和环境 .26 需求分析 .37 功能分析 97.1 模块划分 97.2 具体功能实现 97.3 系统 E-R 图 108 设计小结 .119 参考文献 1121 绪论Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google
2、公司和开放手机联盟领导及开发。Android 操作系统最初由 Andy Rubin 开发,主要支持手机。2005 年 8 月由Google 收购注资。 2007 年 11 月,Google 与 84 家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良 Android 系统。随后 Google 以Apache 开源许可证的授权方式,发布了 Android 的源代码。第一部 Android 智能手机发布于 2008 年 10 月。Android 逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011 年第一季度,Android 在全球的市场份额首次超过塞班系统,跃居全球
3、第一。 2013 年的第四季度,Android 平台手机的全球市场份额已经达到 78.1%。2012 年 7 月美国科技博客网站 BusinessInsider 评选出二十一世纪十款最重要电子产品,Android 操作系统和 iPhone 等榜上有名。2013 年 09 月 24 日谷歌开发的操作系统 Android 在迎来 5 岁生日,全世界采用这款系统的设备数量已经达到 10 亿台。2014 第一季度 Android 平台已占所有移动广告流量来源的 42.8%,首度超越 iOS。Android 的 Logo 是由 Ascender 公司设计的,诞生于 2010 年,其设计灵感源于男女厕所门
4、上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android 小机器人便诞生了。Android 是一个全身绿色的机器人,绿色也是Android 的标志。颜色采用了 PMS 376C 和 RGB 中十六进制的 #A4C639 来绘制,这是 Android 操作系统的品牌象徵。有时候,它们还会使用纯文字的 Logo。2 背景天气信息和人们的日常生活息息相关,随着人们活动范围的扩大和出行需要,及时精确的获取天气信息显得越来越重要。为此,本人设计了天气预报软件,它是一种非常实用的天气信息提供软件,使用方便且功能强大,能提供各方面天气相关信息和贴心的生活指数。
5、用户可以通过天气预报软件及时获得近期天气的状况和变化,及时做好各方面计划和防御措施3 研究课题本次课程设计选择的课题是基于 Android 天气预报的程序设计,我们知道,现在越来越多的人喜欢出去旅游,而旅游一个重要的前提是有一个好天气,因此,能提前知道天气的变化以及做好准备是非常重要的,因此,开发一款好的天气软件是非常重要的,它能让用户随时随地查询天气信息及天气变化情况,让我们的生活变得更加美好,舒适!34 研究目的和意义 天气软件是一种非常实用的信息服务,随着智能手机的不断普及,各种智能手机平台下都有各种各样的天气软件。Android 作为现在主流的智能手机之一,自然也需要这方面的软件。天气
6、关系到人们的日常生活,如告知温暖,方便出行等。此外,对未来天气的预测还可以帮助人们进行农作物的浇灌、施肥、收割等工作。基于 Android 平台的天气软件已经有很多,经过分析,用户第一眼往往是一个软件的外观,一个好看的界面才能让用户以一种爱美之心去尝试,才能进一步了解一个软件的好坏,所以吸引眼球的界面是争取用户的第一步。因此,界面设计工作对应用程序来说非常重要,在界面上吸引了用户,才能进一步让用户体验应用程序中的功能,使用这个软件。5 开发平台和环境开发应用环境如下:(1)下载 Android studioAndroid Studio 是一个 Android 集成开发工具,基于 Intelli
7、J IDEA. 类似Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。(2)JDK 的安装及系统环境配置。步骤 1、安装 JDK 选择安装目录,安装过程中会出现两次安装提示。第一次是安装 jdk,第二次是安装 jre。建议两个都安装在同一个 java 文件夹中的不同文件夹中。(不能都安装在 java 文件夹的根目录下,jdk 和 jre 安装在同一文件夹会出错)。步骤 2、(1)安装 jdk 随意选择目录只需把默认安装目录java 之前的目录修改即可。(2)安装 jre更改java 之前目录和安装 jdk 目录相同即可。注:若无安装目录
8、要求,可全默认设置。无需做任何修改,两次均直接点下一步。步骤 3、安装完 JDK 后配置环境变量计算机属性高级系统设置高级环境变量。步骤 4、系统变量新建 JAVA_HOME 变量。变量值填写 jdk 的安装目录(本人是 E:Javajdk1.8.0)。步骤 5、系统变量寻找 Path 变量编辑。 在变量值最后输入%JAVA_HOME%bin;%JAVA_HOME%jrebin;(注意原来 Path 的变量值末尾有没有;号,如果没有,先输入;号再输入上面的代码)。步骤 6、系统变量新建 CLASSPATH 变量。变量值填写.;%JAVA_HOME%lib;%JAVA_HOME%libtools
9、.jar(注意最前4面有一点)。系统变量配置完毕。步骤 7、检验是否配置成功运行 cmd 输入 java-version(java 和-version 之间有空格)。6 需求分析1 能够查询城市的天气情况2 能够进行城市地点切换3 能够系统的显示天气数据及变化信息4 系统数据必须有安全性,独立性和可靠性。5 在线天气数据解析首先,我们从“ 百度车联网 API 官网”中获取 key,这是我们能否使用百度提供的服务的关键,具体的步骤不详述。通过这个 API 我们可以从浏览器端查看获取天气 json 格式的数据,如下所示:实时天气:1.city “北京“/城市2.cityid “101010100“
10、/城市编码3.temp “17“/当前温度4.WD “东风“/风向5.WS “2 级“/ 风力6.SD “70%“/相对湿度7.WSE “2“/风力8.time “14:20“/更新时间9.isRadar “1“/是否有雷达图1. XML 接口 http:/ 这个是全国天气的根节点,列出所有的省,其中的 pyName 字段是各个省 XML 的文件名,比如北京的是 beijing,那就意味着北京的 XML 地址为 http:/ 一个省的天气,其中列出该省各个市的数据,北京就列出各个区。 tmp1 是最低温低,tmp2 是最高温度,url 非常重要,我们一会儿再说。state1 和 state2
11、是神马转神马,每个数代表一个天气现象。天气现象非常多,我本想全部分析出来,后来直接放弃了这个想法。因为我看到了一个城市的天气现象的编码是 26.我现在知道的有 0.晴 1.多云 2.阴 6.雨夹雪 7.小雨 8.中雨 13.阵雪 14.小雪其中后来发现知道这个没用,这个数字的主要作用是检索图片的!2. 图片接口 http:/ http:/ http:/ http:/ 这个图就是天气现象 0(晴)的图片,其他天气现象的图片依此类推。c 打头的图片是 20*20 像素的,b 打头的是 50*46 像素的,d 打头的是反白的图标,29*20 像素,n 打头的是夜间反白图标,29*20 像素,注意这里
12、的文件名是两位数字!也许还有更多的图标,等待大家发掘啦3. JSON 接口真没想到居然有 JSON 接口JSON 在 iPhone 上分析起来要比 XML 简单很多 5http:/ 这个是北京的 JSON 数据,那个 HTML 的名字是根据上文 XML 中的 url 得到的。这个 JSON 中包含了实时数据、7 天天气预报、气象指数等丰富的数据国家气象局提供的天气预报接口接口地址:http:/ json 格式提供,格式如下“weatherinfo“: /基本信息;“city“:“北京“,“city_en“:“beijing“,“date_y“:“2012 年 2 月 16 日“, “date“
13、:“, “week“:“星期四“, “fchh“:“11“, “cityid“:“101010100“,/摄氏温度“temp1“:“2-7“,“temp2“:“1-7“,“temp3“:“4-7“,“temp4“:“7-5“,“temp5“:“5-3“,“temp6“:“5-2“,/华氏温度;“tempF1“:“35.619.4“,“tempF2“:“33.819.4“,“tempF3“:“39.219.4“,“tempF4“:“44.623“,“tempF5“:“4126.6“,“tempF6“:“4128.4“,/天气描述;“weather1“:“晴“,“weather2“:“晴“,“we
14、ather3“:“晴“,“weather4“:“晴转多云“,“weather5“:“多云“,“weather6“:“多云转阴“,/天气描述图片序号“img1“:“0“,“img2“:“99“,“img3“:“0“,“img4“:“99“,“img5“:“0“,“img6“:“99“,6“img7“:“0“,“img8“:“1“,“img9“:“1“,“img10“:“99“,“img11“:“1“,“img12“:“2“,“img_single“:“0“,/图片名称;“img_title1“:“晴 “,“img_title2“:“晴 “,“img_title3“:“晴 “,“img_title
15、4“:“晴 “,“img_title5“:“晴 “,“img_title6“:“晴 “,“img_title7“:“晴 “,“img_title8“:“多云 “,“img_title9“:“多云 “,“img_title10“:“多云“,“img_title11“:“多云“,“img_title12“:“阴“,“img_title_single“:“晴“,/风速描述“wind1“:“北风 3-4 级转微风“,“wind2“:“微风“,“wind3“:“微风“,“wind4“:“微风“,“wind5“:“微风“,“wind6“:“微风“,/风速级别描述“fx1“:“北风“,“fx2“:“微风“,
16、“fl1“:“3-4 级转小于 3 级“,“fl2“:“小于 3 级 “,“fl3“:“小于 3 级 “,“fl4“:“小于 3 级 “,“fl5“:“小于 3 级 “,“fl6“:“小于 3 级 “,/今天穿衣指数;“index“:“冷“,“index_d“:“天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。“,/48 小时穿衣指数“index48“:“冷“,“index48_d“:“天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣7或冬大衣。“,/紫外线及 48 小时紫外线“index_uv“:“弱“,“index48_uv“:“弱“,/洗车“
17、index_xc“:“适宜“,/旅游“index_tr“:“一般“,/舒适指数“index_co“:“较不舒适“,“st1“:“1“,“st2“:“-8“,“st3“:“2“,“st4“:“-4“,“st5“:“5“,“st6“:“-5“,/晨练“index_cl“:“较不宜“,/晾晒“index_ls“:“基本适宜 “,/过敏“index_ag“:“极不易发“weatherinfo“:“city“:“北京“,“city_en“:“beijing“,“date_y“:“2013 年 1 月 17 日“,“date“:“,“week“:“星期四“,“fchh“:“11“,“cityid“:“10
18、1010100“,“temp1“:“3-8“,“temp2“:“3-5“,“temp3“:“3-3“,“temp4“:“1-5“,“temp5“:“3-6“,“temp6“:“2-5“,“tempF1“:“37.417.6“,“tempF2“:“37.423“,“tempF3“:“37.426.6“,“tempF4“:“33.823“,“tempF5“:“37.421.2“,8“tempF6“:“35.623“,“weather1“:“晴“,“weather2“:“晴“,“weather3“:“多云转阴 “,“weather4“:“阴转多云 “,“weather5“:“多云转晴 “,“weat
19、her6“:“晴转多云 “,“img1“:“0“,“img2“:“99“,“img3“:“0“,“img4“:“99“,“img5“:“1“,“img6“:“2“,“img7“:“2“,“img8“:“1“,“img9“:“1“,“img10“:“0“,“img11“:“0“,“img12“:“1“,“img_single“:“0“,“img_title1“:“晴“,“img_title2“:“晴“,“img_title3“:“晴“,“img_title4“:“晴“,“img_title5“:“多云“,“img_title6“:“阴“,“img_title7“:“阴“,“img_title8“
20、:“多云“,“img_title9“:“多云“,“img_title10“:“晴“,“img_title11“:“晴“,“img_title12“:“多云“,“img_title_single“:“晴“,“wind1“:“微风“,“wind2“:“微风“,“wind3“:“微风“,“wind4“:“微风“,“wind5“:“微风“,“wind6“:“微风“,“fx1“:“微风“,“fx2“:“微风“,“fl1“:“小于 3 级“,“fl2“:“小于 3 级“,“fl3“:“小于 3 级“,9“fl4“:“小于 3 级“,“fl5“:“小于 3 级“,“fl6“:“小于 3 级“,“index“
21、:“冷“,“index_d“:“天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。“,“index48“:“冷“,“index48_d“:“天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。“,“index_uv“:“弱“,“index48_uv“:“弱“,“index_xc“:“适宜“,“index_tr“:“较适宜“,“index_co“:“较不舒适“,“st1“:“2“,“st2“:“-6“,“st3“:“2“,“st4“:“-3“,“st5“:“3“,“st6“:“-4“,“index_cl“:“适宜“,“index_ls“:“基本适
22、宜“,“index_ag“:“极不易发“流程图如下显示天气流程图获取数据解析数据保存数据显示数据107 功能分析7.1 模块划分1)城市管理模块,提供城市的添加、删除和选择。2)显示天气模块,提供当日天气信息和未来天气信息的显示,天气分享功能。3)实景天气模块,提供实景图片的上传和查看。4)用户管理模块,提供用户注册,登陆,修改和查看个人信息5)设置界面模块此模块提供软件相关的用户反馈,检查更新和关于我们 8.2 系统7.2 具体功能实现各模块主要功能如下:1) 城市管理模块:此模块包含城市添加、删除和查找。用户可以通过手动输入,自动定位和选择系统内置的热门城市等方式选择目标城市。也可以在城市
23、管理界面进行城市的长按删除。通过对全国上千个县级市进行搜索查询,准确定位到每一个城市,然后在通过查询天气功能准确的显示每个城市的准确情况,如果要更换城市,点击修改,出现下拉别的城市,如果想删除别的城市,直接删除城市即可!2) 显示天气模块:此模块主要完成显示所选城市相关天气信息,显示未来几天天气预览和一些必要的生活指数。它显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当日的建议,用户可通过按菜单键来显示菜单更新当前天气与设置天气显示的界面背景,以及跳转至设置预报城市界面来更换预报城市。另外,用户还可以通过系统内置分享将天气信息分享到朋友圈,微信好友和 QQ 好友。3) 实景天气
24、模块:此模块中用户可以通过拍照和从图库选取两种方式选择实景天气图片并上传到服务器,还可从服务器下载实景天气图片并查看。由自动设置预报城市与手动设置二部分组成,自动设置实现 GPS 定位功 能,自动确定当前用户所在地;而手动设置则通过可伸展性下拉列表单击选择系 统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形 式来过滤查询预报城市。当单击选中城市时跳转至天气显示界面,来显示该城市 当三天内的天气状况;第一次运行时自动跳到该界面4) 用户管理模块:此模块包含一整套的用户管理解决方案,主要功能包括:注册,登录,找回密码,更改密码,查看和修改用户基本信息等功能。此功能需要连接数据
25、库,通过数据库接口来获取表中的数据,完成用户的注册和登录,包括用户的密码的更换!5)设置界面模块,此模块提供软件相关的用户反馈,检查更新和关于我们。我们会联网获取得到的用户信息,及时反馈给用户,包括一些版本的更新。117.3 系统 E-R 图用户管理模块 城市管理模块 实景天气模块用户选择城市 添加城市 删除城市 上传天气实景查看天气实景注册登录修改个人信息查看个人信息修改密码找回密码显示天气模块显示天气分享天气系统模块设置检测更新 用户反映 关于我们8 设计小结本文首先对天气预报系统进行了详细分析,给出了功能需求分析、系统用例分析及总体设计。着重介绍了系统各模块的设计与实现,用户通过本系统能够轻松便捷的获取全国各地城市的天气信息,通过实景天气直观了解天气的实际情况,对未来的天气信息了如指掌。同时,系统管理员可以删除数据库中过时的实景天气,保证实景天气数据库随时处于最新状态129 参考文献 1 教学资源网 .http:/ 2 Android 官方.http:/ 3 道客巴巴 .http:/ 4 维基百科 .http:/zh.wikipedia.org/wiki/Android5 Android 开发者网站. http:/ 6 美Ed Burnette.Android 基础教程:北京人民邮电出版社,2010 7 百度文库 .http:/ 墨迹天气 .http:/