天天看點

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

本節書摘來自異步社群《android 3d遊戲開發技術寶典——opengl es 2.0》一書中的第1章,第1.4節hello android應用程式的開發,作者 吳亞峰,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

1.4 hello android應用程式的開發

android 3d遊戲開發技術寶典——opengl es 2.0

本節首先将介紹如何在eclipse中建立一個基于android的hello world應用程式,之後将簡單介紹android應用程式的調試,為讀者以後學習進階開發鋪平道路。

1.4.1 第一個android應用程式

本小節将向讀者介紹如何在eclipse中建立一個基于android的hello world應用程式,基本步驟如下所列。

(1)首先打開eclipse,然後依次選擇file|new|project(如圖1-33所示)或者單擊按鈕後,系統将彈出建立項目對話框,如圖1-34所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

(2)在建立項目對話框中選擇android project,然後單擊“next”按鈕(如圖1-35所示),彈出new android project對話框,如圖1-36所示。

(3)在new android project對話框中輸入項目的名稱(在這裡輸入的是sample1_1),在build target中選擇項目的目标版本(這裡選擇的是android 2.3.1版),如圖1-37所示。

(4)接着在application name中輸入應用程式的名稱(這裡輸入的名稱與project name中的相同,當然也可以不同);同時在package name中輸入程式的包名(這裡輸入的是com.bn.sample1_1);最後輸入activity的名稱(在這裡輸入的是sample1_1_activity);最後在min sdk version中輸入應用程式最低支援的版本level(這裡輸入的是9,代表android 2.3.1版)。整體情況如圖1-38所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

提示 建立項目時輸入項目的包名時,需要至少使用二級包名,否則在該對話框上方會顯示“package name must have at least two identifiers”錯誤資訊。

(5)最後單擊“finish”按鈕(如圖1-39所示)完成項目的建立,此時在project explorer中會自動添加建立的項目,如圖1-40所示。

(6)在project explorer中選擇本項目,然後單擊滑鼠右鍵,在彈出的快捷菜單中依次選擇run as|android application運作本程式(如圖1-41所示)或者單擊按鈕運作本程式,運作效果如圖1-42所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發
《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

從上述步驟中可以看出,使用eclipse建立并運作一個android應用程式是非常容易的。

1.4.2 android應用程式的項目結構

上一小節介紹了如何通過android sdk自動生成android項目,但是沒有對該項目中的内容及組成進行介紹。本小節将對android項目中的各重要組成部分逐一進行介紹,如圖1-43所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

1.src源代碼檔案夾

該檔案夾下存放了應用程式中所有開發的java源代碼。要注意的是,在更為複雜的項目中,該檔案夾下可以有很多不同的包用于存放不同功能目的的源代碼。

2.gen檔案夾

該檔案夾中存放的是eclipse中adt插件自動生成的r.java檔案。實際上r.java定義了一個r類,其中包含應用程式的使用者界面、圖像以及字元串等資源的編号。也就是每有一個資源執行個體,系統就為其在r類中生成一個相應的編号。這些編号都是系統自動生成的,使用者不應該修改。

3.assets檔案夾

該檔案夾用于存放應用程式需要使用的一些外部資源,如音頻、視訊、資料檔案等。在應用程式中可以使用“getresources().getassets().open("aa.mp3")”得到指定資源檔案的輸入流。

4.res資源檔案夾

該檔案夾下一般有drawable系列、layout及values 等檔案夾,下面對這些檔案夾逐一進行介紹。

drawable系列檔案夾。該系列檔案夾一般有drawable-hdpi、drawable-mdpi、drawable-ldpi 3個檔案夾,這3個檔案夾分别用來存放不同分辨率目标裝置的圖檔資源。當應用程式在目标裝置上運作時,系統會自動根據目标裝置的分辨率選擇對應檔案夾下的圖檔使用。

layout檔案夾。該檔案夾下包含了所有使用xml格式的界面描述檔案,這些檔案用于表述應用程式中使用者界面的布局。具體的開發中讀者會體會到,用這種方式進行布局的開發比傳統的使用java源代碼開釋出局要友善簡捷得多。

values檔案夾。本檔案夾中包含了一些xml格式的資源描述檔案,一般包括string.xml(字元串資源)、color.xml(顔色資源)、style.xml(樣式資源)等。

5.androidmanifest.xml檔案

此檔案是整個應用程式的描述檔案,應用程式中所需要的各個元件均需要在此檔案中說明。同時,應用程式需要的一些權限,如網絡通路權限、i/o讀取權限等,也需要在此檔案中進行聲明。

提示 除了上述檔案夾及檔案外,還有一個一般開發時不需要直接使用的default.properties檔案。此檔案為項目的配置檔案,一般不需要人為改動,系統會自動對其進行管理,有興趣的讀者可以自行打開檢視。

1.4.3 android應用程式的調試

android sdk提供了一個強大的調試工具ddms(dalvik debug monitor service),通過ddms可以調試并監控android程式的運作,打開ddms的方法如下。

一般情況下在eclipse中安裝了adt插件後,eclipse視窗的右上側會有ddms的選項按鈕,如圖1-44所示。單擊它即可切換到ddms界面,如圖1-45所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

1.system.out.println方法

首先介紹java開發人員十分熟悉的system.out.println方法,其在android應用程式中的使用方法與傳統java中相同,具體步驟如下。

提示 在這裡就不再建立新的android項目了,直接使用的是上一小節已經建立的android項目(sample1_1)。

首先在eclipse中打開src檔案夾下的com.bn.sample1_1包中的sample1_1activity.java檔案。

然後在setcontentview(r.layout.main)語句後面添加代碼system.out.println(“the first”)。

代碼修改完成後,再次運作本應用程式。

應用程式運作後打開ddms,找到logcat面闆,單擊其中的(debug)按鈕,如圖1-47所示。

在logcat面闆下的log頁籤中可以看到輸出的列印語句,如圖1-48所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

有時可能覺得在log中的輸出資訊太多,不便于檢視。這時可以在logcat中添加一個專門輸出system.out資訊的面闆。單擊debug按鈕右邊的(create filter)按鈕,系統會彈出log filter對話框,在filter name輸入框中輸入過濾器名稱,在by log tag中輸入用于過濾的标志,如圖1-49所示。

說明 由于輸出的語句主要有system.out.println(換行),system.out.print(不換行)兩種,是以設定by log tag中的内容為system.out以進行過濾。

此時再次運作應用程式觀察輸出的情況,在logcat下的system面闆中将會隻存在system.out的輸出資訊,效果如圖1-50所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

2.android.util.log類

除了java開發人員熟知的system.out.println方法外,android還專門提供了另外一個類android.util.log來進行調試資訊的輸出。下面将介紹log類的使用,具體步驟如下。

在sample1_1activity.java中注釋已經添加的列印輸出語句“system.out.println(“the first”);”,然後在後面添加代碼“log.d(“log”, “the first log”);”。

運作程式,在ddms中找到logcat面闆,切換到log頁面,觀看列印的内容,如圖1-51所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

提示 使用log類時需要使用import android.util.log語句進行導入,system.out.println方法與android.util.log類各有優缺點,讀者可以在開發項目時自行體會,選用自己所需要的。 同時需要注意的是,ddms還有很多強大的功能,這裡隻介紹了其最基本的用法,有興趣的讀者可以參考2011年9月人民郵電出版社出版的《android應用案例開發大全》一書的第1.4節“ddms的靈活應用”或參考其他技術資料。

1.4.4 實際裝置的聯機調試

由于模拟器在實際項目開發中不是很友善,主要展現為性能較差、很多功能不支援(如本書要重點讨論的opengl es 2.0),是以實際開發中一般使用真機對開發的應用程式進行調試。本小節将介紹實際裝置聯機調試的方法,基本步驟如下。

下載下傳與真機型号相比對的驅動程式(注意部分手機自帶驅動程式,無須下載下傳)。

用資料線将手機和開發pc相連接配接。

根據提示,在pc上安裝手機驅動程式。

将手機設定為允許安裝未知來源軟體,并打開手機上的usb調試。這兩項設定都可以在手機設定選項下的應用程式項目中找到,根據手機具體型号的不同可能略有差別。

再次運作前面開發的應用程式,系統将彈出android device chooser視窗,如圖1-52所示。

《Android 3D遊戲開發技術寶典——OpenGL ES 2.0》——1.4節Hello Android應用程式的開發

繼續閱讀