实习专题报告题目:Android系统天气预报软件(日历提醒模块)的设计与实现实习名称:毕业实习班级:学号:学生姓名:指导教师:哈尔滨工程大学2011年9月9日哈尔滨工程大学本科生毕业实习专题报告摘要随着移动设备的发展,手机软件的前景越来越广阔,尤其Android手机系统的出现极大的改变了手机市场的格局,其开放性和服务免费的优势也越来越明显,吸引了越来越多的运营商、厂商、开发者和消费者的眼球。Androidmarket的出现有了和applestore一较高低的局势,消费者也有了更多的选择,而应用程序开发也受到了广大开发者和厂商的重视。本文根据Android手机系统的开发特点,基于eclipse开发环境,利用java语言和XML语言进行开发,在Android系统下实现当天及三天内天气的查询,备忘录的添加、修改、删除和提醒,日历的显示等。经过模拟器与真机测试,Android系统下天气预报应用程序实现了对各地天气预报的查询功能、备忘录的添加、修改、删除和提醒功能以及日历显示、备忘显示功能,程序运行稳定,天气情况获取速度与网络连接速度有关,正常手机网络信号下,可在1-1.5秒内获取天气信息。关键词:Android;天气预报哈尔滨工程大学本科生毕业实习专题报告1Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。早期由原名为Android的公司开发,谷歌在2005年收购Android.Inc后,继续对Android系统开发运营,它采用了软件堆层的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。Android的成功其中一个很重要的原因,Android手机系统的一个很大的优势在于其开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与WindowsMobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。从其大量的厂商支持以及快速增长的用户数量可见一斑。综合上述观点,学习Android手机系统应用程序的开发有很大的必要,Android作为新兴的手机操作系统,能够迅速得到市场的青睐,有其成功的关键,它所应用到的技术也十分值得去学习,不管对于个人爱好,未来职业等都有很大好处。1系统需求天气变化反复无常,给人们的出行带来很多不便,随着生活水平的提高,人们对生活质量要求也逐渐提高,随着Andriod平台的广泛应用,Andriod操作系统手机越来越普及,人们对随时随地查询天气有了更加迫切的需求,希望随时掌握天气情况,从而开发Android手机天气预报系统,使用户随时随地掌握实时天气情况。日历功能是手机的基本功能之一,日历应能显示当前日期及任意月的日历显示,在日历功能的基础上,应能与出行计划信息模块连接并能显示当月有备忘的日期。可添加、查询、删除、更改出行计划,天气获取服务出行计划,出行计划服务日历,日历也是天气预报系统必不可少的一部分。2对已添加的备忘信息以通知的形式显示在手机屏幕上方,并在软件启动及更新备忘信息时刷新通知列表。手机不可能永远开机,要求手机在开机后自动启动通知功能,将备忘信息添加到通知列表。1.1一般性需求(1)程序界面美观,易于操作;(2)获取天气信息时间不能过长;(3)数据库设计简单,数据量不易过大;(4)程序不能与其他应用程序存在兼容性问题。1.2功能性需求(1)随时在有网络的地方通过应用Android操作系统的手机查询天气情况;(2)可更换不同城市,并获取相应城市的天气信息;(3)可对出行计划进行增删改查;(4)可在日历中查询、更改、添加、删除相应的出行计划,并提醒用户;(5)可以把获得的天气信息通过短信分享给他人。2系统实现(日历提醒模块)表2.1:系统总体功能模块分析功能模块名称备注天气信息模块主要获取城市天气信息及出行建议,并提供其余模块接口;切换城市模块更改省市功能,显示所选省市天气信息;出行计划模块查询、添加、更改、删除出行计划,并添加到日历备忘中,并设置提醒;日历提醒模块查询日历,并可查询、添加、更改、删除出行计划;分享天气模块将天气情况以短信形式发送给他人。2.1日历提醒模块实现2.1.1业务说明日历功能是手机的基本功能之一,在日历功能的基础上,可添加、查询、3删除、更改出行计划,天气获取服务出行计划,出行计划服务日历,日历也是天气预报系统必不可少的一部分。2.1.2功能描述表2.2:日历提醒模块功能描述功能名称日历模块业务背景实时获取日历信息是手机用户的基本需要功能说明1.显示当月的日历信息2.区分出周日和节假日3.在日历中添加、查询、修改、查询出行计划4.设置时间从而获取准确的时间5.设定时间以达到提醒的目的约束条件日历的准确性受到了手机系统的时间约束相关查询无其他需求无裁剪说明不可裁剪2.1.3业务流程描述显示日历设置日期编辑出行计划结束开始图2.1业务流程图进入日历界面后,界面默认显示当月日历信息。通过单击日历上方的日期显示条,弹出日期设置对话框,进行日期设置。也可通过单击“上一月”、4“下一月”进行逐月设置。单击每一月任意一天后,即进入出行计划模块,如当天已有备忘,则跳转到出行计划列表,如当天无备忘,则跳转到添加备忘界面。手机开机后,会自动发送开机广播,启动添加通知service,遍历数据库出行计划表,将当天的备忘以通知的形式添加到手机屏幕上方。当软件启动,或修改备忘信息(添加备忘、修改备忘、删除备忘)后,将自动更新通知列表,添加通知service不会停止,将一直驻留在手机内存中。2.1.4主要算法描述本模块日历显示利用Java中的Calendar类函数中的静态方法getActualMaximum(),获取任一月的最大天数,利用Calendar类内的静态属性YEAR、MONTH、DAY、DAYOFWEEK共同获取任一月第一天的星期。通过for循环对显示日期的42个TextView进行赋值,并对显示日期的TextView添加单击事件监听。显示某一月的日期后,通过遍历数据库,查找当前月的所有备忘记录,并添加到相应的日期上。通知功能通过Android自带的Broadcast和service组件,通过接收开机广播,启动通知服务,服务启动后,遍历数据库出行计划表,将当天的备忘添加到通知,并在软件启动和修改备忘信息时刷新通知列表。2.1.5数据库设计日历模块数据库设计一张表,存储出行计划的日期、时间、内容。本模块(日历模块)和出行计划模块要使用这张表,通知服务在查找备忘信息时也要使用这张表。5表2.3:数据库表字段名意义数据类型是否主键可否为空_id表IDInteger是不calendar备忘日期Text否否time备忘时间Text否是context备忘内容Text否是2.1.6界面视图图2.2图2.36(1)日历显示:背景图片与主界面一致,实现了整体风格的统一普通日期显示为白色,周末(周六、日)显示绿色,添加了备忘的日期显示为红色。日历最上面的日期显示标签可以点击,点击后弹出日期设置对话框(DataPickerDialog),可以设置任意天日期。(2)日历进入后默认显示当前月,如图2.2,添加备忘后当天变成红色,手机屏幕上方添加一条通知,如图2.3.3结论基于当前手机用户对获取天气信息的要求,和Android系统软件开发标准,本文设计实现了一个Android系统下天气预报软件。通过与Google网站的连接,从网站上获取某一城市的当前天气信息和三天天气预报信息,并整理显示出来。并提供备忘录管理功能,包括备忘的添加、修改、删除以及备忘提醒的功能,并实现了一个简易日历功能,可以显示任意年、月的日期星期和备忘提醒。经过查阅大量的文献资料,本文明确了课题的背景目的和意义,并且对国内外实现的标准和方式进行了分析。通过对系统的日历显示提醒模块进行详细设计和实现,本文取得了以下成果:(1)通过Java自带的类函数和变量,实现了标准公立日历的显示,并可进行设置日期,显示任意月,显示任意天备忘。(2)实现了与出行计划信息处理模块的连接与跳转,并可交换数据。(3)通过应用Android中的Broadcast与service组件,实现了开机自启动服务,并将当天备忘以通知的形式显示在手机屏幕上方。对软件进行手机测试表明,软件实现了需求的所有功能。但由于时间和技术水平的原因,软件仍存在一些不足和问题,主要是:界面不够美观,与现在网上的手机商业软件界面还相差太远;界面之间切换有一定延迟,主要是界面初始化时涉及到大量信息处理,而处理信息的算法不够优化导致;备忘提醒时间只精确到天,时间关系,没有做更大的精确。7参考文献[1]柯元旦,宋锐编.Android程序设计[M].北京:北京航天大学出版社,2010.[2]吴亚峰,索依娜.Android核心技术与实例详解[M].北京:电子工业出版社,2010.[3]余志龙.GoogleAndroidSDK开发范例大全[M].北京:人民邮电出版社,2010.[4]杨文志.GoogleAndroid程序设计指南[M].北京:电子工业出版社,2009.[5]陈嵩.新手学Java[M].北京:北京希望电子出版社,2010.[6](美)ShaneConder,LaurenDarcey.Android移动应用开发从入门到精通[M].北京:人民邮电出版社,2010.[7]郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010.[8]杨丰盛.Android应用开发揭秘[M]北京:机械工业出版社,2009.[9]朱桂英.Android开发应用从入门到精通[M].北京:中国铁道出版,2011.[10]张元亮.Android开发应用实战详解[M].北京:中国铁道出版社,2011.[12]余志龙.GoogleAndroidSDK开发范例大全[M].北京:第2版人民邮电出版社,2010.[13]陈育春.GoogleMapsAPI开发大全[M].北京:机械工业出版社,2010.[14]江宽,龚小鹏.GoogleAPI开发详解:GoogleMaps与GoogleEarth双剑合璧[M].北京:第2版电子工业出版社,2009.