东软实习专题报告

 实习专题报告

题  目:Android系统天气预报软件(日历提醒模块)的设计与实现  

实习名称:  毕业实习

班    级:  

学    号:

学生姓名:  

指导教师:  

哈尔滨工程大学

20##年9月9日


摘  要

随着移动设备的发展,手机软件的前景越来越广阔,尤其Android手机系统的出现极大的改变了手机市场的格局,其开放性和服务免费的优势也越来越明显,吸引了越来越多的运营商、厂商、开发者和消费者的眼球。

Android market的出现有了和apple store一较高低的局势,消费者也有了更多的选择,而应用程序开发也受到了广大开发者和厂商的重视。

本文根据Android手机系统的开发特点,基于eclipse开发环境,利用java语言和XML语言进行开发,在Android系统下实现当天及三天内天气的查询,备忘录的添加、修改、删除和提醒,日历的显示等。

经过模拟器与真机测试,Android系统下天气预报应用程序实现了对各地天气预报的查询功能、备忘录的添加、修改、删除和提醒功能以及日历显示、备忘显示功能,程序运行稳定,天气情况获取速度与网络连接速度有关,正常手机网络信号下,可在1-1.5秒内获取天气信息。

关键词:Android;天气预报



Android是基于Linux开放性内核的操作系统,是Google公司在20##年11月5日公布的手机操作系统。早期由原名为"Android"的公司开发,谷歌在20##年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。

Android的成功其中一个很重要的原因,Android手机系统的一个很大的优势在于其开放性和服务免费。Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度,突破了iPhone等只能添加为数不多的固定软件的枷锁;同时与Windows Mobile、Symbian等厂商不同,Android操作系统免费向开发人员提供,这样可节省近三成成本。Android项目目前正在从手机运营商、手机厂商、开发者和消费者那里获得大力支持。从其大量的厂商支持以及快速增长的用户数量可见一斑。

    综合上述观点,学习Android手机系统应用程序的开发有很大的必要,Android作为新兴的手机操作系统,能够迅速得到市场的青睐,有其成功的关键,它所应用到的技术也十分值得去学习,不管对于个人爱好,未来职业等都有很大好处。

1系统需求

天气变化反复无常,给人们的出行带来很多不便,随着生活水平的提高,人们对生活质量要求也逐渐提高,随着Andriod平台的广泛应用,Andriod操作系统手机越来越普及,人们对随时随地查询天气有了更加迫切的需求,希望随时掌握天气情况,从而开发Android手机天气预报系统,使用户随时随地掌握实时天气情况。

日历功能是手机的基本功能之一,日历应能显示当前日期及任意月的日历显示,在日历功能的基础上,应能与出行计划信息模块连接并能显示当月有备忘的日期。可添加、查询、删除、更改出行计划,天气获取服务出行计划,出行计划服务日历,日历也是天气预报系统必不可少的一部分。

对已添加的备忘信息以通知的形式显示在手机屏幕上方,并在软件启动及更新备忘信息时刷新通知列表。手机不可能永远开机,要求手机在开机后自动启动通知功能,将备忘信息添加到通知列表。

1.1一般性需求

(1)程序界面美观,易于操作;

(2)获取天气信息时间不能过长;

(3)数据库设计简单,数据量不易过大;

(4)程序不能与其他应用程序存在兼容性问题。

1.2功能性需求

(1)随时在有网络的地方通过应用Android操作系统的手机查询天气情况;

(2)可更换不同城市,并获取相应城市的天气信息;

(3)可对出行计划进行增删改查;

(4)可在日历中查询、更改、添加、删除相应的出行计划,并提醒用户;

(5)可以把获得的天气信息通过短信分享给他人。

2系统实现(日历提醒模块)

表2.1:系统总体功能模块分析

                  

2.1日历提醒模块实现

2.1.1业务说明

日历功能是手机的基本功能之一,在日历功能的基础上,可添加、查询、删除、更改出行计划,天气获取服务出行计划,出行计划服务日历,日历也是天气预报系统必不可少的一部分。

2.1.2功能描述

表2.2:日历提醒模块功能描述

2.1.3业务流程描述

图2.1业务流程图

    进入日历界面后,界面默认显示当月日历信息。通过单击日历上方的日期显示条,弹出日期设置对话框,进行日期设置。也可通过单击“上一月”、“下一月”进行逐月设置。单击每一月任意一天后,即进入出行计划模块,如当天已有备忘,则跳转到出行计划列表,如当天无备忘,则跳转到添加备忘界面。

    手机开机后,会自动发送开机广播,启动添加通知service,遍历数据库出行计划表,将当天的备忘以通知的形式添加到手机屏幕上方。当软件启动,或修改备忘信息(添加备忘、修改备忘、删除备忘)后,将自动更新通知列表,添加通知service不会停止,将一直驻留在手机内存中。

2.1.4主要算法描述

本模块日历显示利用Java中的Calendar类函数中的静态方法getActualMaximum(),获取任一月的最大天数,利用Calendar类内的静态属性YEAR、MONTH、DAY、DAY OF WEEK共同获取任一月第一天的星期。通过for循环对显示日期的42个TextView进行赋值,并对显示日期的TextView添加单击事件监听。

显示某一月的日期后,通过遍历数据库,查找当前月的所有备忘记录,并添加到相应的日期上。

通知功能通过Android自带的Broadcast和service组件,通过接收开机广播,启动通知服务,服务启动后,遍历数据库出行计划表,将当天的备忘添加到通知,并在软件启动和修改备忘信息时刷新通知列表。

2.1.5数据库设计

日历模块数据库设计一张表,存储出行计划的日期、时间、内容。本模块(日历模块)和出行计划模块要使用这张表,通知服务在查找备忘信息时也要使用这张表。

表2.3:数据库表

2.1.6界面视图

图2.2                                图2.3

(1)日历显示:背景图片与主界面一致,实现了整体风格的统一普通日期显示为白色,周末(周六、日)显示绿色,添加了备忘的日期显示为红色。日历最上面的日期显示标签可以点击,点击后弹出日期设置对话框(DataPickerDialog),可以设置任意天日期。

(2)日历进入后默认显示当前月,如图2.2,添加备忘后当天变成红色,手机屏幕上方添加一条通知,如图2.3.

3结论

基于当前手机用户对获取天气信息的要求,和Android系统软件开发标准,本文设计实现了一个Android系统下天气预报软件。通过与Google网站的连接,从网站上获取某一城市的当前天气信息和三天天气预报信息,并整理显示出来。并提供备忘录管理功能,包括备忘的添加、修改、删除以及备忘提醒的功能,并实现了一个简易日历功能,可以显示任意年、月的日期星期和备忘提醒。

经过查阅大量的文献资料,本文明确了课题的背景目的和意义,并且对国内外实现的标准和方式进行了分析。通过对系统的日历显示提醒模块进行详细设计和实现,本文取得了以下成果:

(1)通过Java自带的类函数和变量,实现了标准公立日历的显示,并可进行设置日期,显示任意月,显示任意天备忘。

(2)实现了与出行计划信息处理模块的连接与跳转,并可交换数据。

(3)通过应用Android中的Broadcast与service组件,实现了开机自启动服务,并将当天备忘以通知的形式显示在手机屏幕上方。

对软件进行手机测试表明,软件实现了需求的所有功能。但由于时间和技术水平的原因,软件仍存在一些不足和问题,主要是:界面不够美观,与现在网上的手机商业软件界面还相差太远;界面之间切换有一定延迟,主要是界面初始化时涉及到大量信息处理,而处理信息的算法不够优化导致;备忘提醒时间只精确到天,时间关系,没有做更大的精确。


参考文献

[1] 柯元旦,宋锐编.Android程序设计[M].北京:北京航天大学出版社,2010.

[2] 吴亚峰,索依娜.Android核心技术与实例详解[M].北京:电子工业出版社,2010.

[3] 余志龙.Google Android SDK 开发范例大全[M].北京:人民邮电出版社,2010.

[4] 杨文志.Google Android 程序设计指南[M].北京:电子工业出版社,2009.

[5] 陈嵩.新手学Java[M].北京:北京希望电子出版社,2010.

[6] (美)Shane Conder,Lauren Darcey.Android移动应用开发从入门到精通[M].北京:人民邮电出版社,2010.

[7] 郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010.

[8] 杨丰盛.Android应用开发揭秘[M]北京:机械工业出版社,2009.

[9] 朱桂英.Android开发应用从入门到精通[M].北京:中国铁道出版,2011.

[10] 张元亮.Android开发应用实战详解[M].北京:中国铁道出版社 ,2011.

[12] 余志龙.Google Android SDK开发范例大全[M].北京:第2版人民邮电出版社, 2010.

[13] 陈育春.Google Maps API开发大全[M].北京:机械工业出版社,2010.

[14] 江宽,龚小鹏.Google API开发详解:Google Maps与Google Earth双剑合璧[M].北京:第2版电子工业出版社,2009.

 

第二篇:东软实习总结报告

实习总结报告

题 目:智慧医疗之医生掌中宝

班 学

哈尔滨工程大学

20xx年x月x日

本次实习来到了沈阳的东软集团,我们在这里进行了为期两周的实习,实习的内容是嵌入式开发,主要是学习了Linux系统的操作,并且巩固拓展了C语言的知识。

初次运用Ubuntu虚拟机,其中的Linux系统是不同于windows系统,在VMare Workstation上操作命令全部是用键盘敲入命令,而不是用鼠标,这一点非常有趣。刚开始的时候会觉得纯键盘输入比较麻烦,即使是进入上一个文件夹或者是删除某个文件,都要键入好多的字符,不如鼠标来的便捷。但是当这些命令敲得多了,也就慢慢体会到这种命令方式的优点。在某些命令上键盘操作是优于鼠标操作的,这也就是Linux系统经久不衰的原因。

Linux的很多操作都比较有意思,在这里我要简单说一说一些命令的神奇之处。

①cat与vi。其中cat是在Ubuntu操作上显示文档内容,但是这个像我们平时用的只读阅读器,你可以清楚地看到文件里的内容,但是却不可修改。而vi命令却是像我们平时使用的word编辑器,可以看到内容,又可以修改内容。

②touch与mkdir。这两个命令都是创建的功能,touch是创建一个新的空文件,创建好之后可以用上面提到的vi来编辑内容。mkdir是创建一个空的目录,即mkdir是一个目录,我们可以用cd命令进入这个目录,从而又可以使用touch创建文档了。

③mv与cp。mv是迁移的命令,这个命令可以讲一个文件夹里的文档或子文件夹迁移到另一个文件夹中,二cp是复制的命令,与mv

不同的是cp命令是时候原文件夹还保存着被操作的文件,而mv命令则否。

这种存在异同的有趣的命令还有很多,在这里我就不一一列举了。下面我说一说C文件的编译。

普通的C文件编译仅用到gcc即可,例如我想要编译一个名为hello.c的文件,那么我就可以简单的输入命令:gcc -o hello hello.c 或者gcc hello.c -o hello。但是很有可能我们遇到这样的情况,即想要编译的文件不在当前文件夹里,这个时候我们要找到它的相对路径,此时需要在编译时加上-I。gcc命令还有一个功能就是可以同时编译不止一个源文件。

还有一个重要的知识是库文件。库文件又分为静态库与动态库,静态库是以.a为后缀结尾,动态库是以.so为后缀结尾。静态库和动态库在创建的过程中是存在差别的,例如制作静态库,首先要生成目标文件,然后再用ar命令使之归档。使用的时候,要将库文件连接到main函数里,然后再编译。编译的时候如果gcc所能找到库目录同时有两种版本,则优先链接动态库,若是想要使用静态库则需要在库名称前加上-static。

有些程序很长,我们在调试运行的时候会输入一大串的命令,如果遇到了程序出错我们会一遍一遍的调试,这个时候键入命令就会变得很繁琐,Linux系统中的Makefile的解决了这个问题。我们可以在Makefile中编辑每一次编译程序所用到的命令,把它存储在与程序相同的文件夹里,这样每次调试的时候只需要加入make,便能够快速

执行所有敲在Makefile里的命令了,这样方便快捷省时省力。

最有意思的我认为莫过于GTK界面的制作。GTK是一套用于创建图形用户界面的工具包,这个界面有一点像MATLAB中的GUI界面,构建一些函数来实现功能,然后这个界面就可用于接下来的鼠标操作,。包括如何创建窗口、显示窗口、设置各种参数等。为了在GTK中添加一些想要的文字按钮或者编辑框,GTK中包含了框的规则。框在GTK中是一种不可见的widget容器,它有水平框和垂直框两种。水平框是指构建放入窗口的顺序水平排列,垂直矿是指构建放入窗口的顺序垂直排列。水平框可以看作是只有一行的表格,而垂直框可以看作是只有一列的表格。但是他们的操作比表格更加简单,防止构件时不需要考虑构件的位置。

当大部分的操作了解后,我们就可以将arm2440与Ubuntu相连接,使用UDP或者TCP进行传输数据了。TCP和UDP的相同点是服务器进程都需要创建套接字,并把自己的本地地址绑定到这个套接字上,TCP中客户端只需要连接到服务器就可以了,UDP中客户端必须创建套接字并绑定地址。

除了Linux系统的学习,培训老师还带领我们复习并拓展了C语言学习,包括一些数组的运用,函数调用,指针运用等,每天晚上大家都会最一些小的练习巩固一天所学。

实习最后的几天我们以小组为单位完成了一个最终项目——智慧医疗之医生掌中宝,这个项目有软件与硬件的结合,把我们之前培训所学到的所有内容全部应用到了,不仅如此,还有很多没有学习的

东西,这就是来考验我们自学的能力了。

两周的实习生活结束了,回想起来比较怀念培训的时光。培训的时候每天早上来到培训基地,然后就是上午下午的培训,晚上还有晚自习,结束后八点半才能回寝室,每天的工作量长达八个半小时,虽然脑力劳动的时间比较长,但是大家一起学习的时光过得很快,尤其是这次来到一个陌生的地方,学一种从来没接触到的系统,短短的两周时间,让我们从陌生到可以小组合作完成一个完整的项目,这种精神上带来的喜悦是什么都掩盖不住的。Linux系统是一个很有用的系统,我们看到的很多程序员在完成项目的时候都是放弃鼠标仅用键盘,这次实习结束以后,我想我会在以后的时间里继续学习有关Linux的知识。最后我要感谢东软集团刘志韬老师对我们的细心讲解与耐心答疑,让我们在实习的过程中不觉艰难。

相关推荐