2010年12月14日

[Android 教學] Android 2.3 SDK 安裝教學

Android SDK


新版 Android SDK 下載安裝中文教學課程講義,歡迎延伸點閱!


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )


以下為本篇 Android 教學講義的開始。


自美國時間2010年12月6日,Google公開發表了最新版本的Android 2.3 SDK之後。許多Android手機應用程式開發者已迫不急待地想體驗最新版本的Android 2.3智慧型手機作業系統(以下簡稱Android 2.3 OS)之開發魅力。

雖然,全球目前唯一搭載著Android 2.3 OS的Nexus S智慧型手機尚未在台灣、港澳地區與中國大陸公開販售。但是,Android手機應用程式開發者仍可以透過安裝更新最新版本的Android 2.3 SDK,來更進一步地開始”虛擬”地使用Android 2.3 OS的智慧型手機。

然而,我們也在這幾天當中,陸續地收到台灣與港澳地區的讀者對於Android 2.3 SDK安裝更新上的相關問題與反應。

因此,本講義特別在正式講義教學之外,特闢此篇補充教材。

我們希望透過這篇Android 2.3 最新教學課程補充教材,來為大家詳細地說明如何從舊版的Android SDK更新升級至最新版本的Android 2.3 SDK。

以下則為本篇Anodrid 2.3 最新教學課程補充教材的五項主軸:

  1. 關於 Android 2.3 SDK的更新
  2. 如何下載安裝 Android 2.3 SDK ?
  3. 如何解決Android SDK Verification問題?
  4. 如何安裝Android 2.3模擬器?
  5. 如何設定在測試Android手機應用程式時,自動開啟Android 2.3模擬器?


在此要強調的是,這篇補充教材只會聚焦於”Android 2.3 SDK 安裝與更新教學”。

至於,完整的Android SDK相關開發工具的下載安裝教學,請您仍需閱讀本講義的第四講

當然,也歡迎身為Android手機應用程式開發者的您,有空來閱讀我們在網路上發表的Android手機應用程式開發教學系列講義:

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )




關於 Android 2.3 SDK的更新



【孫傳雄研究室 編著】關於Android SDK的更新,最簡單的方法即是直接啟動”Android SDK and AVD Manager”程式(它又稱SDK Manager)。

然後,請您直接點選”Installed packages”頁籤。當該視窗中出現”Installed packages”列表時,按下”Updated All…”按鈕即可(如下圖紅框處所示)。

Android 2.3 教學課程 

但是,本講義為求您可以更完整地暸解”Android 2.3 SDK”安裝與更新升級的步驟。因此,我們在這次的補充教材之中,會從最初的”Android 2.3 SDK Tools”下載開始,一步一步地教您如何安裝與更新升級”Android 2.3 SDK”。

更簡單地說,本講義會在此次教您如何重新安裝”Android 2.3 SDK Tools與Android 2.3 SDK”。而非只是教您如何程式更新而已。


如何下載安裝 Android 2.3 SDK ?



首先,請您至Android 2.3 SDK官方下載網頁,並點選”download the SDK Starter Package”連結(如下圖紅框處所示)。


Android 2.3 教學課程 

在進行下一個步驟前,本講義要先做一個澄清。

當您在Android Developers官網下載”Android SDK 安裝檔案”時,其實是下載”Android SDK Tools安裝檔案”,而非真正的
”Android SDK安裝檔案”。

而所謂"的”Android SDK Tools”是一個管理"Android SDK的工具軟體。只有安裝此工具軟體,您才能透過它來進一步地下載安裝Android SDK相關檔案。

所以,您會在Android Developers官網的”Download the Android SDK”下載頁面中,看過r06、r07或者r08的版本代號字樣,那是”Android SDK Tools”的版本代號,而非”Android SDK”的版本代號。

其中,”Android SDK Tools r06”與”Android SDK Tools r07”皆適用於Android 2.2 SDK。而”Android SDK Tools r08”則適用於Android 2.3 SDK。

此外,假若您熟悉舊的”Android SDK Tools”之安裝的話,必然會發現此回新的”Android SDK Tools r08 for Windows”之安裝檔案格式,除了即有的.zip壓縮檔案之外,還多了一個.exe執行檔案。

”Android SDK Tools r08 for Windows”多了這個.exe執行檔案,對於Android 手機應用程式開發者來說絕對是一項很好的福音。

因為,無論是”Android SDK Tools r06”或”Android SDK Tools r07”的安裝檔案格式,它們都只有.zip壓檔檔案。

.zip壓檔檔案除了具有需解壓縮的麻煩外,而且,它並不具備安裝精靈(Setup Wizard)的作用。

因此,在過去無論是”JDK”版本測偵或者”Android SDK Tools”本身的安裝路徑之設定,它皆需自行手動完成。(註:關於過去的安裝方法,您可以參考本講義第四講)。

然而,這回”Android SDK Tools”首次釋出具安裝精靈的”installer_r08-windows.exe”,它讓Android 手機應用程式開發者可以如同安裝其它Windwos應用程式軟體的模式一樣,具備更便捷的安裝精靈功能。

至於如何下載這個具安裝精靈的檔案呢?

您只要直接在下載頁面中點選”installer_r08-windows.exe”連結並下載儲存。
 
Android 2.3 教學課程

”installer_r08-windows.exe”執行檔案下載儲存…

Android 2.3 教學課程

當”installer_r08-windows.exe”執行檔案下載完成後,請您至儲存該檔案的資料夾中,直接點選該檔案圖示,以便開始執行”Android 2.3 SDK Tools”的安裝精靈。

Android 2.3 教學課程

當您開啟此檔案後,會看到”Android SDK Tools Setup”安裝精靈歡迎視窗。

請您直接按下該視窗中的”Next >” 按鈕(如下圖紅框處所示)。

Android 2.3 教學課程

接著,安裝精靈會自動偵測您的”JDK”版本是否正確。

由於,我們在第四講當中已安裝符合”Android SDK”基本需求的”JDK 1.6”版本,因此,它會顯示”JDK 1.6”已被找到的英文字樣。

此時,您只要按下”Next >” 按鈕即可(如下圖紅框處所示)。

Android 2.3 教學課程

當您的”JDK”版本通過偵測後,它會出現”Choose Start Menu Folder”的對話視窗(如下面第二張圖片所示)。

此視窗主要是協助您將安裝完成後的”Android SDK Tools”,在”Windows開始選單”中建立一個捷徑。以便您可以直接在”Windows開始選單”之中,開啟” SDK Manager”或者解裝安裝”Android SDK Tools”(如下圖紅框處所示)。

Android 2.3 教學課程

假若您不要在”Windows開始選單”當中建立”Android SDK Tools”的捷徑,您只需在該視窗的”Do not create shortcuts”選項當中打勾即可(如下圖藍色箭頭處所示)。

反之,您若需要則不要打勾,直接按下”Install”按鈕即可(如下圖紅框處所示)。

Android 2.3 教學課程

接下來,它會出現”Choose Install Location”對話視窗,此視窗是讓您設定”Android SDK Tools”的安裝路徑之用。

因為,它有提供預設路徑:”C:\program Files\Android\android-sdk-windwos”,所以,您可以直接使用此預設路徑來安裝”Android SDK Tools”相關檔案。

當然,您也可以自行手動設定所要的安裝路徑。

若您要使用預設路徑,請直接按下”Next >” 按鈕(如下圖紅框處所示)。

Android 2.3 教學課程

”Android SDK Tools”安裝中……^_^

Android 2.3 教學課程

”Android SDK Tools”安裝完成!

請您按下”Next >”按鈕,以便前往下一個步驟(如下圖紅框處所示)。

Android 2.3 教學課程

當”Android SDK Tools”安裝完成後,它會出現帶有”Completing the Android SDK Tools Setup Wizard”字樣的對話視窗。

此對話視窗有一個預設為打勾狀態的”Start SDK Manager”選項(如下圖藍色箭頭處所示)。

所謂的”SDK Manager”為”Android SDK Tools”的主程式。

無論是”Android SDK”相關檔案的下載、安裝或者更新,甚至是”Android 模擬器”的安裝與啟動都需要靠”SDK Manager”來支援完成。

所以,如果您要立即下載安裝”Android 2.3 SDK”的話,請您將該選項保持打勾狀態,並按下”Finish”按鈕,以便開啟”SDK Manager”程式(如下圖紅框處所示)。

Android 2.3 教學課程

當您按下”Finish”按鈕後,會立即出現”SDK Manager”程式的”Choose Packages to Install”對話視窗。

此為Android所建議下載安裝的”Android SDK”最新檔案,請您直接點選”Accept”選項,並按下”Install”按鈕。以便開始下載安裝”Android SDK”最新檔案(如下圖箭頭1處與箭頭2處所示)。

Android 2.3 教學課程

”Android SDK”最新檔案下載與安裝中…^_^

Android 2.3 教學課程

Android SDK最新檔案下載與安裝完成,請您按下”Close”按鈕(如下圖紅框處所示)。

Android 2.3 教學課程

並且,請您同時也把”SDK Manager”程式關閉。

您只需按下該視窗右上角的”X”按鈕即可(如下圖箭頭處所示)。

Android 2.3 教學課程

當安裝完”Android SDK”最新檔案之後,您還需要更新”Eclipse IDE”之中與”Android SDK”有關的程式軟體。

首先,請您開啟”Eclipse IDE”,並點選”Help”下拉式功能表當中的”Check for Updates”選項(如下圖箭頭1處與箭頭2處所示)。

Android 2.3 教學課程 

“Eclipse IDE”正在連線檢查那些程式軟體需要更新中…^_^

Android 2.3 教學課程

當檢查完畢後,”Eclipse IDE”會出現”Available Updates”對話視窗,在此視窗中列示了它所建議之程式軟體更新項目。

請您按下”Select All”按鈕,以便選取它所建議的這些程式軟體項目(如下圖箭頭1處所示)。

隨後,請您按下”Next >” 按鈕(如下圖箭頭2處所示)。

Android 2.3 教學課程

接著,它會出現”Update Details”對話視窗。請您直接按下”Next >”按鈕即可(如下圖紅框處所示)。

Android 2.3 教學課程

當出現”Review Licenses”對話視窗後,請您先檢查所有程式軟體的授權細節。

當您確認後,請點選” I accept the terms of license agreements”選項(如下圖箭頭1處所示)。

最後,請您按下”Finish”按鈕,以便開始程式軟體的更新程序(如下圖箭頭2處所示)。

Android 2.3 教學課程

程式軟體更新中…^_^

Android 2.3 教學課程

當更新完畢後,您需要重新啟動”Eclipse IDE”。

請您在”Software Updates”對話視窗中,按下”Restart Now”按鈕(如下圖紅框處所示)。

Android 2.3 教學課程

”Eclipse IDE”重新啟動中…^_^

Android 2.3 教學課程

當出現”Workspace Launcher”對話視窗時,請您直接按下”OK”按鈕。

Android 2.3 教學課程


如何解決Android SDK Verification問題?



當此時進入”Eclipse IDE”之後,有些讀者朋友會突然看到”Android SDK Verification”警示視窗。

該視窗裡頭寫著:”SDK Platform Tools component is missing! Please use the SDK Manager to install it.”字樣。

亦即”Eclipse IDE”發現”Android SDK Tools”有軟體元件遺失。

此問題之發生,是因為我們剛才重新安裝”Android SDK Tools”時,已將它的檔案路徑設定成安裝精靈預設的”C:\program Files\Android\android-sdk-windwos”路徑。而非上回本講義第四講中手動安裝的舊版”Android SDK Tools”之路徑。

所以,當您更新完”Eclipse IDE”之中與”Android SDK”有關的程式軟體之後。還需要在”Eclipse IDE”中設定新版的”Android SDK Tools r8”之檔案路徑。

請您先按下”Android SDK Verification”警示視窗下方的”OK”按鈕,以便進行後續解決問題的動作(如下圖紅框處所示)。

Android 2.3 教學課程

至於,該如何解決呢?

請您在”Eclipse IDE”主畫面之中,點選”Window”下拉式功能表當中的”Perferences”選項(如下圖箭頭1處與箭頭2處所示)。

Android 2.3 教學課程 
 
當出現”Perferences”對話視窗時,請您在視窗左側邊欄點選”Android”頁籤(如下圖箭頭1處所示)。

隨後,在”Perferences”對話視窗右側會出現標題為”Android”的子視窗。

請您按下當中的”SDK Location”欄位之Browse…按鈕(如下圖箭頭2處所示)。

Android 2.3 教學課程

當出現”瀏覽資料夾”視窗時,請您依序點選”C:\program Files\Android\android-sdk-windwos”之路徑。並且,按下”確定”按鈕(如下圖箭頭1處與箭頭2處所示)。

Android 2.3 教學課程

當您回到”Android”子視窗時,它的”SDK Location”欄位內容會更新為”C:\program Files\Android\android-sdk-windwos”路徑。

煩請您直接按下該子視窗下方的”Apply”按鈕(如下圖紅框處所示)。

Android 2.3 教學課程

最後,請您按下該視窗最下方的”OK”按鈕(如下圖紅框處所示)。

如此便可以解決剛才那個”SDK Platform Tools component is missing! Please use the SDK Manager to install it.”之問題了。

Android 2.3 教學課程


如何安裝Android 2.3模擬器?



現在,想必您已經迫不急待地想瞧瞧”Android 2.3”的模樣了!

因此,本講義順便教您怎麼新增一個”Android 2.3 模擬器”。

其實,新增一個”Android 2.3 模擬器”的作法與本講義第五講的教學一致。只差在”Target”欄位要設成”Android 2.3–API Level 9”而已。

至於,該怎麼做呢?

請您直接點選”Eclipse IDE”當中的”Windows”下拉式功能表,並選擇”Android SDK and AVD Manager”選項(如下圖箭頭1處與箭頭2處所示)。

Android 2.3 教學課程 

當出現”Android SDK and AVD Manager”對話視窗後,請您點選”Virtual Devices”頁籤,並按下”New”按鈕(如下圖紅框處所示)。
 
Android 2.3 教學課程

隨後會出現”Create new Android Virtual Device(AVD)”的對話視窗,其包括以下五個部份:


  • Name:請您在”Name:”文字欄位當中輸入一個名稱(如下圖箭頭1處所示)。這個名稱只是方便識別而已,所以您可以自由輸入。但本講義建議您最好在名稱後段加入Android作業系統的版本代號,比如23代表”Android 2.3”。
  • Target:接下來,請您在”Target:”下拉式選單當中,選取此模擬器的Android作業系統版本(如下圖箭頭2處所示)。

    因為,這回的目的是為了嘗試使用”Android 2.3模擬器”。因此,請您在”Target:”下拉式選單當中選取”Android 2.3 – API Level 9”選項。

    不過,如果您的目的是為了正式開發 Android 手機應用程式的話。我們仍會如過往的建議般,叮嚀您要使用當下普遍使用的Android 智慧型手機作業系統版本,作為測試Android手機應用程式之模擬器版本。(註:您可以至Android Developers官網之中查詢目前Android 智慧型手機作業系統版本的發行率排行。)
  • SD Card:由於,”Android模擬器”支援模擬SD 記憶卡(SD Card),因此,請您在”SD Card”的”Size”子欄位當中,輸入該模擬手機的SD 記憶卡容量(如下圖箭頭3處所示)。一般來說,以256或512MB為普遍設定值。
  • Skin:至於手機螢幕外觀(Skin)的部份,除非您的Android手機應用程式有特殊規格要求,不然您可以不用設定,以預設值:”HVGA”尺寸規格為主即可。
  • Hardware:另外,硬體設備(Hardware)的部份,也是除非您的Android手機應用程式有特殊規格要求,不然您可以不用設定,以預設值:”抽象模擬的液晶螢幕解析度(Abstracted LCD density)”為主即可。

倘若全部確定後,請您按下”Create AVD”按鈕便可以安裝一個”Android模擬器”(如下圖箭頭4處所示)。

Android 2.3 教學課程

當回到”Android SDK and AVD Manager”對話視窗時,請您點選”Virtual Devices”頁籤,選擇您剛才所新增的”Android 2.3模擬器”,並且按下”Start…”按鈕(如下圖箭頭1處與箭頭2處所示)。

Android 2.3 教學課程

當出現”Launch Options”對話視窗時,請您直接按下”Launch”按鈕(如下圖紅框處所示)。

Android 2.3 教學課程

”Android 2.3 模擬器”正在開啟…^_^

Android 2.3 教學課程

”Android 2.3模擬器”還在開啟中…。^_______^

Android 2.3 教學課程

耶!”Android 2.3模擬器”開啟成功囉…(如下圖所示)

有興趣的朋友,您可以搶先試玩玩看最新的”Android 2.3”!

Android 2.3 教學課程


如何設定在測試Android手機應用程式時,自動開啟Android 2.3模擬器?



接下來,我們也附帶教您如何設定讓Android手機應用程式執行測試的時候,也可以自動開啟”Android 2.3 模擬器”。

請您在”Eclipse IDE”的”Project Explorer”子視窗中,點選您正在開發的Android手機應用程式名稱(如下圖箭頭1處所示)。

並且,請您按下功能區中的”Run As…”按紐旁邊的向下箭頭符號(如下圖箭頭2處所示)。

當出現下拉式功能表時,請您選擇”Run Configurations”選項(如下圖箭頭3處所示)。

Android 2.3 教學課程

當出現”Run Configuations”對話視窗時,請您點選該視窗左側”Android Application”選項中的應用程式名稱(如下圖箭頭1處所示)。

在該視窗右側出現此應用程式的設定選項時,請您點選”Target”頁籤,並且在”Deployment Target Selection Mode”項目中,選擇”Automatic”選項(如下圖箭頭2處與箭頭3處所示)。
並且,請您在”Select a preferred Android Virtual Device for deployment”項目中,勾選剛才已新增好的”Android 2.3模擬器”選項(如下圖箭頭4處所示)。

最後,請您按下該視窗最下方的”Run”按鈕(如下圖箭頭5處所示)。

Android 2.3 教學課程 

當設定完畢並按下”Run”按鈕後,便會自動將此程式在”Android 2.3模擬器”中執行。

日後,該Android手機應用程式再測試執行時,也會自動開啟此”Android 2.3 模擬器”。

假若,您要再改回其它版本的”Android模擬器”,只需要按上述作法重新設定即可。

以下則為本講義的”Converter應用程式”教學範例在”Android 2.3模擬器”之中測試執行的實況。

您會很明顯地發現使用者介面當中的按鈕與文字輸入框變的比較平坦且沒那麼立體,按鈕中的顏色效果也跟過去的Android版本不同。

Android 2.3 教學課程

為了讓您更清楚地比較”Android 2.3”、”Android 2.2”與”Android 2.1”的不同。

以下,我們同樣擷取”Converter應用程式”教學範例在”Android 2.2模擬器”與”Android 2.1模擬器”的測試執行實況圖片。

下面這張是在”Android2.2模擬器”之中測試執行。

Android 2.3 教學課程

 下面這張則是在Android2.1模擬器之中測試執行。

Android 2.3 教學課程 

以上,是我們針對”Android 2.3 SDK”安裝與更新的一些補充教學。

近日,本講義實際以”Android 2.3 SDK”進行多次的實測之後,發現”Android 2.3”在使用者介面與系統效能的改善上,遠比”Android 2.1 SDK”升級”Android 2.2 SDK”時進步許多。

為了讓大家更深入地暸解”Android 2.3 SDK”在程式開發上的特質與優點。

日後,我們會再藉由補充教材的方式,跟大家聊聊關於”Android 2.3 SDK”的開發議題。歡迎您的長期鎖定閱讀。

此篇講義的主要參考文獻來源Android Developers 官網


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


關於完整的”Android SDK”相關開發工具之下載安裝教學,請您務必先閱讀本講義的第四講

如果您對於Andorid手機應用程式開發有興趣,歡迎閱讀我們在網路上發表的Android手機應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )


著作權聲明



Android 2.3 SDK 安裝與更新升級教學 – Anodrid 教學課程補充教材 1 第一版本完成日:2010年12月14日

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。


版權所有 翻印必究


2010年12月7日

[Android 搶先看] Android 2.3 SDK 正式發佈!

Android SDK


新版 Android SDK 下載安裝中文教學課程講義,歡迎延伸點閱!


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )


以下為本篇 Android 教學講義的開始。


Android 2.3 SDK 受到近來許多Android 手機應用程式開發者的熱切期待。

不過,在這段期間雖然有不少正式發表日期的傳聞,然而,卻都只是捕風捉影的小道消息。

總算,Google 就在2010年12月6日正式公開發表 Android 2.3 SDK。並且,他們也在同時間發表了第一款搭載最新Android 2.3智慧型手機作業系統的 Nexus S 智慧型手機。(此款手機由韓國三星電子製造,如下影片所示,資料來源:Youtube)




Android 2.3 SDK 真的公開發表了!



以下為Android Developers官網所發表的Android 2.3簡介影片(資料來源:Youtube):




Android 2.3 SDK 下載安裝網址



對 Android 2.3 SDK 最新版本 有興趣的朋友,歡迎至下列網址安裝:

Android 2.3 SDK (API Level 9) 下載安裝網址



以下則為與 Android 2.3 相關的一些工具軟體,有興趣的朋友也歡迎參考看看:



如何下載安裝 Android SDK ?



由於,這篇文章是趕在 Android 2.3 SDK 正式發表的最先時刻發文,因此,容本研究室日後再補上完整的 Android 2.3 SDK 下載安裝教學。

您可以先參考本研究所撰寫的 Android 2.2 SDK 下載安裝教學文章,謝謝!

完整的 Android 2.3 SDK 下載安裝教學,出爐囉!

如果您對於Andorid手機應用程式開發有興趣,歡迎閱讀我們在網路上發表的Android手機應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


2010年11月9日

[Android 教學] Android 的 JAVA 程式設計入門基礎 1

Android 程式設計


新版 Android SDK 下載安裝中文教學課程講義,歡迎延伸點閱!


我們的《Android 手機應用程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),歡迎您的加入,謝謝!


本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )


以下為本篇 Android 教學講義的開始。


在上回我們的Android課程教學講義-第六講之中,我們已運用”Converter應用程式”之Android UI介面設計實例教學,跟大家說明如何透過Eclipse來進行Android手機的介面設計工作。不知您是否已經開始動手操作看看了嗎?

接下來,此次講義仍將以”Converter應用程式”為例,教大家如何在Eclipse裡頭進行Android手機應用程式的Java程式設計工作。

以下,我們會以相當完整且詳細的篇幅為大家深入探究”Converter應用程式”當中的每一段Java程式碼之意義與源由。

本講義希望藉此幫助身為Android手機應用程式初學者的您,更進一步地暸解Android手機應用程式的Java程式設計內涵。

另外,礙於第七講全文的篇幅過長之故,因此,本講義將第七講分成上、下兩篇發表。此次發表的是第七講的上篇,主要是詳解Android最初所預設的十一行Java程式碼。

以下為本次第七講(上篇)的十二項主軸:

  1. Android程式設計:什麼是Activity應用程式組件?
  2. Android程式設計:使用Eclipse開始進行Anodrid的Java程式設計
  3. Android程式設計:[package]建立應用程式的Java類別套件
  4. Android程式設計:[import]連結存取其它必要的Java類別套件
  5. Android程式設計:初探物件導向程式設計
  6. Android程式設計:[class]宣告Android手機應用程式的主類別
  7. Android程式設計:建立文字註釋說明
  8. Android程式設計:建立應用程式的API說明文件
  9. Anodrid程式設計:建立@Override的Annotation註釋
  10. Android程式設計:覆寫Activity類別的onCreate(bundle)方法
  11. Android程式設計:重新呼叫Activity類別的onCreate(bundle)方法
  12. Android程式設計:呼叫Activity類別的setContentView(int)方法


如果您是初次閱讀本講義教材者,為求學習之完整性,因此煩請您先從本講義之第一講第二講第三講第四講第五講第六講開始閱讀,謝謝!


Android程式設計:什麼是Activity應用程式組件?



【孫傳雄研究室 編著】Android手機應用程式大致上可以分成四種組件(Application Components),分別為Activity、Services、Broadcast receivers與Content providers。這四種組件並非完全獨立存在,常需依不同的需求狀況混合運用。(註:此四種應用程式組件的異同,將在本講義第八講詳述。)

由於,只要是應用程式需提供手機畫面給手機用戶操縱的狀況下,皆要以Activity應用程式組件達成。所以,Activity應用程式組件可謂是Android手機應用程式四大組件之基石。

因為,Activity應用程式組件主宰了Android手機應用程式的使用者介面(User Interface, UI)之相關程式運算工作,因此,它頗像是傳統程式設計常提及的前端(Front End)應用程式,

當然,Android手機應用程式的執行環境是在Android智慧型手機之上,而非個人電腦。因此,Activity應用程式組件仍有些極為特殊之處:例如,Activity應用程式組件沒有傳統Java應用程式啟始點的main()方法,取而代之是Activity生命週期的概念。(註:關於此部份,我們會在日後的講義中,陸續深入探究。)


Android程式設計:使用Eclipse開始進行Anodrid的Java程式設計



由於,本講義的”Converter應用程式”教學實例也是Activity應用程式組件的應用,所以,我們將此教學實例分成介面設計與程式設計兩篇講義深入論述。

當您按著我們在先前第六講所描述的步驟,完成”Converter應用程式”使用者介面之設計後。在本次講義當中,我們要教您開始使用Eclipse進行”Converter應用程式”當中的Java程式設計工作。

由於,Android手機應用程式是使用Java程式語言進行程式的設計,因此,有些初學者常擔心自己並不熟悉Java程式語言,而會造成學習Android手機應用程式開發的障礙。

本講義要建議這些對Java程式語言不熟悉的讀者,您們不妨把Android手機應用程式的學習也當作精進Java程式設計能力的一種管道。

因為,大部份Java程式語言的語法運用,也可以從Android手機應用程式的實作當中開始學習。所以,兩者並無彼此完全互斥與衝突之處。

不過,礙於Android手機應用程式的架構仍和Java應用程式有些許不同之處,因此,您若需專注開發傳統的Java應用程式,我們仍建議您要從正統的Java程式語言學起。

至如,如何開始進行本講義之”Converter應用程式”的程式設計工作呢?

在此,請您先完成第六講所述之步驟,然後,至Eclipse主畫面中的”Project Explorer”子視窗之”Converter”專案名稱下,開啟”Converter.java”檔案。它的檔案路徑是在”src”目錄之下(如下圖箭頭指引處所示)。

Android 程式設計 

當開啟”Converter.java”檔案後,您會發現檔案裡頭已有十一行的Java程式碼。

Android 程式設計

這十一行的Java程式碼是Android系統所預設的。

此程式碼主要目的是協助應用程式的使用者介面能夠順利地顯示於手機的螢幕之中。

這也就是說,即使您在建立”Converter應用程式”專案後,什麼事都沒做。此Java檔案仍具有在手機螢幕上顯示預設使用者介面的作用。(註:即Android預設的”Hello, World”使用者介面)

另外,您會發現在”Converter.java”檔案子視窗的左側有”+”與”-”的按鈕。這些按鈕具有將相關性的程式碼收納成一行或恢復成多行的用途。(註:按下”+”按鈕是打開,按下”-”按鈕是收納。)

由於,Eclipse為了讓程式碼看起來更簡約,因此,提供此程式碼的收納功能。

程式開發者可以將一些已撰寫好且具相關性的程式碼,先收納成一行,讓檔案子視窗看起來不致於太過雜亂。

如果要將收納成單行的程式碼恢復原狀,您可依下列步驟達成。

例如,因為,Android預設程式碼的第二行與第三行都是import相關的程式碼,因此,它們被預設成只顯示第二行。

此時,您可以按下”+”按鈕,便可以將第三行一同顯示出來。

Android 程式設計

以下為恢復之後的原狀。

若您再按下”-“按鈕則又會收納成一行程式碼。

 Android 程式設計

此外,有些程式開發者習慣在撰寫程式時,能夠有程式碼行號的對照輔助。

在Eclipse當中有提供顯示程式碼行號的功能。

至於,怎麼做呢?

您可以將滑鼠游標移至”Converter.java”檔案子視窗的左側,並且按下滑鼠右鍵。

當出現彈出式對話方塊時,將”Show Line Numbers”選項打勾即可顯示程式碼行號(如下圖箭頭1處、箭頭2處所示)。

 Android 程式設計

接下來,我們便要開始為您逐行解釋Converter應用程式當中所有程式碼的意義與用法。

在此要特別強調地是,以下講義內容會先從Android所預設的十一行程式碼解說開始,然後再逐步地推演至全部Converter應用程式的程式碼解說。

同時,我們會在每一行程式碼解說文字上面,置放本講義實際在Eclipse當中操作的程式碼擷取畫面,以供您對照實作。


Android程式設計:[package]建立應用程式的Java類別套件



Android 程式設計
 

我們在Android課程教學講義-第五講當中已提過:

『Java程式語言為了讓應用程式之間彼此不衝突,因此設置了套件(Package)的機制。

每一個Java應用程式都需要取一個獨特且唯一的套件名稱,以方便識別與呼叫取用。

Android手機應用程式在此的命名規則與其它Java應用程式的套件名稱(Package name)一致。

亦即您只能使用小寫英文字母命名,並且至少要以兩個英文單字組成,每個英文單字之間以 . 做為間隔。這個以專業術語來說,就是該名稱要為域名格式(domain-style)。』

所以,當人們在建立Android手機應用程式專案之初,便必需設定套件名稱(Package name)。

隨後,Android會在該專案的”src”檔案目錄之下,將這個名稱建立成實體的檔案目錄路徑,藉以存放Android手機應用程式的Java原始程式檔案(*.java)。

例如,套件名稱若為“tw.gururu.converter”,則Android開發工具會在專案的”src”檔案目錄之下,將此名稱的三個英文單字拆解並建立成具階層性的子目錄,亦即 tw > gururu > converter。(如下圖紅框處所示,Android手機應用程式的專案檔案目錄結構請參見本課程教學講義的第五講)

Android 程式設計 

不過,上述只是設定Android手機應用程式專案之程式碼的實體檔案目錄路徑。

此外,您仍需要回到Java程式碼開頭指定該套件名稱,藉以在Android手機應用程式被Java程式語言編譯器編譯時,亦能夠採取此種目錄路徑原則儲存編譯好的.class類別檔案。

然而,請不用擔心,Android早已把這部份的程式碼預設好了!

比如,本講義之”Converter應用程式”的Java程式碼開頭,便預設了下列程式碼:


package tw.gururu.converter;


以下則為該程式碼的補充說明。

  • package關鍵詞:”package”關鍵詞用於告知Java程式語言編譯器在編譯該應用程式時,拆解套件名稱並在專案的”bin”子目錄中建立以此名稱為主的階層性子目錄,且將其所編譯完成的.class檔案放置到該階層性子目錄之最後的那個目錄。

    比如,”Converter應用程式”的.class檔案便被放置到 bin > tw > gururu > converter 檔案目錄的路徑之下。(如下圖紅框處所示,Android手機應用程式的檔案產生過程請參見本課程教學講義的第二講)
  • ; 分號:另外,您會看到該行程式碼的結尾有一個分號。

    由於,Java程式語言當中,除了類別、方法的宣告以及註釋之外,每一行程式碼的最後面皆要加一個分號,以示該行程式碼到此為止。因此,此行程式碼才會有分號的出現。

    Android 程式設計 

Android程式設計:[import]連結存取其它必要的Java類別套件



Android 程式設計 

接續在Android預設程式碼的第一行之後,則是負責連結存取其它必要的Java類別套件的程式碼。

Android先預設了兩行如下:


import android.app.Activity;
import android.os.Bundle;


以下則為該程式碼的補充說明。
  • import關鍵詞:當您在開發Android手機應用程式時,Java程式碼並不可能從零開始,全部自行撰寫。

    有許多時候,必需要連結存取其它的Java類別套件(Package)。

    所以在Android預設程式碼的第二行與第三行,便是透過”import”關鍵詞來連結存取兩個android最重要的官方套件,分別為”android.app.Activity”與”android.os.Bundle”。

您可能會有個疑問:『這兩個Android官方套件是從那裡來的呢? 』

其實,這兩個官方套件在Android手機應用程式的開發過程中,被存放在Android SDK檔案路徑下的”android.jar”壓縮檔案。(註:.jar檔案格式全名為Java Archive,為Java程式開發者利用JDK所提供的JAR檔案壓縮工具(jar.exe),將多個Java類別檔案(.class)壓縮後的檔案格式。)

這個壓縮檔案裡頭包含了許多以.class類別檔案為主的Android系統函式庫(Libraries)。

當然,它會依您當初在建置Android手機應用程式專案時,所設定的Build Target之Android API版本而有所不同。

比如,在”Converter應用程式”中所設定的Build Target是Android 2.1 API版本,所以,它所連結存取的Android系統函式庫也會是Android 2.1的版本(如下圖箭頭指引處所示)。

您之後在撰寫Android手機應用程式的Java程式碼時,會經常透過”import”關鍵詞來連結存取Android系統函式庫之中的類別套件。

Android 程式設計 


至於,”android.app.Activity”與”android.os.Bundle”這兩個類別套件分別代表什麼作用呢?本講義分述如下:

  • android.app.Activity:由於,建立”Converter應用程式”專案之初,您已勾選了”Create Activity”選項。因此,”Converter應用程式”會被設定成一個具有使用者介面(User Interface, UI)的”Activity應用程式組件”型態。

    至於,什麼是”Activity”呢?本講義的第八講會詳細進行說明。

    您目前可先初略知道:”Activity”是開發Android手機應用程式最主要的四種組件之一,它肩負了與使用者互動的相關程式運作。而”android.app.Activity”類別套件便是提供了Activity生命週期(Lifecycle)的各階段,它所需的主要函式方法。所以,在Java程式碼的第二行宣告連結存取該類別套件。
  • android.os.Bundle:”android.os.Bundle”類別套件主要負責在不同的”Activity”程式間傳遞參數內容的工作。在接下來程式碼中的”onCreate(bundle)”方法中會需要用到此類別套件,因此,在Java程式碼的第三行先宣告連結存取該類別套件。

說到此處,您可能會有個疑問:『我要如何知道該”import”那些類別套件呢 ?』此部份,在本講義的下篇會清楚說明。



Android程式設計:初探物件導向程式設計


由於,Java是物件導向(Object-oriented, OO)的程式語言,因此,它的觀念皆源於物件導向程式設計(Object-oriented programming)的方法論。

至於,什麼叫物件導向程式設計呢?簡單地說,就是將所有的程式以物體(又稱物件,Object)的抽象化概念去比擬。

為了讓初學者能比較容易地理解物件導向的觀念,因此,我們以真實世界為例,初步地描述物件導向程式設計的六個重點要素。

  • 物件:什麼是物件呢?英文稱為Object,它指的其實就是物體。

    我們可以把所有程式碼想像成真實世界當中各種有形的生物或非生物。這些物體都具有相貌、而且也擁有各自的作用與價值。

    當然,就物件導向程式設計的角度來看,程式開發者在程式碼中創造了許許多多不同的軟體物件,一個按鈕是一個物件、一個下拉式選單也是一個物件。

    因為,它們各自具有不同的功能並可同時結合在一個應用程式之中。因此,這些物件也發揮了各自的作用與價值。
  • 物件的屬性與方法:這些物體的相貌與作用,若以物件導向程式設計的專業術語來說:即是物件的屬性(Attribute)與方法(Method)。

    好比,做為一個人,我們有外貌、體格,這是人表現於外的”屬性”。

    另外,我們能夠運用身體去行走、去說話、去聆聽外界的聲音,這是人生存在這世界上的”方法”。

    反觀於物件導向程式設計當中的物件來看。

    一個按鈕有長度、寬度、文字或者顏色等屬性。

    當使用者按下它時,因為程式開發者已為它賦予表現的方法,因此它會依這個方法,發揮其存在的作用與價值。

    比如,按鈕被按下後,即馬上顯示圖片。此觸發動作就是執行方法後的作用。
  • 物件的類別:當然,這些具有共同相貌與作用特徵的物體,人們總喜歡將它們進行抽象的分類,以便識別。例如人類、鳥類或者魚類等類別。這些類別不是實在的物體,只是人們抽象的描述與定義而已。

    所以,物件導向程式設計當中也具有類別(Class),這些類別同樣抽象地描述了某些程式物件當中共同的屬性與方法。
  • 類別的實例化:反過來說,因為,類別是抽象的描述與定義,所以,當類別被實例化(Instantiation)後,才是實在的物體。例如人類的實例化就是你、我與他。

    同樣地,當程式開發者在物件導向程式中創造了一個類別後,它還不是一個實在的物件。它必須要透過實例化的指令來產生一個物件。
  • 父類別與子類別:另外,類別是具有階層化的安排,就像人類下面可能還有白種人、黃種人或者黑種人,而不同人種之下可能還會區分成各自不同的族群。

    在物件導向程式設計中,上層類別被稱為父類別(Super Class),而下層類別則稱為子類別(Sub Class)。
  • 類別的繼承:因為,物件導向程式設計中的類別具有父類別與子類別之分,所以,自然會產生繼承的關係。

    簡單地說,我們定義一個類別,它並不可能是無中生有,必然會延襲其它類別的一些屬性與方法。然後再從此基礎之上,繼續發展自己的屬性與方法。

    這樣的機制便是繼承(Inheritance)。

    本講義在此要特別強調的是,Java程式語言之中,即使某個子類別沒有指定它所繼承的父類別,JDK也會自動配置”java.lang.Object”類別做為它的父類別。

    同時,Java程式語言並不能有多重繼承(Multiple Inheritance)的關係,亦即一個子類別只能繼承一個父類別,而不能繼承多個父類別。

Android程式設計:[class]宣告Android手機應用程式的主類別



Android 程式設計

經過上述初步的說明,您是否對物件導向程式設計的觀念有比較清晰的認知了呢?

所以,若我們將Android預設程式碼第四行:


public class Converter extends Activity{

}


描述成”宣告Converter子類別是繼承於Activity父類別”,您應該就不難理解了吧!(註:Java程式語言所使用的繼承語法為”extends”)

不過,您可能有個疑問:『”Activity”類別是打那兒來的呀?』

其實,就是在Android預設程式碼第二行”import android.app.Activity;”所連結存取而來的。

在此,還要補充一個重要觀念。在Android手機應用程式當中,每一個”Activity應用程式組件”型態的.java檔案可以定義許多的類別,但必然會有一個主類別。

而這個主類別名稱就是您當初在建立Android手機應用程式專案時,所指定的”Activity名稱”,同時,該程式的.java檔案名稱也是以此命名。比如,”Converter應用程式”的”Activity名稱”設定為”Converter”,所以主類別以及.java檔案便以此名稱命名。

Android 程式設計 

以下則為第四行程式碼的補充說明。
  • public修飾詞:首先,在Android預設程式碼第四行開頭所使用的”public”修飾詞(Modifier),是表示”Converter類別”是一個可供內外部套件類別存取的開放式類別。
  • class類別關鍵詞:接續在”public”修飾詞後面的”class”類別關鍵詞,則表示此程式碼為物件類別(Class)的宣告,該關鍵詞後需接所要宣告的類別名稱。
  • extends繼承關鍵詞:至於,在類別名稱之後的”extends”繼承關鍵詞則是Java程式語言的類別繼承語法,此關鍵詞後需接所要繼承的父類別。
  • { }大括號:在Java程式語言當中,無論是類別或者是方法的宣告皆需在結尾加上{ },以便程式開發者在裡頭放置相關程式碼之內容。請注意,該大括號的後面無需再加上分號。
     

Android程式設計:建立文字註釋說明



Android 程式設計

Android預設程式碼的第五行:


/** Called when the activity is first created. */


該行程式碼並不會涉及程式的執行,它只是一個程式的文字註釋,藉以標註說明某段程式碼的意思。。(註:所有的註釋程式碼之結尾皆不需加上分號。)

除了”Annotation註釋”之外,Java程式語言在文字註釋的使用,大致可以使用以下三種方式:


  • 單行文字註釋:格式為  // 文字註釋 ,使用於註釋只有單行文字的時候。
  • 多行文字註釋:格式為 /* 文字註釋 */ ,使用於註釋有多行文字的時候。
  • Java Doc文字註釋:格式為 /** 文字註釋 */ ,使用於註釋可被加註於Java Doc說明文件檔的時候。

由於,Android預設程式碼的第五行是採用”Java Doc文字註釋”的方式。因此,當採取此種註釋方式後,JDK會把這個註釋加註到”Converter應用程式”的Java Doc說明文件檔之中。


Android程式設計:建立應用程式的API說明文件



至於,什麼是Java Doc說明文件檔?

它是程式開發者利用JDK的”javadoc.exe”工具所建立的Java應用程式API說明文件網頁。這個說明文件網頁會以”doc”子目錄的方式,存在於應用程式專案目錄之下。

當然,Andorid手機應用程式也是Java應用程式之一,所以程式開發者亦可建立該說明文件。

在預設的狀態下,您的Andorid手機應用程式專案目錄之中並不存在此說明文件檔目錄,不過,您可以透過Eclipse來建立它。

至於,該怎麼做呢?

首先,請您選取Eclipse的”Project”下拉式功能表中的”Generate Javadoc”選項(如下圖箭頭1、箭頭2處所示)。

Android 程式設計 

當出現”Generate Javadoc”對話視窗時,請您在”Javadoc command”欄位中輸入”javadoc.exe”檔案的所在路徑。(註:”javadoc.exe”檔案是存在於JDK目錄下的”bin”子目錄中。)

然後,請您按下”NEXT >”按鈕(如下圖箭頭1、箭頭2處所示)。

Android 程式設計

當出現下列對話視窗時,請您直接按下”Next>”按鈕(如下圖紅框處所示)。

Android 程式設計

接下來,為了讓說明文件網頁可以正常顯示中文內容,所以,必需設定該說明文件網頁的文字編碼為”UTF-8”。

因此,請您在下列對話視窗的”Extra Javadoc options”欄位之中,輸入”-charset UTF-8 –encoding UTF-8”,並按下”Finish”按鈕(如下圖箭頭1、箭頭2處所示)。

Android 程式設計

當出現”Update Javadoc Location”對話方塊時,請您按下”Yes To All”按鈕,以便產生或更新您的Java應用程式API說明文件網頁(如下圖紅框處所示)。

Android 程式設計 

之後,您的Android手機應用程式專案目錄會新增一個名為”doc”的子目錄。

當您點選其中的”index.html”網頁檔案時,會出現您的Android手機應用程式API說明文件網頁之首頁(如下圖箭頭1處所示)。

另外,您會發現在”Method Summary”表格中,已出現Android預設程式碼第五行的”Called when the activity is first created.”註釋說明。

此代表該註釋已被正確加註於說明文件之中(如下圖箭頭2處所示)。

當然,您在Android手機應用程式開發的過程之中,皆可以運用上述的作法,隨時更新您的API說明文件網頁。

Android 程式設計

Anodrid程式設計:建立@Override的Annotation註釋



Android 程式設計


Android預設程式碼第六行:


@Override


該程式碼其實也是註釋的一種,Java程式語言稱這種形態為”Annotation註釋”。(註:此種註釋程式碼之結尾同樣無需加分號。)

不過,它主要的目的不是做為說明之用,而是當程式碼被編譯時,能提供Java程式語言編譯器(Compiler)注意。

”Annotation註釋”總共可分成三種,分別為”@Override”、”@Deprecated”、與”@SupressWarnings”。(資料來源:Java官網)

其中的”@Override”究竟是何意呢?

這必須談到類別繼承之下常會發生的覆寫動作(Overriding),以下為本講義對於覆寫的補充說明。

  • 覆寫:由於,Android手機應用程式並沒有傳統Java應用程式慣用的main()方法之啟始點機制,而是,改採”Activity類別”中的Activity生命週期(Lifecycle)之相關方法來進行運作。(註:關於Activity生命週期之議題,本講義會在第八講當中詳述。)

    其中,”onCreate(bundle)”方法負責Android手機應用程式首次被執行時,常態性的靜態初始化動作。

    為了符合不同應用程式之需求,因此,這個靜態初始化動作還需要再加上應用程式本身所需的一些方法,它才能被運作。而非僅單純使用”onCreate(bundle)”方法。

    所以,程式開發者需要重新宣告一個新的”onCreate(bundle)”同名方法,然後再重新呼叫”Activity類別”原有的”onCreate(bundle)”方法,以便與自己所需的相關方法相結合。

    這種子類別重新宣告父類別同名方法的動作,便稱為覆寫(Overriding)。

所以,在Android預設程式碼的第六行設置”@Override“之Annotation註釋的主因,就是為了當程式碼被編譯成.class類別檔案時,告知Java程式語言編譯器(Compiler)說:『下面宣告的方法有覆寫動作,假若該方法並未與其父類別當中的方法同名,則需以錯誤訊息的方式提醒程式開發者。』

不過,目前的Android開發環境其實提供了很不錯的除錯機制,因此,當程式碼還未被編譯之前,就能找出上述的錯誤。

例如,我們將”onCreate(bundle)”方法的名稱改為”test(bundle)”方法。由於它的上面已有加註”@Override”之Annotation註釋,因此,在該行程式碼的前面會馬上顯示錯誤符號。

 Android 程式設計

當您將滑鼠游標指向該錯誤符號時,則會顯示”The method test(Bundle) of type Converter must override a superclass method”錯誤訊息。簡而言之,該方法必需要覆寫一個父類別的同名方法,而”test(Bundle)”並非Activity類別的同名方法。

由上亦可知,”@Override” 之Annotation註釋除了跟其它文字註釋一樣,不會涉及程式的執行外。它更可以避免程式開發者在覆寫動作上的程式撰寫錯誤。

Android 程式設計 


Android程式設計:覆寫Activity類別的onCreate(bundle)方法



Android 程式設計 

由上可知,Android預設程式碼在第六行加上”@Override”之Annotation註譯,主要就是為了配合第七行自行宣告的”onCreate(bundle)”方法。

Android預設程式碼第七行為:


public void onCreate(Bundle savedInstanceState) {

}


由於,我們剛才已將”onCreate(bundle)”進行了初步的介紹,因此,在此不再重述”onCreate(bundle)”方法的細節。以下為該行程式碼的其它補充說明:
  • public修飾詞:在”onCreate(bundle)”方法開頭的”public”修飾詞(Modifier),它是用來設定該方法為可供內外部套件類別存取的開放式方法。
  • void傳回值型態:其次,”public”修飾詞後面的”void”傳回值型態(Return type)則是宣告該方法無傳回值。

    亦即,”onCreate(bundle)”方法執行完畢後,不會產生任何可回傳(return)的數值。
  • bundle集合型別之savedInstanceState參數:”onCreate(bundle)”方法的括號裡頭有一個被宣告為”bundle”集合型別的”savedInstanceState”參數(Parameter)。

    為何會有這個名稱為”savedInstanceState”的參數呢?

    簡單地說,手機應用程式所處的環境與個人電腦環境不同。比如,當某個手機應用程式正在手機用戶執行時,突然有通電話打進來,則該應用程式就會被突然停止(Stop)。

    另外,當手機的主記憶用量不足時,作業系統為求重要的通訊功能可以正常運作,因此,有些比較不重要的手機應用程式也有可能被突然停止。

    為求這種被突然停止的手機應用程式,可以在重新被執行時,恢復停止當時的使用者介面之狀態資訊(The state of the user interface)。

    因此,Android會在該應用程式被停止時,透過”onSaveInstanceState(bundle)”方法儲存應用程式的使用者介面之狀態資訊。

    當這個應用程式再度透過”onCreate(bundle)”方法進行靜態初始化動作時,會將”savedInstanceState”參數同時載入,以便恢復應用程式停止前的使用者介面之狀態。

    反之,假若該應用程式執行時為全新的狀態,則”savedInstanceState”參數為空值(null),並不具任何效用。

    至於,”bundle”集合型別又是什麼呢?

    Android Developers官網將其描述為:『A mapping from String values to various Parcelable types.』

    簡單地說,”bundle”集合型別類似Java的”HashMap”集合型別,它是一個具有索引鍵(Key)與索引值(Value)的物件集合,”onCreate(bundle)”方法利用它來存放使用者介面的狀態資訊。(註:此部份涉及Activity生命週期,我們在第八講義會再做更深入的探討。)

    因為,”bundle”集合型別是Android所自行定義,所以Android預設程式碼的第三行,才會連結存取”android.os.Bundle”套件類別,以供”onCreate(bundle)”方法定義型別使用。

Android程式設計:重新呼叫Activity類別的onCreate(bundle)方法



Android 程式設計 

本講義在剛才有談到:

『”onCreate(bundle)”方法負責Android手機應用程式首次被執行時,常態性的靜態初始化動作。

為了符合不同應用程式之需求,因此,這個靜態初始化動作還需要再加上應用程式本身所需的一些方法,它才能被運作。而非僅單純使用”onCreate(bundle)”方法。

所以,程式開發者需要重新宣告一個新的”onCreate(bundle)”同名方法,然後再重新呼叫”Activity類別”原有的”onCreate(bundle)”方法,以便與自己所需的相關方法相結合。』

所以,當Android預設程式碼在第七行覆寫了一個與Activity類別同名的”onCreate(bundle)”方法後,還需要在第八行重新呼叫”Activity類別”原有的”onCreate(bundle)”方法,藉以喚回”Activity類別”原有的”onCreate(bundle)”方法,並由此開展自己的程序。

所以,Android預設程式碼第八行為:


super.onCreate(savedInstanceState);


以下則為該行程式碼的補充說明:

  • super關鍵詞:由於,Android預設程式碼早已宣告了新的”onCreate(bundle)”方法,因此,在”Converter應用程式”當中的”onCreate(bundle)”方法已並非是”Activity類別”原有的”onCreate(bundle)”方法,亦即它已行使覆寫的動作。

    如果要在新的”onCreate(bundle)”方法中,喚回”Activity類別”原有的”onCreate(bundle)”方法,還需要使用”super”關鍵詞來指定呼叫父類別中的方法。

    Java程式語言當中的”super”關鍵詞,是做為子類別指定呼叫父類別的屬性或方法之用。當然,父類別在此指的是”Activity類別”。

    另外,在Java程式語言的語法方面,”super”關鍵詞與父類別的屬性或方法之間,需以 . 做為間隔。
  • onCreate(bundle)方法:至於,該行程式碼之中的”onCreate(bundle)”方法則是源於”Converter類別”所繼承的”Activity類別”之方法。

    在此要特別注意的是,假若,”super”關鍵詞後面所接的屬性或方法並非”Activity類別”所有,則會造成程式碼在編譯時的錯誤。

    不過,目前的Android開發環境提供了很不錯的除錯機制,因此,當程式碼還未被編譯之前,其實就能找出上述的錯誤。

    例如,我們若將”onCreate(bundle)”方法的名稱改為”test()”方法。由於,”Converter類別”所繼承的”Activity類別”之下並沒有”test()”方法,因此,在該行程式碼的前面會馬上顯示錯誤符號。

    Android 程式設計 

    當您將滑鼠游標指向該錯誤符號時,則會顯示”The method test() is undefined for the type Activity”錯誤訊息。簡而言之,該訊息提醒您:因為”Activity類別”並沒有定義過”test()”方法。所以,需要更正成”Activity類別”當中所具有的方法。

    Android 程式設計
  • savedInstanceState參數:在Android預設程式碼第七行所自行宣告的”onCreate(bundle)”同名方法之中,早已定義了一個”bundle”集合型別的”savedInstanceState”傳入參數。

    這個傳入參數必需要傳入原有的”Activity類別”之”onCreate(bundle)”方法中,才能發揮其作用。

    因此,在喚回”Activity類別”原有的”onCreate(bundle)”方法的同時,程式碼必須一併將這個”savedInstanceState”參數傳入。

    當然,”savedInstanceState”傳入參數的初始值為空值(null)。

    它必須在遇到應用程式停止(Stop)時,Android才會將停止當時的使用者介面之狀態資訊(The state of the user interface)透過”onSaveInstanceState(bundle)”方法存入”savedInstanceState”傳入參數當中。

    至於,為何它不像第七行自行宣告”onCreate(bundle)”同名方法一樣,在參數名稱前面加上”bundle”集合型別定義呢?

    因為,它只是呼叫”Activtiy類別”所即有的”onCreate(bundle)”方法,而非宣告一個新方法。所以,只要把同為”bundle集合型別”的參數傳入該方法即可,不需要再進行型別的定義。



Android程式設計:呼叫Activity類別的setContentView(int)方法



Android 程式設計

第九行是整個Android預設程式碼當中,唯一真正在手機螢幕上執行的動作。

Android預設程式碼第九行為:


setContentView(R.layout.main);


以下則為該行程式碼的補充說明:
  • setContentView(int)方法:在該行當中的”setContentView(int)”方法跟”onCreate(Bundle)”方法同樣也是源自於”Activity類別”。

    寫到此,您可能會問:『為何它沒有在方法名稱的前面加上”super”關鍵詞?』

    因為,此方法並沒有涉及到覆寫的問題,因此,它的程式碼可以用呼叫方法的正常規則來撰寫,不需要再加上”super”關鍵詞。

    至於,”setContentView(int)”方法的作用是什麼呢?談此之前,我們必需先深入探究第六講所談及旳內容。

    我們在第六講之中有提到,介面設計構成主要分成兩大部份:


    『其一為介面排版元件(Layouts)、其二則為介面功能元件(View,又稱Widget)。』


    所以,您在Android介面設計的時候,會先將介面排版元件(Layouts)拖曳至介面編輯區中,然後再依序將一些介面功能元件(View,又稱Widget),如按鈕(Button)、文字欄位框(EditText)、文字標籤(TextView)等拖曳至介面排版元件(Layouts)裡頭。

    深入來說,整個Android介面設計的組成結構,就如同階層化的樹狀(Tree)資料結構一般,從最頂端的介面排版元件至底端的介面功能元件。

    其中,介面排版元件是作為介面功能元件的容器結構,它可以容納不同的介面功能元件。

    介面排版元件也可以像俄羅斯套娃一樣,往下再容納其它的介面排版元件。

    Android將此結構抽象化描述成為介面元件階層圖(View Hierarchy)。

    介面元件階層圖(View Hierarchy)包括了指涉於介面排版元件(Layouts)的”ViewGroup”,以及指涉於介面功能元件(View,又稱Widget)的”View”,本講義以”Converter應用程式”的介面設計為例,繪製如下之介面元件階層圖。

    其中,”ViewGroup”其實是Android介面結構之中相當巧妙的安排。因為,它將原本水平化的介面元件關係,透過”ViewGroup”來進行”View”的群集與堆疊。進而形成具上下階層關係的介面結構。

    每一個應用程式的介面不再只是鬆散的介面元件配置,而它必然有一個最頂層”ViewGroup”的根節點(Root Node),從它之下再開展出不同的介面階層關係。

    另外,該階層圖中的父節點(Parent Node)必然是”ViewGroup”,而子節點(Child Node)則可以是”View”或”ViewGroup”。

    Android 程式設計

    就物件導向程式設計的觀點來說,介面排版元件(Layouts)指的是繼承於”ViewGroup類別”之下的各種子類別物件,它為Android介面提供了多樣化的排版(Layout)物件。

    介面功能元件(View,又稱Widget)則指的是繼承於”View類別”之下的各種子類別物件,它為Android介面提供多樣化的使用者介面(User Interface, UI) 物件。

    講到此,您或許會問:『為何本講義一下子將”View”翻譯成介面元件、一下子又翻譯成介面功能元件?』

    這是因為”View”是Android介面的最基礎單元,除了專指介面功能元件(View,又稱Widget)外,又因Android介面上的全部物件皆繼承於”View類別”,包括”ViewGroup類別”也是源於”View類別”。所以,它也是所有介面元件的源頭與總稱。

    回過頭來說,本講義之所以會透過上述較長之篇幅,去深入討論介面元件階層圖(View Hierarchy)的內容,是因為它與”setContentView(int)”方法"之運作有很大的關係。

    由於,Android系統是以介面元件階層圖的方式來進行螢幕畫面的繪製工作。因此,當”setContentView(int)”方法被執行時,應用程式會先傳遞一個參照(reference)給根節點((Root Node)物件。

    在Android系統接收到此參照之後,為了要繪製這個新的介面,所以,它會利用這個參照使目前即有的介面元件階層圖整個失效(invalidate),並重新測量(measure)與繪製(draw)新的介面元件階層圖。

    此外,階層圖中的父節點會決定子節點在它的容納空間之中的位置(Location)與尺寸(Size)。

    當決定好之後,子節點會自行繪製它自己的介面元件。依此類推,逐漸展開該介面之全局。(資料來源:Android Developers 官網)

    另一方面,初接觸Android手機應用程式的朋友,可能會覺得Android採取XML檔案的介面設計方式與HTML檔案的網頁設計方式很像。

    的確,它們兩者同樣是以標記語言(Markup Language)的模式進行介面的配置描述。

    不過,它們兩者的不同在於HTML的標記是由W3C組織所定義與維護,只要有支援HTML直譯的網頁瀏覽器便能解讀顯示HTML標記所描述的畫面。

    而Android的XML標記,則是Android自行定義與維護,並且,它只能在具有Android作業系統的硬體上顯示它所描述的畫面。

    另外,HTML檔案並沒有被預先編譯,而是直接在瀏覽器當中直譯顯示。

    但是,Android的XML介面檔案則會預先被編譯成二進位格式後,才會被解讀並顯示在手機螢幕上。

  • R.layout.main參數:在”setContentView(int)”方法裡頭有一個”int”整數型別的傳入參數”R.layout.main”。如果您有熟讀本講義第五講第六講的話,應該會直覺地想到此傳入參數必然與”r.java”檔案有關係。

    沒錯!它正是指涉於”r.java”檔案當中的屬性值。

    更進一步地說,”r.java”檔案包含了一個名為”R”的類別,在它之下有”attr”、”drawable”、”id”、”layout”與”string”等子類別。

    這些子類別當中定義了許多的屬性。這些屬性正好對應到”res”目錄下的各類資源檔案或者這些檔案中的變數。

    不知您是否還記得?我們曾在第五講當中提過:「每當開發者在”res”目錄增加一個資源檔案時,在”r.java”檔案當中就會相對地自動配置一個索引代號給它,以便開發者得以在應用程式當中做呼叫的動作。」

    其實,第五講裡頭所講的”自動配置一個索引代號”之意,其實是指在該資源檔案或變數所對應的”R類別”之子類別中,自動新增一個屬性,並將索引代碼數值配置給該屬性。

    例如,我們在第六講中所設計的”main.xml”介面檔案,它便被自動在”R類別”中的”layout子類別”,新增一個名為”main”的類別屬性,並給予一個索引代號(如下圖箭頭指引處所示)。

    Android 程式設計

    由於,此屬性的型別已被定義成”int”整數型別,因此,”setContentView(int)”的這個傳入參數同為”int”整數型別。

    說到這兒,您可能會有個疑問:「Android為何不要讓應用程式能夠直接存取”res”目錄下的檔案,還要特別設置一個”R類別”來間接索引呢?」

    這是因為”res”目錄下的各類資源檔案,在Android手機應用程式的產生過程中會被預先編譯成二進位的資源格式,而非以原始檔案形式存在。因此,需要透過”R類別”的方式來進行資源格式的索引動作。(資料來源:Android Developers官網)

    此法的優勢在於這些檔案已被編譯成二進位的資源格式,因此,相較於直接存取原始檔案來說,它會減少許多手機運算上的負擔。


上述,本講義已把十一行Android預設的程式碼解說完畢。

您可以先執行看看此Android預設程式碼。

請您按下Eclipse工具列當中的”Run”按鈕。

Android 程式設計 

當Converter應用程式成功在Android模擬器當中執行時,會出現下列的畫面。

請注意,它真的就只是畫面而已!

當您在”kg”文字輸入框中輸入任何數字,並按下”Convert”按鈕時,它並不會為您進行任何換算的動作。

因為,Android預設程式碼就只是負責把您設計好的介面顯示出來,而不包含數值換算的運算動作。所以,我們必須以此預設程式碼為基礎,自行加上”公斤數”換算”磅數”的程式碼,以完成這個應用程式的初步目的。

本講義將於第七講的下篇,帶領您一步一步完成此應用程式的程式撰寫工作。

Android 程式設計 

此篇講義的主要參考文獻來源Android Developers 官網Java 官網

第七講上篇完畢!歡迎繼續閱讀第七講下篇”Android 手機程式開發教學課程《免費講義 7-2》:Android 程式設計教學 - 給Java初學者的第一個Android程式範例 [下篇] ”。

如果您對於Andorid手機應用程式開發有興趣,歡迎閱讀我們在網路上發表的Android手機應用程式開發教學系列講義。

本講義目前網路連載發表有:Android手機程式開發教學講義懶人包Android 教學講義第一講Android 教學講義第二講Android 教學講義第三講Android 教學講義第四講Android 教學講義第五講Android 教學講義第六講Android 教學講義第七講上篇Android 教學講義第七講下篇Android 2.3補充教材1Android 2.3補充教材2Android 3.0平板電腦完整功能搶先看(From T-Mobile)Android 3.0 平板電腦應用程式開發:第一講Android 3.0 SDK 正式版登場Android 嵌入式系統最新開發應用 - SAAB IQon 車用電腦Android 2.3 補充教材3Android 3.0 平板電腦應用程式開發:第二講Android 教學講義第八講上篇Android 教學講義第八講中篇(1)Android 4.0 SDK 開發功能介紹與下載網址Android 4.0 SDK 下載安裝完整教學Android 4.0 模擬器安裝設定教學課程講義Android 4.0 的 Holo theme 佈景主題介紹與設定教學課程講義Android 4.2 升級功能簡介Android 4.2 SDK & ADT Bundle 下載安裝教學2013年第1講: Android Application Project 之建立2013年最新 Android Studio 開發工具下載安裝教學最新 Android App 網路連線程式設計範例 (第一講) - Volley HTTP Library 入門教學Android App 與 Android Application Project 是什麼?Android 4.4 KitKat 與 Android 4.4 SDK 開發功能介紹Android SDK 下載安裝中文教學課程講義 ( 2013年11月新版,ADT Bundle )


喜歡閱讀我們的講義嗎?歡迎加入我們所成立的《Android 手機程式開發教學課程免費講義》網路讀者俱樂部會員(請點選此連結),謝謝!


著作權聲明



Android 程式設計教學 - 給Java初學者的第一個Android程式範例 [上篇] - Android 手機程式開發教學課程免費講義 7-1 第一版本完成日:2010年10月30日

本講義之內文、排版等著作權或其他智慧財產權歸屬 孫傳雄 與 孫傳雄研究室 所有,非經書面同意禁止任何形式之翻印、全文轉貼或者授課使用行為。但例外允許在網際網路上引用此講義之網址連結。

本講義之內文所提及或者引用的公司名稱、產品名稱以及所引用的文字、商標、Youtube短片、產品相片或者網站頁面,均為其所屬公司所擁有,特以聲明。


版權所有 翻印必究