G oogle 秉持著開放、自由的精神,加上Android 聯盟的雄厚實力,以及play store 帶來的巨大商機,使得在IT 界迅速出現了一大批熱愛Android 平台的程式設計師和產品設計人員,為了幫助他們更進一步地研究Android 技術,且能完全自學Android 開發應用,筆者特意創作了本書。
本書內容講解深入淺出,實例接近開發需求,注重實際動手能力,在遵守技術研發知識系統的嚴密性同時,在容易產生錯誤、不易了解的環節都設定了充實的開發情景畫面。全書重點在於 Android 開發核心知識及主流技術,如 2D 應用、3D 開發、動態桌面、導航、感應器、OpenGL ES、多媒體、貼圖…等。
詳細講解技術研發的同時,在容易出錯、不易理解的環節都配有開發畫面的擷圖,並將重要的知識、開發技巧以「小提示」、「程式註解」等形式呈現給讀者。
書中三個大型專案範例均是作者實際開發的專案,具有極高的參考價值。透過 3 個綜合範例的研究,讀者可熟練掌握本書中涉及軟體的開發流程,了解Android 應用程式的開發步驟,儘快融入實戰中。
三大實際開發案例:
◎休閒遊戲-年年有魚
◎藝術休閒-砂畫塗鴉
◎V酷音樂盒
目錄
第1 章 萬丈高樓平地起—Androi 開發基礎
1.1 Android 開發基礎概述
1.1.1 Android 的發展史
1.1.2 Android 基礎架構詳解
1.2 Android 開發環境的架設
1.2.1 AndroidSDK 的安裝與環境變數設定
1.2.2 Eclipse 整合式開發環境的架設
1.2.3 Android 模擬器的建立與使用
1.3 初識Android 應用程式
1.3.1 建立第一個Android 應用程式—Hello Android
1.3.2 模擬器上偵錯Android 應用程式
1.3.3 實際裝置的連線偵錯
1.4 本章小結
第2 章 必知必會的核心知識—Androi 應用程式的組成與結構
2.1 應用程式的專案結構
2.1.1 Android 應用目錄剖析
2.1.2 Android 應用中資源的使用
2.1.3 Android 系統設定檔基礎
2.1.4 Android 的常用許可權
2.2 揭開Android 系統神秘的面紗—深入Android 系統
2.2.1 Android 系統架構基礎
2.2.2 Android 應用程式生命週期詳解
2.2.3 Activity 元件的基礎
2.2.4 服務元件—Service 的基礎
2.2.5 廣播通知的元件—BroadcastReceiver 的基礎
2.2.6 ContentProvider 元件的基礎
2.2.7 Intent 元件和IntentFilter 元件的基礎
2.3 本章小結
第3 章 Android 控制項入門
3.1 Android 控制項類別基礎
3.1.1 視圖View 概述
3.1.2 ViewGroup 概述
3.2 Android 文字控制項
3.2.1 文字方塊—TextView
3.2.2 可編輯的文字方塊——EditText
3.2.3 文字方塊使用案例
3.3 Android 按鈕控制項
3.3.1 按鈕——Button 基礎
3.3.2 按鈕控制項使用案例
3.4 本章小結
第4 章 炫酷的介面設計—Androi 版面配置管理
4.1 線性版面配置—LinearLayout
4.1.1 LinearLayout 基礎
4.1.2 線性版面配置案例
4.2 頁框版面配置—FrameLayout
4.2.1 FrameLayout 基礎
4.2.2 頁框版面配置案例
4.3 表格版面配置—TableLayout
4.3.1 TableLayout 基礎
4.3.2 表格版面配置案例
4.4 相對版面配置—RelativeLayout
4.4.1 RelativeLayout 基礎
4.4.2 相對版面配置案例
4.5 版面配置管理器綜合案例
4.6 本章小結
第5 章 Android 控制項必知必會
5.1 圖片按鈕
5.1.1 ImageButton 基礎
5.1.2 ImageButton 使用案例
5.1.3 9Patch 圖片基礎與產生
5.2 選項按鈕與核對盒
5.2.1 RadioButton 和CheckBox 基礎
5.2.2 選項按鈕和核對盒使用案例
5.3 圖片控制項
5.3.1 ImageView 基礎
5.3.2 圖片檢視器小案例—ImageView 的使用
5.4 狀態開關控制項及應用實例
5.4.1 ToggleButton 基礎
5.4.2 開關控制項使用案例
5.5 時鐘控制項及應用實例
5.5.1 AnalogClock 的基礎
5.5.2 DigitalClock 的基礎
5.5.3 時鐘控制項使用案例
5.6 日期時間控制項及實例
5.6.1 DatePicker 基礎
5.6.2 TimePicker 基礎
5.6.3 日期時間控制項使用案例
5.7 動畫播放技術
5.7.1 框動畫(Frame Animation) 基礎
5.7.2 框動畫(Frame Animation) 使用案例
5.7.3 補間動畫(Tween Animation) 基礎
5.7.4 補間動畫(Tween Animation) 使用案例
5.8 本章小結
第6 章 Android 控制項進階應用
6.1 列表視圖
6.1.1 ListView 基礎
6.1.2 列表視圖使用案例
6.2 捲動視圖
6.2.1 ScrollView 基礎
6.2.2 捲動視圖使用案例
6.3 下拉清單控制項
6.3.1 Spinner 基礎
6.3.2 下拉清單使用案例
6.4 滑桿與進度指示器
6.4.1 ProgressBar 基礎
6.4.2 SeekBar 基礎
6.4.3 滑桿和進度指示器案例
6.5 星級評分條
6.5.1 RatingBar 基礎
6.5.2 星級評分條使用案例
6.6 畫廊控制項
6.6.1 Gallery 基礎
6.6.2 畫廊控制項使用案例
6.7 網格視圖
6.7.1 GridView 基礎
6.7.2 網格視圖使用案例
6.8 標籤
6.8.1 TabHost 基礎
6.8.2 標籤使用案例
6.9 自動完成文字方塊
6.9.1 AutoCompleteTextView 基礎
6.9.2 自動完成文字方塊使用案例
6.10 控制項的綜合應用案例
6.10.1 綜合案例的功能簡介
6.10.2 主控制類別的實現
6.10.3 瀏覽相簿介面的實現
6.10.4 發表心情介面的實現
6.10.5 檢視日誌介面的實現
6.11 本章小結
第7 章 友善地互動交流——Android 選單與交談視窗
7.1 程式選單的應用
7.1.1 選項選單基礎
7.1.2 選項選單使用案例
7.1.3 功能鍵選單的使用
7.2 交談視窗的應用
7.2.1 初識交談視窗
7.2.2 普通交談視窗的開發
7.2.3 日期及時間選擇交談視窗的開發
7.2.4 多選按鈕交談視窗的開發
7.2.5 列表交談視窗的開發
7.2.6 選項按鈕交談視窗的開發
7.2.7 進度指示器交談視窗的開發
7.3 本章小結
第8 章 Android 下的多執行緒與事件處理機制
8.1 Android 下的多執行緒
8.1.1 與眾不同的Android 多執行緒
8.1.2 初識Android 訊息傳遞員—Handler
8.1.3 Handler 使用小範例
8.2 以監聽介面為基礎的的事件處理
8.2.1 Android 事件處理模型
8.2.2 OnClickListener 介面基礎
8.2.3 OnLongClickListener 介面基礎
8.2.4 OnFocusChangeListener 介面基礎
8.2.5 OnKeyListener 介面基礎
8.2.6 OnTouchListener 介面基礎
8.2.7 OnCreateContextMenuListener 介面基礎
8.3 基於方法重新定義的事件處理
8.3.1 onKeyDown 與onKeyUp 方法詳解
8.3.2 onTouchEvent 方法詳解
8.3.3 onTrackBallEvent 方法詳解
8.3.4 onFocusChanged 方法詳解
8.4 本章小結
第9 章 多彩的應用實現——2D 應用程式開發
9.1 SurfaceView 的使用
9.1.1 基本幾何圖形的繪製
9.1.2 自訂圖形的繪製
9.1.3 2D 貼圖技術
9.2 用2D 技術開發簡單遊戲
9.2.1 顯示介面類別GameSurfaceView 的開發
9.2.2 控制小球運動—ThreadForGo 類別的開發
9.2.3 記分執行緒—ThreadForTimeControl 類別的開發
9.2.4 重新繪製介面—ThreadForDraw 類別的開發
9.2.5 設定螢幕相關屬性—GameActivity 類別的開發
9.3 多螢幕解析度問題的處理
9.3.1 Android 開放原始碼帶來的機遇與問題
9.3.2 幾種自我調整螢幕的方式
9.4 透過自訂View 實現自己的控制項
9.4.1 CustomView 類別的開發
9.4.2 自訂View 的增加和使用
9.4.3 Activity 部分程式碼的開發
9.5 本章小結
第10 章 絢麗的遊戲應用——3D 應用開發
10.1 3D 開發基礎
10.1.1 OpenGL ES 及OpenGL 簡介
10.1.2 3D 基礎介紹
10.1.3 簡單3D 物體的繪製
10.1.4 不同的繪製模式
10.1.5 用索引資料進行3D 物體的繪製
10.2 兩種不同的投影模式
10.2.1 正交投影的基本原理
10.2.2 透視投影的基本原理
10.3 光源與材質
10.3.1 光源的組成元素
10.3.2 定向光與定位光
10.3.3 法向量的基礎
10.3.4 材質的基礎
10.3.5 光源的基本範例
10.4 紋理及紋理映射
10.4.1 紋理映射的原理
10.4.2 紋理映射的簡單範例
10.4.3 不同的紋理延伸方式
10.4.4 幾種紋理過濾方式
10.5 攝影機和霧化
10.5.1 攝影機的主要參數
10.5.2 合理的設定角度
10.5.3 加入霧化特效
10.6 幾何體綜合範例
10.6.1 旋轉面的原理
10.6.2 貝茲曲線
10.6.3 曲線產生工具
10.6.4 茶杯產生
10.6.5 茶壺產生
10.6.6 一套茶具的場景
10.7 本章小結
第11 章 訊息廣播與服務
11.1 廣播元件—BroadcastReceiver
11.1.1 基礎
11.1.2 基於廣播的範例
11.2 服務元件—Service
11.2.1 基礎
11.2.2 基於服務的範例
11.3 單機版音樂盒的實現
11.4 本章小結
第12 章 Android 網路開發及資料庫管理
12.1 使用Socket 進行通訊
12.1.1 Socket 服務端的開發
12.1.2 Socket 用戶端的開發
12.2 透過URL 和HTTP 請求取得網路資源
12.2.1 透過URL 取得網路資源
12.2.2 透過HTTP 請求網路資源
12.3 使用WebView 進行網路開發
12.3.1 使用WebView 瀏覽網頁
12.3.2 使用WebView 執行HTML 程式碼
12.4 E-mail 相關功能開發
12.4.1 SMTP 協定基礎
12.4.2 發送E-mail
12.5 SQLite 資料庫
12.5.1 資料庫的基本操作
12.5.2 圖書小幫手資源檔的組織與開發
12.5.3 圖書小幫手程式碼的開發
12.6 存取儲存卡
12.6.1 取得儲存卡容量
12.6.2 讀取儲存卡資訊
12.7 新浪微博用戶端的開發
12.7.1 開發前準備工作
12.7.2 新浪微博用戶端開發範例
12.8 基於WebQQ API 的延伸開發範例
12.8.1 開發前準備工作
12.8.2 騰訊QQ 用戶端開發範例
12.9 本章小結
第13 章 手機基礎功能應用開發
13.1 簡訊操作
13.1.1 發送簡訊
13.1.2 簡訊提示功能
13.1.3 簡訊群發功能
13.1.4 查詢簡訊發送狀態
13.2 電話操作
13.2.1 撥打電話
13.2.2 過濾指定電話
13.2.3 查詢目前狀態
13.3 本章小結
第14 章 我的應用我做主——Android 系統特色功能開發
14.1 Android 系統Configuration
14.1.1 Configuration 基礎
14.1.2 回應Configuration 的變化
14.2 Android 系統桌布更改與提醒設定
14.2.1 桌布的更改
14.2.2 震動功能的設定
14.2.3 音量調節功能
14.3 Android 動態桌布的開發
14.3.1 動態桌布的資源和設定檔
14.3.2 動態桌布的星星類別
14.3.3 小星星運動執行緒—BallGoThread
14.3.4 小星星的產生
14.3.5 動態桌布的開發
14.3.6 動態桌布的效果
14.4 續航的支柱—電池電量
14.4.1 電池原理概述
14.4.2 電池電量提示範例
14.5 手機鬧鈴
14.5.1 AlarmManager 基礎
14.5.2 開發鬧鈴應用
14.6 Android 動態螢幕換頁功能的實現
14.6.1 Android 動態螢幕換頁的基本介紹
14.6.2 Android 動態螢幕換頁的使用範例
14.7 TelephonyManager 管理器
14.7.1 TelephonyManager 的基礎
14.7.2 TelephonyManager 的使用範例
14.8 Notification 的應用
14.8.1 Notification 基礎知識
14.8.2 單機版音樂盒升級—使用Notification
14.9 本章小結
第15 章 Android 小工具開發與多媒體資料的處理
15.1 桌面捷徑介紹
15.1.1 呼叫應用程式建立捷徑
15.1.2 向Launcher 增加捷徑
15.2 小工具—Widget
15.2.1 小工具基礎
15.2.2 小工具的簡單開發
15.3 即時資料夾
15.3.1 Activity 的建立
15.3.2 內容提供者ContentProvider 的建立
15.4 多媒體資料的處理
15.4.1 音訊資料的採集
15.4.2 圖像資料的採集
15.4.3 視訊資料的採集
15.4.4 音樂播放
15.4.5 視訊播放
15.5 本章小結
第16 章 Android 感應器應用的開發
16.1 Android 下主要感應器概述
16.1.1 感應器模擬器—SensorSimulator
16.1.2 加速度感應器—Accelerometer
16.1.3 磁場感應器—Magnetic Field
16.1.4 手機方向感測器—Orientation
16.1.5 光感應器—Light
16.1.6 溫度感應器—Temperature
16.2 手機方向感測器的簡單範例
16.2.1 3D 重力小球的功能簡介
16.2.2 程式主入口MyGLActivity 的實現
16.2.3 3D 場景介面MyGLView 類別的實現
16.2.4 MyGLView 的內部類別SceneRenderer 的實現
16.2.5 場景中盒子的實現
16.2.6 場景中小球的實現
16.2.7 控制小球運動的執行緒類別的實現
16.3 本章小結
第17 章 基於Google 服務的延伸開發
17.1 使用GPS—位置的取得
17.1.1 LocationManager 及相關類別的介紹
17.1.2 取得位置資訊範例的簡單開發
17.2 Google 地圖的使用
17.2.1 Map API Key 的取得
17.2.2 模擬器的建立
17.2.3 Google 地圖查詢的應用
17.2.4 Google 地圖導航的應用
17.3 Google 街景基礎
17.3.1 Android 平台下Google 街景服務的基本原理
17.3.2 使用Google 街景的範例
17.4 天氣預報功能的簡單開發
17.4.1 XML 檔案的解析方法
17.4.2 取得天氣情況的範例
17.5 Google 翻譯API 的應用
17.5.1 Google 翻譯API 的介紹
17.5.2 Google 翻譯API 的應用範例—口袋字典的開發
17.6 本章小結
第18 章 休閒遊戲—年年有魚
18.1 年年有魚的開發背景及功能概述
18.1.1 遊戲開發背景概述
18.1.2 遊戲功能簡介
18.2 遊戲的策劃及準備工作
18.2.1 遊戲的策劃
18.2.2 Android 平台下遊戲開發的準備工作
18.3 遊戲的架構
18.3.1 遊戲的框架簡介
18.3.2 各個類別的簡介
18.4 公共類別的實現
18.4.1 介面管理類別MyActivity 的程式框架
18.4.2 介面管理類別MyActivity 部分成員變數及方法的實現
18.4.3 遊戲常數類別Constant 的實現
18.5 輔助介面相關類別的實現
18.5.1 歡迎動畫介面WellcomeSurfaceView 類別的實現
18.5.2 主選單介面MainView 的實現
18.5.3 積分榜介面ScoreSurfaceView 的程式框架
18.5.4 積分榜介面ScoreSurfaceView 類別部分方法的實現
18.6 遊戲介面相關類別的實現
18.6.1 遊戲介面GameView 類別的程式框架
18.6.2 遊戲介面GameView 類別部分成員方法的實現
18.6.3 更新頁框執行緒KeyThread 類別的實現
18.6.4 魚網的破損執行緒FishNetThread 類別的實現
18.6.5 倒計時的執行緒TimeRunningThread 類別的實現
18.6.6 魚尾擺動的執行緒FishtailThread 類別的實現
18.6.7 魚行進的執行緒 FishGoThread 類別的實現
18.6.8 產生魚的執行緒FishGeneratorThread 類別的實現
18.7 情景相關類別的實現
18.7.1 倒計時類別Timer 的程式框架
18.7.2 Timer 類別部分成員方法的實現
18.7.3 得分Score 類別的實現
18.7.4 魚類別SingleFish 的實現
18.7.5 魚網類別FishingNet 的實現
18.7.6 被捕捉魚的類別FishCatched 的實現
18.7.7 背景圖片類別BackgroundPic 的實現
18.8 自訂控制項及工具類別的實現
18.8.1 資料庫類別DBUtils 的實現
18.8.2 取得日期的工具DateUtil 類別的實現
18.8.3 圖片縮放的工具類別PicLoadUtil 的實現
18.8.4 主選單按鈕MainMenuButton 類別的實現
18.8 遊戲的最佳化與改進
第19 章 藝術休閒—砂畫塗鴉
19.1 砂畫的背景以及軟體概述
19.1.1 砂畫背景
19.1.2 軟體概述
19.2 軟體的策劃及準備工作
19.2.1 軟體策劃
19.2.2 Android 平台下的準備工作
19.3 軟體架構
19.3.1 軟體框架簡介
19.3.2 各個類別的簡介
19.4 公共類別的實現
19.4.1 主控制類別—SandPaintingActivity
19.4.2 常數類別—Constant
19.5 輔助介面相關類別的實現
19.5.1 歡迎介面類別—WelcomeView
19.5.2 歡迎介面更新頁框執行緒—WelcomeViewDrawThread
19.6 主介面相關類別的實現
19.6.1 最小動作類別—AtomAction
19.6.2 動作類別—ActionGroup
19.6.3 資料記錄類別—Record
19.6.4 背景顏色選擇類別—BgColorView
19.6.5 設定介面類別—SetupView
19.6.6 顯示結果集類別—ShowGalleryView
19.6.7 主介面類別—MainView
19.6.8 主介面的更新頁框執行緒—MainViewDrawThread
19.7 最佳化與改進
第20 章 V 酷音樂盒
20.1 系統背景及功能概述
20.1.1 背景簡介
20.1.2 功能概述
20.1.3 開發環境和目標平台
20.2 開發前的準備工作
20.2.1 資料庫設計
20.2.2 表的建立和測試資料的插入
20.3 系統功能預覽及整體架構
20.3.1 用戶端功能預覽
20.3.2 伺服器端預覽
20.3.3 系統目錄結構
20.4 伺服器端功能模組的實現
20.4.1 登入功能的開發
20.4.2 歌曲增加功能的開發
20.4.3 歌曲查詢和刪除功能的開發
20.4.4 歌曲修改功能的開發
20.4.5 系統類別功能的開發
20.4.6 與用戶端的通訊功能
20.5 用戶端功能的實現
20.5.1 歌曲掃描功能的開發
20.5.2 更新SD 卡功能的開發
20.5.3 音樂播放功能的開發
20.5.4 歌曲頻譜的開發
20.5.5 歌詞同步功能的開發
20.5.6 增加歌曲列表功能的開發
20.5.7 刪除、重新命名歌曲列表功能的開發
20.5.8 註冊功能的開發
20.5.9 登入功能的開發
20.5.10 下載功能的開發
20.6 系統最佳化和改進
第21 章 Android 3.0 新特性總覽與開發實作
21.1 歷史傳承及新特性簡介
21.1.1 Android 歷代版本總覽
21.1.2 Android 3.0 新特性簡介
21.2 淺嘗Android 3.0 新特性開發
21.2.1 區域影像解碼—BitmapRegionDecoder
21.2.2 便攜日曆—CalendarView
21.3 本章小結
第1 章 萬丈高樓平地起—Androi 開發基礎
1.1 Android 開發基礎概述
1.1.1 Android 的發展史
1.1.2 Android 基礎架構詳解
1.2 Android 開發環境的架設
1.2.1 AndroidSDK 的安裝與環境變數設定
1.2.2 Eclipse 整合式開發環境的架設
1.2.3 Android 模擬器的建立與使用
1.3 初識Android 應用程式
1.3.1 建立第一個Android 應用程式—Hello Android
1.3.2 模擬器上偵錯Android 應用程式
1.3.3 實際裝置的連線偵錯
1.4 本章小結
第2 章 必知必會的核心知識—Androi 應用程式的組成與結構
2.1 應用程式的專案結構
2.1.1 Android ...