课程设计我的报告——基于ARM实验箱的捕鱼游戏的设计与实现
我的贡献
- 实验环境的搭建
- 代码调试
- 在电脑上成功运行
- 在ARM实验箱上成功实现
- 给程序增长功能(没成功)
研究程序代码撰写小组报告html
1、实验环境
- Eclipse软件开发环境;
- ARM实验箱(HonyaS5PC100);
- windows操做系统。
2、实践内容
- Windows环境下ARM集成开发环境的搭建与使用;
- 安装软件到模拟器;
- 链接ARM实验箱与PC机;
- 将工程代码在ARM实验箱上实现;
- 给程序增长新的功能。
3、实践步骤
3.1 Windows环境下ARM集成开发环境的搭建与使用
- 把准备好的Eclipse和JDK安装到本机上(最好安装在全英文路径下),并给JDK配置环境变量,其中JDK的变量值为JDK安装路径的根目录,如个人为:
D:\Program Files\Java\jdk1.7.0_02;
- 安装完成后利用如下步骤检查安装是否成功:打开Windows命令窗口,在命令窗口输入
java -version
,若是出现版本信息如图,说明Java环境变量已经配置好了。
3.1.2 Eclipse的安装
JDK安装成功后能够直接安装Eclipse。直接将资料里的eclipse文件拷到电脑上,执行其中的eclipse.exe文件进行安装,Eclipse能够自动找到用户前期安装的JDK路径。android
3.1.3 安装ADT插件:
- 打开已安装好的Eclipse,选择菜单栏上的“Help”->在弹出的下拉框中单击选择“Install new software...”;
- 在新打开的对话框中咱们彻底能够直接在
Work with
中输入:https://dl-ssl.google.com/android/eclipse/
在线安装ADT插件,但因为Google的服务器搭建在国外,因此经过这种方式安装起来会比较慢,并且可能会出现人品差死活装不上的状况,因此不推荐在线安装。
- 我推荐直接经过下载好的ADT插件压缩包进行安装(此种方式能够在离线环境下进行)。具体步骤是:在新打开的对话框中点击
Add
按钮->在打开的对话框中点击Archive
按钮选择以前已经下载好保存在本地硬盘的ADT插件压缩包,至于上面的Name
能够随便取,这只是一个代号而已,没什么实际做用。
- 在上一步中点击
Ok
按钮后咱们会发现中间的空白处出现了两行复选框,单击Select All
按钮选中全部的复选框,这步事后一路Next
,须要Accept
的就选中Accept
,直到点击Finish
结束,这样ADT插件就安装好了。整个过程须要的时间视机器性能而定。安装好ADT插件后,Eclipse的工具栏会出现一排Android的图标,如图:
3.1.4 安装SDK
- Android SDK目录介绍:
add-ons
:Android开发须要的第三方文件
docs
:Android的文档。包括开发指南、API等
extras
:附件文档
platforms
:一系列Android平台版本
platform-tools
:开发工具,在平台更新时可能会更新
samples
:例子
temp
:缓存目录
tools
:独立于Android平台的开发工具,这里的程序可能随时更新
- 把下载好的Android SDK安装到本机上(最好安装在全英文路径下),并为Android SDK配置环境变量。Android SDK的环境变量值为SDK安装目录下的platform-tools文件夹和tools文件夹子目录路径,如个人分别为:
E:\360Downloads\adt-bundle-windows-x86-20131030\sdk\platform-tools
、E:\360Downloads\adt-bundle-windows-x86-20131030\sdk\platforms
,在变量值中,两个路径用逗号隔开。
- 打开命令提示符(cmd),分别输入
android -h
和adb
命令,显示以下图则说明Android SDK环境变量已经配置好了。
- 打开Android SDK的安装目录,双击
SDK Manager
,在打开的窗口中先选择你须要安装的SDK版本,其中Status
表示该SDK包是否安装,如我选的是Android4.4(API 19)
(个人以前已经安装过了,因此Status
为Installed
),再点击Install packages...
按钮,在弹出来的窗口中最好选Accept All
这样才能安装你刚才选的全部的包,最后点Install
按钮就开始安装了,整个过程会很慢,这须要你的耐心。
- 另外咱们还能够经过在Eclipse上的工具栏中点击下图指示的图标打开“SDK Manager”而后进行安装,这样和上面的SDK安装方式同样,就不累述了。
- 最后再选择Eclipes主菜单上的
Windows
选择preferrnces
;
- 在弹出来的对话框中选中左边栏的
Android
->经过右侧的Browse...
按钮选择SDK的安装路径根目录点击最下方的Ok
按钮,这样SDK就在Eclipse上加载成功了。
3.1.5 建立Android模拟器(AVD)
- 打开Eclipse->在Eclipse的工具栏上单击下图指示的图标打开
Android Virsual Device Manager
窗口;
- 在
Android Virsual Device Manager
窗口单击New
按钮,在弹出来的窗口中Name
能够随便取;Target
指模拟器的系统版本;SD Card
的size
是指手机存储卡的大小,只要你不在模拟器上装太多的应用,通常给个二三十MB就够了;Skin
是指屏幕的分辨率大小。一切设置好后点击OK
,这时一个模拟器就建立好了。若是有必要,咱们能够建立多个模拟器用于测试时使用。
- 新建立一个设备,测试运行AVD,选中这个设备点击
Start
,这时会弹出设置屏幕参数,选中Scale display to real size
,再点击Lanuch
。
- 虚拟设备启动完成后会出现下图:

- 至此为止,在Eclipse上就已经成功搭建Android开发环境了,下面让咱们看看如何新建第一个Android项目。
- 将Android项目导入Eclipse中:一、启动Eclipse,选择
File
--Import...
菜单,展开General
项,选择Existing Projects into Workspace
导入项目到工做区;二、点击Next
按钮,进入选择项目文件目录,选择好项目目录后,点击Finish
按钮,等待导入完成便可,若是须要将项目文件一块儿拷贝到工做区,就须要选择Copy project into workspace
复选框。
3.2 安装软件到模拟器
- 把apk的安装包放入
\sdk\platform-tools
目录下和adb.exe
文件同目录,如图:
- 运行cmd,切换到adb.exe的目录
- 输入adb install testGame.apk
- 当命令行出现Success时表明安装成功,如图:
- 如图所示,安装失败,提示没有发现设备,是由于此时我没有打开安卓模拟器也没有链接开发板,须要将证书安装到设备上前提是有设备链接。固然咱们在Eclipse中运行程序的时候Eclipse会先将证书安装到设备上,因此这一步也能够直接省略。
3.3 链接ARM实验箱与PC机
- 链接好串口线、电源线以及USB线,如图所示:
- 在Eclipse中点击项目运行以后会出现设备选择,上面是安卓模拟器,下面是开发板FS4412。
3.4 将工程代码在ARM实验箱上实现
3.5给程序增长新的功能
- 咱们的这个捕鱼游戏相对简单,因此我想要给咱们的这个程序增长一个用户的登陆功能,这就涉及到数据库的搭建以及数据库的链接了。由于上学期选过数据库这门课因此想要尝试一下。首先建立一个名为game的数据库,其初始大小为5MB,最大为50MB,容许数据库自动增加,增加方式是按10%比例增加。日志文件初始为2MB,最大可增加为5MB,按1MB增加。存放位置为“D:\fishgame”。
- 创建数据库的过程如图所示:
- 可是在链接数据库时遇到了不少问题,因为人力有限最后仍是放弃了。
4、实验中遇到的问题及解决
问题一:windows下java jdk 环境变量设置
java jdk环境变量的配置:简单来讲就是要设置path和classpath,path是要加上bin,classpath里面是lib。
个人电脑->属性->高级系统配置。shell
- path系统里面都有了,只要在里面加上bin的地址就能够,每一个路径之间用;隔开。
例如:C:\Program Files\Java\jdk1.6.0\bin
- classpath要本身新建,固然若是已经有了,在里面编辑就能够,注意classpath前面要有.;表明当前路径。
例如:.;C:\Program Files\Java\jdk1.6.0\lib\dt.jar;C:\Program Files\Java\jdk1.6.0\lib\tools.jar
- 为了方便书写和之后的更改,能够设置java_home变量,将其设为C:\Program Files\Java\jdk1.6.0,这样path和classpath里面就能够用%java_home%来替换C:\Program Files\Java\jdk1.6.0
例如:path可设置为%java_home%\bin
问题二:Eclipse中的source not found change at.
解决办法:
须要把源码src.zip添加进去,源码src.zip通常放在java的jdk目录下面数据库
问题三:ERROR: Application requires API version 10. Device API version is 8
解决方法:
修改两个配置文件:编程
- 在AndroidManifest.xml里,
找到这一行,这行是表示要执行这个应用程式所须要的最低版本,把数字改为模拟器上面的版本。(Device API)
- 在default.properties里 target=android-8 把target改成要运行模拟器的版本就OK了。(application requires API)
问题四:Adb启动失败
当咱们经过eclipse开发Android应用时,安卓模拟器启动失败,提示这样的错误:ADB server didn’t ACK。
解决办法:windows
- 在cmd中输入:adb start-server启动adb服务。这个时候会提示启动失败。
- 在cmd中输入:adb nodaemon server查看是不是端口绑定失败。通常会输出:cannot bind‘tcp:5037’表示端口绑定失败。
- 在cmd中输入:netstat –ano | findstr “5037”查看哪一个服务占用了这个端口。
- 进入任务管理器,关闭占用端口的进程。
- 再次启动服务,启动成功。
- 关闭Eclipse,重启,再次链接模拟器。
问题五:下载SDK时Google服务器被和谐
解决办法:
能够强制指向下Host,以下:api
- 在C:\WINDOWS\system32\drivers\etc路径下找到hosts文件并打开
- 把“74.125.237.1dl-ssl.google.com”添加到最后一行保存并关闭
- 从新打开Android SDK Manager进行下载
问题六:Android模拟器报错emulator-5554 disconnected!
解决办法:有两种解决方案:数组
- 打开window -> Show Views -> device,点击“Devices”选项卡右上角的下拉箭头,选择“Reset adb”。
- 打开Windows命令行,切换到开发工具自带的adb.exe所在的目录,输入“adb kill-server”,回车,再输入“adb start-server”,回车。
问题七:在AVD中运行测试时,老是会弹出错误框,提示信息为:“Your project contains error(s),please fix them before running your application.”,无论是重启AVD 重启eclipse 甚至建立一个新的Android工程项目都不能运行。
解决办法:有如下几种缘由:缓存
- 在不一样的电脑下开发,并且文件存放路径不一样,错误的主要缘由是 “.classpath” 文件的载三方类库包路径错误。
- 也多是SDK版本不存在或者没有。
- 编译的class、apk文件有问题:执行清除一下就能够了。Project→Clean→Clena Projects Selected Below 选择出错的项目就能够了。
- 有可能就是最重要的这一点:
在Program提示框中会提示:“Error generating final archive: Debug Certificate expired on 12-7-25 下午7:52”
缘由分析:
android要求全部的程序必须有签名,不然就不会安装该程序。在咱们开发过程当中,adt使用debug keystore,在 preference->android->buid中设置。debug的keystore默认有效期为一年,若是是从一年前开始完android程序,那么在一年后导入这个app的时候极可能出现debug keystore过时,致使没法生成apk文件。
解决方法:
进入C:\Documents and Settings\Administrator.android 删除路径下的debug.keystore及ddms.cfg。
(不一样环境下的目录可能略有不一样,可在eclipse中查找此路径:Window->Preferences->Android->Build下 Default debug keystore)
此时只要删除debug keystore就行,系统又会生成有效期为一年的私钥。debug签名的应用程序有这样两个限制:
- debug签名的应用程序不能在Android Market上架销售,它会强制你使用本身的签名;
Debug模式下签名用的证书(默认是Eclipse/ADT和Ant编译)自从它建立之日起,1年后就会失效。
- debug.keystore在不一样的机器上所生成的可能都不同,就意味着若是你换了机器进行apk版本升级,那么将会出现程序不能覆盖安装的问题。
问题八:弹出框Application Install
弹出框Application Install提示:Do you want tounistall?
这个通常是指在移动设备中已经有一个和当前要运行的程序同样名字的apk软件了,若是要运行这个软件,则要卸载设备中原有的apk。可是当我点击是,它却提示失败:
Installation error! The package already exists.
Launch canceled!
解决办法:这个时候有两种处理办法:
- 能够用adb shell对设备中的软件进行卸载
1) 能够直接用:adb uninstall testGame.apk
2) 若是apk文件是只读的,则须要更改其权限:
#adb shell
#mount -o remount rw /system
#rm testGame.apk
#ls---这时就不会再有那个testGame.apk文件包了
更改权限也能够进入cmd直接修改system的权限:adb remount,而后再进入shell去删除文件
- 更改当前运行工程的包名,对设备中已有的apk无任何影响法。
知识点介绍:工程中每一个目录的功能:
src目录
:包含App所需的所有程序代码文件,咱们大多数时候都是在这里编写咱们的Java代码的
gen目录
:只关注R.java文件,它是由ADT自动产生的,里面定义了一个R类,能够看做一个id(资源编号)的字典,包含了用户界面,图形,字符串等资源的id,而咱们平时使用资源也是经过R文件来调用的,同时编译器也会看这个资源列表,没有用到的资源不会被编译进去,能够为App节省空间
assets目录
:存放资源,并且不会再R.java文件下生成资源id,须要使用AssetsManager类进行访问
libs目录
:存放一些jar包,好比v4,v7的兼容包,又或者是第三方的一些包
res资源目录
:存放资源的,drawable:存放图片资源;layout:存放界面的布局文件,都是XML文件;values:包含使用XML格式的参数的描述文件,如string.xml字符串,color.xml颜色,style.xml风格样式等
AndroidManifest.xml配置文件
:系统的控制文件,用于告诉Android系统App所包含的一些基本信息,好比组件,资源,以及须要的权限,以及兼容的最低版本的SDK等
5、实践过程当中质疑记载:
- 这里面鱼是怎么移动的?
答:这里面是经过鱼的一个run()方法实现的,由于鱼的类继承了Thread类,因此只要将鱼的对象fish.start()即可以调用run()方法,而在该方法中,每过一段时间(这个时间很短,Thread.sleep(1000/20)),鱼的横左边就会减去它当前的速度,而后用repaint方法将鱼移动后的形态重画出来,鱼就移动了。
- 鱼的游动效果是怎样实现的?参考:捕鱼达人的鱼儿游泳动画
答:咱们先将该一种鱼的每一个游动形态的图片加载到一个BufferedImage的一个数组中,而后在鱼儿的run()方法中,鱼每次移动一次,就将鱼的图片换成数组中的一张图片,循环下去,鱼就游动了。
- 鱼是怎么被捕到的?参考:如何设计捕鱼达人游戏中的死亡几率?
答:鱼的图片是有大小的,而渔网咱们看作是一个点,只要渔网的中心点在鱼图片的范围以内,且点击鼠标左键,鱼儿就会扣血,固然扣血量的大小按当前渔网的power值来扣。当鱼的血量小于零的时候,鱼就会捕到了,而后调用写好的getOut()方法将鱼送出来,还要将鱼的血量从新赋值,使鱼又能够进来鱼池中。
6、设计体会及收获
- 本次课程设计历时四周,我从对Java编程的不熟悉到深刻了解,以及对ARM开发板的彻底陌生到熟练链接运用,经过本次课程设计,让我亲身感觉到了“纸上得来终觉浅”这句话的含义,可能听老师讲的时候都能听懂,等到本身操做的时候就老是眼高手低,不知如何下手,但最终我经过去图书馆查找相关资料以及在网上找相关问题的解决办法,最终解决了在开发过程当中,从需求分析到功能实现的一些问题,完成了这个项目。
- 刚开始的时候遇到问题是束手无策,可是随着一个个问题的解决,个人能力也在慢慢提升。原本老师都让我放弃这个题目了,可是毕竟作了这么久,并且最后就面临一个问题,被解决的但愿仍是特别大的,因此我坚持了下去。终于功夫不负有心人,在各类查资料以后终于解决了这个大难题,使得游戏成功实现了,特别有成就感。本次课程设计从开始到结束都是本身一我的在作,因此我以为能有最后的成功是对本身从此的学习生活最大的鼓励。
- 在开发过程当中,我也查找了很多资料,从实际出发几回修改了需求分析,使最终开发出的游戏具备必定趣味性,而且基本实现需求。经过本次课设我意识到,咱们对知识的学习,不能光停留在书本上,还要开拓眼界,主动学习,才能让本身跟得上时代的步伐。
参考资料: