萊恩的 Android 學習筆記

[個人學習進度記錄用]

前言



        Android,安卓特系統,是基於 Linux 核心的軟體平台及作業系統。Google Inc. 在 2007 年 11 月 5 日正式公佈,同時,為了大力推展該技術,Google 和其他幾十個手機公司建立了開放手機聯盟Open Handset Alliance並交由該聯盟進行後續開發與規格之制定。

環境安裝

         Android 既然是由 Google 所出,勢必為了追求最大的整合性,特別採用 Java 做為開發工具,想必會比 Apple 家 IPhone 的作業系統來得更容易入手 ( 起碼在硬體方面)。同時,也因為 JAVA 本身具有跨平台的優勢,因此 Android 自然可在 Windows、MAC 與 Linux 等平台上進行開發,更多了分方便。本篇文章中,係以 Windows 作業系統做為開發平台,至於其他作業系統的安裝,則另請參考 Google 的說明即可。

        想當然爾,倘若要寫 Android 的程式,最重要的當然是取得相關軟體。因此可以先在 Google Android 首頁中,尋找並依照 Quick Start 的操作說明進行。當中,除了 Android 本身所需的 SDK 程式 ( 包含 Android 模擬器 ( Emulator ) ) 以外,還需要另外安裝 JAVA 的 JDK 程式 以及 Eclipse 的 IDE 整合式開發環境程式 兩大基本程式,以及在 Eclipse 當中新增一個 Android Development Tools (ADT) 開發工具擴充套件的 Plugin ( 包含 tools integration、custom XML editors 及 debug ouput pane 等功能 )。

        在此需特別注意的是,除了安裝 ADT 以外,更需依照原文頁面中所述之 Configuring the ADT Plugin 章節之說明,對 ADT 進行調教。

        在取得上述各程式之後,依照 JAVA、Eclipse、ADT 與 Android SDK 的順序進行安裝。其中,Eclipse 是免安裝即可使用的程式,惟在首次執行時,需設定可供 Eclipse 使用之工作區資料夾。

        當完成上述 Android 的程式檔案配置,接著要開啟 Eclipse,並於命命列的 Help 選項中,執行 Install New Software 選項,俟將 http://dl-ssl.google.com/android/eclipse 輸入對應之欄位後,執行軟體升級,選取並安裝 Android Development Tools (ADT) Plugin。

        如果安裝 Android SDK 的過程中,在 Refresh Sources 視窗中產生如 Failed to fetch URL https://dl-ssl.google.com/android/repository/repository.xml, reason: HTTPS SSL error. You might want to force download through HTTP in the settings." 之錯誤訊息,可先關閉該視窗以及隨後跳出之 Choose Packages to Install 視窗,並將 Android SDK and AVD Manager 視窗 ( 如下圖所示 ) 的左側欄位中,已選取之 Installed Packages 選項,改選為 Settings,接著,再勾選 “Force https://… sources to be fetched using http://…" 即可。嗣,記得要再回到 Installed Packages 的選項,並重新執行 Update All 功能。

        依上述步驟進行後,如果還是無法自動下載相關程式時,則需透過離線安裝之方法取得各相關程式,並手動將各程式檔案存放在適當之資料夾中,例如:C:Android;惟其相關程式檔案位置會因版本更動而變化,因此暫不予在本文中提供,如有需要者可在網路上進行搜尋,或造訪 ANGGRIAWAN SUGIANTO 之網站說明,簡單的說,就是要將各個相關程式擺放在主要 Android SDK 資料夾下,並依正確的位置擺放

        在 Android SDK 與 ADT plugin 安裝完成後,需針對 ADT 進行設定。在設定 ADT 時,預先啟動 Eclipse,並在 Eclipse 視窗上方的命令列之 Windows 選項中,執行 Preferences 選項,並在接著出現的視窗之左列欄位中,選取 Android 選項,嗣,藉由執行在右側頁面所顯示之 SDK Location 選項之 Browse 按鈕,選取並設定用來存放 SDK 軟體之資料夾位置,例如:C:Android。如此,在完成前述各執行步驟後,即可完成 Android 的安裝與基礎設定。

新手初體驗

        在完成安裝篇裡頭的各項步驟後,我們現在應該已經可以開始用 Eclipse 進行 Android 的相關程式開發。讓我們在開啟 Eclipse 後,依照下列步驟建立一個新專案:
  1. 執行 File > New > Project >;
  2. 在出現的 New Project 視窗中,選取 Android > Android Project;
  3. 產生一個 New Android Project 視窗;
  4. 因為是測試,所以我們選擇 Create project from existing source,並點選下方的 Location 的 Browse 按鈕
  5. 在 Android 資料夾下,選取 Sample 資料夾,找出 ApiDemos 並且按下確定;
  6. 在回到 New Android Project 視窗後,選取適當的 Build Target,例如本篇測試中是使用 Android 2.2;
  7. 按下 Finish。
        因為版本的關係,有可能會在此時產生一些錯誤訊息,所以我們需要進行修復專案的動作,而修復的動作大致包括:
  • 在 Eclipse 視窗中,找出位於視窗左側的 Navigator(或 Package Exploer),並在剛剛我們新增的專案名稱(ApiDemos)出現黃色驚嘆號時,可在該專案名稱上按下滑鼠右鍵,並在跳出的選單中,選取 Android Tools > Fix Project Properties,以執行修復動作。
  • 如果錯誤訊息為:The type R is already defined,表示 R.java 產生重複定義的錯誤,通常這是由於新舊版的 SDK 下的 R.java 產生衝突。此時,僅需將 src 資料夾下的 R.java 刪除,並保留 gen 資料夾底下的 R.java 即可。
  • 如果發現專案名稱及或 Problem 視窗中有紅色叉號,例如在本例中出現有 Project ‘ApiDemos’ is missing required source folder: ‘gen’ 及 The project cannot be built until build path errors are resolved 兩個,表示專案本身無法進行完整的編譯,其中,前者的錯誤狀態,主要代表 gen 資料夾有問題,此時可以透過打開任何一個 .XML 檔案,並隨意修改後存檔,即可修正該問題,並同時解決後者的錯誤狀態。
        雖然在本例中解決了錯誤訊息(紅色叉號),但是仍有 332 個黃色驚嘆號的警告(Warnings)出現,而透過選取 Fix Project Properties 也無法有效解除各警告,惟,該等警告並非本節所欲談論的內容,因此就暫時先不去管他。

Android 虛擬機器

        當我們暫時沒有適當的 Android 設備時,可透過 Android 提供的虛擬機器,讓我們直接進行配置以及模擬各類硬體規格之設備,換言之,所謂虛擬機器,也就是一種開發環境模擬器。

        如果想在虛擬機器中執行專案時,需先設定專案的環境參數,其步驟包含下列各項:
  1. 在 Eclipse 視窗中,執行 Run > Debug Configurations;
  2. 在新開的 Debug Configurations 的視窗中,於左側欄位的 Android Application 上,按下滑鼠右鍵;
  3. 之後,會出現一小選單,選取 New,藉以產生一組新的項目;
  4. 同時,在右邊框格中,出現一個新的介面,我們可以在 Name 欄位中,填入代表此環境參數的名稱,例如:此專案名稱 ApiDemos;
  5. 在 Project 表單右側,按下 Browse,以選擇對應之專案名稱;
  6. 確認 Launch Action 表單中,Launch Default Activity 已被選取;
  7. 按下視窗右下方之 Debug 按鈕。
        然而,雖然到目前為止,已經完成虛擬機器的基礎環境配置,但是如果照著之前的步驟進行的話,那應該會發現到無法執行程式的窘境,換句話說,Eclipse 並無法開啟虛擬機器,好讓程式藉以執行。


        同時,由於先前進行 Debug 步驟時,係我們建立 Android 環境後第一次使用,因此會產生一「Android AVD Error」之錯誤訊息。因此,我們尚須依下列「設定虛擬機器」之步驟進行處理,
  1. 在顯示有錯誤訊息之視窗上,按下確定,以進行下一步;
  2. 產生一 Android SDK and AVD Manager 視窗;
  3. 選取視窗左側框架中,有關 Virtual Devices 之選項;
  4. 執行視窗右側框架中,一個 New 按鈕;
  5. 產生一個 Create new Android Virtual Device (AVD) 視窗;
  6. 在步驟六產生之視窗中,填寫適合的 Name 欄位,例如:EclipseDevice;
  7. 選取適當的 Target,例如:Android 2.2 – API Level 8;
  8. 甚至可以選擇想要的配套硬體(Hardware),例如:Abstracted LCD Density 與 Battery Support 等,甚至是記憶卡大小及螢幕尺寸等設定;
  9. 按下 Create AVD,即可建立一個新的虛擬機器。
        如此,在完成上述步驟後,即可再依之前進行 Debug 之步驟進行處理,或者係透過按壓 Eclipse 工具列上之相關按鍵(例如:手機符號或是 Run*)達成相同應用。此時,將產生一個如圖一所示之虛擬機器視窗,以供吾等操控使用。
圖一、Android 虛擬機器
        Tips:在虛擬機器執行時,若按下 ALT + Enter 按鍵,將會全螢幕顯示;按下 F6 則是使用軌跡球模式;按下 Del 則是暫切軌跡球模式;而若按壓 CTRL + FN + F12 鍵,則可切換虛擬機器之螢幕方向 。



        備註*:Debug 與 Run 唯一的差別在於 Debug 可記錄程式執行時之狀態

Hello Vedfolnir


        大家第一眼看到這節的標題,應該是滿臉困惑。Hello Vedfolnir? 這關 Android 什麼事情呢?其實大家如果想成 Hello World,應該就可以豁然開朗了。是的,其實 Hello Vedfolnir 只是 Hello World 的個人自大版本(笑)。


        言歸正傳,不管是 Hello World 還是 Hello Vedfolnir,本節主要目的是讓我們學習到該如何創建第一個 Android 程式,以正式進入 Android 的世界。其詳細開發步驟,請參考下列所示:

  1. 開啟 Eclipse,並選取 File > New > Project,藉以產生一個 New Project 視窗;
  2. 在該視窗中,尋找並選取 Android > Android Project,按下一步;
  3. 產生如圖二所示之 New Android Project 視窗,並請依各欄位之內容(例如:Project Name、Build Target 及 Properties),填入對應之資訊*;
  4. 在完成步驟三後,按下 Finish 按鍵,藉以完成專案的建立。
圖二、New Android Project 視窗

        如此,在完成前述步驟後,可以在 Eclipse 工作視窗中,發現我們已經建立好一個新的專案。按下執行鍵(Run),螢幕上會先出現一個視窗,詢問要使用何者模式進行編譯執行,此時在選擇 Android Application 後,即會產生出現有 Hello Vedfolnir 內容之虛擬機器,同時,在虛擬機器之程式資料夾中,會出現如圖三所示之程式圖示(Icon)。

圖四、虛擬機器之工作視窗

        執行該新圖示後,


        備註*:在 New Android Project 視窗中,有一 Properties 框架,其中 Package name 係套件名稱,包含有兩段式構成之命名規則,藉以透過不同的套件名稱與路徑,區分出不同的類別(Class);而 Create Activity Name 包含有開頭大寫形式的命名規則,主要用於建立此項目之主要類別(亦為「Activity」類別之子類別)。


程式專案架構

        在這一節中,將為大家介紹 Android 的檔案架構,包含有:

  • AndroidManifest.xml,程式的功能清單,用於列出該程式所提供的功能。
  • Src:原始碼(source)目錄,存有本專案的主程式(*.java)。
  • Gen:自動生成(Generate)目錄,存有 R.java 檔案,亦即 R 類別,是做為類似資源字典大全的角色使用。
  • Res:資源(Resource)目錄,存放所有程式中使用到的資源檔案,具有三個預設資料夾:存有 XML 格式的介面描述檔的版面配置目錄(Layout)、參數值目錄Values)及圖片目錄(Drawable)。

R 類別

        R 類別(R Class)在 Android 中的功用,類似工具書的存在,為一個中介檔案,包含使用者介面、圖像、字串等各式的資源與相應的編號(ID)。而 R.java 會由 ADT 工具,自動根據被放入 Res 目錄的 XML 描述文件、圖像等資源,進行同步更新,並得以用來調用XML

一個新程式的開始

(待續)
參考資料
  1. Android 官方網址
  2. 维基百科
  •  
  •  
  •  
  •  
  •  
  •  

說些什麼吧

您也許也會喜歡…