手机天气预报系统毕业设计.pdf
基于Android系统的手机天气预报软件论文

本科生毕业设计论文基于Android系统的手机天气预报软件摘要随着智能手机的快速普与,智能手机操作系统市场风生水起。
为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以与互联网访问Web并处理各种各样的业务。
因此,智能手机的应用软件与其需要的服务将有广阔的发展前景。
在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。
这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。
Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以与强大的浏览器。
因此,对于软件从业人员来说,Android平台具有无限的吸引力。
本文就在分析讨论Android手机软件开发技术原理的基础上,开发出能为用户提供更好的基于Android平台的3G手机气象软件。
关键词:Android 手机天气预报软件系统Based on the Android system of mobile phone weatherforecasting softwareAbstractWith intelligent the rapid spread of the mobile phone, intelligent mobile phone operating system market wind. In order to make intelligent mobile phone users to anytime inquires the services provided by the Internet, a highly efficient way is the function of the application system will be expanded to the mobile phone terminal, keep the cell phone and Internet access to YiDongWang through Web site and to handle all sorts of business. Therefore, smartphone applications software and its need to service will have broad development prospects.Now in the smart phone system at the strife in 2008, Google launched a new Android smart phone called the open source operating system, it USES Linux kernel, open mobile phone alliance (OHA) members can use any and modify SDK bag, the system of open source sex make its have the expansion of good sex. This software, including the operating system, the user interface and application, namely intelligent mobile phones need all the software. Android is the biggest characteristic of the open architecture, not only has the very good development, debugging environment, but alsosupport various scalable user experience, including rich graphics components, multimedia support functions and strong browser. So, for software professionals for, Android platform with an infinite appeal. In this paper the analysis about Android mobile phone software development based on the principle of technology, to develop a user can provide better based on the Android platform 3 G mobile phone weather software.Keywords: Android mobile phone weather forecasting software system第一章绪论51.1 研究容51.2 研究意义51.3 研究现状和发展趋势5第二章系统分析82.1 研究目标82.2 需求分析82.3 性能分析92.4 系统研究容92.5 项目需求分析92.6 系统构架图9第三章系统开发环境与相关技术123.1 Android开发环境介绍123.2 Android开发平台搭建123.3 Android应用程序设计原理13第四章 Google android移动平台的相关理论164.1 Goolge android 移动平台的概述164.1.1 Android系统的特点:164.1.2 Android的功能:174.2 Google android移动平台开发过程研究184.3 Google android移动平台下的应用研究194.4 小结20第五章 android手机天气预报系统程序设计215.1 用户界面设计215.2 天气实况预报系统的具体实现225.2.1 Android平台的用户界面实现错误!未定义书签。
基于Android代码系统的手机天气预报软件本科毕业论文

毕业论文/设计题 目: 手机天气预报系统手机天气预报系统广东XX 大学2012届毕业论文届毕业论文 基于Android 手机天气预报系统手机天气预报系统 X 同学同学独 创 性 声 明本人声明所呈交的毕业论文本人声明所呈交的毕业论文((设计设计))是本人在指导教师指导下进行的研究工作及取得的研究成果。
作及取得的研究成果。
据我所知,据我所知,据我所知,除了文中特别加以标注和致谢的地方外,论文除了文中特别加以标注和致谢的地方外,论文(设计设计))中不包含其他人已经发表或撰写过的研究成果,也不包含为获得广东科贸职业学院或其他教育机构的证书而使用过的材料。
与我一同工作的同志对本论文(设计设计))所做的任何贡献均已在论文中作了明确的说明并表示谢意。
所做的任何贡献均已在论文中作了明确的说明并表示谢意。
论文论文((设计设计))作者签名:作者签名:签字日期:签字日期:年 月 日广东XX 大学2012届毕业论文届毕业论文 基于Android 手机天气预报系统手机天气预报系统 X 同学同学基于Android 系统的手机天气预报软件摘 要要随着智能手机的快速普及,智能手机操作系统市场风生水起。
为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web 网站并处理各种各样的业务。
因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。
在如今这个智能手机系统群雄纷争的时候,在如今这个智能手机系统群雄纷争的时候,20082008年Google 推出了一款名为Android 的开源智能手机操作系统,它采用Linux 内核,开放手机联盟联盟(OHA)(OHA)(OHA)成员可以任意使用和修改成员可以任意使用和修改SDK 包,系统的开源性使其具有良好的拓展性。
这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。
Android 的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。
Android智能手机天气预报系统设计

Android智能手机天气预报系统设计Android智能手机天气预报系统设计摘要:在分析讨论Android 应用系统设计原理的基础上,提出了Android 智能手机天气实况预报系统用户界面以及获取并解析城市列表数据的设计方法,给出了在用户界面上呈现列表数据的设计过程,实现了一个简单的Android 智能手机城市天气实况预报系统。
系统在模拟器上通过调试并正常运行。
0 引言为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端,让手机能通过移动网和互联网访问Web 网站并处理各项业务。
Android 系统是Google 公司开发的一个开源手机操作系统,它包括了操作系统、用户界面和应用程序,即智能手机工作所需的全部软件。
Android 的最大特点是它的开放性体系架构,不仅具有非常好的开发、调试环境,而且还具有各种可扩展的设施,包括丰富的图形组件、多媒体支持功能和强大的浏览器,而且已有许多比较成熟的应用案例。
本文提出了智能手机天气实况预报系统的一种设计实现方法,供开发者参考。
1 Android应用程序设计原理一个Android 应用程序,通常由AcTIvity、Intent Receiver、Service、CONtent Provider 四种功能组件构成。
但是,并不是每一个Android 应用程序都需要用到这四种功能组件,而是只需上述四种功能组件的某些组合。
1.1 ActivityActivity 是最基本的Android 应用程序组件。
大多数应用由多个屏幕组成,一个Activity 通常则是一个单独的屏幕。
每一个Activity 都被实现为一个独立的类,并且从Activity 基类中继承而来。
Activity 类将会显示由视图控件组成的用户接口,并对事件做出响应。
Android 使用Intent 这个特殊类,实现在屏幕与屏幕之间移动。
通过解析各种Intent,从一个屏幕导航到另一个屏幕是很简单的。
基于Android的天气预报系统设计

Southwest University of Science and Technology本科毕业设计(论文)题目:基于Android的天气预报系统设计学生姓名: xxx学生学号: xxxx专业: 通信工程指导教师: xxx学院(部): 信息工程学院教务处制表基于Android的天气预报系统设计摘要最近几十年来,全球范围气候异常,人们面临越发严重的能源、粮食和水资源危机,因而国家对气象工作提出了迫切要求。
同时,随着人们生活水平的大幅提高,大家对生活质量的要求也随之高涨,个人、企业乃至社会都迫切的需要随时随地的掌握准确即时的天气预报信息。
本论文介绍了一款基于Android的天气预报系统设计及实现过程。
本设计采用C/S模式,客户端通过HTTP连接获取聚合数据API的天气数据,通过手动选择城市或者自动定位查询天气信息。
采用了Android 开源系统技术,它可以通过图片和文字显示当天和未来几天的天气情况。
本设计通过定位城市获取气象信息,用户可以了解到实时天气、未来三天天气、空气质量等数据,避免损失方便出行,具有一定的观赏性和可用性。
软件主要功能包括加载界面模块、城市选择模块、显示天气模块、详细信息模块和数据刷新模块。
经过测试,结果表明该软件使用方便,完全满足人们全面了解天气信息的需求。
关键词:气象,互联网,Android,天气预报DESIGN OF WEATHER FORECAST SYSTEM BASEDON ANDROIDABSTRACTIn recent decades, the global climate anomalies, people are facing more serious energy, food and water crisis, and thus the country on the meteorological work made an urgent request. At the same time, with the substantial improvement in people's living standards, we also demand for quality of life also rose. Individuals, businesses and even the society urgent need for any time and anywhere to grasp the accurate weather forecast information.This paper introduces a design and implementation process of a weather forecasting system based on Android. The design uses C / S mode, the client through the HTTP connection to obtain the data of the aggregation data API. Querying weather information by manually selecting the city or automatically locating. Using the Android open source system technology, it can be through the pictures and text shows the day and the next few days of weather conditions. The design through the positioning of the city to obtain weather information, users can understand the real-time weather, the next three days weather, air quality and other data, to avoid loss of travel, with a certain ornamental and usability.The main functions of the software include loading interface module, city selection module, display weather module, detailed information module and data refresh module. Test results show that the software is easy to use, fully meet the people a comprehensive understanding of weather information needs.Key words:meteorology, Internet, Android, weather forecast目录第一章绪论---------------------------------------------------------------------------------------------11.1系统开发的目的及意义----------------------------------------------------------------------11.2研究现状和发展趋势-------------------------------------------------------------------------------11.3数据来源介绍-------------------------------------------------------------------------------------21.4论文组织结构-------------------------------------------------------------------------------------2 第二章平台及关键技术介绍------------------------------------------------------------32.1 Android介绍-------------------------------------------------------------------------------------------32.2 Android与其他平台的比较-------------------------------------------------------------------------42.3 Android基础知识-------------------------------------------------------------------------------------42.3.1 四大组件---------------------------------------------------------------------------------------42.3.2 六大布局---------------------------------------------------------------------------------------52.3.3 五大存储---------------------------------------------------------------------------------------52.4 Android基本架构------------------------------------------------------------------------------------6 第三章开发环境搭建---------------------------------------------------------------------------------------93.1 开发环境介绍--------------------------------------------------------------------------------------93.2 开发所需设备--------------------------------------------------------------------------------------113.2.1 eclipse软件-----------------------------------------------------------------------------------113.2.2 Android手机/模拟器------------------------------------------------------------------------11 第四章系统分析---------------------------------------------------------------------------------------------124.1 功能分析--------------------------------------------------------------------------------------------124.2 流程分析--------------------------------------------------------------------------------------------134.3 UI界面分析-----------------------------------------------------------------------------------------144.3.1 引导页面-------------------------------------------------------------------------------------144.3.2 主界面----------------------------------------------------------------------------------------144.3.3 城市选择界面-------------------------------------------------------------------------------15 第五章详细设计--------------------------------------------------------------------------------------------165.1 创建工程--------------------------------------------------------------------------------------------165.2 UI实现-----------------------------------------------------------------------------------------------175.2.1 引导界面-------------------------------------------------------------------------------------175.2.2 主界面----------------------------------------------------------------------------------------185.2.3 城市选择界面-------------------------------------------------------------------------------195.3 数据获取及解析-----------------------------------------------------------------------------------195.3.1 聚合数据平台申请数据-------------------------------------------------------------------195.3.2 根据城市名查询天气----------------------------------------------------------------------205.3.3 城市天气三小时预报----------------------------------------------------------------------215.3.4 支持城市列表-------------------------------------------------------------------------------215.3.5 城市空气质量-------------------------------------------------------------------------------225.4 下拉刷新------------------------------------------------------------------------------------------225.5 Service 初始化及实现--------------------------------------------------------------------------235.6 存在问题及解决方案---------------------------------------------------------------------------245.6.1数据无法解析-----------------------------------------------------------------------------245.6.2 JSON解析报错----------------------------------------------------------------------------255.6.3 PM2.5区域的数据解析无从下手------------------------------------------------------255.6.4 间隔三小时天气区域数据显示不全--------------------------------------------------255.6.5 分段显示图片-----------------------------------------------------------------------------265.6.6 无法获取数据-----------------------------------------------------------------------------26 第六章系统测试------------------------------------------------------------------------------------------27 第七章结论------------------------------------------------------------------------------------------------29 参考文献-----------------------------------------------------------------------------------------------------31 谢辞-----------------------------------------------------------------------------------------------------------32第一章绪论当今社会,竞争激烈,企业乃至国家之间,竞争的是资源。
基于Android的天气预报短信系统的毕业设计说明书

信息工程学院本科生毕业设计说明书题目:基于Android的天气短信系统的设计与实现姓名:丁柏林学号: 2011110262 专业:计算机科学与技术班级: 11计科2班指导教师:房爱东目录1 系统概述 (1)1.1 设计目的 (1)1.2 设计思路 (1)1.3系统需求分析 (1)1.4开发环境 (2)1.4.1 Android开发环境的介绍 (2)1.4.2 Android的开发平台搭建 (2)1.5 运行环境 (3)1.6 参考文献 (3)2.总体设计 (4)2.1系统结构 (4)2.1.1 系统流程图 (4)2.1.2 模块结构图 (4)2.2数据库的设计 (6)2.3 模块功能设计 (6)2.3.1 获取当前天气功能 (6)2.3.2 选择城市的功能 (6)2.3.3 发送短信的功能 (7)3.运行设计 (8)3.1用户界面设计 (8)3.2 运行代码 (10)4.系统测试 (28)4.1功能性测试 (28)4.2 稳定性测试 (30)4.3 安全性测试 (30)5 结论 (31)1 系统概述近几年来随着3G 技术成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。
在Google和Android 手机联盟的共同推动下,Android在众多移动应用开发平台中脱颖而出。
Android是一个真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂商和开发者的热捧。
为顺应潮流,本设计旨在搭载 Android 的移动设备上运行,实现天气状况的实时动态更新与显示,并将显示的天气可以发短信给指定的联系人。
1.1 设计目的天气软件是一种非常实用的信息服务,随着智能手机的不断普及,各种智能手机平台下都有各种各样的天气软件。
Android作为现在主流的智能手机之一,自然也需要这方面的软件。
天气关系到人们的日常生活,如告知温暖,方便出行等。
此外,对未来天气的预测你还可以指定发短信给家里不会上网的父母,帮助父母进行农作物的浇灌、施肥、收割等工作。
基于Android平台的天气预报软件的设计与实现毕业论文

摘要随着智能手机一步步走进普通人的生活,它将成为人们获取信息的主要设备。
因此手机的娱乐应用服务将会有很大的发展空间手机快捷查询软件就是其中的一项。
Android平台提供给用户非常方便的快捷查询功能这将为快捷查询服务的设计与实现提供了更好的平台。
另外Android平台基本上是免费的,所以能够有效降低软件的成本,最终让每个用户能够自由地获取信息,也为手机快捷查询服务的普及做出贡献。
本文研究分析了Android平台的系统架构和组件模型接着解析了Android中的重要API和应用构成以Intent和生命周期的机制。
在此基础上基于Android平台设计和开发手机快捷查询天气软件。
本系统界面友好、操作便捷具有良好的可扩展性和可维护性;系统经过测试、可以稳定运行、能够满足手机用户的基本需求。
关键词智能手机Android API 用户IAbstractAs smartphones is walking into the life of ordinary people step by step, it will become the main equipment of access to information.Therefore, mobile entertainment application service there will be a very big development space of mobile phone quick query software is one of them.Android platform to provide users with convenient and fast query function for the design and implementation of a quick query service provides a better platform.Also the Android platform is essentially free, so can effectively reduce the cost of software, finally let each user can freely access to information and also contribute to the popularization of mobile phone quick query service.This study analyzes the Android platform system architecture and component model and analyzes the important part of the Android API and application of mechanism with the Intent and life cycle.On the basis of the design and development based on the Android platform mobile phone quick query software in the weather.This system friendly interface, convenient operation, good scalability and maintainability;System tested, stable operation, and can satisfy the basic needs of mobile phone users.Keyword smart phone Android API (Application Programming Interface) UserII目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 国内外手机系统现状 (1)1.2 Android系统的优势 (1)1.2.1 开放性 (1)1.2.2 挣脱束缚 (1)1.2.3 丰富的硬件 (1)1.2.4 开发商 (2)1.3 Android的发展趋势 (2)1.3.1 国产手机品牌纷纷加速海外布局 (2)1.4 本章小结 (3)第2章相关技术简介 (3)2.1 开发工具 (3)2.1.1 JDK(Java Development Kit) (3)2.1.2 Android SDK 介绍 (4)2.1.3 Eclipse 开发工具介绍 (4)2.1.4 Android Development Tools(ADT)介绍 (4)2.2 开发环境搭建 (4)2.2.1 开发环境搭建的步骤 (4)2.2.2JDK安装 (4)2.2.3Eclipse安装 (5)2.2.4Android SDK安装 (5)2.2.5ADT安装 (6)2.2.6 创建A VD (7)2.3 本章小结 (7)第3章需求分析 (7)3.1 开发背景 (7)3.2 开发需求分析 (8)3.2.1 开发需求分析的作用 (8)3.2.2 天气预报需求分析 (8)3.3 本章小结 (8)第4章项目功能描述 (9)4.1 系统主要功能 (9)III4.2 项目工程结构图 (9)4.2.1 项目工程 (9)4.3 XML和JSON详情 (10)4.3.1XML解析 (10)4.3.2JSON解析 (11)4.3.3XML的解析方式有两种 (12)4.4本章小结 (13)第5章程序代码设计 (14)5.1 帮助界面 (14)5.2 登陆界面 (14)5.3 主界面 (18)5.4 本章小结 (38)结论 (38)致谢 (39)参考文献 (40)附录1 (41)IV第1章绪论1.1 国内外手机系统现状在早期的手机内部是没有智能操作系统的,所有的软件都是由手机生产商在设计时所定制的,因此手机在设计完成后基本是没有扩展功能的。
手机天气预报系统毕业设计

手机天气预报系统毕业设计一、引言随着智能手机的普及,人们越来越依赖手机来获取天气信息。
因此,开发一款手机天气预报系统具有重要意义。
本设计旨在开发一款基于手机平台的天气预报系统,方便用户随时随地获取天气信息。
二、需求分析1.系统用户:该系统主要面向手机用户。
2.基本功能:a.实时天气信息查询:用户可以实时查询当地及其他地区的天气信息;b.天气预报:用户可以查看未来几天的天气预报情况;c.城市切换:用户可以切换查询城市以获取相应城市的天气信息;d.条件筛选:用户可以筛选天气结果根据降水量、温度等条件;e.历史查询记录:用户可以查看最近查询的历史天气记录。
三、系统设计1.系统结构:本系统包括前端和后端两部分。
2.前端设计:a.用户界面设计:设计简洁直观的用户界面,方便用户操作。
包括天气查询界面、城市切换界面、天气预报界面等。
b.实时天气查询:用户在查询界面输入要查询的城市后,前端将该请求发送到后端。
c.天气预报显示:后端将查询结果返回给前端,前端将结果以列表或图表的形式展示在界面上。
3.后端设计:a.接收请求:后端接收来自前端的天气查询请求,包括查询城市信息等。
b.调用天气数据接口:后端通过调用天气数据接口获取天气数据。
c.数据处理:后端对接收到的天气数据进行处理,提取需要的信息。
d.返回结果:后端将处理后的结果返回给前端。
四、技术选型1.前端开发:HTML、CSS和JavaScript等技术实现用户界面和交互逻辑。
2.后端开发:使用Python或Java等后端开发语言,结合框架如Django或Spring Boot进行开发。
五、系统测试通过对系统进行功能测试,包括查询天气、切换城市、筛选结果以及查看历史记录等功能的测试。
同时,还需要进行性能测试以确保系统能够在大量用户访问时保持稳定。
六、总结本设计主要介绍了一款手机天气预报系统的设计。
通过该系统,用户可以方便地获取天气信息,包括实时天气查询、天气预报、城市切换、条件筛选和历史查询记录等功能。
基于J2ME平台的手机天气预报程序的设计与实现毕业设计论文

目录绪论 (1)1 课题总体介绍 (2)1.1 课题介绍 (2)1.2 课题目的及意义 (2)1.3 已了解的本课题国内外研究现状 (2)1.4 主要研究内容和功能 (2)2 J2ME开发环境的配置和J2ME框架 (4)2.1 JDK的安装 (4)2.2 Java基本开发环境JDK的配置 (5)2.3 安装Java开发平台Eclipse (5)2.4 安装WTK (5)2.5 在Eclipse上面配置SDK (5)2.6 J2ME体系结构 (5)2.7 J2ME生命周期 (7)3 天气预报程序的设计 (9)3.1 设计准备 (9)3.2 设计思路 (9)3.3 程序架构 (11)4 天气预报软件的编写 (15)4.1 建立http连接 (15)4.2 使用KXML解析器 (16)4.3 程序界面编程 (19)4.4 使用记录集(RMS) (23)4.5 J2ME中的按键命令响应 (26)致谢 (29)参考文献 (30)摘要随着移动通信业的突飞猛进,移动开发这个新鲜的字眼慢慢成为开发者关注的热点。
最近一份在网上进行的调查显示,有24.34%的受访者涉足嵌入式/移动设备应用开发,这个数字可能略高于实际的比例,但也足以说明嵌入式/移动设备应用开发是一块诱人的新鲜奶酪。
J2ME(Java 2 Micro Edition)是嵌入式/移动应用平台的王者,Linux和WinCE分列二、三位。
Nokia等厂商力推的Symbian 平台目前开发者占有率尚未达到满意水平,考虑到调查项合并了嵌入式设备(例如PDA)和移动设备(例如智能手机),Symbian、WinCE系列在移动平台上会是与J2ME主要竞争对手。
如果厂商能在标准实现上做得更加规范,则J2ME的跨平台特性会发挥得更加淋漓尽致。
本文主要讨论了在J2ME平台下,如何开发一个具备连接网络、解析数据、存储城市功能的天气预报程序。
论文首先介绍了J2ME平台的特点、历史,进而引出在此平台下开发一个天气预报软件的构想,并对其进行了可行性分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录摘要 (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)摘要Window 操作系统的诞生成就了微软帝国,同时也造就了 PC 时代的繁荣,然而如今,以Android和iPhone手机为代表的智能移动设备的发明与互联网云技术的兴起却敲响了PC时代的丧钟!这也预示着移动互联网时代(3G)已经来临。
在这个互联网繁荣的时代,有一颗超新星,以它独特性能优势与人性化的UI 设计使它在短短的几年迅速的占领了智能移动设备的市场份额,它就是Google 的 Android!这也意味着 Google 在移动互联网时代开始抢跑并领跑。
Android 是基于Linux 平台完全开源的手机操作系统,同时开发语言为Java,这对于Java 开发的我们是何等的诱人,程序员的技术要与时代同行,因此我选择了以Android为平台的手机天气预报系统来作为我的毕业设计,选择手机天气预报系统不仅可以提升技术,同时也很实用,为人们时刻了解天气状况和出行带来了方便。
需求分析一、开发背景近几年来随着3G技术成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。
在Google和Android手机联盟的共同推动下,Android在众多移动应用开发平台中脱颖而出。
Android是一个真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂商和开发者的热捧。
为顺应潮流,本设计旨在搭载Android的移动设备上运行,实现天气状况的实时动态更新与显示,方便人们的出行与生活。
二、项目需求分析根据功能的需求,分析此项目的主要功能应具备以下几点:1.精确查询定位全国各地城市未来几天内的实时天气状况2.系统要具的实用性,符合用户查看信息习惯,界面设计优美3.系统要具有稳定性,且在一定程度上节省流量的开销总体设计一、系统规划由上述的需求,现将系统分为三大模块:天气显示界面模块、预报城市设置模块与Widget桌面小部件模块。
各系统模块功能如下:1). 天气显示界面模块显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当日的建议,用户可通过按菜单键来显示菜单更新当前天气与设置天气显示的界面背景,以及跳转至设置预报城市界面来更换预报城市。
2). 预报城市设置模块由自动设置预报城市与手动设置二部分组成,自动设置实现GPS定位功能,自动确定当前用户所在地;而手动设置则通过可伸展性下拉列表单击选择系统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形式来过滤查询预报城市。
当单击选中城市时跳转至天气显示界面,来显示该城市当三天内的天气状况;第一次运行时自动跳到该界面。
3). Widget 桌面小部件模块为了方便用户实时了解天气状况,特别添加在Android系统桌面上显示当前天气与时间的天气小部件,使用户拿起手机的第一时刻就能了解天气,同时当用户单击小部件时,自动跳转至天气显示界面,显示三天内的详细天气。
2二、系统功能界面1.设置预报城市界面:1.1当第一次运行程序时,跳转至城市设置界面进行预报城市的选择:1.2 用户可以通过单击选择“定位当前城市”的方式调用系统 GPS 功能自动定位预报城市:1.3 用户可通过输入框过滤查询当前系统中预存的城市:2.天气显示界面:2.1 选择了预报城市后,系统跳转至天气显示界面,显示该城市三天内的实时天气:2.2 在天气界面中用户可通过按菜单键来调出菜单,选择城市,更新天气与更换背景:3.Widget 桌面小部件界面:方便用户第一时间了解天气动态,添加widget显示功能界面:三.设计目标设计完成一个实用稳定的天气预报系统,同时要廉价使其能滿足大部分用户的需求,因此针对上述要求,本设计应滿足:1.系统能及时的返反馈指定预报城市的天气情况2.自动定位用户所在城市,支持GPS定位3.节省流量开销,规定在指定的时间间隔内才更新天气,其它时段显示缓存的天气4.操作方便快捷,使用简单,界面设计美观大方,支持widget系统设计一、开发及运行环境JDK1.6.10Eclipse3.5Android Development Toolkit (ADT) 15.0.0Android 2.2 及以上Windows XP 及以上二、数据库设计由于在本系统中是通过中央气象台的WebService提供的API访问得到的天气预报,在查询指定城市的天气时,需要用到它提供的城市码,而城市码相对稳定不变,所以在构建系统时将其事先通过Android的网络访问技术将其缓冲到本地SQLite 数据库进行保存起来,方便以后的查询,同时节省了流量开销。
综上所述在本地建立db_weather.db的数据库,其中的表结构如下:其中只存在两个表: provices和citysCity 中存在 city_num 用天气的查询,同时还存在外键 province_id 与 provices 表形成1对n的关系。
三、主要方法及步骤1.搭建Android开发环境,并建立一个android2.2版本名为WeatherSystem项目2.首先编写网络访问代码,访问/data5/city.xml中央气象站解析得到所有城市码并导出保存得到的db_weather.db数据文件3.在程序第一次运行时,将db_weatcher.db数据库文件导入到应用程序数据库中4.建立设置城市界面,读取数据库文件,获取省份,城市以及对应的城市码。
5.接收用户选择的城市码,访问:/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| |_p| | |_GPSListAdapter.java| | |_MyListAdpater.java| |_com.weather.dao| | |_DBHelper.java7| |_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. 访问/data5/city.xml得到省份直辖市列表与它的编号:01|北京,02|上海,03|天津,04|重庆,05|黑龙江,06|吉林,07|辽宁,08|内蒙古,…2.访问/data5/city<省份编号>.xml得到该省份直辖市的城市编号(如访问山东:/data5/city12.xml)1201|济南,1202|青岛,1203|淄博,1204|德州,1205|烟台,1206|潍坊,……3.访问/data5/city<城市编号>.xml得到该城市的县区编号(如访问济南:/data5/city1201.xml)120101|济南,120102|长清,120103|商河,120104|章丘,120105|平阴,….4.访问/data5/city<县区编号>.xml得到该县区的城市码(如访问长清:/data5/city120102.xml)120102|101120102首先实现上述功能需使用Android的网络访问技术,故编写工具类WebAccessTools 类如下:/***根据给定的url地址访问网络,得到响应内容(这里为GET方式访问)*@param url指定的url地址*@return web服务器响应的内容,为<code>String</code>类型,当访问失败时,返回为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;}由上面访问的可知,得到的编码与名称都是“编码|名称”的形式,因此在这也编写一个解析得到城市码的工具类WeatherInfoParser,用于解析从服务器中得到的城市码:/***通过解析content,得到一个一维为城市编号,二维为城市名的二维数组*解析的字符串的形式为:<code>编号|城市名,编号|城市名,.....</code>*@param content需要解析的字符串*@return 封装有城市编码与名称的二维数组*/public static String[][] parseCity(String content){//判断content不为空if(content!=null&&content.trim().length()!=0) {StringTokenizer st=new StringTokenizer(content, ",");int count = st.countTokens();String[][] citys = new String[count][2];int i=0, index=0;while(st.hasMoreTokens()) {String city = st.nextToken();index = city.indexOf('|');citys[i][0] = city.substring(0, index);citys[i][1] = city.substring(index+1);i = i+1;}return citys;}return null;}编写这两个类后现在就是编写从服务器端用程序遍历得到全国各地的城市名与城市码,并将它们分别的保存在String[][] provinces数组,String[][] childs数组与String[][] cityCode 中:WebAccessTools webTools = new WebAccessTools(this);//得到访问网络的内容String webContent=webTools.getWebContent("/data5/city.xml"); //第一次解析得到的为省份或一级直辖市String[][] provinces = WeaterInfoParser.parseCity(webContent);String[] groups = new String[provinces.length];String[][] childs = new String[provinces.length][];String[][] cityCode = new String[provinces.length][];for(int i=0; i< provinces.length; i++) {groups[i] = provinces[i][1];//由省份码来得到城市码StringBuffer urlBuilder= new StringBuffer("/data5/city"); urlBuilder.append(provinces[i][0]);urlBuilder.append(".xml");webContent = webTools.getWebContent(urlBuilder.toString());String[][] citys = WeaterInfoParser.parseCity(webContent); //用于保存所的有townsString[][][] towns = new String[citys.length][][];//计算总的城镇数int sum=0;for(int j=0; j<citys.length; j++){//由城市码来得到地方码urlBuilder= new StringBuffer("/data5/city");urlBuilder.append(citys[j][0]);urlBuilder.append(".xml");webContent = webTools.getWebContent(urlBuilder.toString());towns[j] = WeaterInfoParser.parseCity(webContent);sum = sum + towns[j].length;}childs[i] = new String[sum];cityCode[i] = new String[sum];sum=0;for(int j=0; j<citys.length; j++) { for(intn=0; n<towns[j].length; n++) {if(n==0)childs[i][sum] = towns[j][n][1];elsechilds[i][sum] = towns[j][0][1] + "." + towns[j][n][1];urlBuilder= new StringBuffer("/data5/city");urlBuilder.append(towns[j][n][0]);urlBuilder.append(".xml");webContent = webTools.getWebContent(urlBuilder.toString());String[][] code=WeaterInfoParser.parseCity(webContent);cityCode[i][sum] = code[0][1];sum = sum + 1;}}urlBuilder=null;}接下来就是将得到的上面的三个数组建立数据库文件db_weather.db保存起来,用到android.database.sqlite.SQLiteDatabase类的静态方法:SQLiteDatabase openOrCreateDatabase(String path, CursorFactory factory)来创建一个数据库文件,其中的path表示数据库存放的路径,而factory中游标工厂,这里可将它设为空,从而得到SQLiteDatabase对象,则再调用它的execSQL(Stringsql)方法来执行保存数据库的操作,从而将上面的三个数组转换为数据库中的数据,最后使用ADT插件中的DDMS工具将得到的数据库文件从Android模拟器中导出,最终就得到了db_weather.db文件。