Misoo

高煥堂的第2本Android書籍

 
 
 
  序 言  
 

 20084月,我出版了<<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        JNIC組件的標準介面

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          如何結合JNIFaç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   LinterAndroid框架的融合方法, 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