基于Android手机天气预报系统.rar

收藏

资源目录
    文档预览:
    编号:20181030004413762    类型:共享资源    大小:7.27MB    格式:RAR    上传时间:2018-10-30
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    89
    金币
    关 键 词:
    基于 Android 手机 天气预报 系统
    资源描述:
    目录 摘要 ................................................................................................................................................. 1 需求分析 ........................................................................................................................................ 2 一、开发背景 ............................................................................................................................... 2 二、项目需求分析 ....................................................................................................................... 2 总体设计 ........................................................................................................................................ 2 一、系统规划 ............................................................................................................................... 2 二、系统功能界面 ....................................................................................................................... 3 1. 设置预报城市界面: ..................................................................................................... 3 2.天气显示界面: ............................................................................................................ 4 3. Widget 桌面小部件界面: ............................................................................................. 5 三.设计目标 ............................................................................................................................... 6 系统设计 ........................................................................................................................................ 6 一、开发及运行环境 ................................................................................................................... 6 二、数据库设计 ........................................................................................................................... 6 三、主要方法及步骤 ................................................................................................................... 7 四、主要方法及技术 ................................................................................................................... 7 主要模块 ........................................................................................................................................ 7 一、项目框架 ............................................................................................................................... 7 二、主要功能实现 ....................................................................................................................... 8 1.获取城市码 db_weather.db 数据库文件 .......................................................................... 8 2.实现可伸缩性列表的的构建与过滤 ............................................................................... 12 3.GPS 定位功能的实现 ..................................................................................................... 15 4.Widget 窗体小部件的更新 ............................................................................................ 18 功能测试 ...................................................................................................................................... 19 结论 ............................................................................................................................................... 23 1 摘要 Window 操作系统的诞生成就了微软帝国,同时也造就了 PC 时代的繁荣,然而如今,以 Android 和 iPhone 手机为代表的智能移动设备的发明与互联网云技术的兴起却敲响了 PC 时代的丧钟!这也预示着 移动互联网时代 (3G)已经来临。 在这个互联网繁荣的时代,有一颗超新星,以它独特性能优势与人性化的UI 设计使它在短短的几年迅速的占领了智能移动设备的市场份额,它就是Google 的 Android!这也意味着 Google 在移动互联网时代开始抢跑并领跑。 Android 是基于 Linux 平台完全开源的手机操作系统,同时开发语言为Java,这对于 Java 开发的我们是何等的诱人,程序员的技术要与时代同行,因此我选择了以 Android 为平台的手机天气预报系统来作为我的毕业设计,选择手机天气预报系统不仅可以提升技术,同时也 很实用,为人们时刻了解天气状况和出行带来了方便。 2 需求分析 一、开发背景 近几年来 随着 3G 技术成熟和智能手机的不断普及 , 移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。在 Google 和 Android 手机联盟的共同推动下, Android 在众多移动应用开发平台中脱颖而出。 Android 是一个真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂商和开发者的热捧。为顺应潮流,本设计旨在搭载 Android 的移动设备上运行,实现天气 状况的实时动态更新与显示,方便人们的出行与生活。 二、项目需求分析 根据功能的需求,分析此项目的主要功能应具备以下几点: 1. 精确查询 定位 全国各地城市未来几天内的 实时 天气状况 2. 系统要具的实用性,符合用户查看信息习惯,界面设计优美 3. 系统要具有稳定性,且在一定程度上节省流量的开销 总体设计 一、系统规划 由上述 的需求,现 将系统分为三大模块:天气显示界面模块、预报城市设置模块与 Widget 桌面小部件模块。各系统模块功能如下: 1). 天气显示界面模块 显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当日的建议,用户可通过按菜单键来显示菜单更新当前 天气与设置天气显示的界面背景,以及跳转至设置预报城市界面来更换预报城市。 2). 预报城市设置模块 由自动设置预报城市与手动设置二部分组成,自动设置实现 GPS 定位功能, 自动确定当前用户所在地;而手动设置则通过可伸展性下拉列表单击选择系统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形式来过滤查询预报城市。当单击选中城市时跳转至天气显示界面,来显示该城市当三天内的天气状况 ;第一次运行时自动跳到该界面 。 3). Widget 桌面小部件模块 为了方便用户实时了解天气状况,特别添加在 Android 系统桌面上显示当前天气与时间的天气小部件,使用户拿起手机的第一时刻就能了解天气, 同时当用户单击小部件时,自动跳转至天气显示界面,显示三天内的详细天气。 3 二、系统功能界面 1. 设置预报城市界面: 1.1 当第一次运行程序时,跳转至城市设置界面进行预报城市的选择: 1.2 用户可以通过单击选择“定位当前城市”的方式调用系统 GPS 功能自动定位预报城市: 4 1.3 用户可通过输入框过滤查询当前系统中预存的城市: 2.天气显示界面: 2.1 选择了预报城市后,系统跳转至 天气显示界面,显示该城市三天内的实时天气 : 5 2.2 在天气界面中用户可通过按菜单 键来调出菜单,选择城市,更新天气与更换背景: 3. Widget 桌面小部件 界面: 方便 用户第一时间了解天气动态,添加 widget 显示功能界面: 6 三.设计目标 设计完成一个实用稳定的天气预报系统,同时要廉价使其能滿足大部分用户的需求,因此针对上述要求,本设计应滿足: 1. 系统能及时的返反馈指定 预报城市的天气情况 2. 自动定位用户所在城市,支持 GPS 定位 3. 节省流量开销,规定在指定的时间间隔内才更新天气,其它时 段显示缓存的天气 4. 操作方便 快捷 ,使用简单,界面设计美观大方 ,支持 widget 系统设计 一、开发及运行环境 JDK1.6.10 Eclipse3.5 Android Development Toolkit (ADT) 15.0.0 Android 2.2 及以上 Windows XP 及以上 二、数据库设计 由于在本系统中是通过 中央气象 台 的 WebService 提供的 API 访问得到的天气预报,在查询指定城市的天气时,需要用到它提供的城市码,而城市码相对稳定不变,所以在构建系统时将其事先通 过 Android 的网络访问技术将其缓冲到本地SQLite 数据库进行保存起来,方便以后的查询,同时节省了流量开销。综上所述在本地建立 db_weather.db 的数据库,其中的表结构如下: 其中只存在两个表 : provices 和 citys City 中存在 city_num 用天气的查询,同时还存在外键 province_id 与 provices 表形成 1 对 n 的关系。 7 三、主要方法及步骤 1. 搭建 Android 开发环境,并建立一个 android2.2 版本名为 WeatherSystem项目 2. 首先编写网络访问代码,访问 http://m.weather.com.cn/data5/city.xml 中央气象 站解析得到所有城市码并导出保存得到的 db_weather.db 数据文件 3. 在程序第一次运行时,将 db_weatcher.db 数据库文件导入到应用程序数据库中 4. 建立设置城市界面,读取数据库文件,获取省份,城市以及对应的城市码。 5. 接收用户选择的城市码, 访问: http://m.weather.com.cn/data/.html得到天气信息 6. 解析天气信息,将城市码及天气信息缓冲下来,并为其设置有效时间,方便下次启动时直接得到天气 信息 ,过期则从网上更新 7. 定时 由保存的城市码 更新 天气信息 四、主要方法及技术 1. Android 手机的界面 UI 设计 2. Android 的网络通信 3. Android 的广播 4. GPS 调用解析 5. Widget 小部件编程 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 | |_com.weather.comp | | |_GPSListAdapter.java | | |_MyListAdpater.java | |_com.weather.dao | | |_DBHelper.java | |_com.weaher.utils 8 | |_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://m.weather.com.cn/data5/city.xml 得到 省份直辖市 列表 与它的编号 : 2. 访问 http://m.weather.com.cn/data5/city.xml 得到该 省份直辖市的城市编号 (如访问山东: http://m.weather.com.cn/data5/city12.xml) 3. 访问 http://m.weather.com.cn/data5/city.xml 得到该城市的县区编号 (如访问济南: http://m.weather.com.cn/data5/city1201.xml) 4. 访问 http://m.weather.com.cn/data5/city.xml 得到该县区的城市码 (如 访问长清: http://m.weather.com.cn/data5/city120102.xml) 01|北京 ,02|上海 ,03|天津 ,04|重庆 ,05|黑龙江 ,06|吉林 ,07|辽宁 ,08|内蒙古 ,… 1201|济南 ,1202|青岛 ,1203|淄博 ,1204|德州 ,1205|烟台 ,1206|潍坊 ,…… 120101|济南 ,120102|长清 ,120103|商河 ,120104|章丘 ,120105|平阴 ,… . 120102|101120102 9 首先实现上述功能需使用 Android 的网络访问技术,故编写工具类WebAccessTools 类如下: 由上面访问的可知,得到的编码与名称都是“编码|名称”的形式,因此在这也编写一个解析得到城市码的工具类 WeatherInfoParser,用于解析从服务器中得到的城市码: /** * 根据给定的 url地址访问网络,得到响应内容 (这里为 GET方式访问 ) * @param url 指定的 url地址 * @return web服务器响应的内容,为 String类型,当访问失败时,返回为 null */ public String getWebContent(String url) { //创建一个 http请求对象 HttpGet request = new HttpGet(url); //创建 HttpParams以用来设置 HTTP参数 HttpParams params=new BasicHttpParams(); //设置连接超时或响应超时 HttpConnectionParams.setConnectionTimeout(params, 3000); HttpConnectionParams.setSoTimeout(params, 5000); //创建一个网络访问处理对象 HttpClient httpClient = new DefaultHttpClient(params); try{ //执行请求参数项 HttpResponse response = httpClient.execute(request); //判断是否请求成功 if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { //获得响应信息 String content = EntityUtils.toString(response.getEntity()); return content; } else { //网连接失败,使用 Toast显示提示信息 Toast.makeText(context, “网络访问失败,请检查您机器的联网设备 !“, Toast.LENGTH_LONG).show(); } }catch(Exception e) { e.printStackTrace(); } finally { //释放网络连接资源 httpClient.getConnectionManager().shutdown(); } return null; }
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于Android手机天气预报系统.rar
    链接地址:http://www.gold-doc.com/p-255578.html
    收起
    展开