課程設計我的報告——基於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開發板的徹底陌生到熟練鏈接運用,經過本次課程設計,讓我親身感覺到了「紙上得來終覺淺」這句話的含義,可能聽老師講的時候都能聽懂,等到本身操做的時候就老是眼高手低,不知如何下手,但最終我經過去圖書館查找相關資料以及在網上找相關問題的解決辦法,最終解決了在開發過程當中,從需求分析到功能實現的一些問題,完成了這個項目。
- 剛開始的時候遇到問題是束手無策,可是隨着一個個問題的解決,個人能力也在慢慢提升。原本老師都讓我放棄這個題目了,可是畢竟作了這麼久,並且最後就面臨一個問題,被解決的但願仍是特別大的,因此我堅持了下去。終於功夫不負有心人,在各類查資料以後終於解決了這個大難題,使得遊戲成功實現了,特別有成就感。本次課程設計從開始到結束都是本身一我的在作,因此我以爲能有最後的成功是對本身從此的學習生活最大的鼓勵。
- 在開發過程當中,我也查找了很多資料,從實際出發幾回修改了需求分析,使最終開發出的遊戲具備必定趣味性,而且基本實現需求。經過本次課設我意識到,咱們對知識的學習,不能光停留在書本上,還要開拓眼界,主動學習,才能讓本身跟得上時代的步伐。
參考資料: