建立Project
在Eclipse中建立Android Project,可以從File->New->Android Application Project建立,或是在左側Package Explorer右鍵建立。在建立Project時需要填入名稱等等資訊,其中比較重要的是Package Name與Compile with SDK的版本。其他沒有特別需求的話,通常就next連點直接使用預設的設定了。
Package Name是手機中用來辨識程式身分的名字,格式必須要有兩個以上的字串以點隔開,例如com.example.test。使用相同的Package Name的程式會被當做是同一個程式。一般來說重複安裝的話會被當做更新把舊的程式蓋掉,但若是使用不同的Keystore建立的程式則會安裝失敗,必須要手動刪除舊的程式才能把新的程式安裝進去。
Compile 所使用的SDK版本則直接影響到可以使用的函式。舊版的SDK自然無法使用新版所增加的功能,在新版使用淘汰的函式時,則會出現刪除線建議不要使用,但是一般還是能夠正常運作。如果使用到Google Map等不包含在原生Android SDK的功能時,要另外選擇Google API的版本。
執行Project
建立Project後,這個專案就可以立刻編譯執行了。點下上方的Run按鈕,Eclipse會編譯程式,並透過內建的debug keystore產生apk檔,之後再將這個apk檔安裝進手機然後開啟。
第一次執行會詢問要使用的執行方式,自然是選擇Android Application。之後Eclipse會找尋已開啟的模擬器或是接上的手機來安裝程式並執行,若是都沒有的話預設會自動開啟AVD中適合版本的模擬器,同時有多台設備或是沒有適合的模擬器可以開啟的話則會跳出介面選擇要執行的設備。可以點Run按鈕旁邊的小三角形選擇Run Configurations設定,可以避免不小心開啟模擬器。
若是要在實機上開發,需要到手機的設定->開發人員選項 打開USB偵錯(舊版Android是放在設定->應用程式管理中),Windows還需要另外安裝手機的驅動程式,這樣在開啟程式時,就能夠選擇手機來進行開發。要確認手機是否有正確接上,也可以到DDMS中的Devices看是否有抓到手機。
Project內容
src
是主要程式碼所放置的地方,內建有一個MainActivity,裡面的onCreate是預設的程式進入點。gen
裡面最重要的是R.java,用來管理程式內的資源。在程式中可以透過R取得各種資源,如圖片,音樂,排版方式等。R.java由系統自動建立,不要更改裡面的內容!
若是資源有問題,例如圖片換了程式卻沒更新,可以把gen砍掉讓系統重新建立R.java,或是從Project->clean來重置。
bin
當程式編譯過,會將產生的檔案放在bin中。如果想找別人幫忙測試程式,可以從bin中找到apk檔,就可以透過一般安裝apk檔案進手機的方式來讓別人安裝你的程式。但是這個apk檔是透過debug keystore所產生的,無法用於上架,要上架的話需要透過自己的keystore產生apk檔。res
這邊存放的是各種資源,並且自動產生R.java來管理這些資源。res中的檔案名稱只能使用 . _ 小寫字母 數字。
drawable用來放圖片。由於android的解析度種類各式各樣,在這邊分成l/m/h/xh dpi,一般比較常見的解析度是240*400 / 320*480 / 480*800 / 640*960,但是會根據機器的不同而有不一樣的數值。解析度是Android最討厭的地方,常常一張圖放上去,結果每支手機看起來都不一樣。想更了解解析度可以看Google Developer。
一般情況下,假如有一張480*800的圖片,丟進hdpi來使用的話會剛好符合全螢幕,但是同一張圖片丟到xhdpi的話則會太小留下黑邊。系統會自動根據自己的解析度來找尋適合的圖片,如果只有其中一個資料夾有放圖片的話則會自己將圖縮放,但是要達到最好的效果,最好還是各種dpi都放入對應解析度的圖片。
layout放的是排版方式,可以透過圖形化介面以拖拉的方式來排放元件,或是直接更改xml的內容來編排layout。內建的activity_main.xml是預設的排版方式,裡面只有一個Layout與一個"Hello world!"的TextView。
values中主要是程式中會使用到的各種字串。雖然一般來說常常會直接把字串寫死,不透過values來使用,但是values可以用來處理多國語言的問題。如果想提供多種語言,就可以另外建立對應的values資料夾,例如繁體中文是values_zh_rtw,就另外在res中建立這個資料夾並且把本來values裡的內容複製過去,再把內容更改為中文的版本。這樣使用繁體中文的手機就會到values_zh_rtw中尋找字串,而其他語言的手機則是到預設的values中尋找。
附帶一提,音樂與影片要放在raw資料夾,而預設是沒有這個資料夾的,要自己建立。

AndroidManifest
這個檔案裡面是各種註冊的資訊,包括package name,版本,權限,程式起始點,還有Activity,Service,BroadcastReceiver等等的註冊。之後常常會需要到AndroidManifest進行註冊,在講到的時候會再說明。
下一次要來講layout與view。





沒有留言:
張貼留言