软件工程毕业论文ANDROID平台的巴士服务系统

上传人:痛*** 文档编号:42279541 上传时间:2021-11-25 格式:DOC 页数:57 大小:2.10MB
收藏 版权申诉 举报 下载
软件工程毕业论文ANDROID平台的巴士服务系统_第1页
第1页 / 共57页
软件工程毕业论文ANDROID平台的巴士服务系统_第2页
第2页 / 共57页
软件工程毕业论文ANDROID平台的巴士服务系统_第3页
第3页 / 共57页
资源描述:

《软件工程毕业论文ANDROID平台的巴士服务系统》由会员分享,可在线阅读,更多相关《软件工程毕业论文ANDROID平台的巴士服务系统(57页珍藏版)》请在装配图网上搜索。

1、本科生毕业论文Android平台的巴士服务系统系部: 计算机科学与技术系 专 业: 软件工程 学 生 姓 名: 班 级: 学号 指导教师姓名: 职称 副教授 最终评定成绩 20 11 年 5 月 本科生毕业论文android平台的巴士服务系统系 (部):计算机科学与技术系 专 业: 软件工程 学 号: 学生姓名: 指导教师: (副)教授 2011 年 5月 毕业设计(论文) 摘 要2008年Google推出了一款名为Android的开源智能手机操作系统。Android凭借其开放性和良好的人机界面,受到广大手机生产商的重视,随着3G时代的到来,Android有可能会改变现在智能手机市场的格局。A

2、ndroid 是由Linux操作系统、中间件以及核心应用程序组成的专门为移动终端设备开发的层次软件集。通过对Android平台上应用的开发,更进一步了解Android这个系统,在开发中,尤其注重Android的Intent机制的使用。本论文系统的介绍了基于android平台的长途巴士服务系统的设计背景、设计过程、以及设计成果。该系统能够为乘客提供优质的服务。使巴士服务上升一个层次。本系统易于操作,使用方便,交互性强,界面美观。关键词:巴士服务,Android,TcpABSTRACTIn 2008, Google released their opening source smart phone

3、 operating system which called Android. Because of opening source and its nice UI. More and more mobile phone manufacturers use Android in their phones. With the becoming of 3G,Android may change the field of smart phones. Android compose of Linux kernel, middleware and core applications. through An

4、droid application development, we can further understand the Android the system, in development, we will use the Android Intent mechanism.This paper describes the system android platform based on long-distance bus service system design background, design process, and design results. The system can p

5、rovide quality services to passengers. Increased bus services to the next level. The system is easy to operate, easy to use, interactive, attractive interface.Keywords: Bus services,Android,J ava,Tcp目 录摘 要IABSTRACTII第1章 问题定义11.1 开发背景11.2 课题的内容和实际意义1第2章 需求分析22.1系统可行性分析22.1.1目的和意义22.1.2经济可行性22.1.3技术可行

6、性22.2用户功能需求分析22.2.1 用户需求概述22.3系统用例图32.3.1乘客用例图32.3.2 服务员用例图42.4系统流程图5第3章 系统关键技术及开发环境63.1 Android环境63.1.1 硬件环境63.1.2 软件环境63.2 Dalvik 虚拟机73.3 Android的进程管理机制73.4应用程序层83.5系统开发环境与数据库选择93.5.1系统开发环境93.5.2数据库选择9第4章 系统设计104.1系统结构图104.2数据库的设计104.2.1 数据字典114.2.2 物理模型134.3功能模块设计134.3.1 功能模块144.4目录结构154.5 UI设计16

7、第5章 重点代码解析185.1配置文件185.1.1 程序入口的配置185.1.2程序权限的设置195.2 Tcp通讯195.3 手势的监听215.4 收发邮件的实现22第6章 系统实现236.1系统欢迎界面的实现236.2菜单界面236.3电影介绍246.4电影播放界面246.5电子书阅读界面25第7章 测试267.1黑盒测试267.1.1功能测试267.2白盒测试277.2.1代码测试277.3测试分析27结 论28参考文献29附 录30致 谢35IV 毕业设计(论文) 第1章 问题定义1.1 开发背景随着经济的不断发展,人们的生活水平的不断提高,出门旅游的人也越来越多,而在土耳耳,他们主

8、要以公路交通为主,土耳其的长途巴士非常发达,网路多而密,新型车多,有冷气且禁烟,非常舒服。每个城市都有一个长途汽车站,前往各地的大巴车一般每半小时发车一次。土耳其的旅游交通大巴都非常新,主要是奔驰、三菱等。火车因竞争不过飞速发展的高速公路运输,而显得落后破旧,除了线路不够周延外,车次少也是问题,不如搭乘长途巴士,所以土耳其人出门一般都选择长途巴士,很多乘客在长途巴士上一般呆八个小时以上,但随着经济的发展,交通工具也越来越多,巴士公司为了提高自己的竞争力,不断跟新服务,所以提出了基于android平台的巴士服务系统。 1.2 课题的内容和实际意义我的项目的名字是基于Android1平台的巴士服务

9、系统,乘客利用该软件,在巴士上可以看电影,看电视,听歌,玩游戏,看书,发邮件,以及查看天气,口渴了还可以点一杯饮料,饿了可以点一份甜点,有紧急情况,可以随时呼叫乘务员,而不需要走动。他们巴士上使用的pc机屏幕要比我们的手机屏幕大,并且是接电源的,所以弥补了手机的屏幕小,电量有限的缺点。而服务员只需初始化系统,使pc机处于可以使用状态的权限,当有通知的时候暂停pc机,乘客离开的时候,使pc机处于不可用的状态,顾客有请求的时候响应顾客服务,从而提高服务质量。1 陈昱,江兰帆.基于Google Android平台的应用程序开发和研究J.福建电脑,2008(11):156-157.第2章 需求分析2.

10、1系统可行性分析2.1.1目的和意义开发本系统的目的,出行的人,坐车旅游的人越来越多,原来的巴士服务效率较低,已有的服务设施满足不了乘客的需要,不断优化服务理念, 不断提高服务质量,不断加强软硬件设施建设,以满足乘客日益增长的服务需求,提高服务效率,降低服务成本,已经成为经济发展的必然性。2.1.2经济可行性本系统是由土耳其巴士公司定制开发的一个项目,使用的android开发环境,使用度方便,用户操作简单,几乎不需要对用进行专业培训就可使用本系统,项目里面个别功能还需要硬件的支持,比如说播放电视,需要视频卡,天气预报需要gps,还需要一台服务器做测试,这些硬件都由巴士公司提供,所以从经济上讲师

11、可行的。2.1.3技术可行性本系统采用java、android,xml以及MySQL数据库技术综合开发。Android是目前比较成熟的手机操作系统,应用程序是用java语言写的。MySQL是一种开放源代码的关系型数据库管理系统,它使用最常用的数据库管理语言结构化查询语言进行数据库管理。服务器与客户端的通讯采用Tcp通讯。由以上分析可知,巴士服务系统的解决方案无论在技术、经济上都是可行的,且开发本系统具有一定的经济价值和使用价值。2.2用户功能需求分析2.2.1 用户需求概述这个项目中有两个活动者:巴士乘客,服务员。也就可以画出两个用例图,这两个用例图具有下面七个模块的活动:歌曲点播,电影点播,

12、人工服务,电子书阅读,邮件收取,其中收发邮件可以支持收发雅虎的,google的gmail邮件,系统设置,游戏娱乐。这两类用户对系统的需求简要如下:服务员:登录系统,初始化pc机,使乘客pc机处于可用状态的权限,当有通知的时候暂停pc机,乘客离开的时候,使pc机处于不可用的状态,顾客有请求的时候响应顾客请求 乘客:乘客登录系统后,可以进行如下操作,歌曲点播:选择歌曲,选择上一首,选择下一首,暂停电影点播:选择电影,查看电影描述,全屏播放,暂停播放人工服务:点茶,咖啡,点心,饮料,呼叫服务员电子书阅读:选择书籍,阅读书籍邮件收取:收取邮件,发送邮件系统设置:设置系统的声音,设置系统的亮度游戏娱乐:

13、选择游戏,玩游戏2.3系统用例图2.3.1乘客用例图乘客登录系统后,可以进行歌曲点播和电影点播,如图2.1所示。图2.1 乘客播放多媒体用例图乘客还可以阅读电子书,玩游戏,收发邮件,还可以根据自己的需要点食品和饮料,以及对系统的声音和亮度进行设置,如图2.2所示。图2.2 乘客的其它服务用例图2.3.2 服务员用例图巴士服务员用例图如图2.3所示,服务员初始化pc机,使乘客pc机处于可用状态或者不可用的状态,顾客有请求的时候响应顾客请求图2.3服务员用例图2.4系统流程图用户登录系统后,进入欢迎界面和菜单界面,点击菜单中的logo,分别进入到歌曲点播,电影点播,人工服务,电子书阅读,游戏娱乐,

14、系统设置六个功能模块,如图2.2所示。图2.4系统流程图第3章 系统关键技术及开发环境3.1 Android环境3.1.1 硬件环境每台大巴车上共用一台服务器,服务器Intel(R) Core(TM)2 Duo CPU T5550,内存4G,硬盘320G。客户端分为两个,一端是乘客那边,每个座位上一台pc机,另外一端是服务员那边,pc机的分辨率是800*400,pc机屏幕为12寸,pc机采用的是Android2.2的系统。pc机和服务器必须连接同一个局域网。3.1.2 软件环境最佳的软件运行环境是:操作系统是Windows XP,数据库使用oracle9i,应用服务器使用Apache组织下的t

15、omcat1.6,java虚拟机使用jdk1.6。我是用MyEclipse6.6进行项目开发的,所以要调试的话使用MyEclipse6.6打开工程项目为好,而且在MyEclipse6.6也可以很方便的配置和启动tomcat。巴士服务系统采用了当前很流行Android平台。相对于其它的手机开发平台来说Android平台支持各种先进的网络、绘图、3D 处理能力,可以提供更好的用户体验。Google Android 2系统作为一个完全开源的操作系统,是由操作系统(Linux)、中间件以及核心应用程序组成的软件栈(software stack)。通过 android SDK 提供的 API 以及相应的

16、开发工具, 程序员可以很方便的开发android平台上的应用程序。其整个系统由应用程序(Application),应用程序框架(Application Framework),应用程序库(Libraries),Android运行库(Android Runtime),Linux内核(Linux Kernel)五个部分组成。Android操作系统内置了一部分应用程序, 包括电子邮件客户端、SMS程序、日历、地图、浏览器、通讯录以及其他的程序,值得一提的是这些所有的程序都是用java编写的。我这个软件使用android开发平台开发3,利用其提供的先进的网络、丰厚的UI控件,开发出人性化的界面。2 杨丰

17、盛.Android应用开发揭秘M 第一版.北京:机械工业出版社,2010年.7页3 姚昱旻,刘卫国.Android 的架构与应用开发研究J.计算机系统应用,2008(11):110-1 3.2 Dalvik 虚拟机Dalvik虚拟机是Android Runtime的一个组成部分,之所以要把他拿出来单独进行研究是因为,Dalvik虚拟机作为一个Java虚拟机,但它和普通的Java虚拟机有着一些不同。Google的工程师结合传统的Java 虚拟机,根据Android使用的平台一般为移动终端设备这样一个特点重新设计的虚拟机,这个虚拟机在移动终端设备上运行效率上明显比传统的Java 虚拟机要高许多。D

18、alvik虚拟机对内存的高效使用和在低速的CPU上表现出的高性能,确实让人们刮目相看。Android的上层应用程序虽然是用Java开发的,但是Dalvik虚拟机却和传统的Java虚拟机有着很大的区别,两者是不兼容的。首先,众所周知在Java 中,所有的程序代码会被编译器编译成字节码(.class)文件,然后再打包成JAR文件,在执行时Java虚拟机就从JAR文件中提取出相应的字节码文件来执行。在Android中不再使用字节码文件而是一种Android所特有的DEX(Dalvik EXecutable)文件。DEX文件的生成还是需要经过生成字节码文件的这个过程的。使用Java语言编写好的Andr

19、oid程序代码,同样是先用Java编译器编译成为字节码文件,但是在这之后还需通过Google提供的一个DX工具将编译好的字节码转换成为DEX文件,然后Dalvik虚拟机通过DEX文件获得执行的代码。Google弃用字节码文件而采用特有的DEX文件格式,这表明在Android实际运行中DEX文件格式相对于字节码文件格式应该有一些独特的优势。在Java中当一个应用程序定义了多个类后,通过编译则会产生相应数目的class字节码文件,在这些字节码文件中则必然会有冗余信息,例如一些相同的类库会冗余等。而DEX文件格式则是把这些class字节码文件整合到一个DEX文件中,使得字节码中的冗余减少了,同时使整

20、体文件的尺寸也减少了。这样一来,对于同一个应用程序来说,相对于Java的字节码文件Android的DEX文件格式在I/O操作中所需要的时间也减少了,同时也减少了查找类所需要的时间。另外DEX使用等长的指令,这样的话能够使得DEX文件尽量的简洁,从而提高了解析速度。通过上面的研究可以看出DEX文件格式是一种专为Dalvik虚拟机设计的压缩格式,该格式的高性能很适合内存和处理器速度有限的平台,从中可以看出Android是定位于嵌入式平台的一个操作系统。在这也体现出了Google给Android所定义的发展以及战略方向,如今移动平台的网络应用已经成为当前移动终端设备的发展方向,作为网络搜索的龙头大哥

21、,Android就是其打入该移动平台网络应用的利器。3.3 Android的进程管理机制Android虽然是基于Linux,但是它却采用了一种有别于Linux的一种管理机制。Linux在一个进程活动停止后就立刻结束该进程,而Android在一个进程活动停止后不会立刻结束该进程,并使该进程常驻内存中。直到系统资源不够需要更多内存或者当某个结束进程的事件发生时才将该进程结束。在Android中进程被分成了前台进程(foreground)、可见进程(visible)、次要服务(secondary server)、后台进程(hidden)、内容供应节点(content provider)、空进程(em

22、pty)六种。前台进程是指一些系统进程和当前屏幕上正在显示的进程。比如说你打开Google地图查找路线,此时Google地图就是一个前台进程。可见进程则是那些虽然不在前台,但是用户依然可见的进程,如输入法,时钟等,这些进程虽然不是在前台运行的,但是其存在和我们的使用却是密切相关的,如果关闭了这些应用程序将给我们的使用带来非常大的不便次要服务是一些与系统功能息息相关的服务,如Google企业套件等。后台进程,可以这么说后台进程就是一个前台进程被另一个前台进程替换后,进程没有结束,但是已经不再是前台进程的一个状态。在实际应用中就是当一个前台进程运行时按HOME键后的进程状态内容供应节点是没有程序实

23、体,而是仅仅提供内容给别的程序使用的比如说日历节点空进程是没有任何东西在运行的进程,在一个程序退出后会有一个没有任何数据和代码在运行但是依然驻留在进程空间中的进程,该进程仅仅是作为一个能够提高该程序下次启动速度和记录程序历史记录的进程。Android在调度以上几种进程时使用了一个系统值作为系统对进程的一个评估,当要结束一个进程时该值的数值越大的进程被系统选中并结束的概率越大。一般的,前台进程的值为0,这表明前台进程不可能被系统选中并结束。当进程进入后台以后,系统将会分配一个更高的值给该进程。相对于Linux的最近最早未使用的调度策略,Android在其基础上提供了一套独特的进程管理模块,他能让

24、程序员使用脚本来对内存管理进行定制。比如当内存小于某个值时可以结束这个系统值大于另外一个值的进程,还可以当内存小某个值时结束上面六类进程中的一类(但顺序必须是空进程,内容供应节点,后台进程,次要服务,可见进程,最后才是前台进程)。根据这种特性 该系统值至少由两部分组成,一个是基值,另一个根据LRU(最近最久未使用)调度算法产生的一个值。对于以上说的六种进程应该分别有一系统给其赋予的值,其大小顺序应该是空进程大于内容供应节点大于后台进程大于次要服务大于可见进程大于前台进程,而这个系统赋予的值则是基值。这样就能保证一些这六种进程总是当一种进程被结束完了以后另外一种进程才会被结束,同时只需要根据这个

25、系统值就能轻易做到对内存管理的定制。3.4应用程序层应用程序层包括了如名片管理、Google maps、浏览器等本地应用程序(native apps),如QQ、MSN、QuickOffice等第三方应用程序(third part apps),以及developer apps。同样,该层的应用程序也都使用Java语言进行开发的。3.5系统开发环境与数据库选择3.5.1系统开发环境Android的上层应用程序是用Java语言开发的,同时需要基于Dalvik虚拟机,所以Google公司推荐使用主流的Java继承开发环境 Eclipse。有了Eclipse还不够,因为使用Java语言进行开发,应该有由

26、SUN公司提供的Java SDK(其中包含了JRE:Java Runtime Environment)。另外,Android的应用程序开发还是和Java开发有一定区别,所以还需有一个Google提供的Android SDK。有了这三个软件就可以开发Android应用程序了。3.5.2数据库选择由于pc机的内存小,难以存储像电影,电子书等耗内存的文件,所以本系统没有采用Android自带的微型数据库sqlite,而是直接把数据保存在服务器端的MySQ中,需要数据时,比如播放视频,直接通过服务器拿到视频在服务器上存储的地址,播放视频。MySQL是一个开放源码的小型关系型数据库管理系统,开发者为My

27、SQLAB公司。它被广泛地应用在Internet上的中小型网站中。MySQL具有体积小、速度快、总体拥有成本低。基于以上的优势,本系统采用MySQL数据库。数据库名为busdata。为了使MySQL便于操作,选用了SQLyod来配合使用。SQLyod是一款MySQL的图形界面程序。可以很方便的操作、管理MySQL数据库。第4章 系统设计4.1系统结构图该系统主要有六个功能模块:播放器,电子书,服务,收发邮件,游戏,系统设置。系统的结构图如图4.1所示。长途巴士服务系统播放器电子书y游戏娱乐设置播放电影播放音乐电子书的翻页实现了球碰砖块游戏选择任意的书籍收邮件功能可以点茶,点咖啡人工服务发邮件功

28、能收取邮件设置亮度呼叫服务员设置声音图4.1 系统结构图4.2数据库的设计巴士系统要实现播放器,电子书,服务,收发邮件,游戏等功能模块。据此分析出数据需求。要实现以上所述功能,系统采用的数据库需具备以下的基本存储信息:(1)电子书种类表: 书的种类Id、书种类(2)电子书信息表:书Id、书的种类Id、书名、书的地址,书的描述(3)电影种类表:电影的种类Id、电影种类(4)电影信息表:电影Id、电影的种类Id、电影名、电影的地址,电影的描述。(5)音乐种类表:音乐的种类Id、音乐种类(6)音乐信息表:音乐Id、音乐的种类Id、音乐名、音乐的地址,音乐的描述。(7)游戏种类表:游戏种类Id,游戏种

29、类(8)游戏信息表:游戏Id、游戏种类Id、游戏名、游戏的描述4.2.1 数据字典电子书种类表:(书的种类Id,种类)。其中书的种类Id是主键,电子书种类表如表4.1所示。电子书信息表:(书Id,书的种类Id,书名,书的地址,书的描述)。其中书Id是主键,书的种类Id是外键,电子书信息表如表4.2所示。电影种类表:(电影的种类Id,种类)。其中电影的种类Id是主键,电影种类表如表4.3所示。电影信息表:(电影Id,电影的种类Id,电影,电影的地址,电影的描述)。其中电影Id是主键,电影的种类Id是外键,电影信息表如表4.4所示。音乐种类表:(音乐的种类Id,种类)。其中音乐的种类Id是主键,音

30、乐种类表如表4.5所示。音乐信息表:(音乐Id,音乐的种类Id,音乐名,音乐的地址,音乐的描述)。其中音乐Id是主键,音乐的种类Id是外键,音乐信息表如表4.6所示。游戏种类表:(游戏的种类Id,种类)。其中游戏的种类Id是主键,游戏种类表如表4.7所示。游戏信息表:(游戏Id,游戏的种类Id,游戏名,游戏的描述)。其中游戏Id是主键,游戏的种类Id是外键,游戏信息表如表4.8所示。表4.1 电子书种类表 字段名称字段说明类型位数属性ebookid书的种类IdNumber10主键EbookCatalog书的种类Varchar50表4.2 电子书信息表 字段名称字段说明类型位数属性Id书的编号N

31、umber10主键EbookCatalog书的种类IdNumber10非空EbookFile书名Varchar50EbookUrl书的url地址Varchar50EbookDesc书的描述Varchar50表4.3 电影种类表 字段名称字段说明类型位数属性id电影的种类IdNumber10主键MovieCatalog电影的种类Varchar50 表4. 4 电影信息表 字段名称字段说明类型位数属性Id电影的编号Number10主键movieCatalog电影的种类IdNumber10非空movieFile电影名Varchar50movieUrl电影的地址Varchar50movieDesc电影

32、的描述Varchar50表4.5 音乐种类表 字段名称字段说明类型位数属性id音乐的种类IdNumber10主键MusicCatalog音乐的种类Varchar50表4. 6 音乐信息表 字段名称字段说明类型位数属性Id音乐的编号Number10主键Catalog音乐的种类IdNumber10非空MusicFile音乐名Varchar50MusicUrl音乐的地址Varchar50MusicDesc音乐的描述Varchar50表4.7 游戏种类表 字段名称字段说明类型位数属性Gameid游戏的种类IdNumber10主键GameCatalog游戏的种类Varchar50表4. 8 游戏信息表

33、字段名称字段说明类型位数属性Id游戏的编号Number10主键GameCatalog游戏的种类IdNumber10非空GameFile游戏名Varchar50GameDesc游戏的描述Varchar504.2.2 物理模型如下图4.2所示,服务端数据库中主要存储了书,音乐,电影,游戏的详细信息和类别,以及表与表之间的关系。客户端通过服务器访问数据库,进一步访问服务器端的数据。图4.2 物理模型4.3功能模块设计功能模块的设计,就是确定巴士系统的功能和作用。4.3.1 功能模块该系统的乘客端主要有以下功能模块:歌曲点播,电影点播,人工服务,电子书阅读,邮件收取,其中收发邮件可以支持收发雅虎的,g

34、oogle的gmail邮件,系统设置,游戏娱乐。4.3.1.1 歌曲点播在该模块,服务器端需要把歌曲的信息添加到数据库中,在服务端,用户在菜单栏里选择歌曲点播这个logo,就进入到该模块中,在该模块中,用户选择歌曲的类型,然后选择歌曲,进入歌曲的播放页面,在播放页面中,可以播放上一首,播放下一首,还可以在右边的listview中任意选择一首歌曲。4.3.1.2 电影点播在该模块,服务器端需要把电影的信息添加到数据库中,在服务端,步骤跟歌曲点播相同,因为他们都是用的自定义的,但电影点播实现了手势的双击,全屏播放,再双击就恢复原状,单击出现播放器的浮动框的操作。4.3.1.3 人工服务模块在该模块

35、中,设及到两个客户端跟服务器的交换,在乘客这边,乘客可以点击任意座位表下面的饮料,咖啡,点心,呼叫服务员,在服务员的客户端那边,乘客的位置图标那里就会闪动,点击位置图标过后,在座位表的下面就会出现,相应的服务就会以大图标的形式显示出来,然后服务就知道了哪个座位上的乘客需要的是什么服务。4.3.1.4 电子书阅读在该模块,服务器端需要把书的信息添加到数据库中,在服务端,用户在菜单栏里选择电子书这个logo,就进入到该模块中,在该模块中,用户选择书的类型,进入开始阅读电子书,开始,因为在下载书,并放到电子书里面,可能需要等待,电子书中可以前后任意翻页。4.3.1.5 系统设置在该模块中,用户可以设

36、置系统的亮度和声音,主要把系统当前的亮度和声音的值赋给android中的控件seekbar,并把声音的亮度的最大值赋给seekbar的最大值,改变seekbar滑块的值,在seekbar的监听事件里面seekBar. setOnSeekBarChangeListener(this);把seekbar当前的进度值作为声音的亮度。4.3.1.6 游戏模块在该模块,有两个游戏,一个比较流行的Angry bird,这个游戏是通过调用其它应用程序的安装文件apk,而另外一个游戏是自己写的一个球碰砖块的小游戏,碰撞检查算法是把球看做一个正方形,球跟砖块的碰撞就变成正方形跟长方形的碰撞,如果球的中心点的距离

37、小于正方形和长方形的宽度和的一半或者正方形和长方形高度和的一半,就说明发生了碰撞,砖块消失。4.4目录结构系统的目录结构分为源文件(src),资源文件(res),配置文件(AndroidMainfest. xml),以及系统的版本,本系统的版本是android2.2.如图下图4.3所示。图4.3 系统目录结构模型我们可以看到文件夹的结构如表4.9所示。表4.9 巴士工程结构assets文件夹用来存放静态文件gen文件夹R.java(用它java可访问独立于java的资源文件,系统自动生成)res文件夹drawable文件夹用来存放图片的文件夹,例如图标layout文件夹用来存放布局定义文件,如

38、main.xmlvalues用来存放一些变量和参数的文件src文件夹存放源文件的文件夹,以后定义的java类和一些代码都放在这个文件夹下AndroidManifest.xml4.5 UI设计该项目的布局文件是采用的800x480的分辨率,部分采用的自定义页面,即在代码中动态的添加页面,部分是在xml中写好的页面布局,在代码中通过setcontentview()添加到程序中。 首页面和菜单页面:enterformtele.xml:首页面servicelisttele.xml:第一页主菜单页面servicelist_frame2tele.xml:第二页菜单页面funcdetailform.xml:

39、各个功能页面公共的页面电子书页面:采用的是在代码中动态添加,即自定义页面,写一个BookLayout类继承系统中自带的FrameLayout, public class BookLayout extends FrameLayout /所有的页信息private List pageList;/左侧目前显示的书页,如果没有是-1,说明这本书是合着的private int currentPage = -1;/页面宽public static final int PAGE_WIDTH = 400;/页面高public static final int PAGE_HEIGHT = 385;public

40、static final int PAGE_CONTAINERH = 400;/底层private FrameLayout buttomLayout;/顶层(反页显示层)private FrameLayout topLayout;/第二层(当前页显示层)private FrameLayout secondLayout;/第三层(下一页显示层)private FrameLayout thirdLayout;/是否处于自动翻页private boolean isAutoFlip = false;/当前翻动的页private SinglePage currentFlipPage = null;/书本

41、内容private ArrayListArrayList contentList;游戏页面: 自己定义一个类public class MySurface extends SurfaceView ,获得画布和画笔,然后在里面画出球,砖块,以及球的运动轨迹。音乐页面:movieitem.xml:音乐的列表页面musicplaymodal.xml:音乐的播放页面然后在里面添加自定义的播放器文件videoview电影页面:moviegriditem.xml:电影的展示页面movieitem.xml:电影的列表页面videoviewmodal.xml:的播放页面第5章 重点代码解析5.1配置文件Andr

42、oidManifest.xml是Android应用程序中最重要的文件之一。它是Android程序的全局配置文件,是每个android程序中必须的文件。它位于我们开发的应用程序的根目录下,描述了package中的全局数据,包括package中暴露的组件(activities, services, 等等),以及他们各自的实现类,各种能被处理的数据和启动位置等重要信息。因此,该文件提供了Android系统所需要的关于该应用程序的必要信息,即在该应用程序的任何代码运行之前系统所必须拥有的信息。 Android程序中的组件都必须在这个文件中注册,并配置程序的入口,同时还要在文件中说明我们的应用具有什么样

43、的权限uses_permission。5.1.1 程序入口的配置在AndroidManifest.xml中我们看到一个这是给activity组件注册,在配置文件中还会找到“intent-filter”标签,而这个标签的内容就是应用程序组件通知Android自己处理隐式Intent的IntentFilter过滤器。IntentFilter描述一个组件能够响应Intent的范围,比如说该组件希望接受什么类型的请求,什么类型的数据等。项目中定义了一个叫做BusTerminate的Activity,以及定义了该Activity的IntentFilter过滤器。部分代码如下 当这个应用程序运行时,会发出

44、一个Intent,这个Intent中的Action属性中的值一定是ACTION_MAIN,Category属性中的值也一定是CATEGORY_LAUNCHER。这个Intent到AndroidManifest.xml中进行比较,发现配置文件Activity中的action的值和ACTION_MAIN匹配,则action匹配成功,接着和category进行比较,发现和CATEGORY_LAUNCHER匹配,category匹配成功,因为后面没有其他值了。所以就Android就选择com.busservice.BusTerminate作为响应这个Intent的组件,接着便调用BusTerminat

45、e这个Activity。5.1.1.1 横屏的配置配置游戏是横屏。5.1.2程序权限的设置当我们需要获取某个权限的时候就必须在我们的AndroidManifes.xml文件中声明。我们这个程序设置了四个权限。连网的权限 在利用android访问本地服务器是需要设置权限 这三个是电源管理器的权限 AGPS定位的权限允许程序禁用键盘锁。5.2 Tcp通讯服务器与客户端采用的是Tcp通讯实现的,采用的是线程里阻塞读取sock数据的方式,没有数据,操作系统会阻塞你这个线程,直到有数据到达。首先,客户端程序会执行一个线程客户端程序会执行一个线程,测试tcp是否处于连接的状态timeonce = new

46、Thread(new RunOnceThread();timeonce.start();调用tcp.testConntect(ConfigUnit.serverip, (short) 9090, timehandler);在testConntect里又启动了一个TtestThread的线程,来测试网络是否处于连接状态。public class TTestThread extends Threadpublic void run() if(controlsocket != null)while(!controlsocket.isConnected()try Thread.sleep(1000);

47、catch (InterruptedException e) e.printStackTrace();Message msg = new Message();msg.what = 2;if(tmphandler != null)tmphandler.sendMessage(msg); 如果处于非连接状态,就发消息给客户端,这里就引入了android的消息机制,上面的msg.what = 2即携带的内容,客户端的handlermessage()方法取到这个消息后,再发送连接服务器的请求if(msg.what= 2)tcp.StartConnectServer (ConfigUnit.server

48、ip,(short)9090,timehandler);,在方法中启动一个连接服务器的线程,实现线程里阻塞读取sock数据的方式。代码如下:public class TcpControlThread implements Runnable public void run() while(true)try int irecv=controlsocket.getInputStream().read(controlbuf,controlread, 10240-controlread);controlread += irecv; catch (IOException e) e.printStackTr

49、ace();controlread -= ptl.parserBuffer(controlbuf, controlread);5.3 手势的监听手势的监听事件,当播放电影时,如果是全屏播放,双击屏幕,恢复原来的大小,如果不是全屏,双击后,全屏播放。mGestureDetector = new GestureDetector(this);/手势的监听事件SimpleOnGestureListener,mGestureDetector = new GestureDetector(new SimpleOnGestureListener()/双击事件 public boolean onDoubleTa

50、p(MotionEvent e) if(isFullScreen)isShowBottom = false;/自定义播放器的大小AbsoluteLayout c = (AbsoluteLayout)findViewById(R.id.ViewContainer);AbsoluteLayout m = (AbsoluteLayout)c.findViewById(R.id.MovieModal);AbsoluteLayout.LayoutParams params = new AbsoluteLayout.LayoutParams (m.getWidth(), m.getHeight(), 0,

51、 m.getTop()-130);m.setLayoutParams(params);showTitlePanel();isFullScreen=false;elseif(ref_view!=null)hideTitlePanel();ConfigUnit.VideoDefaultHeight = ref_view.getHeight();ConfigUnit.VideoDefaultWidth = ref_view.getWidth();ref_view.setVideoScale(BusTerminate.screenWidth, BusTerminate.screenFullHeight

52、); isFullScreen=true;return true;5.4 收发邮件的实现邮箱的实现是运用android中的webView这个控件,给个网页的地址,这个控件就可以加载网页,登录后进入到邮箱,然后进行一系列的操作。下面的代码是以雅虎邮箱为例。newsobject n = (newsobject) v.getTag();subView = View.inflate(this, R.layout.newsviewmodal, null);AbsoluteLayout layer=(AbsoluteLayout)subView.findViewById(R.id.newsModal);/

53、自定义webView控件WebView webView = new WebView(this);/设置webView的布局layer.addView(webView,newAbsoluteLayout.LayoutParams(ViewGroup. LayoutParams. FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, 0, 0);/设置JavaScrip在webView中可以显示webView.getSettings().setJavaScriptEnabled(true); /要加载的网页的地址webView.loadUrl(CallC

54、hangeNewSubView(subView);第6章 系统实现6.1系统欢迎界面的实现这个是进入系统的欢迎界面,左边的文本框是对大巴车公司的一个描述或者一段文字性的广告,右边是一个视频的短片播放器,主要用来播放商业广告,如图6.1所示。图6.1 欢迎界面6.2菜单界面这个界面是一个菜单界面,展示大巴车上服务的logo,点击每个logo,进入相应的服务列表,点击箭头,进入下一个菜单页面,如图6.2所示。图6.2 菜单界面6.3电影介绍这个是一个电影介绍界面,电影名,电影类型,点击详情,可以看到右边对电影的一个简短的描述,如图6.3所示。图6.3 电影介绍6.4电影播放界面这个是一个电影播放界面,在这个界面上可以全屏播放,可以播放上一部电影,可以播放下一部电影,如图6.4所示。图6.4 电影播放界面6.5电子书阅读界面这个界面是阅读电子书界面,点击电子书,电子书可以实现上下页翻动的效果,如图6.5所示。图6.5 电子书阅读界面第7章 测试7.1黑盒测试黑盒测试就是只要知道网站具体有什么功能,不需要知道网站是怎么编写的,只要进行一些输入,就能得到某种输出结果。7.1.1功能测试进行功能测试时,需要把项目部署好,运行起来,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!