FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03...

11
03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android 系統的巿場占有率已正式超越 iOS 系統,成為全球最多人使用的行動裝置系統。 Android 系統功能強大,幾乎所有行動裝置的功能都能設計,是學習行動裝置程式設 計者的首選。本書以淺顯的文字、生動的圖形、豐富的範例、詳盡的原理解說,透 過「做中學」的過程,達到易讀易懂易學的目的。「即使不熟悉 Java 語言基礎,也 不曾接觸過手機程式設計的初學者,也能進入 Android 程式設計殿堂」是本書的撰 寫宗旨。 本書的範例都經過精挑細選,兼顧由淺入深的原理及趣味性和實用性,並以步驟導 引的方式,按部就班引導使用者操作,詳細闡述各項原理,非常適合初學者學習。 建議讀者不只是要「讀」,也要實際動手「做」,最好還要停下「思考」其中的原 理,如此就能以最短的時間得到最大的收穫。 對於一些操作上的技巧,如模擬器的建立及使用、Eclipse 整合環境自動完成功能、 產生程式碼片段等,除在書中以圖示、操作步驟詳盡說明外,並錄製操作的影音檔 案供讀者參考。另外影音教學內容還包括文字敘述較難完整呈現的單元,如程式除 錯、建立自己的資料庫類別、執行自訂的 Activity 等,是學習 Android 程式的另一利 器。在這次的改版中,除了 Android 4 開發環境介紹與範例說明外,針對 Google 推出的 Google Play 商店進行了上架與使用的說明。 曾在網路論壇上見到這樣一個問題:已經學 Android 的人這麼多,現在學不會太遲 嗎?一位智者說:太多人都一直在等機會做一些完美的事,結果一事無成。如果你 現在就開始,將會很快就學習到原來毫無所知的新技能。就從本書進入 Android 神奇世界吧!機會永遠留給準備好的人。 文淵閣工作室 關於文淵閣工作室。序

Transcript of FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03...

Page 1: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

03

機會永遠留給準備好的人

FOREWORD

隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

系統的巿場占有率已正式超越 iOS 系統,成為全球最多人使用的行動裝置系統。

Android 系統功能強大,幾乎所有行動裝置的功能都能設計,是學習行動裝置程式設

計者的首選。本書以淺顯的文字、生動的圖形、豐富的範例、詳盡的原理解說,透

過「做中學」的過程,達到易讀易懂易學的目的。「即使不熟悉 Java 語言基礎,也

不曾接觸過手機程式設計的初學者,也能進入 Android 程式設計殿堂」是本書的撰

寫宗旨。

本書的範例都經過精挑細選,兼顧由淺入深的原理及趣味性和實用性,並以步驟導

引的方式,按部就班引導使用者操作,詳細闡述各項原理,非常適合初學者學習。

建議讀者不只是要「讀」,也要實際動手「做」,最好還要停下「思考」其中的原

理,如此就能以最短的時間得到最大的收穫。

對於一些操作上的技巧,如模擬器的建立及使用、Eclipse 整合環境自動完成功能、

產生程式碼片段等,除在書中以圖示、操作步驟詳盡說明外,並錄製操作的影音檔

案供讀者參考。另外影音教學內容還包括文字敘述較難完整呈現的單元,如程式除

錯、建立自己的資料庫類別、執行自訂的 Activity 等,是學習 Android 程式的另一利

器。在這次的改版中,除了 Android 4 開發環境介紹與範例說明外,針對 Google 剛

推出的 Google Play 商店進行了上架與使用的說明。

曾在網路論壇上見到這樣一個問題:已經學 Android 的人這麼多,現在學不會太遲

嗎?一位智者說:太多人都一直在等機會做一些完美的事,結果一事無成。如果你

現在就開始,將會很快就學習到原來毫無所知的新技能。就從本書進入 Android 的

神奇世界吧!機會永遠留給準備好的人。

文淵閣工作室

關於文淵閣工作室。序

Page 2: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

15

12.3.3 範例:建立登入資料檔案 ........................................................... 12-21

12.3.4 檔案資料儲存位置...................................................................... 12-24

12.3.5 範例:登入頁面—利用檔案資料比對 ......................................... 12-25

延伸練習 ....................................................................................... 12-31

第 13 章 SQLite 資料庫在 Android 系統使用 SQLite 來系統管理資料庫,SQLite 提供 SQLiteDatabase 類別,其中可以利用 rawQuery() 和 query() 兩種資料表查詢方法,也可以利用 insert()、update()、delete() 分別可以處理資料新增、修改和刪除。

13.1 認識 SQLite 資料庫 ................................................................ 13-2

13.2 SQLiteDatabase 類別 ............................................................ 13-313.2.1 使用 execSQL() 方法執行 SQL 命令 ........................................... 13-3

13.2.2 範例:以 execSQL() 方法執行 SQL 命令 .................................... 13-4

13.2.3 rawQuery() 資料查詢 ................................................................... 13-8

13.2.4 query() 資料查詢.......................................................................... 13-9

13.2.5 insert() 資料新增 ........................................................................ 13-10

13.2.6 delete() 資料刪除 ....................................................................... 13-10

13.2.7 update() 修改資料...................................................................... 13-10

13.3 以 ListView 顯示 SQLite 資料 ............................................. 13-1113.3.1 SimpleCursorAdapter 類別 ........................................................ 13-11

13.3.2 將 SQLite 資料顯示在 ListView 上 ............................................. 13-12

13.4 建立自己的資料庫類別 ......................................................... 13-1813.4.1 建立自訂資料庫類別:MyDB..................................................... 13-18

13.4.2 加入使用自訂類別的執行程式碼 ................................................ 13-23

延伸練習 ....................................................................................... 13-29

第 14 章 時間服務的相關元件AnalogClock是圖形化時鐘,digitalClock 是數字型態的時鐘。Chronometer 元件主要功能是做為計時器,Timer 類別可設定執行程式的間隔時間,也能指定多久後才開始執行。Thread 類別可以完整控管多個執行緒運作的情形,且互不干擾。

本書目錄

Page 3: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

Android初學特訓班

16

14.1 AnalogClock 及 DigitalClock 元件 ....................................... 14-2

14.2 Chronometer 元件—計時器 .................................................. 14-314.2.1 Chronometer 的語法.................................................................... 14-3

14.2.2 範例:Chronometer 時鐘及碼錶.................................................. 14-4

14.2.3 範例:Chronometer 幻燈圖片播放 .............................................. 14-7

14.3 Timer 類別 ........................................................................... 14-1014.3.1 Timer 類別的語法 ...................................................................... 14-10

14.3.2 範例:Timer 碼錶 ...................................................................... 14-12

14.4 Thread 類別 ......................................................................... 14-1614.4.1 執行緒........................................................................................ 14-16

14.4.2 範例:Thread 雙碼錶 ................................................................ 14-18

14.4.3 Thread 傳送訊息 ........................................................................ 14-21

延伸練習 ....................................................................................... 14-23

第 15 章 播放音訊視訊與錄音在 Android中可以使用 MediaPlayer 元件來播放音訊及視訊, VideoView 元件可用來播放視訊, MediaRecorder 元件來進行媒體採樣進行錄音的動作。

15.1 播放音訊 ................................................................................. 15-215.1.1 MediaPlayer 元件 ........................................................................ 15-2

15.1.2 模擬器 SD 卡儲存檔案................................................................. 15-3

15.1.3 播放 SD 卡音訊 ........................................................................... 15-5

15.1.4 範例:SD 卡音訊播放器 .............................................................. 15-6

15.1.5 播放資源檔案音訊...................................................................... 15-10

15.1.6 範例:資源檔案音訊播放器 ....................................................... 15-11

15.2 播放視訊 ............................................................................... 15-1315.2.1 VideoView 視訊播放器 .............................................................. 15-13

15.2.2 範例:VideoView 視訊播放器 .................................................... 15-14

15.2.3 SurfaceView 元件語法 ............................................................... 15-17

15.2.4 MediaPlayer 與 SurfaceView 結合 ............................................ 15-18

15.2.5 範例:自訂格式視訊播放器 ....................................................... 15-19

Page 4: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

17

15.3 錄製音訊 ............................................................................... 15-2215.3.1 MediaRecorder 元件語法 .......................................................... 15-22

15.3.2 範例:MediaRecorder 錄音機 ................................................... 15-24

延伸練習 ....................................................................................... 15-30

第 16 章 發佈應用程式Android 應用程式完成後可以發佈到實機上測試,甚至上傳到 Google Play商店,是每個開發都者應該要學習的重點。

16.1 支援多國語系及螢幕模式 ..........................................................16-216.1.1 抽取字串到 XML 檔 .......................................................................16-2

16.1.2 範例:計算大聯盟球速抽離字串版 ................................................16-6

16.1.3 開發多國語言應用程式 ..................................................................16-8

16.1.4 範例:計算大聯盟球速多國語言版 .............................................. 16-11

16.1.5 支援各種螢幕解析度 ....................................................................16-13

16.2 將作品發佈到Google Play 商店 .............................................16-1516.2.1 安裝應用程式到實機 ....................................................................16-15

16.2.2 應用程式產生私人金鑰 ................................................................16-18

16.2.3 發佈應用程式到 Google Play 商店 ..............................................16-22

延伸練習 .........................................................................................16-29

第 17 章 Google 地圖應用程式Google 地圖程式可以應用範圍很廣,除了單純的顯示地圖位置、地標之外還能切換不同的顯示模式。搭配上不同的應用資訊,對於日常生活,甚至商務應用都能有

所發揮。

17.1 Google 地圖應用程式準備工作 .............................................. 17-217.1.1 安裝 Google APIs ........................................................................ 17-2

17.1.2 建立 Google APIs 應用程式的模擬器 .......................................... 17-3

17.1.3 建立 Google APIs 應用程式 ......................................................... 17-5

17.1.4 查詢經緯度 .................................................................................. 17-5

17.1.5 申請本機執行 Google 地圖的 API Key......................................... 17-5

本書目錄

Page 5: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

Android初學特訓班

18

17.2 建立 Google 地圖應用程式 .................................................... 17-917.2.1 建立 Google 地圖應用程式的步驟 ............................................... 17-9

17.2.2 範例:建立 Google 地圖應用程式 ............................................. 17-10

17.3 加入 Google 地圖控制功能 .................................................. 17-1417.3.1 地圖的檢示模式 ......................................................................... 17-14

17.3.2 地圖的放大、縮小和拖曳 ........................................................... 17-14

17.3.3 範例:設定 Google 地圖的縮放、拖曳和檢視模式 .................... 17-14

17.4 取得現在位置的相關資訊 ...................................................... 17-1917.4.1 Android 設備定位的方法 ............................................................ 17-19

17.4.2 使用 LocationManager 物件定位 ............................................... 17-19

17.4.3 範例:以 LocationManager 物件取得目前的定位 ...................... 17-23

17.4.4 進行模擬定位 ............................................................................. 17-26

17.4.5 使用 MyLocationOverlay 物件定位 ............................................ 17-28

17.4.6 範例:以 LocationOverlay 物件取得目前定位 ........................... 17-30

17.5 在 Google 地圖加上地標 ...................................................... 17-3217.5.1 建立繼承 ItemizedOverlay 類別的地標圖層類別........................ 17-32

17.5.2 建立地標圖層物件...................................................................... 17-36

17.5.3 範例:為地圖標示地標 .............................................................. 17-37

17.6 發佈能在實機執行的 Google 地圖應用程式 ......................... 17-4317.6.1 申請實機執行的 API Key ........................................................... 17-43

17.6.2 以實機的 API Key 發佈 apk 檔................................................... 17-45

17.6.3 Google 地圖應用程式發佈錯誤時的處理 ................................... 17-46

延伸練習 ....................................................................................... 17-47

Page 6: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

01

Android 是 Google 公司基於 Linux 平台開放原始碼的嶄新手機及平版電腦的作

業平台。「工欲善其事,必先利其器」,要學習 Android 應用程式,如果取得功能

強大的開發工具,將可使學習事半功倍。

█ Android 是啥米?

█ 建構 Android 開發環境

█ 安裝 Java開發工具包

█ 佈置 Eclipse開發整合環境

█ 安裝 Android 開發工具外掛

█ 安裝 Android 軟體開發工具包

█ Android 模擬器簡介

敲開 Android 的開發大門

Page 7: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

01敲開 Android 的開發大門敲開 Android 的開發大門

1-21

1.7 Android 模擬器簡介

1.7.1 認識 Android模擬器

在 Eclipse 中撰寫完 Android 程式碼後要如何測試程式呢?最直接的想法當然是

購買一支 Android系統的智慧型手機,然後在 Eclipse 中編譯程式,再將編譯完

成的執行檔傳送到手機安裝,最後在手機上執行程式測試執行的結果。

!

開發 編譯 測試

難道我真的要先買一支手機嗎?

Android模擬器的誕生

但是開發者一定要擁有設備才能進行開發嗎?於是 Android模擬器就應運而生

了。Android 模擬器 (Android Virtual Device, AVD) 相當於一台虛擬手機,它可

以在電腦上模擬 Android設備的絕大部分功能,因此開發者即使沒有價值不菲的

Android 智慧型手機,也可以進行 Android 應用程式開發,這樣就省下一大筆購

買手機的費用。

開發 編譯 測試

AVD真是開發上的一大救星 !

Page 8: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

AndroidAndroid初學特訓班初學特訓班

1-22

Android模擬器的優缺點

在 Eclipse 中安裝 Android 模擬器後,只需按一個按鈕就可執行編輯中的應用程

式專案,同時開啟模擬器顯示執行結果,非常方便且有效率。如果需修改程式,

在修改完成後再按一次按鈕就可觀看修改後的執行結果。

Android 模擬器可以模擬不同 Android SDK 版本的 Android 系統,也可以選擇

不同螢幕大小及解析度。更神奇的是模擬器可以模擬大部分手機上的硬體設備,

例如:SD 外接記憶卡、觸控式螢幕、重力感應器等,開發這些硬體的應用程式

也可在模擬器上測試。

在 Eclipse 中可以同時為不同版本 Android SDK 及不同解析度螢幕建立多個

Android 模擬器,執行時可選擇要使用那一個模擬器,這樣就可以測試應用程式

在不同環境下的執行結果。

當然,Android 模擬器不是萬能,仍然有許多功能無法模擬,例如:可模擬數位

相機,但除非電腦有 Cam 設備,否則不具備照相功能;可模擬 SD 記憶卡,但

無法模擬插入及退出動作等。如果應用程式要使用這些功能,仍需在實機上測試。

另外,Android 手機的廠牌及款式眾多,在模擬器上執行的結果,可能與某些廠

牌的實機上結果會有部分不同,但此現象在 Google 的努力下已大幅改善。

1.7.2 建立 Android 模擬器

開發者可以因應需求,建立多個模擬不同版本、不同大小的 Android模擬器,

只要在測試專案時指定即可模擬出作品在不同環境下執行的結果。以下是在建立

Android 模擬器的步驟:

1. 進入 Eclipse後,請選按功能表 Window / AVD Manager 以開啟 Android Virtual Device Manager 對話方塊,選按 New 鈕建立新模擬器。

Page 9: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

01敲開 Android 的開發大門敲開 Android 的開發大門

1-23

2. 接著請輸入新模擬器資訊。

1 Name 欄 位 輸 入 模 擬 器 名 稱

「AVD40HVGA」。

2 Target 欄位選取 Android SDK 版本 Android 4.0。

3 SD Card 欄位的 Size 輸入記憶卡大

小「256」。

4 Skin 欄位的 Build-in 選取螢幕解析

度 HVGA。

5 點按 CreateAVD 鈕建立新模擬器。

1

2

3

4

5

3. 回到 Android Virtual Device Manager 對話方塊即可見到新建立的模擬器。

Android Virtual Device Manager 對話方塊中各欄位的意義:

█ Name:設定模擬器的名稱。因為一個系統可以建立多個模擬器,這些模擬器的特性最好可由名稱辨別,所以最好在名稱中加入有意義的字元,例如

上面名稱設定為「AVD40HVGA」,「AVD」表示 Android 模擬器,「40」

表示編譯的 Android SDK 版本為 4.0 版,「HVGA」代表手機螢幕的解析度。

█ Target:設定模擬器使用的 Android SDK 版本。在實機上要改變 Android

SDK 版本是一件非常繁瑣且困難的程序,而且有相當危險性。開發者可建

立多個不同 Android SDK 版本的模擬器,撰寫的專案就可在不同版本中進

行測試。

Page 10: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

AndroidAndroid初學特訓班初學特訓班

1-24

█ SD Card:設定模擬器使用 SD Card 卡的大小。單位可以選擇 KB、MB及

GB,通常使用「MB」。記憶卡大小以 128、256 或 512 MB 最普遍。

█ Skin:設定模擬器使用的螢幕規格及解析度。在 Build-in 屬性有多種規

格可以選取,一般以「HVGA」最常用。當設計者改變螢幕規格時,下方

Hardware 的屬性值也會跟著改變。

█ Hardware:設定模擬器要加入的硬體設備。除非開發需要特別硬體的應用程式,一般不需額外加入硬體設備。如要加入硬體設備,可按 New 鈕,點

選要加入的硬體後再按 確定 鈕即可。

Page 11: FOREWORD 機會永遠留給準備好的人epaper.gotop.com.tw/pdf/ACL035131.pdf03 機會永遠留給準備好的人 FOREWORD 隨著智慧型手機的普及,行動裝置系統之間的大戰是不停在進行的。在今年Android

01敲開 Android 的開發大門敲開 Android 的開發大門

1-25

1.7.3 啟動 Android 模擬器

1. 選按 Eclipse功能表 Window / AVD Manager 開啟 Android Virtual Device Manager 對話方塊。選取要啟動的模擬器 (此處為 AVD40HVGA) ,再按

Start 鈕啟動。在 Launch Options 對話方塊按 Launch 鈕。

2. 經過一段時間的等待,就可看到模擬器了!啟動模擬器的時間與電腦的執行

速度有關,約數分鐘到十餘分鐘之間。模擬器開啟時處於鎖定狀態,按右下

角的 OK 鈕即可解鎖,當出現手機桌面圖示時,就可開始使用模擬器了!