Android系统课程设计报告2016年夏季学期题目:基于Android的天气预报开发学院:电气与电子工程学院专业:电子信息工程学生姓名:学号:指导教师:完成日期:2016年7月15日评分表项目号一二三总分满分25 50 25 100 得分评阅人说明:项目一,考察程序运行情况。
项目二,考察完成情况包括功能完整性,工作量,界面,用户体验等。
项目三,考察课程设计报告的格式和完整性。
摘要随着移动通信技术的发展和无线数据业务的进步,手机已被赋予了除通话以外的其它许多功能。
全新的手机软件领域已逐渐聚焦了众多软件开发商的目光,软件开发者和软件用户将共同面临这个振奋人心的新境界。
本设计使用Android设计技术开发了一种运用在Android系统上的手机天气预报软件系统,本系统通过选择城市来获得天气,风向,风向,温度等信息。
基于手机的天气预报系统软件可以使用户对于各地的天气情况的实时掌握,极大的方便了用户的出行和行程安排,避免了不必要的麻烦,具有很强的实用性。
关键词:Android;手机天气预报软件。
目录第1章绪论 .............................................................................................. 错误!未定义书签。
1.1 课题研究内容 (1)1.2 课题研究的目的和意义 (1)1.3 课题研究前景 (2)第2章系统需求分析 (3)2.1 系统功能需求 (3)2.2 系统流程图 (3)2.3 系统界面需求 (4)2.4 系统性能需求 (4)第3章详细设计和功能实现 (5)3.1界面的设计 (5)3.1.1欢迎界面设计 (5)3.1.2菜单界面设计 (6)3.2 各模块详细设计 (6)3.2.1欢迎模块设计 (6)3.2.1主工程设计 (7)第4章软件测试 (15)4.1 电脑模拟器测试 (15)4.2 手机端测试 (17)第5章总结与展望 (18)5.1总结 (18)5.2不足与展望 (18)参考文献 (19)附录 (20)重要程序1 (18)重要程序2 (18)一、绪论Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
Android 操作系统最初由Andy Rubin开发,主要支持手机。
2005年8月由Google收购注资。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
第一部Android智能手机发布于2008年10月。
Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。
2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。
2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
1.1 课题研究内容本课题研究的是基于Android平台下的天气软件,目的是使用户能随时随地的查询天气信息及天气变化情况,让生活更加舒适方便。
本文讲述Android平台下天气软件的界面设计以及数据的获取和解析,主要包括界面的实现,控件的使用,界面的布局和数据处理等内容,结合中国气象网的天气数据,将准确的天气情况以友好的方式呈现给用户,使用户更加赏心悦目的体验本软件的服务。
通过对界面的布局及控件的应用等相关内容的学习,使我们对Android平台下界面开发工作有一个初步的了解,并且经过这次开发过程,能够基本掌握这些内容。
1.2研究目的和意义天气软件是一种非常实用的信息服务,随着智能手机的不断普及,各种智能手机平台下都有各种各样的天气软件。
Android作为现在主流的智能手机之一,自然也需要这方面的软件。
天气关系到人们的日常生活,如告知温暖,方便出行等。
一款简单实用的天气软件会很吸引用户。
基于Android平台的天气软件已经有很多,经过分析,用户第一眼往往是一个软件的外观,一个好看的界面才能让用户以一种爱美之心去尝试,才能进一步了解一个软件的好坏,所以吸引眼球的界面是争取用户的第一步。
因此,界面设计工作对应用程序来说非常重要,在界面上吸引了用户,才能进一步让用户体验应用程序中的功能,使用这个软件。
1.3研究前景Android最吸引人的特点是开源特性,因其开源,允许所有人对其代码进行开发和修改,同时又由于其代码的简单易学性,Android在全世界拥有众多的粉丝。
Android 在中国的前景十分广阔,首先是有成熟的消费者,在国内,Android社区十分红火,这些社区为Android在中国的普及做了很好的推广作用。
国内厂商和运营商也纷纷加入了Android阵营,包括中国移动,中国联通,中兴通讯,华为通讯,联想等大企业,同时不仅仅局限于手机,国内厂家也陆续推出了采用Android系统的产品,我们可以预见Android将会被广泛应用在国产智能上网设备上,将进一步扩大Android系统的应用范围。
Android采用了软件层(Software stack)的构架,主要分为三个部分。
底层以Linux 为内核作为基础,由C语言开发,只提供基础功能,中间层次包话函数库和虚拟机,由C++开发。
最上层是各种应用软件,包话通话程序,短信程序。
应用软件可以由各公司或个人自行开发,以JA V A编写。
二、系统需求分析2.1 系统功能需求1.可以罗列出全国所有的省市县。
2.可以查看全国任意城市的天气信息3.可以自由的切换程式去查看其他城市的天气4.提供手动更新以及后台自动更新天气的功能2.2 系统流程图图2.1 系统流程图2.3 系统界面需求根据应用程序的功能需要,对用户界面做如下分析:实时天气界面:显示城市当前的实时天气状况,包括城市名称、城市名片、天气情况、温度高低、星期等信息。
界面左边有一列城市列表,显示中国各个城市名称,当用户想知道哪个城市的天气情况时,点击这个城市名就可以获取天气状况,考虑到使软件占用尽量小的内存,软件去掉了不必要的花哨,显示城市名称,城市名片,温度和天气情况,同时对未来6天的天气情况简要描述,简要显示星期、天气描述、温度高低等数据,使用户一目了然,使人们及时了解天气变化,对日常生活出行、穿衣做好准备。
2.4 系统性能需求1.应用程序能根据中国天气网接口返回的数据准确的显示地区天气信息。
2.应用程序响应时间应在人的感觉和视觉范围内,系统响应时间足够迅速。
3.应用程序在android4.0及以上版本运行时,应具有适应能力,能稳定运行。
4.应用程序操作界面简单明了,易于操作。
三、详细设计和功能实现3.1 界面的设计3.1.1 欢迎界面的设计欢迎界面,采用简洁明了的布局,添加了一个button点击事件,点击即可跳转到主界面即省份选择菜单。
如图3.1所示图3.1 欢迎界面3.1.2 菜单界面设计菜单界面菜单界面采用列向布局和子菜单。
这样直观明了,简洁清晰。
(当为省份时标题栏显示中国),省份,城市。
如图3.2所示3.2 a b注:a为省份菜单,b为市级菜单3.2 各模块详细设计3.2.1 欢迎模块设计1.新建一个WelcomeActivity类,并让它继承Activity类。
任何活动都应该重写onCreate()方法。
public class WelcomeActivity extends Activity{protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}}2.新建一个布局文件,命名为welcome_layout,根元素选择为LinearLayout。
创建成功后,再LinearLayout下添加背景添加语句:android:background="@drawable/b"添加一个按钮,用于点击事件的触发:<Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="点击查询天气" />在WelcomeActivity里,关联布局文件和实例化button.然后添加onClick,构造出一个intent,传入WelcomeActivity上下文,传入ChooseAreaActivity.class为目标活动。
即在WelcomeActivity这个活动的基础上打开ChooseAreaActivity这个活动。
然后通过startActivity()方法来执行这个intent。
setContentView(yout.welcome_layout);Button button1=(Button)findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener(){public void onClick(View v){Intent intent=newIntent(WelcomeActivity.this,ChooseAreaActivity.class);startActivity(intent);3.2.2 主工程设计3.2.2.1 第一阶段1.新建工程命名为coolweather。
为了让项目有更好的结构。
需要在com.coolweather.app包下再新建一个包,如图3.3所示。
图3.3 新建包构架其中activity包用于存放所有活动代码,db包用于存放所有数据库相关的代码,model包用于存放所有模型相关的代码,receiver包用于存放所有广播相关的代码,service包用于存放所有服务相关的代码,util包用于存放所有工具相关的代码。
2.创建数据库和表,这样从服务器获取的数据才能够存储到本地。
表的设计这里建立三张表,Province,City,County,分别用于存放省,市,县的各种数据信息,三张表的建表语句如下(以county表为例)County:create table County(id integer primary key autoincrement,county_name text,county_code text,city_id integer)其中id是自增长主键,county_name表示县名,county_code表示县级代号,city_id 是county表关联city表的外键。