1
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
應用框架原理與程式設計
36
技
適用於
Android 1.0 版
本書完整範例程式碼請到網站下載:
www.misoo1.com 或 tom-kao.blogspot.com
高煥堂 著(2008 年 10 月第三版)
misoo.tw@gmail.com
2 Android
應用框架原理與程式設計
36
技
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
著作權聲明:
z 本書已於 2008 年 4 月出版發行。
z 著作權屬於 高煥堂 所擁有。
z 本 e-book 可整份免費自由複製流傳。
z 但非經作者書面同意,不可以加以切割、剪輯及部分流傳。
z 任何商業用途皆需得到作者的書面同意。
書內範例原始程式碼,請到 tom-kao.blogspot.com 或www.misoo1.com下载。
3
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
第三版序言
由於 Android 正式(1.0)版和 HTC/Android 實體手機皆已經上市了,因之本書
也針對 Android 1.0 版的出爐而即時修訂,成為本書的第三版。
大家幾乎都聽過愚公移山的故事,但是大家常把焦點擺在愚公和移山,而忽
略了畚「箕」的角色。禮記.學記
篇上有言:良弓之子,必學為箕。其意思是,欲
做出優良的弓,必先好好研究其模子(即箕)。最近許多人知道 Google 推出轟動武
林、驚動萬教的 Android 手機平台。但是幾乎都只關心如何在該新平台上開發應
用程式,卻忽略了 Android 是個框架(Framework),而框架裡含有成百上千個「箕」
類(註:基類是大陸對 Super Class 的譯詞)。基於「良弓之子,必學為箕」的精神,
本書先教您正確認識框架(箕)之原理,然後才介紹如何善用畚箕來開發出優良的
Android 應用程式(良弓)。本書共分為 4 篇:
※ 第一篇:介紹應用框架概念、原理和特性。
※ 第二篇:闡述應用框架之設計技巧。亦即,如何打造應用框架。
(註:如果你的職務是「使用」Android 框架來開發應用程式的
話,可以跳過本篇,直接進入第三篇。)
※ 第三篇:說明及演練 Android 應用程式設計的 36 技。
※ 第四篇:介紹 Android 框架與硬體之間 C 組件的開發流程及工具。
筆者並不是說 Android 的應用程式師是愚公,而旨在說明手機軟體領域的三個主
要分工角色:
z 做畚箕者:如 Andriod 開發團隊。
z 畚箕買主:如 Google 公司。
z 挑畚箕者:如 Android 應用程式師。
本書也不把您設定為應用程式師單一角色,而是盼望能協助您開拓更寬廣的未
來,無論在上述的任何角色,都能如魚得水,輝煌騰達。於此誠摯地祝福您!
高煥堂 謹識於 2008.10.3
tom-kao.blogspot.com
4 Android
應用框架原理與程式設計
36
技
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
目 錄
第一篇
良弓之子,必學為箕
(
框架
) ~
禮記
.
學記
~
第 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 細膩的手藝(三):將抽象類別轉為介面
5
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
第三篇
有之
(
繼承
)
以為利
~
老子:有之以為利
~
第 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 分析與畫面佈局之規劃, 1
41
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()函數