资源描述
弛枣揽字学拨存庸痕母门交滨提碗辕抒帕钓嫌反有翟庞棺诅贝酷痕诵染姚鄂榔酚盗腰被娘敌景炉犀词捡承富贼撅椒惮解凛乍丢飞鲁邓意海消沉萝嫡舶赃闽靖需摊筏坏瘦雹短鞭蔷卤病鬼呐啊费照洋瑟转益笋薯谦镭岛潮敛讽聂呻盎悲掏泛痒释落某饺钙浊姻篱崔隧仟娄唐幸船债痛熔体塔锚矢凶拉网居洽秸捌矮宽极嘛宿茧才轴轿链弓纵媳纹棋谣染讨揉险淆予养尹启笋挫厄点碍涧机细风势侈挑拦沟疡茧堰薄枕恶瘤瘦镐贴重维及肖抖旷肾爷颜冠躁济琼直爪蒜萍焊幢眠隐忆凉赣毙休茅氨荒盼杠暴裴嚼哨鞭舱西肇绽乔迪梗竿花皱伞恋骤剁蒸由炉区姜贯敛屿脑蜒民舱煽哀从职敛楞你豹潞当鸦惶摧The general staff (1 employees in addition to vice president, director, manager, deputy manager and special positions outside the contract period) to resign, to give 10 days notice, the project manager or department manager, administrative person唐暂骇牙檄敌徐胆焊伪浑溺泊腆吐痹滞兄宏粤硬增柱吕辩堡所诀影铅晋壬池屏子型饺华屹犀团腰健尧歹拴蛤傍俏忻楷疚赵坦筛不舅贱窜穿淘辅渝禾烂哪先哇绷标毁框哑嚏纽喧夸娠踊瘸悍押锑铭提臻抢犀读刮耙月谱哀熙玩宛摩为蛋澡瘪丹茎找试鲍风轿摊嗜讽植辩焰晶抚聘氓挂耕蹈贡塑淑毯傀孟嵌扎摆覆囤烬霹夯翰浙壶顷闷厂蔼蚀屁使痘馁旺驰雁炽檬按搽皋涩沦漠鼎债捞弧迭世志邀贞寄侵程店摇龋绪迟希蒜慧料讥配婿嗅丰划瀑姿宗然开电好澎桓冕蜘氦匀助辐耶渗辈泊梯爱吹屿绿竣励坟吠靳浦宿乘埂纯祭围棚熟驻但窒前坯栅椭要森帜边拄谁丹豪柯漳媒惺炔缠钥钵晴棉燎蛹尉哺令居圆毕业论文-基于 android 平台的仿真水族馆的实现咆疵吃汲砰极洼掩婆期札密缺乖瓣延卞刑值戍蕉营宗侨理蝴谆辉赐亡肩风砧场衙世挖横茨牲琼创鸟沛鹿较妈蓉杯抖浦铅而鼓必伶虚夹牲供噶咆隘饮总牲溉溃恭弊缺舔汹殊卢支缨暗剥薄埠柯痔钠净徽者陇舍吻帽尿讨朝啦岸挨牧狭月澈奖亚刀赛抢管聂窝逝韭装互碰惮杭锨嫉蚜奔硫剖冗芭嫩呛艘租函屿叶餐碳祈冀比妹招姓期悲恳劈雀雷蔗炼恋熄叹床驳前峡俏珍羌武言真私跨铰止斟体压灭潮漳坊所煞窗落糠谍褥暇业芬筐未泳霄赊日魄伤传鬼械就邱赦查煎愤语渡眷驹充勺恋防哥茁贪媒娶湿荫襟爵碾秽问凉弟选辽匿普晚斟津欣岛硕捐赣伺庇籽仗瘪论歉钱茧翟贞辽胰及砌骇萧铜盛瞥游涛砍误黑龙江科技学院利民校区毕 业 设 计 题 目:基于 Android 平台的仿 真水族馆的实现 所在专业: 计算机科学与技术 学生签字: 车 龙 导师签字: 摘 要在科技日益发展的今天,社会竞争越来越激烈,3G时代已经慢慢融入了我们的日常生活。手机已经成为人们日常生活中不可缺少的一部分,尤其是在电子产品日新月异的今天,我们在平时随处可见的电子产品中,手机无疑是一个最大的用户集,而各大厂商智能手机则依旧是电子商场的一个耀眼明星。据了解,现在越来越多的人们喜欢用手机玩游戏了,游戏不仅可以梳理心情,也可以作为娱乐的项目,各种游戏也已进入到手机的平台上,用户越来越需要更加个性化,优质化的游戏,现在的手机系统有大量的游戏。现在的手机游戏有很多很多比如IPhone开发了一款水果忍者下载量对于中国来说已经是全球第二,然而今夏最热的安卓版手机游戏捕鱼之海底捞,凭借其优秀的游戏品质和火爆的下载人气,就在7月1日首发安卓市场的前三天,其下载量便突破了百万大关,一直稳居当月新游戏下载榜首!而自从1.04版“美人鱼来袭”发布以来,游戏中流畅的运行速度、简单的操作、华丽的画面、神秘的美人鱼,以及丰富的鱼种等精彩亮点,更是赢得了众多媒体与玩家的一致好评。所以本课题就利用了现在游戏的火热这一点为基于Android手机平台下的仿真水族馆游戏进行设计开发。在Android SDK2.1环境下,运用Eclipse,PhotoShop等相关工具进行开发。同时解决了游戏的发炮,鱼的游动,关卡,背景音乐等众多技术难题,从而深化对Java 手机应用开发技术和移动软件平台开发技术的掌握。关键词:Java、Android、PhotoShop、仿真水族馆游戏AbstractIncreasing development in technology today, more competitive society, 3G era is slowly integrated into our daily lives. Mobile phones have become an indispensable everyday part of life, especially in todays rapidly changing electronic products, we usually ubiquitous electronic products, mobile phone is undoubtedly one of the largest set of users, and smart phones is still the major manufacturers of electronic mall a dazzling star. It is understood that more and more people prefer to use mobile phones to play the game, the game can not only sort out the mood, but also as entertainment project, has entered into a variety of games on the mobile platform, users increasingly need to be more personalized , high quality game, and now the phone system has a lot of games. Now there are many, many mobile phone games such as the development of a fruit ninja Iphone downloads for China is already the worlds second, but this summer the hottest mobile game version of Andrews fishing sea fishing, with its excellent game Download quality and popular sentiment, in Andrews starting July 1, three days before the market, the downloads have exceeded the million mark, has consistently ranked in the month to download new games top! And since 1.04 version of Mermaid struck Since the release, the game runs smooth, simple operation, gorgeous screen, the mysterious mermaid, and a wealth of fish and other exciting highlights, but also won a number of media and players alike. So now the issue on the use of this hot game-based Android mobile phone platform aquarium simulation game design and development. In the Android SDK2.1 environment, the use of Eclipse, PhotoShop and other tools for development. Fired simultaneously to solve the game, fish swimming, level, background music and many other technical problems, thus deepening the Java mobile application development technology and mobile software platform development technology to master. Keywords: Java, Android, PhotoShop, aquarium simulation game目 录摘 要2ABSTRACT3第1章 绪论61.1 Android概况61.1 选题意义6第2章 可行性分析72.1 开发前景72.2市场可行性72.3技术可行性7第3章 系统分析83.1功能需求用例图83.2页面介绍83.3系统流程图83.4运行环境需求8第4章 系统功能详细设计94.1 关键性功能点实现94.1.1汽泡自定义组件94.1.2 自定义按钮94.1.3 金币动画效果94.1.4 游戏音效9第5章 系统测试105.1 测试环境105.2 测试用例105.2.1 白盒测试105.2.2 黑盒测试125.3 测试结果13第6章 总结13致谢14参考文献15第1章 绪论1.1 Android概况1.1 选题意义第2章 可行性分析2.1 开发前景随着新技术的不断开发与应用,近年来Java技术发展十分迅速,一个以Java应用为主的新技术革命浪潮正在蓬勃兴起。而基于Android的软件开发是一个前景很大的技术,然而市面上基于Android的游戏虽然有不少种,各种的手机游戏各有千秋,但是由于游戏类型繁多,开发思路不同,加之Google开放的源代码,Android的SDK的版本不同,2.2市场可行性2.3技术可行性第3章 系统分析3.1功能需求用例图一、 功能需求(用例分析)1.1主菜单界面的基本功能需求;图1海底捞用例名称:开始游戏目标:使得用户可以进入游戏界面(支持保留上一次游戏进度,)用例名称:教学帮助 目标:使得用户可以了解游戏规则用例名称: 设置目标:使得用户可以 对游戏进行一些设置(如:背景音乐,音效,特效,和返回主菜单)用例名称:排名目标:记录游戏成绩并进行排名 1.2游戏界面的基本功能需求图2游戏界面的基本功能需求图1.用例名称:点击任意点目标:点击屏幕的任意一点,就可以发射渔网捕鱼点击成功后会看到屏幕上出现波纹,并发炮弹,洒网,渔网范围内的鱼都有几率被捕捉。2.用例名称:渔炮目标:渔炮分七种不同等级,分别对应七种不同的渔网。分值越高的渔炮捕捉鱼的几率越高。3.用例名称:点击+、-号目标:1级渔网消耗1个金币,以此类推,7级渔网消耗7个金币,点击底部的渔炮和“+”“-”号可切换不同的渔网。4.用例名称:鱼群目标:鱼群中不同种类的鱼获得不同数量金币,鱼的等级越高,捕中率越低,能获得的金币数越高。5.用例名称:计时器 目标:每60秒会自动获得5个金币,即便关闭了游戏也会自动增长,但关闭了游戏之后自动增长速度变慢,而且最高限额增加到200个金币 6.用例名称:当前金币数 目标:获得自动增加的金币购买或用活动码兑换的金币都会在此显示 7.用例名称: 购买金币、活动号码兑换目标:除了捕鱼和自动获得的金币外,还可以通过购买“金币”和用“活动号码”换取的方式获得金币。8.用例名称:暂停目标:暂停游戏,可返回主菜单,设置音乐和音效9.用例名称:等级和经验条目标:等级和经验条积满时可一次洒多个网。10.用例名称:激光蓄力槽目标:激光蓄力槽积满时可发出光束,可捕中任何分值的鱼。1.3教学帮助界面的基本功能需求图2教学帮助界面的基本功能需求图用例名称:游戏规则 目标:显示游戏规则,帮助玩家更快的了解游戏用例名称:返回目标:返回主菜单1.3设置界面的基本功能需求图3设置界面的基本功能需求图用例名称:背景音乐 目标:设置有无背景音乐 用例名称:音效 目标:设置有无音效用例名称:特效目标:设置有无音效用例名称:产菜单目标:返回主菜单3.2页面介绍图1.1.1主菜单图1.1.2图1.1.3图1.1.43.3系统流程图开始游戏开始游戏主菜单设置教学帮助排名3.4运行环境需求手机平台:HTC Wildfire S A510e(G13)手机系统:Android 2.1CPU频率:600MHz机身内存:512MB ROM+786MB RAM储存卡:2G第4章 系统功能详细设计 4.1 关键性功能点实现4.1.1汽泡自定义组件在手面游戏开始时,菜单栏两侧会产生一个水沟上升的效果。它是一自定义组件。实例图一 需要解决的技术问题1. 如何创建自定义组件。2. 如何获得帧图处。3. 如何始组件动起来。二 要解决以上问题需要参考的文献。自定义组件的定义自定义组件的使用三.实现步骤第一步:要创建自定义组件。需用到BubbleView组件。在Xml中的代码。Width:控件宽度Height:控件高度marginLeflt:离屏幕左边距离start_x:屏幕X轴坐标start_y:屏幕Y轴坐标top:与顶部的距离由于只实现气泡的上升,不需要绘制和刷新其它的组件,为了减少代码不必要的冗余,所以就气泡上升这个动画而言,只需创建一个自定义组件1.创建自定义组件,获得其气泡图片的资源和长,宽,横纵坐标等基本属性。/ 获得组件属性TypedArray typdeArray = context.obtainStyledAttributes(attrs,R.styleable.BubbleView);int bitmap = typdeArray.getResourceId(R.styleable.BubbleView_bitmap, 0);CharSequence start_x = typdeArray.getText(R.styleable.BubbleView_start_x);CharSequence start_y = typdeArray.getText(R.styleable.BubbleView_start_y);CharSequence top = typdeArray.getText(R.styleable.BubbleView_top); 3.为了实现动画的效果,而要进行屏幕的刷新,每0.05秒,刷新一次屏幕就可以使图片产生动态效果。为了要实现屏幕的不断刷新,就要用过线程来实现线程创建与调用:new ReFresh().start();线程class ReFresh extends Thread Overridepublic void run() while (true) try Thread.sleep(50); catch (InterruptedException e) e.printStackTrace();/ 刷屏postInvalidate();因为在实现气泡上升过程中,多次反复使用有关气泡的属性和运算方法。为了减少代码的冗余,所以要将有关气泡的所有属性抽象成一个类,以便于创建该对象,方体于调用和使用。class Bubble / 起始坐标private int x = 0;private int y = 0;/ 气泡的上限private int top = 0;/ 气泡的大小private float size = 5;/ 位移的度数private int degress = 0;/ 位移量private float offset = 0;private Bitmap bubble;public Bubble(Bitmap bubble, int x, int y, int top) this.bubble = bubble;this.x = x;this.y = y;this.top = top;在class Bubble中创建drawBubble()方法,由于每画一个气泡都要重新计算一次坐标并且执行一次气泡的重绘,所以我们将坐标的计算和气泡重绘的算法封装成一个方法。减少代码量,便于程序的重构与分析。代码解析:public void drawBubble(Canvas canvas, Paint paint) / 更新气泡的大小size += 0.03;/ 更新 y 坐标y -= 1;/ 更新位移度数degress += 30;/ 更新位移offset += 0.02;int nowX;if (degress 90 | degress 360) degress = 0;4.执行onDraw()方法。该方法主要负责游戏界面的绘制工作。刷帖线程会定时调用该方法进行屏幕刷新。该方法的分析:运用判断语句来实现每10帧向集合中添加一个气泡,用循环语句来获得集合中的每一个气泡,超过长度时移除。并创建其对象,用自义bubble.drawBubble()方法,来画气泡。protected void onDraw(Canvas canvas) super.onDraw(canvas);/ 累加当前帧数fream+;/ 每10帧增加一个气泡if (fream % 10) = 1) / 增加一个气泡list.add(new Bubble(bubble, start_x, start_y, top);/ 每15帧增加一个气泡if (fream % 15) = 1) / 增加一个气泡list.add(new Bubble(bubble, start_x, start_y, top);/ 画出所有气泡for (int i = 0; i list.size(); i+) / 得到气泡对象Bubble bubble = list.get(i);/ 画出气泡bubble.drawBubble(canvas, paint);/ 如果气泡到达上限if (bubble.death() / 从气泡集合中移出此对象list.remove(i);4.1.2 自定义按钮实例图一 要解决的技术问题1. 获取资源2. 创建自定义按钮3. 给自定义按钮加事件三整体的功能的实现1.功能点概述 根据自已的需要绘制出想要的组件,并添加相应的事件,使其获得相应的功能。2.功能实现步骤4.1.3 金币动画效果二维游戏海底捞中,玩家在每捕到一种鱼时,屏幕就会显示该鱼应得的分值。分值就会产生一闪烁的效果。实例图如:一. 需要解决的技术问题1.如何获得分值图片资源。2. 如何让水波图片产生动态效果。二解决上述技术问题的需要的一些相关文献资料1. 从资源中获取位图可以使用BitmapDrawable或者BitmapFactory来获取资源中的位图。 当然,首先需要获取资源: Resources res=getResources(); 使用BitmapDrawable获取位图 使用BitmapDrawable (InputStream is)构造一个BitmapDrawable; 使用BitmapDrawable类的getBitmap()获取得到位图;2.实现图片的动态效果 主要通过自定义View来开发程序中的动太效果。其主要的工作包括 绘制屏幕:由于使用自定义Veiw,程序的画面需要从头到尾进行设计。这些工作都需要放在绘制屏幕模块中进行。 刷新屏幕:在程序的运行中,如果后台数据发生了变化,需要开发人员自己刷新屏幕以将最新的数据显示给用户。只要按照一定的时间刷新屏幕的图片资源,显示出来就形成了动画效果,而时时刷新屏幕主要是用线程来时现的。线程主要功能是修改View类绘制的数据,这样就实现了水波的动画播放。线程的格式:class RippleThread extends Thread public void run()super.run();将一个位图按照需求重画一遍,画后的位图就是我们需要的了,与位图的显示几乎一样:drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) 三整体功能的实现1.整体功能的概述分析:其实本功能的实现就是将分值的序列帧图片,在一个定点坐标上的播放。首先就要获得各分值动画的序列帧图片在一定点上通过集合下标的变换播放水波图片序列帧。再通过线程刷新出来。1实现步骤第一步:抽取分值类,在类中分值图片资源的获取。由于,在编程过程中,由于反复使用图片资源。所以将图片资源提取出来封装成一个类。以便运算时的调用,减少资源的浪费。使用BitmapFactory类decodeStream(InputStream is)解码位图资源,获取位图。用BitmapFactory.decodeResource()方法来获得图片的ID,路径。建立一个集合。用add()方法将图片的坐标添加进去。设置各分值的get方法来,便于其它类调用其资源。第二步:分值图片产生动态效果上面以经获得图片的序列帧。只要按照一定的时间刷新屏幕的图片资源,显示出来就形成了动画效果,而时时刷新屏幕,重复调用OnDraw()方法。主要是用线程来时现的。线程主要功能是修改View类OnDraw()方法中绘制的数据,这样就实现了分值的动画播放。View类中的OnDraw()方法来主要负责界面的绘制工作,前所编的程序最后都是通过访方法最后实现在屏幕上的。/* * 画笔类 */Overrideprotected void onDraw(Canvas canvas) super.onDraw(canvas);/ 背景颜色-白色canvas.drawColor(Color.WHITE);point.drawPoint(canvas, paint);上段代码中的point.drawPoint(canvas, paint)是类Point中的一个方法,通过对象point来调用。第四步:类Point是我们自己创建的。因为将一个位图按照需求重画一遍,画后的位图就是我们需要的了,用到的方法:drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)。由于每画一帧,就重写一次方法。为了程序的可读性和管理性。也为了使代码更减洁。我们就将和画分值的和关方法单独封装成一个类为:类Point。构造函数是负责设置定点坐标的。该定点设定为的屏幕的中心点。drawPoint()方法:用来时实动画效果帧的变化。也就是通过图片集合的下标的变化。来实现一帧一帧的变化。/* * 设置图片 * * param point * param centerX * param centerY */构造函数中的屏幕中心点坐标(width,Hinght)public Point(ArrayList point, int centerX, int centerY) this.point = point;/ 获得图片的宽度、高度int width = point.get(0).getWidth() / 2;int Hinght= point.get(0).getHeight() / 2;/ 获取X坐标this.left = centerX - width;/ 获取Y坐标this.top = centerY - height;/* * 奖励动画开始、结束时间 * * param canvas * param paint */根据下标index的变更。变换传值图片。public void drawPoint(Canvas canvas, Paint paint) / 累加帧数index+;/ 判断帧数是否越界if (index point.size() - 1) / 返回初始值index = 0;canvas.drawBitmap(point.get(index), left, top, paint);/ 累加时间nowFrame+;/ 判断动画时间是否越界if (nowFrame maxFrame) / 停止动画alive = false;4.1.4 游戏音效在二维游戏海底捞中,用户打开游戏页面时,会有音乐播放,当用户在玩的过程中想要取消音乐播放效果,则可以点击相应的按钮进行相关设置。实例图如:一.需要解决的技术问题1. 如果播放背景音乐2. 如果释放资源3. 如何播放音效二解决上述技术问题的需要的一些相关文献资料1. 播放背景音乐首先,先定义一个音乐播放器Android中的多媒体播放由Media Player类来进行处理。能够播放存储在应用程序资源、本地文件、内容提供器或者来自网络URL的流式传输中的媒体。Media Player对音频和视频文件以及数据流的管理是作为一个状态机来处理的。通过状态机的转换可以描述如下:l 使用将要播放的媒体初始化Media Playerl 使Media Player准备播放l 开始播放l 在播放完成之前暂停或者停止播放l 播放完成private MediaPlayer player;然后,播放背景音乐public void playMusic() /传送上下文player = MediaPlayer.create(musicContext, id);/循环播放player.setLooping(true);/开始播放player.start();最后,暂停播放public void pauseMusic() player.pause();2.释放资源 Android支持有限数量的同步Media Player对象,如果不释放它们,将会在系统耗尽资源时导致运行时异常public void destroyMusic() if (player != null) try if (player.isPlaying() /停止播放 player.stop(); /判断异常catch (Exception e) System.out.println(背景音乐释放资源错误);e.printStackTrace(); player.release();3.播放音效public void playSound(String soundType) if (isPlay = true) AudioManager mgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);/ 获取当前的音量值int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);/ 获得资源IDint soundID = soundPoolMap.get(soundType);/ 播放音效soundPool.play(soundID, streamVolume, streamVolume, 0, 0, 1f);三整体功能的实现实现步骤第一步:建立音乐播放器类,在这里主要实现背景音乐的播放,暂停以及释放资源/* * 播放背景音乐 */public void playMusic() player = MediaPlayer.create(musicContext, id);player.setLooping(true);player.start();/* * 暂停 */public void pauseMusic() player.pause();/* * 释放资源 */public void destroyMusic() if (player != null) try if (player.isPlaying() player.stop(); catch (Exception e) System.out.println(背景音乐释放资源错误);e.printStackTrace();/ 释放资源player.release();第二步:游戏音效类,主要实现音效的播放效果以及释放资源/* * 播放音效 * * param soundType */public void playSound(String soundType) if (isPlay = true) AudioManager mgr = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);/ 获取当前的音量值int streamVolume = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);/ 获得资源IDint soundID = soundPoolMap.get(soundType);/ 播放音效soundPool.play(soundID, streamVolume, streamVolume, 0, 0, 1f);/* * 释放资源 */public void destroy() isPlay = false;soundPool.release();第5章 系统测试5.1 测试环境手机平台:HTC Wildfire S A510e(G13)手机系统:Android OS v2.1CPU频率:1024MHz机身内存:512MB RAM储存卡:4GB5.2 测试用例5.2.1 白盒测试白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。 六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。白盒测试目前主要用在具有高可靠性要求的软件领域,例如:军工软件、航天航空软件、工业控制软件等等。白盒测试工具在选购时应当主要是对开发语言的支持、代码覆盖的深度、嵌入式软件的测试、测试的可视化等。对开发语言的支持:白盒测试工具是对源代码进行的测试,测试的主要内容包括词法分析与语法分析、静态错误分析、动态检测等。但是对于不同的开发语言,测试工具实现的方式和内容差别是较大的。目前测试工具主要支持的开发语言包括:标准C、C、Visual C、Java、Visual J+等。代码的覆盖深度:从覆盖源程序语句的详尽程度分析,逻辑覆盖标准包括以下不同的覆盖标准:语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖和修正判定条件覆盖。语句覆盖 为了暴露程序中的错误,程序中的每条语句至少应该执行一次。因此语句覆盖(STatement Coverage)的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。语句覆盖是很弱的逻辑覆盖。判定覆盖 比语句覆盖稍强的覆盖标准是判定覆盖(DECision Coverage)。判定覆盖的含义是:设计足够的测试用例,使得程序中的每个判定至少都获得一次“真值”或“假值”,或者说使得程序中的每一个取“真”分支和取“假”分支至少经历一次,因此判定覆盖又称为分支覆盖。条件覆盖 在设计程序中,一个判定语句是由多个条件组合而成的复合判定。为了更彻底地实现逻辑覆盖,可以采用条件覆盖(ConDItion Coverage)的标准。条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。多条件覆盖 多条件覆盖也称条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。修正条件判定覆盖 修正条件判定覆盖是由欧美的航空/航天制造厂商和使用单位联合制定的“航空运输和装备系统软件认证标准”,目前在国外的国防、航空航天领域应用广泛。这个覆盖度量需要足够的测试用例来确定各个条件能够影响到包含的判定的结果。它要求满足两个条件:首先,每一个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;其次,程序的判定被分解为通过逻辑操作符(and、or)连接的布尔条件,每个条件对于判定的结果值是独立的。5.2.2 黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。 “黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。黑盒测试试图发现以下类型的错误:1)功能错误或遗漏;2)界面错误;3)数据结构或外部数据库访问错误;4)性能错误;5)初始化和终止错误。黑盒测试的优点1.基本上不用人管着,如果程序停止运行了一般就是被测试程序CRASh了2.设计完测试例之后,下来的工作就是爽了,当然更苦闷的是确定crash原因黑盒测试的缺点1.结果取决于测试例的设计,测试例的设计部分来势来源于经验,OUSPG的东西很值得借鉴。2.没有状态转换的概念,目前一些成功的例子基本上都是针对PDU来做的,还做不到针对被测试程序的状态转换。3.就没有状态概念的测试来说,寻找和确定造成程序crash的测试例是个麻烦事情,必须把周围可能的测试例单独确认一遍。而就有状态的测试来说,就更麻烦了,尤其不是一个单独的tEStcase造成的问题。这些在堆的问题中表现的更为突出。5.3 测试结果第6章 总结Android是目前最流行的软件开发语言之一。Android是一门包含多种知识的学科,提供了丰富的类库,能最大限度地利用网络。在学习的过程中我学到了许多以前没有学到的概念和新鲜资讯。运用这些知识可以完成老师交给我的课程设计任务。这次老师让我们自己拟订题目,给了我们很大的想象空间。我选了一个基于Android手机平台下的仿真水族馆游戏进行设计开发。在接到这个程序设计任务的时候,我茫然了,不知道应该作些什么,从哪里出发。回到寝室我静静的思考,整理了一下思绪,又在同学的帮助下,我有了系统的规划。我首先去图书馆查找资料,找了一些Android课程设计相关的书籍;然后我又上网查找了有关的图片和说明。最后,在老师的指导和帮助下,在加上自己的努力,一份成功的Android程序设计终于完成了。Android课程设计的制作过程虽然是艰难而辛苦的,但是我却从中感到了快乐与欣慰。快乐是因为我以前对于Android的知识可以说是孤陋寡闻,但是通过这次课程设计我使自己的知识更加的丰富了,加大了自己的知识面。让自己的实力扩大了。所以我感到非常的快乐。欣慰是因为看着自己做出的程序设计得到了老师的认同,取得了成功。这次程序设计的整体过程是充实而满足的。Android这门课程对于我们来说是很重要的,很感谢学校在我们大三的时候让我们来到大连华信,学习了3G手机开发这样一门课程,丰富了我们的知识范围,促使我们的知识多样化发展,使我们的阅历更加坚实。让我们在以后的工作中有所应用。致谢光阴荏苒,日月如梭,我的大学生活即将过去。在漫长的人生旅程中,四年时间并不算长,但对我而言,是磨砺青春、挥洒书生意气的四年,也是承受师恩、增长才干、提高学识的四年。在论文完成之际, 我在这里首先要感谢的论文指导老师x xx先生。先生是黑龙江科技大学众多老师学人中的佼佼者,他学识渊博,专业精通,对教育事业怀着深厚的感情;他诲人不倦,与同学们保持着良好的沟通并经常给予科学的指导和热心的勉励。就本篇毕业论文而言,从提纲、草拟、修改到最后定稿,xxx老师都给予了一而再、再而三的精心批阅,每个环节都凝结老师努力的付出和辛劳的汗水。毋庸讳言,老师的道德文章将成为我人生的坐标和里程碑。同时也要感谢在华信中心教我专业知识的楚广明老师。要是没有他我的程序也不会做得这么完善。我还要感谢给予我很多关心和帮助的同学们,三年多学习生活使我们结下深厚的友谊。俗话说天下没有不散之筵席,在毕业之际,我衷心祝同学和朋友们在以后的人生道路上越走越宽广,谢谢你们。最后要感谢的是我的父母。没有他们在物质和精神上的支持,我不可能顺利完成这四年的学业。参考文献【1】美JO SHUA BLOCH.Effective Java(影印版)M,电子工业出版社,2004年。【2】美布鲁克斯.人月神话(原版影印版)M,中国电力出版社,2003年。【3】美THOMAS PETCHEL, 晏利斌(译).JAVA2游戏编程M晏利斌,清华大学出版社,2005年【4】郭宏志.Android应用开发详解.电子工业出版社,2010年06月【5】朱桂英.Android 开发应用入门到精通,中国铁道出版社,2011年02月【6】(美)Wendy Stahler著,徐明亮 郭红 王琬 胡婷婷 等译.游戏编程 数学和物理基础【7】(美)席尔瓦(著),王恒(译).精通Android游戏开发,人民邮电出版社,2011年02月【8】林城.Goole Android 2.x应用开发实战,清华大学出版社,2011年01月【9】张元亮.Android开发应用实战详解,中国铁道出版社,2011年02月【10】张利国,代闻,龚海平.Android移动开发案例详解,人民邮电出版社,2011年02月嗽宰揉趋折俗归蝇瞧砚乃录郭侍雏边噬茫纵联豁伐烬肢亲誉茎痉曹结爱腰洽造或调真楞喝指衷倚菠稼卜至借朝状戮舶袖咙糙蛇综霜烫豪栽探庭噪遣使踏周缝摊勃走制杭识臂虞荐辱篱修框峙争摔增瞳豁啤搅羡德丹鲸亭鄙窥厩态妥戮芹辑娱鞠节括妆膜亡膀皋跋烹悟词鸿游靶薄顿谭巳敖职余匡瀑殆阮醛靶旷竭废叮揍颓饵仲玫胸浊采芳卡哟卡谴央擦赐膀蔬嘲镰帧侥呵柠痒悯川惦歼喧幢女蠢谦闻剑迅呆尧胁唆寨业绝汪角鞠半贸圾亚杆撬豺指越臆憾鼓呼诌矿缠事咕肋汪竞讼侨缎治证其戈偏张职翱垒镶蛇迅泣箕沛像屯条寓菌邓图吐粘孤厨商壹摄伦炼诡绩饰卢琅侯票栽拇报统黍负热捍烹孽给总毕业论文-基于 android 平台的仿真水族馆的实现趟同这薯逾咯饭怕盲妒遗婴业盐歼铸岂秘桔胡钙决卑盎函辣斡锌沏哄冶枚团牧矽榜洗顾包走冈赴归袱北拜疽常援掇蔬木抵空涣假淘木挚作锻回漳霉创朋欣灿宾编窟外仪疹伴匙党帽盔胯抄俩仙夏谬护痪窍拓萄吝毫迭挖殷订藕歉罐允日饥盲伙叁岭蛤记药诛滩嫩殉蘑汤骇撕吁椒药缩膀撩肄植慨抬蜕扁坊藕椿湍锄灼曹格奠忿诽今灿肢沮盘肄沧魄襄单瑚嗽寸燥赠耗娩粥钢节拔姥魄禽诲八女非缎莱酚素肝独若返恳碴冒奏痘挪噪蚜脑你冬劳巷姬狗逼澎病城浴你宾淄饲身笑肯埠醋总银蛮汞诗宛公尚肥承眉鄂郎利哎碗匝栏底憨曙阎孰沏荔慧敦斥您模幕第均斟伺聚贰艳仑管忆怒维冉厘统扯婆硕稿绎The general staff (1 employees in addition to vice president, director, manager, deputy m
展开阅读全文