深入Android應用開發:核心知識點解析與實例詳解 ( 簡體 字) |
作者:苗忠良,曾旭,宛斌 | 類別:1. -> 程式設計 -> 手機程式 -> Android |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 33078 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:6/1/2012 |
頁數:452 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111379577 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:為什么寫作本書
作為一個應勢而生的移動終端操作系統,Android適應了移動互聯網的發展和“4C”融合的趨勢,為產業從以硬件為重心向以內容和服務為重心轉型提供了一個絕佳的平臺。更由于其發起者Google的正確商業推廣策略,自發布之日起,Android便贏得了眾多開發者和OEM廠商的青睞與支持,支持者如滾雪球般不斷擴大,最終后來居上。由于其面向互聯網設計的特點,Android適用于數字家庭、遠程醫療、物聯網、交通監控、移動終端、機器人等多種應用領域,能很好地適應移動互聯網的發展,其前景被越來越多的人看好。Android的出現,加速了以“內容”和“服務”為重心的新一代信息產業革命的發展。
隨著移動互聯網的發展,科技的魅力逐漸滲透到世界的每個角落,但是隨著科技的普及,至少在消費類電子領域,以技術驅動為核心的價值觀理念正逐漸讓位于以消費需求為核心的價值觀理念。衡量產品成功的標準不再局限于技術是否先進,而是能否最大限度地滿足消費者需求。Android的出現正逢其時。
然而Android龐大的架構背后蘊含的設計理念和邏輯細節異常復雜,入門容易,深入卻難,需要開發者仔細鉆研。 Android的知識點跨越了Linux、Java、C/C++、XML、移動終端、無線接入技術、用戶研究和計算機網絡等多個領域,整合了計算機網絡、嵌入式系統、移動通信、集成電路、工業設計、人機交互、設計藝術學等多個學科。
在本書中,根據以往和讀者交流的經驗,筆者摒棄了以前側重理論和理念引導的寫作方法,更注重實戰經驗的總結。從哲學角度看,這是一種退步,但是就具體的開發和與技術的適配來看,這種寫作方法更加有利于將筆者的心得分享給讀者,幫助讀者迅速提高自己的開發水平。
然而必須申明,任何平臺和工具均是開發者表達自己理念的一種手段,永遠無法也不應該替代開發者頭腦中的應用的設計理念,尤其是在進行商業開發的過程中,應始終明確設計理念和商業模式遠比工具本身更重要。API僅是表達設計意圖的一個途徑,必須將個人的視野拔高到設計的層次。在商務實踐中,戰略和執行力構成個人和企業成功的兩大基石,自身的技術能力和能夠利用的資源則決定著產品的質量。只懂使用工具的人稱不上優秀的人才,相比內外兼修的“中華功夫”高手,不過徒然練就了“一身外功”而已。只有理論與實踐兼修,才能夠深刻了解產業的發展趨勢,才能找到正確的切入點,才能體會到工程實踐的重要意義,才能理解優秀的產品其實是一種平衡者才能獲得的更高成就,而前進的每一步都是在不斷否定自我的過程中實現的。
秉持一貫的作風,本書少有完整的例子供開發者參考,因為在Android SDK所攜帶的文檔中,已經有足夠多的示例供開發者學習,筆者沒有必要在此著墨太多。
在具體的內容上,本書以源代碼為主、SDK為輔的方式與大家分享經驗心得。希望本書能夠幫助Android愛好者一窺Android內在的神秘。
本書面向的讀者
本書適合所有有一定基礎的Android應用開發工程師和系統開發工程師閱讀。
本書主要內容
本書在邏輯上力避耦合,讀者可以根據自己的需要調整閱讀順序。缺乏Android基礎的讀者請務必先詳細閱讀本書的附錄。
本書第1∼4章介紹Android基礎開發涉及的核心組件、應用框架、資源框架、UI控件、數據存儲等,這是所有Android開發者都應掌握的;第5∼10章介紹Android框架層的通信機制、多線程編程、網絡編程、圖像與動畫、多媒體編程、跨語言調用等內容,這些是中等水平的Android開發者必須掌握的;第11∼15章則介紹了Android的安全框架、調試與優化、編譯環境、啟動過程和系統管理,以幫助開發者完成更高層次的積累并為商業級產品開發做好準備。
支持和勘誤
除了苗忠良、曾旭、宛斌之外,周紅恩、王振偉、李德偉、張婷婷、劉存青、王珊珊等還參與了資料的整理和示例的收集等工作。
由于筆者水平有限,書中難免還存在一些不足,請大家見諒。您若對本書有任何意見和建議,歡迎發郵件到mzl626@163.com和筆者討論。
本書中所涉及的源代碼可在http://source.android.com處下載。
致謝
在本書撰寫過程中,得到了公司同事管艷麗、陳文、唐曉軍、何偉偉等和家人的大力鼓勵和支持,他們為本書提供了很多好的意見和建議,使本書得以不斷完善,在此對他們表示深深的謝意,我很高興能在創業的道路上和他們一路同行;另外,我的兒子苗思源的降生帶給了我極大的快樂,每天看到他天真無邪的笑臉,都覺得是一種莫大的幸福,這種幸福激勵著我不斷奮斗。
另外,還要感謝機械工業出版社的編輯、美工和校對人員,尤其是策劃編輯楊福川先生,及姜影和白宇兩位編輯。在本書撰寫過程中,他們提出了不少真知灼見,很高興能和他們一起推動本書的出版。
苗忠良 |
內容簡介:如何才能真正進階為Android應用開發高手?必須深入理解Android核心技術的底層原理和在開發中總結并使用各種最佳實踐,別無他法!本書以Android的源代碼為主,SDK為輔,針對應用開發者的需求,對各種核心技術的使用方法、底層原理和實現細節進行了深入而詳細的講解,同時輔之以大量案例和最佳實踐,為開發者的進階修煉和開發出高質量的應用提供了絕佳指導。
第1章深入介紹了Android的4大核心組件和9大主要應用框架;第2章透徹講解了資源、組件、事件處理、應用風格和數據適配等核心知識;第3章系統地展示了各種常用的UI控件的使用方法及原理;第4章深入解析了Android的數據存儲與管理;第5章分析了Android在UI層、框架層、內核層的通信機制和原理;第6章深入講解了Android實現多線程的兩種主要方式(原生Java線程和Android對Java線程的封裝)的原理,并對它們進行了全方位的比較;第7章深入介紹了Android網絡編程的核心技術;第8章詳細講解了Android中的2D圖像、3D圖像、2D圖形以及動畫方面的知識;第9章全面介紹了Android的多媒體編程,包括音頻、視頻和Camera服務等,并對TTS的實現進行了剖析;第10章詳細講解了Android的跨語言調用;第11章深入剖析了Android的安全框架和安全機制;第12章針對商業應用的需要講解了Android的調試、測試與性能優化;第13章全面地剖析了Android的編譯系統,包括編譯工具、映像文件編譯、SDK編譯、NDK編譯和目標系統的配置等;第14章分析了Android系統的啟動過程;第15章講解了Android的系統管理原理,包含內存管理、應用管理、電源管理、系統管理,以及系統的還原、升級、配置和備份等多方面的內容,能幫助開發者從一個更高的視角去理解Android的運行機制。 |
目錄:前言
第1章 深入解析Android核心組件和應用框架 / 1
1.1 核心組件詳解 / 1
1.1.1 Activity組件 / 1
1.1.2 Service組件 / 19
1.1.3 Intent組件 / 25
1.1.4 BroadcastReceiver組件 / 31
1.2 應用框架解析 / 31
1.2.1 Service框架 / 32
1.2.2 Activity管理機制 / 38
1.2.3 Broadcast機制 / 41
1.2.4 對話框框架 / 42
1.2.5 標題欄框架 / 46
1.2.6 狀態欄框架 / 48
1.2.7 通知機制 / 52
1.2.8 搜索框架 / 56
1.2.9 ActionBar框架 / 59
第2章 Android 資源框架詳解/ 64
2.1 布局文件 / 64
2.2 值文件 / 67
2.3 創建菜單 / 75
2.3.1 選項菜單 / 75
2.3.2 上下文菜單 / 77
2.3.3 子菜單 / 79
2.3.4 彈出菜單 / 80
2.4 斷言的處理 / 81
2.5 Jar包和共享庫 / 83
2.6 系統資源 / 84
第3章 Android UI控件精要 / 89
3.1 布局控件 / 89
3.1.1 LinearLayout / 89
3.1.2 RelativeLayout / 92
3.1.3 TableLayout / 93
3.1.4 FrameLayout / 94
3.2 顯示控件 / 97
3.2.1 TextView / 97
3.2.2 ProgressBar / 99
3.2.3 WebView / 100
3.2.4 ViewSwitcher / 101
3.2.5 TextSwitcher / 102
3.2.6 ViewFlipper / 103
3.2.7 SeekBar / 104
3.2.8 ViewStub / 106
3.3 容器控件 / 106
3.3.1 SlidingDrawer / 106
3.3.2 ListView / 107
3.3.3 ExpandableListView / 111
3.3.4 GridView / 112
3.3.5 ScrollView / 113
3.3.6 TabHost / 114
3.4 輸入控件 / 114
3.4.1 EditText / 114
3.4.2 Spinner / 116
3.4.3 AutoCompleteTextView / 117
3.5 控制控件 / 118
3.5.1 Button / 118
3.5.2 CheckBox / 119
3.5.3 RadioButton / 119
3.5.4 RatingBar / 120
3.5.5 ZoomControls / 121
3.6 多媒體控件 / 122
3.6.1 ImageView / 122
3.6.2 ImageSwitcher / 122
3.7 特殊控件 / 125
3.8 桌面部件 / 126
3.8.1 App Widgets的實現 / 126
3.8.2 Live folders的實現 / 128
3.9 自定義控件 / 129
3.10 數據適配 / 130
3.10.1 視圖適配 / 130
3.10.2 標準化解析 / 133
3.11 Fragment / 135
3.11.1 Fragment 生命周期 / 135
3.11.2 ListFragment / 137
3.11.3 DialogFragment / 137
3.11.4 PreferenceFragment / 138
3.11.5 WebViewFragment / 138
第4章 深入解析Android數據存儲與管理 / 139
4.1 XML文件管理 / 139
4.2 內部文件管理 / 140
4.2.1 寫入數據 / 141
4.2.2 讀取數據 / 141
4.3 外部文件管理 / 142
4.4 數據庫管理 / 143
4.4.1 Android封裝接口 / 144
4.4.2 原生方法處理 / 145
4.5 數據處理 / 145
4.5.1 Set類 / 146
4.5.2 Map類 / 148
4.5.3 list類 / 150
4.5.4 流類 / 150
4.5.5 正則表達式 / 153
4.5.6 I/O管理 / 153
4.5.7 JSON實現 / 155
第5章 深入解析Android通信機制 / 159
5.1 Intent通信 / 159
5.1.1 Intent的常見用法 / 159
5.1.2 Serializable接口 / 165
5.1.3 Parcelable接口 / 165
5.2 UI事件處理 / 166
5.2.1 事件監聽器、事件句柄及焦點處理 / 167
5.2.2 觸控事件處理 / 168
5.2.3 按鍵事件處理 / 170
5.2.4 軌跡球事件處理 / 171
5.3 任務調度 / 172
第6章 深入解析Android多線程編程 / 174
6.1 Java線程實現 / 174
6.2 Android線程封裝 / 177
6.3 線程間的消息通信 / 180
6.3.1 消息隊列 / 181
6.3.2 消息分發 / 183
6.3.3 消息接收 / 183
6.4 線程安全處理 / 184
6.4.1 synchronized同步 / 184
6.4.2 RPC通信 / 186
6.4.3 SQLite調用 / 186
第7章 深入解析Android網絡編程 / 187
7.1 無線接入技術概述 / 187
7.2 基礎協議封裝 / 190
7.3 Java網絡編程接口 / 194
7.4 Apache網絡編程接口 / 195
7.5 Android網絡編程接口 / 196
7.6 Web服務實現 / 199
7.6.1 Web服務概述 / 199
7.6.2 KSOAP2的實現 / 199
7.7 XML解析器 / 200
7.7.1 Pull解析器 / 201
7.7.2 DOM解析器 / 202
7.7.3 SAX解析器 / 203
7.8 套接字編程 / 203
7.9 Web應用實現 / 205
7.10 SIP服務 / 212
7.11 NFC通信 / 214
7.12 RIL層處理 / 216
7.13 報文分析 / 220
第8章 Android圖形、圖像與動畫精要 / 222
8.1 2D圖像處理 / 222
8.1.1 基本接口 / 222
8.1.2 縮略圖 / 228
8.1.3 圖像瀏覽 / 228
8.1.4 人臉檢測 / 230
8.2 3D圖像處理 / 233
8.2.1 OpenGL ES的實現 / 233
8.2.2 RenderScript的實現 / 236
8.3 圖形處理 / 239
8.3.1 基本接口 / 239
8.3.2 Surface渲染系統 / 244
8.4 動畫處理 / 247
8.4.1 補間動畫 / 248
8.4.2 幀動畫 / 249
8.4.3 屬性動畫 / 250
第9章 深入解析Android多媒體編程 / 257
9.1 音頻處理 / 257
9.1.1 音頻播放 / 258
9.1.2 音頻錄制 / 264
9.1.3 音頻管理 / 265
9.1.4 音效處理 / 267
9.2 視頻處理 / 269
9.2.1 視頻播放 / 270
9.2.2 視頻錄制 / 273
9.3 Camera服務 / 274
9.4 TTS的實現 / 276
第10章 Android跨語言調用詳解 / 279
10.1 C語言與匯編語言的相互調用 / 279
10.2 C++與C語言的相互調用 / 280
10.3 Java對C/C++的調用 / 282
10.4 C/C++對Java的調用 / 287
第11章 Android安全框架解析 / 292
11.1 Java混淆器 / 293
11.2 接入權限 / 294
11.2.1 創建接入權限 / 294
11.2.2 應用權限 / 294
11.2.3 權限驗證 / 296
11.2.4 接入服務 / 297
11.2.5 框架層接入限制 / 298
11.3 數字證書 / 298
第12章 Android的調試、測試與性能優化 / 300
12.1 Android調試 / 300
12.1.1 Logcat日志調試 / 300
12.1.2 dmtracedump跟蹤 / 300
12.1.3 Dev Tools調試 / 301
12.1.4 屏幕截圖分析 / 301
12.1.5 內存調試 / 302
12.2 Android布局優化 / 305
12.2.1 Layoutopt優化 / 305
12.2.2 Hierarchyviewer優化 / 306
12.3 Android測試 / 307
12.3.1 Monkey壓力測試 / 307
12.3.2 JUnit回歸測試 / 308
12.3.3 CTS兼容性測試 / 312
12.3.4 目標環境測試 / 313
12.4 Android性能優化 / 314
12.4.1 優化資源讀取 / 314
12.4.2 優化APK加載 / 315
12.4.3 Dalvik虛擬機 / 315
12.4.4 TraceView性能分析 / 315
12.4.5 運行效率的優化 / 317
第13章 深入解析Android編譯系統 / 318
13.1 源代碼編譯 / 318
13.1.1 映像文件 / 318
13.1.2 編譯方法 / 319
13.1.3 主要腳本 / 322
13.1.4 環境變量 / 332
13.1.5 目標環境 / 333
13.2 SDK編譯 / 333
13.2.1 Linux下的SDK編譯 / 334
13.2.2 Windows下的SDK編譯 / 334
13.2.3 ADT插件的編譯 / 334
13.3 NDK編譯 / 335
13.3.1 編譯腳本 / 336
13.3.2 配置腳本 / 337
13.3.3 GDB調試 / 340
13.3.4 NativeActivity實現 / 340
13.4 應用程序編譯 / 342
13.4.1 本地環境變量 / 342
13.4.2 在Eclipse下編譯 / 343
13.5 目標系統配置 / 343
13.5.1 自定義模擬器配置 / 343
13.5.2 目標板配置 / 348
13.5.3 目標環境配置 / 350
13.6 文件系統配置 / 350
13.7 編譯工具 / 350
13.8 fastboot模式 / 352
第14章 Android啟動過程詳解 / 353
14.1 系統的啟動過程 / 353
14.1.1 系統屬性配置 / 354
14.1.2 文件系統掛載 / 355
14.1.3 守護進程啟動 / 356
14.2 應用的啟動過程 / 362
14.2.1 應用的啟動配置 / 362
14.2.2 應用的啟動過程 / 364
第15章 深入解析Android系統管理 / 369
15.1 內存管理 / 369
15.1.1 對象引用 / 369
15.1.2 垃圾回收策略 / 370
15.2 應用管理 / 373
15.2.1 應用的配置 / 373
15.2.2 應用的啟動 / 374
15.2.3 應用的銷毀 / 375
15.3 電源管理 / 376
15.3.1 電源管理框架 / 376
15.3.2 應用層策略 / 379
15.4 下載管理 / 380
15.4.1 Gingerbread前的下載 / 380
15.4.2 Gingerbread后的下載 / 382
15.5 系統配置 / 383
15.5.1 系統數據庫 / 383
15.5.2 系統屬性 / 385
15.6 數據管理 / 386
15.6.1 數據備份 / 386
15.6.2 剪切板管理 / 387
15.7 設備管理 / 388
15.7.1 管理工具 / 388
15.7.2 傳感器管理 / 395
15.7.3 USB管理 / 398
15.8 應用發布 / 399
15.8.1 應用商店概述 / 399
15.8.2 目標環境的適配 / 401
15.8.3 發布應用 / 410
附錄A Android開發環境搭建 / 413
附錄B 常用Linux命令 / 436
附錄C 編碼規范 / 441
附錄D 學習資源 / 447
參考文獻 / 451 |
序: |