序 言
在2008年4月,我出版了<<Android應用框架原理與程式設計36技>> 一書,獲得業界的廣泛迴響。在聆聽業界先進的諸多寶貴意見之後,特別針對三項大家最關注的焦點技術,做更精緻的剖析,並匯集成為本書,期待它能對手機軟硬體產業做出一些貢獻。這三個焦點技術包括: l 可靠的UI架構:如何活用UML狀態機(State Machine)圖來將UI(User Interface)的可靠性(Reliability)提升到極佳的境界。 l Native C組件的介面設計:在上一本書(即Android應用框架原理與程式設計36技) 裡簡潔地介紹Android C組件的經濟意義和開發範例,獲得許多讀者的喜愛,但覺得太精簡而不夠夠癮。所以本書裡特別說明C組件的介面設計、開發環境及其步驟,讓讀者能迅速活用此項技術,並提升組件的標準化和抽換性。 l 舶來組件如何融入Android架構:Android框架就像一個電腦主機板(Motherborad),那麼如何將眾多既有或外來的組件納入到該框架裡呢?本書以俄羅斯研發的著名Linter嵌入式資料庫系統為例,說明如何將這遠從萬里之外的舶來組件,順利地融入於Android框架裡,並成為他的嫡系成員之一。
Android是個免費的手機平台,然而,像Linter這樣的頂級組件是可以收費的。其發展模式很類似電腦印表機(Printer):印表機是免費的,但其零件(如墨水等)卻是要收費的。Android也很像麥當勞的漢堡,我們可以將各式各樣的起司或牛肉等組件,夾入到漢堡裡。因此,免費的Android平台帶來潛在的巨大商機。希望本書能陪伴你邁向成功之路! 此外,承蒙Android專家 李立文 不吝提供許多寶貴的技術,本書才得以順利出版,於斯,特別致以萬分謝意。
高煥堂 謹識於2008.10.3
目 錄
第一篇 Android應用程式的UI架構設計 第 1 章 認識狀態機, 8 1.1 前言 1.2 狀態及其轉移 1.3 巢狀的狀態 1.4 預設起始狀態 1.5 歷史狀態 1.6 多層級的狀態機 1.7 特殊情境:尚未有歷史狀態 1.8 順移狀態(Transient State) 1.9 並行(Concurrent)狀態 1.10 狀態變數(State Variable) 1.11 子狀態機(Submachine) 1.12 事件與動作(Operation) 1.13 狀態機與Android的天作之合 第 2 章 如何繪製Android畫面的狀態機, 37 2.1 範例演練之一:單一狀態 2.2 範例演練之二:兩個狀態 2.3 範例演練之三:三個狀態 2.4 範例演練之四:巢狀與歷史狀態 2.5 範例演練之五:並行狀態 2.6 範例演練之六:與Android內部狀態機的銜接 第 3 章 替既有Android程式繪製狀態機, 83 3.1 前言 3.2 NotePad程式的Layout呈現 3.3 將Activity對應到子狀態機 3.4 設計NoteList子狀態機 3.5 設計NoteEditor子狀態機 3.6 設計TitleEditor子狀態機
第二篇 Android C組件的架構設計 第 4 章 高品質的Android C組件, 102 4.1 「標準化+抽換性」是產業強盛的指標 4.2 JNI:C組件的標準介面 4.3 Façade樣式:締造高度抽換性 4.4 Façade物件與JNI的美妙結合 第 5 章 Android C組件開發入門, 111 5.1 Android應用程式與C組件之分工開發 5.2 跨國分工應用於Android軟體開發 5.3 跨國異地分工開發流程:實例說明 5.4 精緻的JNI介面設計 第 6 章 Façade樣式與JNI的完美組合, 151 6.1 前言 6.2 如何結合JNI與Façade樣式 6.3 Façade樣式與JNI組合之範例 6.4 欣賞Android C組件之抽換性 第 7 章 簡介物件導向C語言, 175 7.1 前言 7.2 LW_OOPC:替C語言黃袍加身 7.3 簡介LW_OOPC的巨集 7.4 如何定義C的組件類別 7.5 C類別程式設計範例 7.6 結語
第三篇 如何組裝舶來的C組件 第 8 章 Linter與Android框架的融合方法, 196 8.1 Android就像軟體主機板 8.2 認識Linter的特性 8.3 Linter搭配JDBC標準介面 8.4 Linter應用範例一:JDBC入門 8.5 Linter應用範例二:活用JDBC 8.6 Linter應用範例三:儲存及播放MP4影片 8.7 將Linter安裝到Android模擬器裡
第 9 章 讓Linter成為Android的嫡系成員, 225 9.1 前言 9.2 何謂Android的嫡系組件 9.3 什麼是ContentProvider嫡系組件:以SQLite為例 9.4 讓Linter配上ContentProvider介面
第四篇 Android雕龍小技 第 10 章 Android程式設計的雕龍小技, 252 10.1 #1:如何繪製3D圖形 10.2 #2:展現Drawable圖像的各種風貌 10.3 #3:呈現透明的Drawable圖像 10.4 #4:如何撰寫SurfaceView的子類別 10.5 #5:讓圖像在SurfaceView裡旋轉
附錄, 279 |
