基于android系统的天气预报查询系统Word文档下载推荐.docx
- 文档编号:7197691
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:30
- 大小:1.10MB
基于android系统的天气预报查询系统Word文档下载推荐.docx
《基于android系统的天气预报查询系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于android系统的天气预报查询系统Word文档下载推荐.docx(30页珍藏版)》请在冰点文库上搜索。
为顺应潮流,本设计旨在搭载Android的移动设备上运行,实现天气状况的实时动态更新与显示,方便人们的出行与生活。
1.2系统研究内容
1.界面的设计
2.代码的设计
3.程序的测试
4.产品的发布
1.3项目需求分析
根据功能的需求,分析此项目的主要功能应具备以下几点:
1.精确查询全国各地城市未来几天内的实时天气状况
2.系统要具有实用性,符合用户查看信息习惯,界面设计优美
3.系统要具有稳定性,且在一定程度上节省流量的开销
2.Googleandroid移动平台的相关理论
2.1Googleandroid移动平台的概述
Android是Google公司于07年11月5日宣布的基于LINUX平台开源手机操作系统,该平台由操作系统,中间件,用户界面和应用软件组成,Android是Google开发的基于Linux平台的开源手机操作系统。
它包括操统,用户界面和应用程序----移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,谷歌与开放手机联盟合作开发了Android,这个联盟由包括中国移动,摩托罗拉,高通,宏达在内的30多家技术和无线应用的领军企业组成。
通过与运营商,设备制造商,开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化,开放式的移动电话软件平台,在移动产业内形成一个开放式生态系统。
2.1.1Android系统的特点
1.开放性。
Google与开放性手机联盟合作开发了android,Google通过与运营商,设备制造商,开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化,开放式的移动电话软件平台,在移动产业内形成一个开放式生态系统。
2.应用程序无界限。
Android上的应用可以通过标准API访问核心移动设备功能。
通过互联网,应用程序可以声明它们的功能可提供其它应用程序使用。
3.应用程序是在平等的条件下创建的,移动设备上的应用程序可以被替换或扩展,即使是拨号或主屏幕这样的核心组件。
4.应用程序可以轻松地嵌入网络。
应用程序可以轻松地嵌入HTML、JavaScript和样式表,还可以通过Webview显示内容。
5.应用程序可以并行运行。
Android是一种完整的多任务环境,应用程序可以在其中并行运行,在后台运行时,应用程序可以生成通知引起注意。
2.1.2Android的功能
1.支持虚拟键盘。
虚拟键盘的出现意味着基于Android1.5或以上的版本的移动设备可以同时支持物理键盘和虚拟键盘。
2.使用widget实现桌面的个性化。
可以用widget修饰自己的桌面。
大多数小的Web应用都是从网络上获得实时数据并展示给用户的,android预装了Widget,包括数字时钟,日历,音乐播放器,相框。
3.用在线文件快速浏览数数,类似于OSXLeopard的Quicklook特征,Android的在线文件夹可显示的数据条目,比如联系人,喜欢的应用,E-mail信息,播放列表,书签,RSS源等,并不需要运行系统程序处理特定的数据条目。
4.视频录制和分享。
Android还有录制和分享视频的功能,对回放和MPEG-4,3GP等视频也有了更好的支持。
可以通过E-mail,MMS或直接上传等方式来分享视频。
5.更快,更兼容的浏览器,Android的基于WebKit内核的浏览器带来了重要的调速半置,这得益于新的WebKit渲染引擎和优化的JAVA脚本编译器。
6.Voicesearch语音搜索。
带有语音识别技术的Google手机已于2008年11月面世,它支持语音搜索功能,该功能增强了默认的搜索能力,已超过了纯文本搜索。
7.立体蓝牙和免提电话。
除了增强的免提电话体验,Android还支持立体蓝牙(A2Dphe和AVCRP),并有自动配对功能。
8.强大的GPS技术.Android内部提供了大量的GPS组件,我们可以很轻松地获得设备当前的位置等信息,让导航等功能更加完善。
9.Android系统硬件检测,android可自动检测和修复SD卡的文件系统,允许第三方应用显示Android系统的硬件特征,为了让用户下载到与自己的设备匹配的应用,我们可以检测用户设备的硬件信息,让满足应用要求的设备安装该程序。
2.2Googleandroid移动平台开发过程研究
Android移动平台作为21世纪的新秀,受到了越来越多的开发者的钟爱,在这股开发的浪潮中,逐渐形成了具有Android一套具有Android特色的开发流程。
由于Android的优越性,其开发显得非常的有规律可寻。
大致的开发流程如下:
需求分析:
作为一个软件,它必须有其存在的意义和价值,而这个价值和意义就需要靠需求分析来确定。
功能分析。
作为一个手机软件,它的使命就是给用户使用的。
如何提供用户最好的用户体验就值得每一个程序员的深思,这也是确保一个程序成功的关键所在。
界面设计:
作为一个手机软件,其只能在极有限的区域中显示,如何在有限的空间里更完美的展现出自己的独特之处就显得更为重要了。
测试:
在任何一个软件开发行业中,无论是J2EE,J2SE,J2ME等等其他开发中,测试时必不可少的一环,在Android开发中,由于手机的高频率使用,和硬件系统上的不足,使得对软件的要求更加的严格,这就要求在开发完成后,再对其进行严格的测试,而测试又包括了:
单元测试,系统测试等方面的测试。
系统开发:
作为一个软件的主体部分,系统开发的好坏直接决定了该系统的性能和寿命。
发布:
在完成一个系统的开发后,就要对其发布,经过广大用户的考验,只有经过这个过程,才算是一个合格的产品,在Android平台中,Google提供了完整的发布机制------Googlemarket。
2.3Googleandroid移动平台下的应用研究
Android系统提供给应用开发者本身就是一个框架,所有的应用开发都必须遵守这个框架原则。
我们在开发应用时就是在这个框架上进行扩展,下面来看看android这个框架都有些什么功能可供我们使用。
Android.app:
提供高层的程序模型和基本的运行环境
Android.content:
包含对各种设备上的数据进行访问和发布
Android.database:
通过内容提供者浏览的操作数据库
Android.graphics:
图形库,包含画布,颜色过滤,点,矩形,可以将它们直接绘制到屏幕上。
Android.location:
定位和相关服务的类
A:
提供帮助网络访问类,超过通常的*接口。
Android.media:
提供一些类管理多种音频,视频的媒体接口。
Android.os:
提供了系统服务,消息转输和IPC机制。
Android.opngl:
提供OpenGL的工具。
Android.provider:
提供访问Android的内容提供者的类。
Android.telephony:
提供与拨打电话相关的API交互。
Android.view提供基础的用户界面接口框架。
Android.util:
涉及工具性的方法,例如时间日期的操作。
Addroid.webkit:
默认浏览器操作接口。
Android.widget包含各种UI元素在应用程序的布局中使用。
2.4小结
本章主要通过三个方面:
1.Googleandroid移动平台的概述:
2.Googleandroid移动平台开发过程的研究:
3.Googleandroid移动平台下的应用研究,概要的介绍了Googleandroid移动平台相关知识,对Googleandroid移动平台有初步的认识和了解,为后面的开发做了坚实的基础。
3.项目设计
3.1项目总体设计
本软件是一个AppWidget应用程序,启动程序后可以进行城市的设置,可以通过图片和文字显示当前和未来两天的天气状况,包括温度、风向和雨雪情况等。
该软件的基本功能需求有:
1.欢迎界面
系统启动时首先进入欢迎界面;
2.启动AppWidget应用程序
为了方便用户实时了解天气状况,特别添加在Android系统桌面上显示当前天气与时间的天气小部件,使用户拿起手机的第一时刻就能了解天气,同时当用户单击小部件时,自动跳转至天气显示界面,显示三天内的详细天气。
3.设置所在城市界面
通过可伸展性下拉列表单击选择系统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形式来过滤查询预报城市。
当单击选中城市时跳转至天气显示界面,来显示该城市当三天内的天气状况;
第一次运行时自动跳到该界面。
4.显示天气界面
显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当日的建议,用户可通过按菜单键来显示菜单更新当前天气与设置天气显示的界面背景,以及跳转至设置预报城市界面来更换预报城市。
3.2系统功能界面
3.2.1欢迎界面
当系统启动时,首先会显示欢迎界面。
如图3-1所示:
图3-1欢迎界面
3.2.2设置所在城市界面
1.当第一次运行程序时,跳转至城市设置界面进行预报城市的选择,如图3-2所示:
图3-2设置城市
2.用户可通过输入框过滤查询当前系统中预存的城市,如图3-3所示:
图3-3过滤框输入选择城市
3.2.3天气显示界面
1.选择了预报城市后,系统跳转至天气显示界面,显示该城市三天内的实时天气,
如图3-4所示:
图3-4显示天气
2.在天气界面中用户可通过按菜单键来调出菜单,设置城市,更新天气与更换背景,如图3-5所示:
图3-5调出菜单
3.2.4Widget桌面小部件界面
方便用户第一时间了解天气动态,添加widget显示功能界面,如图3-6所示:
图3-6Widget桌面小部件
3.3设计目标
设计完成一个实用稳定的天气预报系统,同时要廉价使其能滿足大部分用户的需求,因此针对上述要求,本设计应滿足:
1.系统能及时的反馈指定预报城市的天气情况;
2.可设置所在城市,自行输入或者列表选择城市;
3.节省流量开销,规定在指定的时间间隔内才更新天气,其它时段显示缓存的天气;
4.操作方便快捷,使用简单,界面设计美观大方,支持widget。
4.系统设计
4.1开发及运行环境
1.JDK1.6.0_10
2.Eclipse3.8
3.AndroidDevelopmentToolkit(ADT)21.0.1
4.Android2.2及以上
5.Windows7
4.2数据库设计
由于在本系统中是通过访问中央气象台提供的天气信息得到的天气预报,在查询指定城市的天气时,需要用到它提供的城市码,而城市码相对稳定不变,所以在构建系统时将其事先通过Android的网络访问技术将其缓冲到本地SQLite数据库进行保存起来,方便以后的查询,同时节省了流量开销。
综上所述在本地建立db_weather.db的数据库,其中只存在两个表:
provinces和citys。
citys表中存在city_num用天气的查询,同时还存在外键province_id与provinces表形成1对n的关系。
结构如图4-1所示:
图4-1数据库表结构
4.3主要方法及步骤
1.搭建Android开发环境,并建立名为WeatherForecastSystem项目。
2.在程序第一次运行时,将db_weather.db数据库文件导入到应用程序数据库中。
3.建立设置城市界面,读取数据库文件,获取省份,城市以及对应的城市码。
4.接收用户选择的城市码,访问:
5.解析天气信息,将城市码及天气信息缓冲下来,并为其设置有效时间,方便下次启动时直接得到天气信息,过期则从网上更新。
6.定时由保存的城市码更新天气信息。
4.4主要方法及技术
1.Android手机的界面UI设计
2.Android的网络通信
3.Android的广播
4.Widget小部件编程
5.JSON解析
6.SQLite数据库操作
7.Android文件操作
5.主要模块
5.1项目框架
在装有ADT插件的Eclipse中新建一个名为WeatherForecastSystem的项目,项目主要文件结构如图5-1所示:
图5-1WeatherForecastSystem工程的源代码文件结构
为了使源代码文件的结构更加清晰,WeatherForecastSystem工程设置了多个命名空间,分别用来保存用户界面、数据库、后台服务和工具实体的源代码文件。
源代码文件的名称以及说明如表5-1所示。
表5-1WeatherForecastSystem工程的文件用途说明
包名称
文件名
说明
com.weather.app
MainActivity.java
“天气显示页面”的Activity
WelcomeActivity.java
“欢迎页面”的Activity
SetCityActivity.java
“设置城市页面”的Activity
WeatherWidget.java
桌面小部件
UpdateWidgetService.java
后台更新服务
com.weather.adapter
MyListAdapter.java
城市列表
com.weather.dao
DBHelper.java
数据库操作类
com.weather.utils
WebAccessTools.java
网络访问工具类
5.2主要功能实现
5.2.1导入db_weather.db数据库文件
publicvoidimportInitDatabase(){
//数据库的目录
StringdirPath="
/data/data/com.weather.app/databases"
;
Filedir=newFile(dirPath);
if(!
dir.exists()){
dir.mkdir();
}
//数据库文件
Filedbfile=newFile(dir,"
db_weather.db"
);
try{
if(!
dbfile.exists()){
dbfile.createNewFile();
}
//加载欲导入的数据库
InputStreamis=this.getApplicationContext().getResources().openRawResource(R.raw.db_weather);
FileOutputStreamfos=newFileOutputStream(dbfile);
byte[]buffere=newbyte[is.available()];
is.read(buffere);
fos.write(buffere);
is.close();
fos.close();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
}
5.2.2实现城市列表的创建与过滤
实现城市列表是通过继承android.widget.BaseExpandableListAdapter适配器实现的,其中主要实现它的publicViewgetGroupView()得到列表的一级列表和publicvoidgetChildView()得到列表的二级子列表实现的,在这里由于只是实现文本显示功能,故用TextView组件来填充就行了,如果要构造这个自定义的适配器,则只需在提供存放省份直辖市的一级列表的数组String[]groups和存放对应的城镇的二级列表的String[][]childs就行了。
@Override
publicViewgetChildView(intgroupPosition,intchildPosition,
booleanisLastChild,ViewconvertView,ViewGroupparent){
TextViewtextView=null;
//这里判断convertView是否为空
if(convertView==null){
//产生一个TextView组件
textView=getGenericView();
//设置它的文本内容
textView.setText(getChild(groupPosition,childPosition).toString());
}else{
textView=(TextView)convertView;
returntextView;
publicViewgetGroupView(intgroupPosition,booleanisExpanded,
ViewconvertView,ViewGroupparent){
if(convertView==null){
textView.setText(getGroup(groupPosition).toString());
}else{
privateTextViewgetGenericView(){
AbsListView.LayoutP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 android 系统 天气预报 查询