天天看點

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

android本意是“機器人”,是google公司推出的開源手機作業系統。android基于linux作業系統,由作業系統、中間件、使用者界面和應用軟體組成,号稱首個為移動終端打造的真正開放和完整的移動軟體。

在android最早釋出時,google公司官方将java語言作為第三方應用的開發語言,但是也沒有完全拒絕c語言的開發人員使用自己的語言進行開發,因為在android釋出初期,google就表明其虛拟機支援jni(java native interface,java本地調用),也就是第三方可以通過jni調用自己的c動态庫。但是最早google并未為這種方式提供相應的工具支援這種開發方式。直到2009年6月,google android方面釋出了ndk(native develop kit,原生态本地開發包),支援開發者使用c/c++語言開發android程式。

android ndk作為android sdk的一個附加元件提供給開發者,也就是說,開發者必須同時安裝sdk和ndk。ndk隻是作為sdk的一個補充,增加了代碼的重用性和程式的運作效率,并且使c/c++程式員也可以加入android的開發中。本書成書之時ndk的最新版本是android-ndk-r7版本,本書也是使用這個版本進行開發的。

正因為android支援了c/c++的開發,cocos2d-x才選擇了c++作為主要的開發語言。因為java語言是ios開發不支援的,是以跨平台的cocos2d-x選擇了支援兩個平台的c++作為主要的開發語言。是以配置cocos2d-x環境需要如下的開發工具。

eclipse:支援java和android開發的開源內建開發工具。

jdk:jdk(java development kit)是java開發工具。

adt:adt是(android development tools,android開發插件)android開發的eclipse插件。

cdt:cdt是(c++ development tools,c++開發插件)c++開發的eclipse插件。

android sdk:android 開發工具,包括模拟器等。

android ndk:android原生态本地開發包,輔助sdk進行編譯開發,支援c/c++。

cygwin:在windows平台上運作的unix模拟環境,是cygnus solutions公司開發的自由軟體。

使用cocos2d-x進行android開發需要上述工具。本節就介紹如何使用這些工具來搭建cocos2d-x的android開發環境。

2.2.1 cocos2d-x軟體安裝與配置

與cocos2d-x的win 32環境下的軟體開發與配置相比,android的環境配置要相對麻煩,包括android開發環境的搭建、android ndk開發環境的搭建、cygwin的安裝與配置及cocos2d-x的編譯運作等。

1)下載下傳并安裝jdk。

由于運作android的模拟器和eclipse等需要java的jdk環境,jdk是oracle公司的java開發工具,下載下傳位址為<code>http://www.oracle.com/technetwork/java/javase/downloads/index.html</code>,下載下傳的檔案直接運作安裝即可。

2) 下載下傳java的開發工具eclipse。

eclipse 是一個開放源代碼的、基于java的可擴充開發平台。就其本身而言,它隻是一個架構和一組服務,用于通過插件元件建構開發環境。幸運的是,eclipse 附帶了一個标準的插件集,包括java開發工具等。eclipse的下載下傳位址是<code>http://www.eclipse.org/downloads/</code>。eclipse無須安裝,解壓完成便可直接使用。

這裡需要說明的是,一般的java開發和android開發需要的隻是eclipse的java版開發工具,但是因為我們這裡需要使用c++進行開發,是以建議下載下傳eclipse的c++版本,這樣會更加友善些。本書成書之時最新的eclipse的c++版本的下載下傳位址是<code>http:// www.eclipse.org/ downloads/ packages /eclipse-cc- developers/junor</code>。

3) 為eclipse安裝相應的插件,首先是adt插件。

adt是android開發的eclipse插件,為我們提供了android的ddms(dalvik debug monitor service,android虛拟機調試監視服務)等android開發的功能。一般使用eclipse線上安裝方式安裝adt。

首先打開eclipse,選擇help→install new software(可能會由于eclipse版本不同而有所不同),彈出如圖2-11所示的界面,輸入網址<code>http://dl-ssl.google.com/android/eclipse</code>,單擊add按鈕便可出現如圖2-11所示的結果。

選擇安裝全部,同時安裝開發工具和ndk插件。安裝過程中會首先下載下傳所需的軟體,是以時間可能會長些,請耐心等待。

4)安裝eclipse的c++插件。

如果直接安裝eclipse的c++版本,可以跳過這一步。下載下傳位址為<code>http://wiki.eclipse.org/cdt/user/downloadcdtlatest</code>。下載下傳壓縮包以後,同樣選擇help-install new software,彈出相應的界面後新增本地cdt的位址,即可安裝。第三步和第四步這兩種方式同時适用于cdt和adt的安裝,這裡分别介紹兩種安裝方式,大家可以根據自己的情況選擇。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

5) 下載下傳安裝android sdk。

下載下傳位址為: <code>http://developer.android.com/sdk/index.html</code>。下載下傳完成後解壓到某個目錄下,然後選擇window→preferences→android,彈出如圖2-12所示的對話框,在sdk location中輸入android sdk的位址,單擊apply按鈕并确定,android sdk的配置就完成了。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

選擇window→android sdk manager,彈出如圖2-13所示的界面,可以安裝android的其他版本和相應工具的補充安裝。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

6)安裝和配置android的ndk工具。

android ndk的最新版本為r7,可以在編譯時省去cgywin,提高效率,下載下傳位址為<code>http://dl.google.com/ android/ndk/android-ndk-r7-windows.zip</code>。将ndk解壓到某一目錄下,然後選擇window→preferences→android→ndk,彈出如圖2-14所示的對話框,在ndk location中輸入ndk的位址,單擊應用按鈕并确定,完成ndk的配置。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

7)編譯并運作helloworld項目。

選擇file-new-project,在彈出的界面中選擇android project from existing code,如圖2-15所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

選擇項目路徑下的proj.android路徑(之前的版本是android檔案夾),選中并建立檔案,如圖2-16所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

8) 進行編譯前的配置。

單擊滑鼠右鍵選中項目後,選擇properties-builder-new,添加ndk路徑,如圖2-17所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

在如圖2-18所示的界面中分别選擇browse file system和browse workspace,選擇ndk-build.cmd和項目的路徑。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

cocos2d-x 2.0以上版本還要設定ndk_module_path環境變量,如圖2-19所示,填寫cocos2d-x的庫的路徑和第三方庫的路徑,中間用分号相隔,如例:......cocos2d-2.0-rc0a-x-2.0; .....cocos2d-2.0-rc0a-x-2.0 cocos2dxplatform third_partyandroidprebuilt。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

9)運作之前将資源檔案複制到assest檔案夾下。

将ndk目錄下的/sources/cxx-stl/gnu-libstdc++/libs/armeabi/目錄下的libgnustl_static.a檔案複制到項目檔案夾下的obj/local/armeabi/libgnustl_static.a目錄下,之後右鍵項目選擇runas-android application運作,效果如圖2-20所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

注意 從ndk的r7版本開始,編譯部分不需要使用cygwin的輔助了。如果使用之前的版本,建議更新,因為從2.0版本起cocos2d-x隻适用ndk的r7版本。否則需要打開cygwin,輸入工程路徑下的android檔案夾的完整路徑,然後運作build_native.sh檔案,具體輸入為./build_native.sh。使用指令行模式輸入指令很麻煩,最好将指令以記事本形式打開cygwin根目錄下的.etcbash.bashrc修改啟動的目錄。

2.2.2 cocos2d-x工程目錄介紹

cocos2d-x在android平台上的工程項目與android的application一緻,其目錄變化比較小,如圖2-21所示。

cocos2d-x的android項目目錄内容如下:

src:java源檔案的目錄,由于android項目的入口類都是activity,是以這裡包括activity、事件捕捉在内的java實作的程式。java檔案目錄包括入口activity的applicationdemo和它的父類cocos2dxactivity,以及處理聲音、加速度傳感器的類,如圖2-22所示。

gen:自動生成的r.java檔案、buildconfig.java檔案等。

assets:資源檔案。

bin:apk封包件等配置檔案。

jni:包括編譯時使用的mk檔案等。

libs:顧名思義,庫檔案,包括so檔案等。

obj:包括部分so檔案和o檔案等。

res:xml(extensible markup language,可擴充标記語言)等配置檔案。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

2.2.3 建立項目及交叉編譯

android下的cocos2d-x編譯在2.0版本以後已經因為使用ndk的r7版本,而不需要使用cygwin的輔助,但是建立項目還是需要cygwin的。

1)下載下傳cygwin。

從官方位址<code>http://cygwin.com/install.html</code>下載下傳cygwin的線上安裝檔案,輕按兩下下載下傳安裝cygwin。

2)使用任意文本編輯工具打開cocos2d-x目錄下的create-android-project.bat檔案。

如圖2-23所示,方框中的部分為我們需要修改cygwin、android sdk和android ndk目錄的位置。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

3)輕按兩下create-android-project.bat檔案,在指令行模式下輸入項目的包名項目名、sdk版本等,選擇後完成建立,如圖2-24所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

4)根據2.2.1節中的内容編譯運作firsttest項目,效果如圖2-25所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

5)編輯android.mk檔案。

把遊戲項目的c++檔案資訊輸入android.mk檔案中,如圖2-26所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

注意 不同版本的mk檔案的位置是不同的,cocos2d-x的1.0.1-x-0.11.0版本的是在classes目錄下,cocos2d-x的2.0-rc2-x-2.0.1版本的在jni目錄下。修改位置不正确,是起不到相應的效果的。

在win32程式轉換成android項目的過程中,由于二者在規則上的不同,為了程式的可移植性更好,需要注意以下的内容:

win32的程式對于資源的名稱是大小寫不敏感的,但是在android中,卻恰恰是大小寫敏感的。比如圖檔的名稱是example.png,在win32程式中如果寫example.png,是可以找到相應的圖檔的,但是在android中卻不可以。是以為了提高程式的可讀性,請保持大小寫的敏感。

需要改變android項目的橫縱螢幕時,在圖2-27所示的位置上修改,分别選擇landscape(橫向)和portrait(縱向)即可。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

vs下的編碼格式與android下的編碼格式不同,是以需要統一編碼格式,或者使用轉換工具轉換。

如果需要添加新的庫,這裡以box2d庫為例,在2.0之前的版本需要經過如下步驟:

1)修改工程目錄下的classes目錄下的android.mk檔案,需要修改的位置如圖2-28所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

2)修改android工程目錄下的jni目錄下的android.mk檔案,需要修改的位置如圖2-29所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

3) 修改jni目錄下的application.mk檔案,需要修改的位置如圖2-30所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

4)修改入口activity類,需要修改的位置如圖2-31所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置

在2.0之後的版本中,由于設定了環境變量ndk_module_path,隻需要修改android工程目錄下的jni目錄下的android.mk檔案即可,如圖2-32所示。

《Cocos2D-x權威指南》——2.2 Android下的開發環境配置