序言
大家幾乎都聽過愚公移山的故事,但是大家常把焦點擺在愚公和移山,而忽略了畚「箕」的角色。禮記.學記篇上有言:良弓之子,必學為箕。其意思是,欲做出優良的弓,必先好好研究其模子(即箕)。最近許多人知道Google推出轟動武林、驚動萬教的Android手機平台。但是幾乎都只關心如何在該新平台上開發應用程式,卻忽略了Android是個框架(Framework),而框架裡含有成百上千個「箕」類(註:基類是大陸對Super Class的譯詞)。基於「良弓之子,必學為箕」的精神,本書先教您正確認識框架(箕)之原理,然後才介紹如何善用畚箕來開發出優良的Android應用程式(良弓)。本書共分為4篇: ※ 第一篇:介紹應用框架概念、原理和特性。 ※ 第二篇:闡述應用框架之設計技巧。亦即,如何打造應用框架。 (註:如果你的職務是「使用」Android框架來開發應用程式的話,可以跳過本篇,直接進入第三篇。) ※ 第三篇:說明及演練Android應用程式設計的36技。 ※ 第四篇:介紹Android框架與硬體之間C組件的開發流程及工具。 筆者並不是說Android的應用程式師是愚公,而旨在說明手機軟體領域的三個主要分工角色: 1) 做畚箕者:如Andriod開發團隊。 2) 畚箕買主:如Google公司。 3) 挑畚箕者:如Android應用程式師。 本書也不把您設定為應用程式師單一角色,而是盼望能協助您開拓更寬廣的未來,無論在上述的任何角色,都能如魚得水,輝煌騰達。於此誠摯地祝福您! 高煥堂 謹識於2008.10.3 目 錄
第一篇 良弓之子,必學為箕(框架) ~禮記.學記~ 第 1 章 認識應用框架, 14 1.1 何謂應用框架 1.2 框架的起源 1.3 框架的分層 1.4 框架的「無用之用」效果 1.5 框架與OS之關係:常見的迷思 第 2 章 應用框架魅力的泉源:反向溝通, 31 2.1 前言 2.2 認識反向溝通 2.3 主控者是框架,而不是應用程式 2.4 現代應用框架:採取廣義IoC觀念 2.5 框架的重要功能:提供預設行為
第二篇 無之(抽象)以為用 ~老子:無之以為用~ 第 3 章 如何打造應用框架, 54 3.1 基礎手藝:抽象(無之)與衍生(有之) 3.2 打造框架:細膩的抽象步驟 3.2.1 基本步驟 3.2.2 細膩的手藝(一):比較資料成員 3.2.3 細膩的手藝(二):比較函數成員 3.2.4 細膩的手藝(三):將抽象類別轉為介面
第三篇 有之(繼承)以為利 ~老子:有之以為利~ 第 4 章 應用程式設計的基礎手藝12技, 82 4.1 #1:如何建立Menu選單 4.2 #2:如何呈現按鈕(Button)之1 4.3 #3:如何呈現按鈕(Button)之2 4.4 #4:如何進行畫面佈局(Layout) 4.5 #5:如何呈現List選單之1 4.6 #6:如何呈現List選單之2 4.7 #7:如何運用相對佈局(Relative Layout) 4.8 #8:如何運用表格佈局(Table Layout) 4.9 #9:如何動態變換佈局 4.10 #10:如何定義自己的View 4.11 #11:如何定義一組RadioButton 4.12 #12:一個Activity啟動另一個Activity 第 5 章 Use Case分析與畫面佈局之規劃, 141 5.1 善用 Use Case分析 5.2 以Android實踐Use Case分析之策略 第 6 章 Use Case分析的實踐(策略-A):6技, 149 6.1 #13:使用Menu和starActivity()實踐之 6.2 #14:使用starActivityForResult()替代startActivity() 6.3 #15:使用ListView替代Menu 6.4 #16:以ListActivity替代Activity父類別 6.5 #17:改由.xml檔案定義畫面佈局 6.6 #18:使用onResume()函數
第 7 章 Use Case分析的實踐(策略-B):2技, 179 7.1 #19:一個Activity支持兩個畫面佈局 7.2 #20:將兩個畫面佈局合併為一
第 8 章 介紹關聯式資料庫與SQLite , 193 8.1 何謂關聯式資料庫 8.2 建立一個表格(Table) 8.3 從表格中查詢資料 8.4 關聯資料模型 8.5 關聯的種類 8.6 兩個表格之互相聯結 8.7 SQL子句:加總及平均 8.8 SQL子句:分組
第 9 章 資料庫手藝:5技, 201 9.1 #21:SQLite基本操作 9.2 #22:讓SQLite披上ContentProvider的外衣 9.3 #23:細說SQLite與ContentProvider 9.4 #24:讓SQLite配合onCreate()、onResume()而來去自如 9.5 #25:如何實現商業交易(Transaction)
第 10 章 進階手藝10技, 237 10.1 #26:如何定義BroadcastReceiver子類別 10.2 #27:如何撰寫Service子類別 10.3 #28:如何使用ProgressDialog物件 10.4 #29:如何捕捉按鍵的KeyEvent 10.5 #30:善用UML Statechart嚴格控制系統的狀態 10.6 #31:如何使用MapView 10.7 #32:如何使用WebView 10.8 #33:如何自動化操作畫面輸入 10.9 #34:如何活用COR設計樣式 10.10 #35:如何活用State設計樣式
第四篇 第三十六技:為箕是上策 第 11 章 如何撰寫框架與硬體間之C組件, 307 11.1 #36:如何撰寫框架與硬體間之C組件 11.2 發展Android C組件的經濟意義
|
