《毕业论文——手机天气预报系统》由会员分享,可在线阅读,更多相关《毕业论文——手机天气预报系统(27页珍藏版)》请在金锄头文库上搜索。
1、目录摘要1需求分析2一、开发背景2二、项目需求分析2总体设计2一、系统规划2二、系统功能界面31. 设置预报城市界面:32天气显示界面:43Widget 桌面小部件界面:5三设计目标6系统设计6一、开发及运行环境6二、数据库设计6三、主要方法及步骤7四、主要方法及技术7主要模块7一、项目框架7二、主要功能实现81.获取城市码 db_weather.db 数据库文件82.实现可伸缩性列表的的构建与过滤123.GPS 定位功能的实现154.Widget 窗体小部件的更新18功能测试19结论23摘要Window 操作系统的诞生成就了微软帝国,同时也造就了 PC 时代的繁荣,然而如今,以 Androi
2、d 和 iPhone 手机为代表的智能移动设备的发明与互联网云技术的兴起却敲响了 PC 时代的丧钟!这也预示着移动互联网时代(3G)已经来临。在这个互联网繁荣的时代,有一颗超新星,以它独特性能优势与人性化的 UI 设计使它在短短的几年迅速的占领了智能移动设备的市场份额,它就是 Google 的 Android!这也意味着 Google 在移动互联网时代开始抢跑并领跑。Android 是基于 Linux 平台完全开源的手机操作系统,同时开发语言为Java,这对于 Java 开发的我们是何等的诱人,程序员的技术要与时代同行,因此我选择了以 Android 为平台的手机天气预报系统来作为我的毕业设计
3、,选择手机天气预报系统不仅可以提升技术,同时也很实用,为人们时刻了解天气状况和出行带来了方便。1需求分析一、开发背景近几年来随着 3G 技术成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。在 Google 和 Android 手机联盟的共同推动下,Android 在众多移动应用开发平台中脱颖而出。Android 是一个真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂商和开发者的热捧。为顺应潮流,本设计旨在搭载 Android 的移动设备上运行,实现天气状况的实时动态更新与显示,方便人们的出行与生活。二、项目需求分析根据功能的需求,分
4、析此项目的主要功能应具备以下几点:1. 精确查询定位全国各地城市未来几天内的实时天气状况2. 系统要具的实用性,符合用户查看信息习惯,界面设计优美3. 系统要具有稳定性,且在一定程度上节省流量的开销总体设计一、系统规划由上述的需求,现将系统分为三大模块:天气显示界面模块、预报城市设置模块与 Widget 桌面小部件模块。各系统模块功能如下:1). 天气显示界面模块显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当日的建议,用户可通过按菜单键来显示菜单更新当前天气与设置天气显示的界面背景,以及跳转至设置预报城市界面来更换预报城市。2). 预报城市设置模块由自动设置预报城市与手动设置
5、二部分组成,自动设置实现 GPS 定位功能,自动确定当前用户所在地;而手动设置则通过可伸展性下拉列表单击选择系统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形式来过滤查询预报城市。当单击选中城市时跳转至天气显示界面,来显示该城市当三天内的天气状况;第一次运行时自动跳到该界面。3). Widget 桌面小部件模块为了方便用户实时了解天气状况,特别添加在 Android 系统桌面上显示当前天气与时间的天气小部件,使用户拿起手机的第一时刻就能了解天气,同时当用户单击小部件时,自动跳转至天气显示界面,显示三天内的详细天气。2二、系统功能界面1. 设置预报城市界面:1.1 当第一次
6、运行程序时,跳转至城市设置界面进行预报城市的选择:1.2 用户可以通过单击选择“定位当前城市”的方式调用系统 GPS 功能自动定位预报城市:31.3 用户可通过输入框过滤查询当前系统中预存的城市:2天气显示界面:2.1 选择了预报城市后,系统跳转至天气显示界面,显示该城市三天内的实时天气:42.2 在天气界面中用户可通过按菜单键来调出菜单,选择城市,更新天气与更换背景:3Widget 桌面小部件界面:方便用户第一时间了解天气动态,添加 widget 显示功能界面:5三设计目标设计完成一个实用稳定的天气预报系统,同时要廉价使其能滿足大部分用户的需求,因此针对上述要求,本设计应滿足:1. 系统能及
7、时的返反馈指定预报城市的天气情况2. 自动定位用户所在城市,支持 GPS 定位3. 节省流量开销,规定在指定的时间间隔内才更新天气,其它时段显示缓存的天气4. 操作方便快捷,使用简单,界面设计美观大方,支持 widget系统设计一、开发及运行环境JDK1.6.10Eclipse3.5Android Development Toolkit (ADT) 15.0.0Android 2.2 及以上Windows XP 及以上二、数据库设计由于在本系统中是通过中央气象台的 WebService 提供的 API 访问得到的天气预报,在查询指定城市的天气时,需要用到它提供的城市码,而城市码相对稳定不变,所
8、以在构建系统时将其事先通过 Android 的网络访问技术将其缓冲到本地 SQLite 数据库进行保存起来,方便以后的查询,同时节省了流量开销。综上所述在本地建立 db_weather.db 的数据库,其中的表结构如下:其中只存在两个表: provices 和 citysCity 中存在 city_num 用天气的查询,同时还存在外键 province_id 与 provices 表形成 1 对 n 的关系。6三、主要方法及步骤1. 搭建 Android 开发环境,并建立一个 android2.2 版本名为 WeatherSystem项目2. 首先编写网络访问代码,访问 http:/ 中央气象
9、站解析得到所有城市码并导出保存得到的 db_weather.db 数据文件3. 在程序第一次运行时,将 db_weatcher.db 数据库文件导入到应用程序数据库中4. 建立设置城市界面,读取数据库文件,获取省份,城市以及对应的城市码。5. 接收用户选择的城市码,访问:http:/ 解析天气信息,将城市码及天气信息缓冲下来,并为其设置有效时间,方便下次启动时直接得到天气信息,过期则从网上更新7. 定时由保存的城市码更新天气信息四、主要方法及技术1. Android 手机的界面 UI 设计2. Android 的网络通信3. Android 的广播4. GPS 调用解析5. Widget 小部
10、件编程6. XML 与 JSON 解析7. SQLite 数据库操作8. Android 文件操作主要模块一、项目框架在装有 ADT 插件的 Eclipse 中新建一个名为 WeatherSystem 的 Android2.2 版本的项目,项目主要文件结构如下:WeatherSystem|_src|_com.weather.app|_MainActivity.java|_SetCityActivity.java|_UpdateWidgetService.java|_WeatherWidget.java|_p|_GPSListAdapter.java|_MyListAdpater.java|_c
11、om.weather.dao|_DBHelper.java|_com.weaher.utils7|_LocationXMParser.java|_WeatherInfoParser.java|_WebAccessTools.java|_res|_ drawable|_(略)|_layout|_gps.xml|_main.xml|_widget_layout.xml|_set_city.xml|_menu|_configure_menu.xml|_raw|_db_weather.db|_values|_color.xml|_strings.xml|_xml|_weather_widget.xml|_AndroidManifest.xml二、主要功能实现1.获取城市码 db_weather.db 数据库文件获取全国各地的城市码,是通过访问中央气象局网从省份直辖市到城镇一级一级深入得到的,获得一个地区的城市码总共需要访问 4 次网络,分别如下:1. 访问 http:/ 得到省份直辖市列表与它的编号:01|北京,02|上海,03|天津,04|重庆,05|黑龙江,06|吉林,07|辽宁,08|内蒙古,2. 访问 http:/ 得到该省份直辖市的城市编号(如访问山东:http:/