回 Android手機程式設計人才培訓班 課程時間表

Eclipse開發環境與Android程式開發流程

Eclipse開發環境介紹

因為我們在開發Android應用程式時,大部份時間都是使用Eclipse開發,所以事先熟悉Eclipse環境可以更大的增加開發效率。

基本版面

標準的Eclipse開發環境版面
Package Explorer 套件瀏覽器 以樹狀結構顯示,用來查看及存取專案內所有的目錄結構、檔案、資源等等;點擊每個目錄左邊的小三角形可以收起或打開該目錄。
Editor 程式碼編輯器 位置在整個開發環境的中間,用來編輯Android程式碼,程式語法會根據不同的特性已不同顏色來顯示,該位置有時也會用來顯示圖形化編輯器用來編輯介面、XML、Manifest檔案等等。
Outline 大綱 在Eclipse版面右邊,以樹狀結構來顯示程式碼或XML內容架構,用來快速存取要編輯的程式碼類別或方法區塊。
Prespective 視圖
Problem 專案問題 在Eclipse版面下方,通常和Console、Logcat視窗共用一個位置,透過標籤(Tab)來切換;專案裡的警告與錯誤訊息皆會顯示在這裡。點擊該訊息就可以直接跳到警告或錯誤在程式碼的位置。
Console 專案訊息 程式編譯訊息或與Eclipse開發環境相關的訊息皆會顯示在該處。
Logcat Android除錯訊息 用來顯示在Android程式碼裡面使用Log方法丟出來的訊息或是裝置內系統訊息用。

開啟其它版面視窗

當基本版面視窗沒有出現或是不小心關閉時,可以由Eclipse上方選單Window->Show View來開啟。
如果是ADT提供的視窗則必須由Window->Show View->Other打開ADT提供的視窗,例如:LogCat。

選單列

常用選項:
提示:
  • 當匯入(import)的專案名稱和目前workspace內專案重複時,可以先將目前專案更名(在package explorer內用滑鼠點擊一下要改名的專案名稱後按F2)。)
  • 顯示行號:Window->Preferences->General->Editors->Text Editors->Show line numbers
  • 修改原始檔編碼:Window->Preferences->General->Workspace->Text file encoding->UTF-8
  • 編輯器文字大小:Window->Preferences->General->Appearance->Colors And Fonts->Basic->Text Font

視圖(Perspective)切換

在開發期間,我們會常需要在DDMS視圖、Debug視圖之間做切換,因此將切換視圖按鈕直接放在Eclipse版面上會方便許多。

新增視圖:

透過程式碼樣版(templete)新增檔案

要自行從無到有建立程式碼需要理解的技術及架構較多,需要長時間累積,門檻也較高,因此在新增一些初始類別或設定檔甚至資源檔時,使用Android樣板功能來建立初始的框架後再進行修改或新增會是一個比較好的辦法並且有效率,而且,樣板程式碼剛建立時可以保證能正確編譯及執行,也能漸少你除錯及修改錯錯誤程式碼的時間。

從Eclipse上方選單點選File->New->Other->Android來開啟Android程式碼樣板選單:

AndroidManifest.xml程式屬性清單檔案編輯器

每個Android應用程式都一定會有一個AndroidManifest.xml檔案,用來設定App的整體資訊,例如:App版本、使用的API版本、支援的裝置、支援的系統、需要的權限、程式內的元件(Activity、Service、Widget等等)的相關設定都會在這個檔案內。所以這個檔案對於Android App來說非常重要。

Menifest 清單 App整體設定,如:支援的Android系統版本、支援的螢幕、套件名稱、版本號碼等等。
Application 應用程式 程式內使用到的元件資訊,如:Activity、Service等等;或是像App的名稱、圖示,以及App執行時的一些參數等等。
Permission 權限 列出App需要的Android權限及裝置權限,如果沒有設定權限,很多Android功能將無法使用,例如:存取網路、拍照等等。
Instrumentation 測試設備 讓開發者可以設定一個類別,這個類別會比所有程式裡面的元件都還早被初始化,可以用來監測App與系統的互動,或是建立功能測試的機制。
AndroidManifest.xml Android功能輕單 直接編輯XML格式檔案
除了AndroidManifest.xml屬性編輯器之外,ADT內另外包含多個XML檔案的編輯器,像strings.xml、layout.xml、styles.xml等等,開發者只需要在標單內輸入需要的文字或數字即可,可以不用直接編輯XML,降低出錯的機率。

鍵盤快速鍵(Hotkey)

透過鍵盤快速鍵可以減少間盤和滑鼠之間交換操作及滑鼠移動時間,甚至多層選單點選的時間,增加開發效率。

MacOSWindows快速鍵說明
Command+1 Ctrl+1 快速修正
Command+Shift+F Ctrl+Shift+F 將程式碼或XML重新排版。
Command+I Ctrl+I 修正縮排。
Command+O Ctrl+O 已開啟的檔案清單。
Command+F Ctrl+F 打開搜尋與取代視窗
Command+Shift+R Ctrl+Shift+R 不須透過Package Explorer快速開啟專案中的檔案
Command+F6 Ctrl+F6 快速在開啟的檔案中切換
Command+[ 或 ] Ctrl+[ 或 ] 切換到上/下一個開啟的檔案
Command+Shift+F11 Ctrl+F11 編譯並執行程式
PS.在XML檔案編輯器下無效
Command+F11 F11 進入除錯模式
在XML檔案編輯器下無效
Command+/ Ctrl+/ 將多行選取後,一次註解或取消註解多行
Control+M Ctrl+M 最大化目前視窗,再按一次則恢復原狀。
Control+Space Alt+/ 開啟程式碼補完功能視窗(智慧輸入視窗)
Option+Shift+A Alt+Shift+A 在Eclipse編輯器右下角開啟一個小對話框,可以快速進入除錯或執行App
Command+Shift-o Control+Shift+o 自動匯入程式程式需要的package(整個檔案),並刪除不需要的。
Command+Shift+m Ctrl+Shift+m 自動匯入程式程式需要的package。
Command+. Ctrl+. 下一個錯誤。
Control+q Ctrl+q 上一個修該的那行。
F3 F3 跳到欄位或方法定義的地方。
Command+t Ctrl+t 查看類別繼承結構。
Command+L Ctrl+L 直接跳到某一個行號。
Command+e Ctrl+e 快速切換分頁。
Option+/Option+ Alt+/Alt+ 目前游標該行往上或往下移動。

Android程式開發方式

程式邏輯與程式資源的分離

Android程式開發將程式邏輯(程式碼,放在專案內的src目錄下)和程式資源(使用者介面、圖形、字串、聲音等等,放在專案內的res目錄下)分開設計,最後透過ADT編譯後組成apk格式的檔案,該檔案即為Android應用程式安裝檔案,開發者可以將之上傳到Google Play Store讓使用者下載或是直接放到手機上安裝使用。

一般來說,Android的程式碼是使用Java來開發,而資源部分在使用者介面(User Interface簡稱UI)的部分是由XML來描述的。

優點

  • 專案成員可以明確分工,各自專注在擅長的部分,程式設計師負責程式邏輯的開發,而視覺設計的美術負責使用者介面及圖形的設計,最後再透過ADT講兩者組合(Build)起來;這樣的做法在開發和維護上都可以叫簡單化、清楚化,有問題的時候也較容易區分是程式問題還是介面上的問題,只要該負責人員修改後,就可以再次組合起來(Build)不會影響到另一部分。
  • 在程式需要修改介面的時候,如果程式邏輯沒有改變,只需要介面的部分做修改就可以了,而不會影響到程式,反之也相同,因為是分開設計,所以不會因為介面上的修改,而造成程式碼的錯誤。
  • 目前Android裝置種類非常多,不管是解析度,螢幕大小,平板或手機,直的或橫的螢幕、多國語言等等,這些都和程式邏輯沒有關係,視覺設計人員,只需要將支援各種不同裝置的資源檔設計好,最後連同程式邏輯全部一起組合(Build)包裝成apk,這樣該程式就可以支援多種裝置及多國語言了。

使用Java來編寫程式邏輯

Android程式開發使用Java程式語言來撰寫程式邏輯。在我們建立新專案的時候, ADT已經幫我們建立好程式的骨架, 因此在新建好的專案可以直接編譯並執行,在什麼程Android裝置上可以畫面上顯示『Hello World!』字串。在開發過程中,ADT會自動幫忙建立基本程式碼,最後再由我們在基本程式碼上做新增或修改,可以大大的提高開發效率。

目前Android支援的Java版本最高到1.6,而1.7與1.8的版本尚未支援,在建立Android專案的時候,如果編譯上有問題,也可以檢查是否為版本問題。
確認的方式為:在專案名稱上點擊滑鼠右鍵,選擇Properties->Java Compiler:

使用XML或圖形化編輯器來設計介面

Android透過編寫XML來設計使用者介面User Interface、多國語言文字字串等等,因為直接編輯XML需要再學習XML語法,因此提供了方便的所見即所得(What You See Is What You Get,簡稱WYSUWYG)的圖形編輯器,讓開發人員可以直接透過拖拉的方式來設計使用者介面,也可以透過其設定其他資源的屬性值,這些工具會自動產生編輯好的XML檔案,最後和程式一起編譯並組合成apk檔(Android程式檔案)。 Android視覺化圖形編輯器

程式與資源的關聯

因為程式邏輯和資源跟開設計了,那程式怎麼去存取資源的呢?

關鍵就在R.java,當我們在res目錄下新增資源檔案或是XML中編輯了ID屬性時,ADT會自動幫我們幫該資源產生一個獨一無二的ID,這個資源的ID會存放在專案下『gen/套件名稱/R.java』檔案內,每個資源都會有一個專屬ID,在程式內如果要取用該資源,只需要透過該ID即可,因此R.java裡面的這些ID不可以自行修改,ADT會自動維護這些ID,修改它將造成程式編譯及組合時錯誤;在程式中只需要透過『R.資源類型名稱.資源名稱』就可以存取。

例如:
  • 要存取『res/layout/activity_main.xml』的版面設計時,其Java程式碼為『R.layout.activity_main』名稱不包含副檔名。
  • 要存取『res/drawable/bk.jpg』資源時,其Java程式碼為『R.drawable.bk』名稱不包含副檔名。
  • 要存取在『res/values/strings.xml』的app_name字串,其Java程式碼為『R.string.app.name』。
備註:資源類型名稱並不是指目錄名稱,而是Android定義好的資源類型

其它

重構:將預設的RelativeLayout改為其它Layout

選單Refactor->Android->Change Layout
挑選要修改成什麼版面(Layout)
當版面過於複雜或某些情況下有可能會無法變更。