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