android天气预报报告材料
基于android系统的天气预报查询系统大学论文

河北农业大学本科毕业论文(设计)题目:基于android系统的天气预报查询系统摘要近几年来随着3G技术成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。
在Google和Android手机联盟的共同推动下,Android在众多移动应用开发平台中脱颖而出。
Android是一个真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂商和开发者的热捧,手机已被赋予了除通话以外的其它许多功能。
全新的手机软件领域已逐渐聚焦了众多软件开发商的目光,软件开发者和软件用户将共同面临这个振奋人心的新境界。
本设计使用Android设计技术开发了一种运用在Android系统上的手机天气预报软件系统,本系统通过选择城市来获得天气,风向,温度等信息。
基于android的天气预报系统软件可以使用户对于各地的天气情况的实时掌握,极大的方便了用户的出行和行程安排,避免了不必要的麻烦,具有很强的实用性。
关键词:天气预报系统;android开发AbstractIn recent years, with the 3G technology matures and the growing popularity of smart phones, the increasing demand for mobile applications, mobile application development become the most popular technology. Given a friendly boost by Google and Android Handset Alliance, Android stands out in numerous mobile application development platforms. Android is a truly open-source smart phone operating system, which once launched immediately by the global mobile device manufacturers and developers blitz, mobile phones have been given in addition to many other functions outside the phone. The new phone software field has gradually focused the attention of a large number of software developers, software developers and software users will be facing this exciting new realm.This design uses design techniques developed an Android application in the Android system mobile weather software system, the system by selecting the city to get weather, wind direction, temperature and other information. Android based software allows users to weather forecasting system for real-time weather conditions around the master, a great convenience to the user's travel and travel arrangements, to avoid unnecessary trouble, and highly practical.Keywords: Weather forecast system; android development目录1. 需求分析 (1)1.1开发背景 (1)1.2系统研究内容 (1)1.3项目需求分析 (1)2. GOOGLE ANDROID移动平台的相关理论 (1)2.1G OOGLE ANDROID 移动平台的概述 (1)2.1.1 Android系统的特点 (2)2.1.2 Android的功能 (2)2.2G OOGLE ANDROID移动平台开发过程研究 (2)2.3G OOGLE ANDROID移动平台下的应用研究 (3)2.4小结 (3)3. 项目设计 (4)3.1项目总体设计 (4)3.2系统功能界面 (4)3.2.1 欢迎界面 (4)3.2.2 设置所在城市界面 (5)3.2.3 天气显示界面 (6)3.2.4 Widget桌面小部件界面 (7)3.3设计目标 (8)4. 系统设计 (8)4.1开发及运行环境 (8)4.2数据库设计 (8)4.3主要方法及步骤 (8)4.4主要方法及技术 (9)5. 主要模块 (9)5.1项目框架 (9)5.2主要功能实现 (10)5.2.1 导入db_weather.db数据库文件 (10)5.2.2 实现城市列表的创建与过滤 (11)5.2.3 访问网络得到天气信息 (14)5.2.4 Widget窗体小部件的更新 (15)6. 功能测试 (17)结论 (21)参考文献 (22)基于android系统的天气预报查询系统1. 需求分析1.1 开发背景近几年来随着3G技术成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。
Android 天气预报简介

Android 谷歌天气预报该项目是东方标准广州java培训中心为java技术开发学习人员和android技术开发班的学员共同开发研制的一款生活助手软件《谷歌天气预报》。
项目来自于日常生活中天气预报新闻。
由于人们日益紧凑的生活节奏,对于天气的关注不如以前那么重要,所以为了节省人们的业余时间,直接将天气预报功能搬入了手机软件功能当中,方便人们阅读浏览当地天气情况,并适当做出生活调整。
该项目技术要点为:推送功能+后台服务设计Service+联网功能HTTP+xml解析器XmlPullParser等技术。
一.项目介绍《谷歌天气预报》是一款简单的天气预报定制软件。
界面简洁易懂,方便用户使用。
可以查询几大城市的天气预报情况,主要功能有天气预告、城市温度、湿度、未来几天天气预测等。
该软件使用起来非常方便。
只要输入所查看的城市,软件自动提供当地的天气情况,以供查询。
二.For personal use only in study and research; not for commercial use三.四.功能说明1、进入软件页面2、功能说明1)、【天气】功能:显示当前天气情况。
资料来自于互联网真实天气预报。
2)、【城市】功能:显示当前所在城市。
3)、【温度】功能:显示选择城市天气温度变化。
资料来自互联网真实天气温度预告。
4)、【湿度】功能:显示当地城市湿度5)、【天气预测】功能:预测未来几天的天气状况。
可以预测未来三天以内的天气资料。
6)、【更新日期】功能: 显示当前天气日期。
五.程序设计技术说明本程序主要使用Service服务。
Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service。
Service 可以分为有无限生命和有限生命两种。
特别需要注意的是Service跟Activities是不同的(简单来说可以理解为后台与前台的区别),例如,如果需要使用Service的话,需要调用startService(),从而利用 startService()去调用Service中的OnCreate()和onStart()方法来启动一个后台的Service。
基于Android的天气预报APP

基于Android的天气预报APP摘要:Window 操作系统的诞生成就了微软帝国,同时也造就了PC 时代的繁荣,然而如今,以Android 和iPhone 手机为代表的智能移动设备的发明与互联网云技术的兴起却敲响了PC 时代的丧钟!这也预示着移动互联网时代(3G)已经来临。
在这个互联网繁荣的时代,有一颗超新星,以它独特性能优势与人性化的UI 设计使它在短短的几年迅速的占领了智能移动设备的市场份额,它就是Google 的Android!这也意味着Google 在移动互联网时代开始抢跑并领跑。
Android 是基于Linux 平台完全开源的手机操作系统,同时开发语言为Java,这对于Java 开发的我们是何等的诱人,程序员的技术要与时代同行,因此我选择了以Android 为平台的手机天气预报系统来作为我的毕业设计,选择手机天气预报系统不仅可以提升技术,同时也很实用,为人们时刻了解天气状况和出行带来了方便。
关键词:Android;数据库;框架模块Weather Application For AndroidAbstract: Window operating system was born the achievements of the Microsoft empire,also contributed to the prosperity of the era of PC, however now, to Android and iPhone phone for the rise of the representative of the smart mobiledevices with the invention of the Internet cloud has sounded the the death knell of the era of PC! This also indicates that the mobile Internet Era (3G) has come. In the era of the Internet boom, there is a single supernova, with its unique performance advantages and humanized UI design enable it in just a few years rapidly occupied the market share of the smart mobile devices, it is Google Android! This also means that the Google in the mobile Internet era and lead the false start. Based on Linux platform completely open source mobile operating system. At the same time, the development language for Java, which for java development we is how tempting Android, programmers should be with the times, so I chose to Android platform mobile weather systems as my graduation design, choice of mobile weather forecasting system can not only upgrade technology and also very practical, for people always understand weather conditions and travel brings convenience.Keywords:Android;database ;frames module基于Android的天气预报APP1 引言1.1开发背景近几年来随着3G 技术成熟和智能手机的不断普及,移动应用的需求与日俱增,移动应用开发成为当下最热门的技术之一。
Android天气预报程序开发实例与定位信息

Android 天气预报程序开发实例与定位信息昨天我们大概描述了下Android 中的XML 解析,其实整个实现方式比较简单,可以参考 的例子和monsware.android.internet 例子,Google Weather API 还包含了另一种方式根据经度、纬度方式获取天气信息。
在T-Mobile G1中可以通过基于移动网络和GPS 方式定位,粗略获取当前定位坐标可以下面代码获取。
1 2 3 4 LocationManager myLocationManager=null ;myLocationManager=(LocationManager)getSystemService(Context.LOCATION_SER VICE);Location l = myLocationManager.getLastKnownLocation("network");//这里使用myLocation 方式获取。
String url = l.getLatitude() +","+ l.getLongitude();//这里获取到了精度和维度即使不用GPS 我们基本上可以获取粗略的城市位置。
这里获取的l.getLatitude()返回的是浮点型,我们需要处理下,比如获取的为31.174165,需要过滤掉“.”保留31174165即可,维度同理:我们提交下面的/ig/api?weather=,,,31174165,121433841 数据即可获取,这里我们使用了Google Weather API 的精度维度方式获取,根据城市拼音名可以参考昨天的Android 与XML 解析一文,获取的内容如下:即使不用GPS 我们基本上可以获取粗略的城市位置。
这里获取的l.getLatitude()返回的是浮点型,我们需要处理下,比如获取的为31.174165,需要过滤掉“.”保留31174165即可,维度同理:我们提交下面的/ig/api?weather=,,,31174165,121433841 数据即可获取,这里我们使用了Google Weather API 的精度维度方式获取,根据城市拼音名可以参考昨天的Android 与XML 解析一文,获取的内容如下:1 2 3 4 5 6 7 8 9 <?xml version="1.0"?><xml_api_reply version="1"><weather module_id="0"tab_id="0"><forecast_information><city data=""/><postal_code data=""/><latitude_e6 data="31174165"/><longitude_e6 data="121433841"/>10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<forecast_date data="2008-12-18"/><current_date_time data="2008-12-18 18:00:00 +0000"/><unit_system data="SI"/></forecast_information><current_conditions><condition data="晴"/><temp_f data="52"/><temp_c data="11"/><humidity data="湿度: 44%"/><icon data="/images/weather/sunny.gif"/><wind_condition data="风向: 北、风速:14 (公里/小时)"/></current_conditions><forecast_conditions><day_of_week data="周四"/><low data="4"/><high data="12"/><icon data="/images/weather/sunny.gif"/><condition data="晴"/></forecast_conditions><forecast_conditions><day_of_week data="周五"/><low data="7"/><high data="15"/><icon data="/images/weather/mostly_sunny.gif"/><condition data="以晴为主"/></forecast_conditions><forecast_conditions><day_of_week data="周六"/><low data="4"/><high data="16"/><icon data="/images/weather/sunny.gif"/><condition data="晴"/></forecast_conditions><forecast_conditions><day_of_week data="周日"/><low data="-6"/><high data="5"/><icon data="/images/weather/cn_cloudy.gif"/><condition data="多云"/></forecast_conditions></weather></xml_api_reply>32333435363738394414243444546474849551最后,不要忘了加入定位相关的permission,这里还有一些细节问题,比如摄氏度和华氏度的转换以及时区问题。
天气预报分析报告

天气预报分析报告一、前言天气对我们的生活起着非常重要的作用,因此天气预报也是大众所关注的话题。
通过对近期天气情况的分析和预测,可以帮助人们做好衣食住行的规划安排,避免出现一些不必要的困难和麻烦。
本篇报告对最近出现的天气状况进行了分析,并提出了预测和建议,希望对广大市民的生活有所帮助。
二、天气状况分析最近的天气总体上呈现出了阴雨连绵的状况。
通过对各类天气数据的收集和分析,可以发现以下几个方面的情况:1.温度变化最近的气温较为稳定,整体上保持在8℃-15℃之间,没有出现显著的波动。
可以看出,此时气温较为宜人,人们在出门时无需过于担心气温对身体的影响。
2.降水情况近期降水频繁,特别是在夜晚较为明显。
可以推测出年末和初春之间的降水是相对较多的,这也是值得注意的情况。
需要注意的是,此时降水几率较高,要及时采取防范措施。
3.风力变化风力方面总体趋于较弱,全天平均风速一般不会超过2级。
事实上,这也是最近少有的好天气之一。
但是由于降雨的影响,局部地区的风速可能会达到4-5级,特别是在雨势变大时更加明显。
4.能见度情况受到降水的影响,能见度长时间处于较低状态。
在雨雾天气时,需要格外注意能见度的变化。
此时应尽量避免在室外活动,确保出行的安全。
三、天气预测和建议根据近期天气情况和过去的气象数据,可以对未来几天的天气情况作出预测:1.未来两天未来两天天气以阴雨为主,气温偏低。
需要注意的是,降水几率较高,同时伴随着雨雾天气,能见度可能较低。
建议市民减少出门次数,尽量选择安全快捷的出行方式。
2.未来三到五天未来三到五天的天气爱温和多云为主,温度逐渐回升。
一些雨雾天和阴雨天还是会出现,市民仍然需要做好防范措施,准备一些针对雨天的工具和用品。
综上所述,天气预报分析报告提供了较为详细的天气信息和预测,对人们的生活起到了很好的辅助作用。
市民应该密切关注天气预报信息,做好对应的准备工作,利用预报信息避免出席一些不必要的麻烦和危险。
天气预报报告

天气预报报告根据最新的气象数据和分析,以下是对未来一周天气的预报报告。
第一部分:气象概况本周天气总体上将保持稳定,但会有一些局部的天气变化。
整体而言,气温逐渐升高,天空晴朗,降水量较少。
以下是对每天天气状况的具体预报。
第二部分:每日天气预报星期一:预计天气晴朗,气温逐渐升高,最高温度预计在25摄氏度左右,风力较轻。
星期二:天气依旧晴朗,气温进一步升高,最高温度预计在28摄氏度左右,风力较轻。
星期三:天气状况与前两天类似,晴朗、温暖,最高温度预计在30摄氏度左右,风力依然较轻。
星期四:天气稍有变化,局部地区可能出现云层,但整体上仍以晴朗为主。
最高温度预计在29摄氏度左右,风力逐渐加强。
星期五:天气状况与星期四类似,局部地区可能有阵雨,但整体上天空依然晴朗。
最高温度预计在28摄氏度左右,风力较强。
星期六:天气转凉,有一定降温趋势,最高温度预计在26摄氏度左右。
风力逐渐减弱。
星期日:天气依旧凉爽,最高温度预计在24摄氏度左右,风力较弱。
第三部分:气象分析根据以上的天气预报,我们可以看出本周天气总体上是晴朗、温暖的。
这种天气状况对于户外活动和农作物生长都非常有利。
然而,我们也需要注意到局部地区可能出现的阵雨和风力增强的情况,以便做好相应的准备工作。
总结综上所述,本周天气预报显示晴朗、温暖的天气将主导大部分时间。
尽管如此,我们仍需关注局部地区可能出现的阵雨和风力增强的情况。
根据这一预报,我们可以合理安排各项活动,并做好相应的天气应对措施。
这份天气预报报告是根据最新的气象数据和分析得出的结论,但天气变化十分复杂,预报结果仅供参考。
请大家密切关注天气预报的更新,并根据实际情况做好相应的应对措施。
Android智能手机天气预报系统设计及实现

Android智能手机天气预报系统设计及实现Android智能手机天气预报系统设计及实现一、引言随着智能手机的广泛普及,天气预报成为人们日常生活中必不可少的信息之一。
为了满足人们对天气预报的需求,并利用现有的科技手段,本文设计并实现了一款Android智能手机天气预报系统。
二、系统需求分析1.功能需求:(1)实时天气查询:用户可以随时查询当前位置的实时天气情况,包括温度、湿度、风力等指标。
(2)天气预报查询:用户可以查询未来一周的天气预报情况,了解每天的温度变化、降水概率等信息。
(3)城市切换:用户可以切换查询城市,系统能够自动定位用户当前位置。
(4)数据更新:系统能够实时更新天气数据,保持数据的准确性和及时性。
2.性能需求:(1)响应速度快:系统需要实时响应用户的查询请求,保证用户的使用体验。
(2)界面友好:系统的界面要友好美观,操作简单,方便用户进行查询操作。
(3)数据准确:系统拉取的天气数据需要准确无误,不能有误导用户的情况出现。
(4)占用资源低:系统需要尽可能减少对手机资源的占用,避免影响手机的正常使用。
三、系统设计1.软件架构:系统采用MVC(Model-View-Controller)软件架构,将视图、逻辑处理和数据模型分离,提高代码的复用性和可维护性。
2.界面设计:系统采用流行的Material Design风格,界面简洁明了,采用卡片式布局展示天气信息。
主界面包括一个搜索框和实时天气展示模块,用户可以在搜索框输入城市名称进行查询。
查询结果以卡片形式呈现,包括日期、天气图标、温度范围等信息。
3.数据获取和处理:系统使用第三方天气数据API,通过HTTP协议从服务器获取天气数据。
获取到的数据为JSON格式,系统解析JSON数据并提取所需字段,如温度、湿度等。
4.功能实现:(1)实时天气查询:系统获取用户输入的城市名称,并使用API发送请求获取实时天气数据,然后将数据展示在界面上。
同时,系统会定时刷新数据,保持实时性。
基于Android的天气预报的设计与实现

基于Android的天气预报的设计与实现目录1.引言12.系统分析22.1需求分析 22.2可行性分析 22.3性能分析 33.系统设计33.1总体结构设计 33.2数据库设计 33.3数据获取与显示 53.4详细设计 64.系统实现74.1软件界面设计74.2天气信息显示模块74.3城市管理显示模块94.4主界面数据请求125.系统测试125.1测试方案设计125.2测试用例创建135.3测试结果分析146.结语14参考文献14基于Android的天气预报的设计与实现摘要:智能手机现在已经成为人们的随身必带物,甚至因为智能手机而出现的一个种族--低头族。
所以智能手机系统已经成为了人们所关注的一个信息,基于手机智能系统的应用程序也开始受人们关注。
在这个智能系统终端的飞速发展过程中,出现了几大权威,如谷歌公司创立的Android系统,苹果公司创立的iOS系统等。
该项目是用eclipse开发工具开发的在Android系统的智能手机上运行的天气预报软件。
这个软件具有显示未来几天内的天气信息和有查看其它城市的天气信息的功能。
与现在市面有出现的天气预报软件相比,这个软件有不用花太多流量就可以查看天气信息;且这个软件完全没有广告的优点。
本项目就在剖析讨论基于Android系统的技术的基石上开发设计,为了使天气预报这个应用程序更加简单明了。
关键词:Android 天气预报手机软件数据库1.引言手机智能系统的来临,使人们的生活质量发生改变,如学习,不再需要花时间去图书馆或者书店,人们只需要在手机上下载相关文本,就可以学习到新的东西。
Android系统又是所有手机智能系统的占比率是最大的。
Android开发变成了一种主流趋势。
天气的信息,一直是人们所关系的一个话题。
本项目就是做基于Android系统的天气预报的设计与实现。
天气预报这个APP是一个能提供天气信息的应用程序,可以让人们在现如今这个快节奏的发展过程中随时随地的获取天气信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
交通职业学院2012-2013学年第一学期《Android应用程序开发》期末课程报告2012年11月第一章项目背景现有的3G技术和移动互联网技术的快速发展,智能手机功能的不断增强,让基于Android平台的查询需求越来越多。
本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。
通过Web Service等技术让用户体验到前所未有的移动计算。
第二章需求分析一.功能需求在这个综合示例中,有一个显示天气情况的用户界面,可以通过图片和文字显示当前和未来几天的天气状况,包括温度、湿度、风向和雨雪情况等。
这些天气数据是通过后台服务获取的,这个后台服务按照一定时间间隔,从Google上获取天气预报信息,并将天气信息保存在后台服务中。
示例还需要提供基于SMS 短信的天气数据服务,其他手机用户可以向本示例所在的手机上发送SMS短信,在短信中包含特定的关键字,则可以将已有的天气情况通过SMS短信回复给用户。
最后,每个被发送的SMS短信都会被记录下来,用户可以浏览或删除这些记录信息。
二.界面需求从上面的描述中可以基本了解软件的功能需求,但为了将需求分析过程变得简单明了,首先找出用户界面上需要显示的容。
功能描述中有“显示天气情况的用户界面”和“用户可以浏览或删除这些记录信息”,除此以外,一般应用软件还应有显示配置信息的界面。
因此,本示例应该包含三个用户界面:显示天气预报的用户界面显示已发送SMS短信的用户界面浏览和设置配置信息的用户界面三.部功能从用户界面出发,分析隐藏在界面后面的部功能,这些功能则是程序正常运行的基础(1)显示天气预报的用户界面;①获取Google的天气数据②保存天气数据信息(2)显示SMS短信的用户界面①根据关键字监视SMS短信②发送包含天气信息的SMS短信③将发送SMS短信的相关信息写入数据库(3)浏览和设置配置信息的用户界面①将用户设置的配置信息保存到数据库②启动时读取数据库中的配置信息③支持恢复缺省设置第三章程序设计一.用户界面设计根据需求中的用户界面分析,应用程序应包含三个主要的用户界面,每个用户界面的显示容在“显示天气预报的用户界面”中,显示目标城市的当前的天气状况,包括城市名称、温度、湿度、风向、雨雪情况和获取数据时间等信息。
在界面的下方显示未来四天的天气状况,但仅包括温度和雨雪情况在“显示已发送SMS短信的用户界面”中,显示每个回复短信的时间、目标手机、城市名称、当天的天气状况和未来一天的天气状况在“浏览和设置配置信息的用户界面”中,显示希望获取天气预报的城市名称、获取数据的频率和短信监视的关键字,并允许用户设置是否提供短信服务,以及是否记录回复短信信息用户界面草图:二.数据库设计本示例主要有两种数据需要存储配置信息:因为配置信息的数据量很小,从Android支持的存储方式上分析,可以保存在SharedPreference、文件或SQLite数据库中SMS短信服务信息: SMS短信服务信息是一个随着时间推移而不断增加的数据,属于文本信息,而且有固定的格式,因此适合使用SQLite数据库进行存储综合分析这两个需要存储的数据,选择SQLite数据库作为存储数据的方法(1)配置信息:配置信息中主要保存目标城市的名称,访问Google更新天气信息的频率,请求天气信息服务短信的关键字,以及是否提供短信服务和是否记录短信服务容配置信息的数据库表结构(2)SMS短信服务信息:SMS短信服务信息主要保存请求天气服务短信的发送者、短信容、接收时间和回复信息的容SMS短信服务信息的数据库表结构三.程序设计程序模块设计:从功能需求上分析,可以将整个应用程序划分为4个模块,分别是用户界面、后台服务、数据库适配器和短信监听器。
下图是模块结构图从模块结构图中不难看出,后台服务是整个应用程序的核心,主要包含数据获取子模块和短信服务子模块。
数据获取子模块负责周期性的从Google获取天气信息;短信服务子模块则负责处理接收到的服务请求短信,并发送包含天气信息的短信。
后台服务由用户界面通过Intent启动,启动后的后台服务可以在用户界面关闭后仍然保持运行状态,直到用户通过用户界面发送Intent停止服务,或系统因资源不足而强行关闭服务。
用户界面从后台服务获取天气信息,而没有直接通过网络访问Google的天气数据。
一方面是因为后台服务使用了工作线程,通过后台服务获取天气数据可以避免因网络通信不畅造成界面失去响应。
另一方面,在用户关闭界面后,后台服务仍然需要更新天气信息,以保证短信服务数据的准确性。
用户界面通过直接调用数据库适配器,向SQLite数据库中读写配置信息,或对SMS短信服务信息进行操作。
短信监听器是一个BroadcastReceiver,监视所有接收到的短信。
如果短信中包含用户自定义的关键字,短信监听器则会认为这条短信是天气服务请求短信,将短信的相关信息写入后台服务的短信服务队列。
如果用户在配置信息中选择无需提供短信服务,短信监听器仍然继续监听所有短信,只是后台服务不再允许将服务请求短信写入服务队列。
数据库适配器封装了所有对SQLite数据库操作的方法,用户界面和后台服务会调用它实现数据库操作。
第四章项目功能描述一.系统主要功能本软件要完成在android手机上实现天气的即时预报。
所涉及的功能有:1.启动程序后可以进行城市、更新频率的设置;2.可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。
使用效果图实现与相应天气的结合。
3.这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过Google提供的公共接口获取天气预报信息,并将天气信息保存在本地数据库中。
二.工程结构在程序开发阶段,首先确定“天气预报软件”的工程名称为WeatherDemo,包名称为edu.hrbeu.WeatherDemo。
然后根据程序模块设计的容,建立WeatherDemo示例,WeatherDemo示例源代码的文件结构:为了使源代码文件的结构更加清晰,WeatherDemo示例设置了多个命名空间中,分别用来保存用户界面、数据库、后台服务、SMS短信和天气数据的源代码文件WeatherDemo示例的命名空间WeatherDemo示例将不同用途的源代码文件放置在不同的命名空间中WeatherDemo示例的文件用途说明Android资源文件保存在/res的子目录中。
/res/drawable目录中保存的是图像文件, /res/layout目录中保存的是布局文件,/res/values目录中保存的是用来定义字符串和颜色的文件,/res/xml目录保存的是XML格式的数据文件。
所有在程序开发阶段可以被调用的资源都保存在这些目录中。
资源文件名称与用途:三.数据库适配器数据库适配器是最底层的模块,主要用于封装用户界面和后台服务对SQLite数据库的操作。
数据库适配器的核心代码主要在DBAdapter.java文件中用户保存配置信息的类文件Config.javaConfig.java文件的全部代码如下:1 package edu.hrbeu.WeatherDemo.DB;23 public class Config {4 public static String CityName;5 public static String RefreshSpeed;6 public static String ProvideSmsService;7 public static String SaveSmsInfo;8 public static String KeyWord;910 public static void LoadDefaultConfig(){11 CityName = "New York";12 RefreshSpeed = "60";13 ProvideSmsService = "true";14 SaveSmsInfo = "true";15 KeyWord = "NY";16 }17 }从代码中不难看出,公有静态属性CityName、RefreshSpeed、ProvideSmsService、SaveSmsInfo和KeyWord,完全对应数据库中保存配置信息表的属性(参照表12.1)。
在程序启动后,保存在数据库中的城市名称、更新频率、是否提供短信服务、是否保存短信信息和关键字等容,将被读取到这个Config类中,供其它模块做逻辑判断时使用。
代码第10行的LoadDefaultConfig()函数,保存了程序置的配置参数此函数会在两个情况下被调用,用户主动选择“恢复缺省设置”;首次启动程序时,用来初始化保存配置参数的数据库,DBAdapter类与以往介绍过的数据库适配器类相似,都具有继承SQLiteOpenHelper的帮助类DBOpenHelper 。
DBOpenHelper在建立数据库时,同时建立两个数据库表,并对保存配置信息的表进行了初始化。
在DBAdapter类中,用户界面会调用SaveConfig()和LoadConfig(),从SQLite数据库中保存和读取配置信息。
保存配置信息时,SaveConfig()函数会将Config类中的公有静态属性写入数据库;反之,LoadConfig()会将数据库中的配置信息写入Config类中的公有静态属性。
另一个会调用DBAdapter类的是后台服务,即WeatherService类。
后台服务主要调用SaveOneSms(SimpleSms sms)、DeleteAllSms()和GetAllSms()函数,分别用来保存SMS短信记录、删除所有SMS数据记录和获取所有SMS数据记录。
在GetAllSms()函数中,调用了一个私有函数ToSimpleSms(Cursor cursor),用来将从数据库获取的数据转换为SimpleSms实例数组。
四.短信监听器短信监听器本质上是BroadcastReceiver,用于监听Android系统所接收到的所有SMS短消息,可以在应用程序关闭后仍然继续运行,核心代码在SmsReceiver.java文件中。
在介绍SmsReceiver类前,先说明用来保存SMS短信容和相关信息的SimpleSms类。
android.telephony.SmsMessage是Android 提供的短信类,但这里需要一个更精简、小巧的类,保存少量的信息,因此构造了SimpleSms类,仅用来保存短信的发送者、容、接收时间和返回结果。