人民幣定價:69.00 元
定價
:NT$ 414 元優惠價
:
87 折 360 元
絕版無法訂購
商品簡介
作者簡介
名人/編輯推薦
目次
書摘/試閱
商品簡介
《深入理解Android(卷1)》是一本以情景方式對Android的源代碼進行深入分析的書。內容廣泛,以對Framework層的分析為主,兼顧Native層和Application層;分析深入,每一部分源代碼的分析都力求透徹;針對性強,注重實際應用開發需求,書中所涵蓋的知識點都是Android應用開發者和系統開發者需要重點掌握的。
《深入理解Android(卷1)》共10章,第1章介紹了閱讀本書所需要做的準備工作,主要包括對Android系統架構和源碼閱讀方法的介紹;第2章通過對Android系統中的MediaScanner進行分析,詳細講解了Android中十分重要的JNI技術;第3章分析了init進程,揭示了通過解析init.rc來啟動Zygote以及屬性服務的工作原理;第4章分析了Zygote、SystemServer等進程的工作機制,同時還討論了Android的啟動速度、虛擬機HeapSize的大小調整、Watchdog工作原理等問題;第5章講解了Android系統中常用的類,包括sp、wp、RefBase、Thread等類,同步類,以及Java中的Handler類和Looper類,掌握這些類的知識後方能在後續的代碼分析中做到游刃有余;第6章以MediaServer為切入點,對Android中極為重要的Binder進行了較為全面的分析,深刻揭示了其本質。第7章對Audio系統進行了深入的分析,尤其是AudioTrack、AudioFlinger和AudioPolicyService等的工作原理。第8章深入講解了Surface系統的實現原理,分析了Surface與Activity之間以及Surface與SurfaceFlinger之間的關系、SurfaceFlinger的工作原理、Surface系統中的幀數據傳輸以及LayerBuffer的工作流程。第9章對Vold和Rild的原理和機制進行了深入的分析,同時還探討了Phone設計優化的問題;第10章分析了多媒體系統中MediaScanner的工作原理。
《深入理解Android(卷1)》適合有一定基礎的Android應用開發工程師和系統工程師閱讀。通過對本書的學習,大家將能更深刻地理解Android系統,從而自如應對實際開發中遇到的難題。
點擊鏈接進入移動開發系列:
《深入理解Android(卷1)》
《Android技術內幕:系統卷》
《Android應用開發揭秘》
《iPhone游戲開發實踐指南》
《iPhone 3D游戲編程指南(附光盤1張)》
《iPhone應用開發從入門到精通》
《iPhone應用用戶體驗設計實踐與案例》
《iPad應用開發實戰》
《黑莓(BlackBerry)開發從入門到精通》
《Objective-C2.0 Mac和ios開發實踐指南》
《Objective-C 2.0編程快速上手》
《Android 2.3應用開發實戰(附CD光盤1張)》
《深入理解Android(卷1)》共10章,第1章介紹了閱讀本書所需要做的準備工作,主要包括對Android系統架構和源碼閱讀方法的介紹;第2章通過對Android系統中的MediaScanner進行分析,詳細講解了Android中十分重要的JNI技術;第3章分析了init進程,揭示了通過解析init.rc來啟動Zygote以及屬性服務的工作原理;第4章分析了Zygote、SystemServer等進程的工作機制,同時還討論了Android的啟動速度、虛擬機HeapSize的大小調整、Watchdog工作原理等問題;第5章講解了Android系統中常用的類,包括sp、wp、RefBase、Thread等類,同步類,以及Java中的Handler類和Looper類,掌握這些類的知識後方能在後續的代碼分析中做到游刃有余;第6章以MediaServer為切入點,對Android中極為重要的Binder進行了較為全面的分析,深刻揭示了其本質。第7章對Audio系統進行了深入的分析,尤其是AudioTrack、AudioFlinger和AudioPolicyService等的工作原理。第8章深入講解了Surface系統的實現原理,分析了Surface與Activity之間以及Surface與SurfaceFlinger之間的關系、SurfaceFlinger的工作原理、Surface系統中的幀數據傳輸以及LayerBuffer的工作流程。第9章對Vold和Rild的原理和機制進行了深入的分析,同時還探討了Phone設計優化的問題;第10章分析了多媒體系統中MediaScanner的工作原理。
《深入理解Android(卷1)》適合有一定基礎的Android應用開發工程師和系統工程師閱讀。通過對本書的學習,大家將能更深刻地理解Android系統,從而自如應對實際開發中遇到的難題。
點擊鏈接進入移動開發系列:
《深入理解Android(卷1)》
《Android技術內幕:系統卷》
《Android應用開發揭秘》
《iPhone游戲開發實踐指南》
《iPhone 3D游戲編程指南(附光盤1張)》
《iPhone應用開發從入門到精通》
《iPhone應用用戶體驗設計實踐與案例》
《iPad應用開發實戰》
《黑莓(BlackBerry)開發從入門到精通》
《Objective-C2.0 Mac和ios開發實踐指南》
《Objective-C 2.0編程快速上手》
《Android 2.3應用開發實戰(附CD光盤1張)》
作者簡介
鄧凡平,資深Android開發工程師,熱衷于Android源代碼的研究,對Android的架構設計和實現原理有非常深刻的認識和理解,應用開發經驗也十分豐富。目前就職于國內一家領先的Android企業,負責Framework的開發和維護。樂于分享,活躍于CSDN等專業社區,撰寫的Android Framework源碼的系列文章深受讀者歡迎。此外,他對Linux內核、C/C++/Python相關的技術,以及高性能網絡服務器和多核并行開發等也有一定的研究。
名人/編輯推薦
《深入理解Android(卷1)》:結合實際應用開發需求,以情景分析的方式有針對性地對Android的源代碼進行了十分詳盡的剖析,深刻揭示Android系統的工作原理。機鋒網、51CTO、開源中國社區等專業技術網站一致鼎力推薦!
在Android領域,無論是從事上層的應用開發.還是從事底層的系統級開發,如果想成為一名優秀的開發者,通過深入探究Android的源代碼來了解Android的實現原理與工作機制也許是唯一的捷徑。Android Framework是Android系統的基石,也是Android的核心之一,對于上層的應用開發者而言,深入理解它的工作原理是十分有必要的。Java世界是如何通過Zygote創建的?Handler和Looper是如何工作的?Binder的工作原理是什么?Audio系統和Surface系統的工作流程是怎
樣的?Vold、Rild、MediaScanner等是如何實現
的?
這些內容是每一位從事Android應用開發的程序員都需要學習和掌握的。
《深入理解Android(卷1)》用情景分析的方式對Android的源代碼進行了有針對性的分析,不僅全面而詳細地分析了Framework層的工作機制和實現原理,而且還涉及Native層和Application層的重要內容。每一個功能模塊的分析都從實際的使用場景和具體的問題入手,每一個知識點都力求做到把實現原理講清楚,把工作機制說明白,盡量深入.竭力避免泛泛而談。除此之外,《深入理解Android(卷1)》在重要章節還精心設計了“拓展思考”的內容,旨在進一步激發讀者學習和研究Android源代碼的興趣。
在Android領域,無論是從事上層的應用開發.還是從事底層的系統級開發,如果想成為一名優秀的開發者,通過深入探究Android的源代碼來了解Android的實現原理與工作機制也許是唯一的捷徑。Android Framework是Android系統的基石,也是Android的核心之一,對于上層的應用開發者而言,深入理解它的工作原理是十分有必要的。Java世界是如何通過Zygote創建的?Handler和Looper是如何工作的?Binder的工作原理是什么?Audio系統和Surface系統的工作流程是怎
樣的?Vold、Rild、MediaScanner等是如何實現
的?
這些內容是每一位從事Android應用開發的程序員都需要學習和掌握的。
《深入理解Android(卷1)》用情景分析的方式對Android的源代碼進行了有針對性的分析,不僅全面而詳細地分析了Framework層的工作機制和實現原理,而且還涉及Native層和Application層的重要內容。每一個功能模塊的分析都從實際的使用場景和具體的問題入手,每一個知識點都力求做到把實現原理講清楚,把工作機制說明白,盡量深入.竭力避免泛泛而談。除此之外,《深入理解Android(卷1)》在重要章節還精心設計了“拓展思考”的內容,旨在進一步激發讀者學習和研究Android源代碼的興趣。
目次
第1章 閱讀前的準備工作 / 1
1.1 系統架構 / 2
1.1.1 Android系統架構 / 2
1.1.2 本書的架構 / 3
1.2 搭建開發環境 / 4
1.2.1 下載源碼 / 4
1.2.2 編譯源碼 / 6
1.3 工具介紹 / 8
1.3.1 Source Insight介紹 / 8
1.3.3 Busybox的使用 / 11
1.4 本章小結 / 12
第2章 深入理解JNI / 13
2.1 JNI概述 / 14
2.2 學習JNI的實例:MediaScanner / 15
2.3 Java層的MediaScanner分析 / 16
2.3.1 加載JNI庫 / 16
2.3.2 Java的native函數和總結 / 17
2.4 JNI層MediaScanner的分析 / 17
2.4.1 注冊JNI函數 / 18
2.4.2 數據類型轉換 / 22
2.4.3 JNIEnv介紹 / 24
2.4.4 通過JNIEnv操作jobject / 25
2.4.5 jstring介紹 / 27
2.4.6 JNI類型簽名介紹 / 28
2.4.7 垃圾回收 / 29
2.4.8 JNI中的異常處理 / 32
2.5 本章小結 / 32
第3章 深入理解init / 33
3.1 概述 / 34
3.2 init分析 / 34
3.2.1 解析配置文件 / 38
3.2.2 解析service / 42
3.2.3 init控制service / 48
3.2.4 屬性服務 / 52
3.3 本章小結 / 60
第4章 深入理解zygote / 61
4.1 概述 / 62
4.2 zygote分析 / 62
4.2.1 AppRuntime分析 / 63
4.2.2 Welcome to Java World / 68
4.2.3 關于zygote的總結 / 74
4.3 SystemServer分析 / 74
4.3.1 SystemServer的誕生 / 74
4.3.2 SystemServer的重要使命 / 77
4.3.3 關于 SystemServer的總結 / 83
4.4 zygote的分裂 / 84
4.4.1 ActivityManagerService發送請求 / 84
4.4.2 有求必應之響應請求 / 86
4.4.3 關于zygote分裂的總結 / 88
4.5 拓展思考 / 88
4.5.1 虛擬機heapsize的限制 / 88
4.5.2 開機速度優化 / 89
4.5.3 Watchdog分析 / 90
4.6 本章小結 / 93
第5章 深入理解常見類 / 95
5.1 概述 / 96
5.2 以“三板斧”揭秘RefBase、sp和wp / 96
5.2.1 第一板斧——初識影子對象 / 96
5.2.2 第二板斧——由弱生強 / 103
5.2.3 第三板斧——破解生死魔咒 / 106
5.2.4 輕量級的引用計數控制類LightRefBase / 108
5.2.5 題外話-三板斧的來歷 / 109
5.3 Thread類及常用同步類分析 / 109
5.3.1 一個變量引發的思考 / 109
5.3.2 常用同步類 / 114
5.4 Looper和Handler類分析 / 121
5.4.1 Looper類分析 / 122
5.4.2 Handler分析 / 124
5.4.3 Looper和Handler的同步關系 / 127
5.4.4 HandlerThread介紹 / 129
5.5 本章小結 / 129
第6章 深入理解Binder / 130
6.1 概述 / 131
6.2 庖丁解MediaServer / 132
6.2.1 MediaServer的入口函數 / 132
6.2.2 獨一無二的ProcessState / 133
6.2.3 時空穿越魔術-defaultServiceManager / 134
6.2.4 注冊MediaPlayerService / 142
6.2.5 秋風掃落葉-StartThread Pool和join Thread Pool分析 / 149
6.2.6 你徹底明白了嗎 / 152
6.3 服務總管ServiceManager / 152
6.3.1 ServiceManager的原理 / 152
6.3.2 服務的注冊 / 155
6.3.3 ServiceManager存在的意義 / 158
6.4 MediaPlayerService和它的Client / 158
6.4.1 查詢ServiceManager / 158
6.4.2 子承父業 / 159
6.5 拓展思考 / 162
6.5.1 Binder和線程的關系 / 162
6.5.2 有人情味的訃告 / 163
6.5.3 匿名Service / 165
6.6 學以致用 / 166
6.6.1 純Native的Service / 166
6.6.2 扶得起的“阿斗”(aidl) / 169
6.7 本章小結 / 172
第7章 深入理解Audio系統 / 173
7.1 概述 / 174
7.2 AudioTrack的破解 / 174
7.2.1 用例介紹 / 174
7.2.2 AudioTrack(Java空間)分析 / 179
7.2.3 AudioTrack(Native空間)分析 / 188
7.2.4 關于AudioTrack的總結 / 200
7.3 AudioFlinger的破解 / 200
7.3.1 AudioFlinger的誕生 / 200
7.3.2 通過流程分析AudioFlinger / 204
7.3.3 audio_track_cblk_t分析 / 230
7.3.4 關于AudioFlinger的總結 / 234
7.4 AudioPolicyService的破解 / 234
7.4.1 AudioPolicyService的創建 / 235
7.4.2 重回AudioTrack / 245
7.4.3 聲音路由切換實例分析 / 251
7.4.4 關于AudioPolicy的總結 / 262
7.5 拓展思考 / 262
7.5.1 DuplicatingThread破解 / 262
7.5.2 題外話 / 270
7.6 本章小結 / 272
第8章 深入理解Surface系統 / 273
8.1 概述 / 275
8.2 一個Activity的顯示 / 275
8.2.1 Activity的創建 / 275
8.2.2 Activity的UI繪制 / 294
8.2.3 關于Activity的總結 / 296
8.3 初識Surface / 297
8.3.1 和Surface有關的流程總結 / 297
8.3.2 Surface之乾坤大挪移 / 298
8.3.3 乾坤大挪移的JNI層分析 / 303
8.3.4 Surface和畫圖 / 307
8.3.5 初識Surface小結 / 309
8.4 深入分析Surface / 310
8.4.1 與Surface相關的基礎知識介紹 / 310
8.4.2 SurfaceComposerClient分析 / 315
8.4.3 SurfaceControl分析 / 320
8.4.4 writeToParcel和Surface對象的創建 / 331
8.4.5 lockCanvas和unlockCanvasAndPost分析 / 335
8.4.6 GraphicBuffer介紹 / 344
8.4.7 深入分析Surface的總結 / 353
8.5 SurfaceFlinger分析 / 353
8.5.1 SurfaceFlinger的誕生 / 354
8.5.2 SF工作線程分析 / 359
8.5.3 Transaction分析 / 368
8.5.4 關于SurfaceFlinger的總結 / 376
8.6 拓展思考 / 377
8.6.1 Surface系統的CB對象分析 / 377
8.6.2 ViewRoot的你問我答 / 384
8.6.3 LayerBuffer分析 / 385
8.7 本章小結 / 394
第9章 深入理解Vold和Rild / 395
9.1 概述 / 396
9.2 Vold的原理與機制分析 / 396
9.2.1 Netlink和Uevent介紹 / 397
9.2.2 初識Vold / 399
9.2.3 NetlinkManager模塊分析 / 400
9.2.4 VolumeManager模塊分析 / 408
9.2.5 CommandListener模塊分析 / 414
9.2.6 Vold實例分析 / 417
9.2.7 關于Vold的總結 / 428
9.3 Rild的原理與機制分析 / 428
9.3.1 初識Rild / 430
9.3.2 RIL_startEventLoop分析 / 432
9.3.3 RIL_Init分析 / 437
9.3.4 RIL_register分析 / 444
9.3.5 關于Rild main函數的總結 / 447
9.3.6 Rild實例分析 / 447
9.3.7 關于Rild的總結 / 459
9.4 拓展思考 / 459
9.4.1 嵌入式系統的存儲知識介紹 / 459
9.4.2 Rild和Phone的改進探討 / 462
9.5 本章小結 / 463
第10章 深入理解MediaScanner / 464
10.1 概述 / 465
10.2 android.process.media分析 / 465
10.2.1 MSR模塊分析 / 466
10.2.2 MSS模塊分析 / 467
10.2.3 android.process.media媒體掃描工作的流程總結 / 471
10.3 MediaScanner分析 / 472
10.3.1 Java層分析 / 472
10.3.2 JNI層分析 / 476
10.3.3 PVMediaScanner分析 / 479
10.3.4 關于MediaScanner的總結 / 485
10.4 拓展思考 / 486
10.4.1 MediaScannerConnection介紹 / 486
10.4.2 我問你答 / 487
10.5 本章小結 / 488
1.1 系統架構 / 2
1.1.1 Android系統架構 / 2
1.1.2 本書的架構 / 3
1.2 搭建開發環境 / 4
1.2.1 下載源碼 / 4
1.2.2 編譯源碼 / 6
1.3 工具介紹 / 8
1.3.1 Source Insight介紹 / 8
1.3.3 Busybox的使用 / 11
1.4 本章小結 / 12
第2章 深入理解JNI / 13
2.1 JNI概述 / 14
2.2 學習JNI的實例:MediaScanner / 15
2.3 Java層的MediaScanner分析 / 16
2.3.1 加載JNI庫 / 16
2.3.2 Java的native函數和總結 / 17
2.4 JNI層MediaScanner的分析 / 17
2.4.1 注冊JNI函數 / 18
2.4.2 數據類型轉換 / 22
2.4.3 JNIEnv介紹 / 24
2.4.4 通過JNIEnv操作jobject / 25
2.4.5 jstring介紹 / 27
2.4.6 JNI類型簽名介紹 / 28
2.4.7 垃圾回收 / 29
2.4.8 JNI中的異常處理 / 32
2.5 本章小結 / 32
第3章 深入理解init / 33
3.1 概述 / 34
3.2 init分析 / 34
3.2.1 解析配置文件 / 38
3.2.2 解析service / 42
3.2.3 init控制service / 48
3.2.4 屬性服務 / 52
3.3 本章小結 / 60
第4章 深入理解zygote / 61
4.1 概述 / 62
4.2 zygote分析 / 62
4.2.1 AppRuntime分析 / 63
4.2.2 Welcome to Java World / 68
4.2.3 關于zygote的總結 / 74
4.3 SystemServer分析 / 74
4.3.1 SystemServer的誕生 / 74
4.3.2 SystemServer的重要使命 / 77
4.3.3 關于 SystemServer的總結 / 83
4.4 zygote的分裂 / 84
4.4.1 ActivityManagerService發送請求 / 84
4.4.2 有求必應之響應請求 / 86
4.4.3 關于zygote分裂的總結 / 88
4.5 拓展思考 / 88
4.5.1 虛擬機heapsize的限制 / 88
4.5.2 開機速度優化 / 89
4.5.3 Watchdog分析 / 90
4.6 本章小結 / 93
第5章 深入理解常見類 / 95
5.1 概述 / 96
5.2 以“三板斧”揭秘RefBase、sp和wp / 96
5.2.1 第一板斧——初識影子對象 / 96
5.2.2 第二板斧——由弱生強 / 103
5.2.3 第三板斧——破解生死魔咒 / 106
5.2.4 輕量級的引用計數控制類LightRefBase / 108
5.2.5 題外話-三板斧的來歷 / 109
5.3 Thread類及常用同步類分析 / 109
5.3.1 一個變量引發的思考 / 109
5.3.2 常用同步類 / 114
5.4 Looper和Handler類分析 / 121
5.4.1 Looper類分析 / 122
5.4.2 Handler分析 / 124
5.4.3 Looper和Handler的同步關系 / 127
5.4.4 HandlerThread介紹 / 129
5.5 本章小結 / 129
第6章 深入理解Binder / 130
6.1 概述 / 131
6.2 庖丁解MediaServer / 132
6.2.1 MediaServer的入口函數 / 132
6.2.2 獨一無二的ProcessState / 133
6.2.3 時空穿越魔術-defaultServiceManager / 134
6.2.4 注冊MediaPlayerService / 142
6.2.5 秋風掃落葉-StartThread Pool和join Thread Pool分析 / 149
6.2.6 你徹底明白了嗎 / 152
6.3 服務總管ServiceManager / 152
6.3.1 ServiceManager的原理 / 152
6.3.2 服務的注冊 / 155
6.3.3 ServiceManager存在的意義 / 158
6.4 MediaPlayerService和它的Client / 158
6.4.1 查詢ServiceManager / 158
6.4.2 子承父業 / 159
6.5 拓展思考 / 162
6.5.1 Binder和線程的關系 / 162
6.5.2 有人情味的訃告 / 163
6.5.3 匿名Service / 165
6.6 學以致用 / 166
6.6.1 純Native的Service / 166
6.6.2 扶得起的“阿斗”(aidl) / 169
6.7 本章小結 / 172
第7章 深入理解Audio系統 / 173
7.1 概述 / 174
7.2 AudioTrack的破解 / 174
7.2.1 用例介紹 / 174
7.2.2 AudioTrack(Java空間)分析 / 179
7.2.3 AudioTrack(Native空間)分析 / 188
7.2.4 關于AudioTrack的總結 / 200
7.3 AudioFlinger的破解 / 200
7.3.1 AudioFlinger的誕生 / 200
7.3.2 通過流程分析AudioFlinger / 204
7.3.3 audio_track_cblk_t分析 / 230
7.3.4 關于AudioFlinger的總結 / 234
7.4 AudioPolicyService的破解 / 234
7.4.1 AudioPolicyService的創建 / 235
7.4.2 重回AudioTrack / 245
7.4.3 聲音路由切換實例分析 / 251
7.4.4 關于AudioPolicy的總結 / 262
7.5 拓展思考 / 262
7.5.1 DuplicatingThread破解 / 262
7.5.2 題外話 / 270
7.6 本章小結 / 272
第8章 深入理解Surface系統 / 273
8.1 概述 / 275
8.2 一個Activity的顯示 / 275
8.2.1 Activity的創建 / 275
8.2.2 Activity的UI繪制 / 294
8.2.3 關于Activity的總結 / 296
8.3 初識Surface / 297
8.3.1 和Surface有關的流程總結 / 297
8.3.2 Surface之乾坤大挪移 / 298
8.3.3 乾坤大挪移的JNI層分析 / 303
8.3.4 Surface和畫圖 / 307
8.3.5 初識Surface小結 / 309
8.4 深入分析Surface / 310
8.4.1 與Surface相關的基礎知識介紹 / 310
8.4.2 SurfaceComposerClient分析 / 315
8.4.3 SurfaceControl分析 / 320
8.4.4 writeToParcel和Surface對象的創建 / 331
8.4.5 lockCanvas和unlockCanvasAndPost分析 / 335
8.4.6 GraphicBuffer介紹 / 344
8.4.7 深入分析Surface的總結 / 353
8.5 SurfaceFlinger分析 / 353
8.5.1 SurfaceFlinger的誕生 / 354
8.5.2 SF工作線程分析 / 359
8.5.3 Transaction分析 / 368
8.5.4 關于SurfaceFlinger的總結 / 376
8.6 拓展思考 / 377
8.6.1 Surface系統的CB對象分析 / 377
8.6.2 ViewRoot的你問我答 / 384
8.6.3 LayerBuffer分析 / 385
8.7 本章小結 / 394
第9章 深入理解Vold和Rild / 395
9.1 概述 / 396
9.2 Vold的原理與機制分析 / 396
9.2.1 Netlink和Uevent介紹 / 397
9.2.2 初識Vold / 399
9.2.3 NetlinkManager模塊分析 / 400
9.2.4 VolumeManager模塊分析 / 408
9.2.5 CommandListener模塊分析 / 414
9.2.6 Vold實例分析 / 417
9.2.7 關于Vold的總結 / 428
9.3 Rild的原理與機制分析 / 428
9.3.1 初識Rild / 430
9.3.2 RIL_startEventLoop分析 / 432
9.3.3 RIL_Init分析 / 437
9.3.4 RIL_register分析 / 444
9.3.5 關于Rild main函數的總結 / 447
9.3.6 Rild實例分析 / 447
9.3.7 關于Rild的總結 / 459
9.4 拓展思考 / 459
9.4.1 嵌入式系統的存儲知識介紹 / 459
9.4.2 Rild和Phone的改進探討 / 462
9.5 本章小結 / 463
第10章 深入理解MediaScanner / 464
10.1 概述 / 465
10.2 android.process.media分析 / 465
10.2.1 MSR模塊分析 / 466
10.2.2 MSS模塊分析 / 467
10.2.3 android.process.media媒體掃描工作的流程總結 / 471
10.3 MediaScanner分析 / 472
10.3.1 Java層分析 / 472
10.3.2 JNI層分析 / 476
10.3.3 PVMediaScanner分析 / 479
10.3.4 關于MediaScanner的總結 / 485
10.4 拓展思考 / 486
10.4.1 MediaScannerConnection介紹 / 486
10.4.2 我問你答 / 487
10.5 本章小結 / 488
書摘/試閱
近兩年來,IT行業的最熱點聚焦到了移動互聯網上。PC時代,WINTEL聯盟成就了英特爾和微軟各自的霸業。移動互聯網時代,誰將上演新的傳奇?新生的Android當年僅用短短一年多的時間就躋身全球智能操作系統的三甲行列。在北美市場,如今Android已經超過iOS和黑莓系統成為老大!Android勢不可擋,ARM+Android組合的前景一片光明,越來越多的從業者加入了Android行列!與帶給人們良好用戶體驗的iOS不一樣的是,Android是一個開放的系統,其所有代碼都是開源的。因此,對于開發者而言,不僅可以做到知其然,更可以做到知其所以然!然而,要想知道其所以然,并不是一件簡單的事情。回想當初,我開始接觸Android的時候,除了Android源碼外,其他資料甚少。Android是基于Linux的完整操作系統,其代碼量讓人望而生畏。可以想象,在沒有指導的情況下一頭扎進操作系統龐大的代碼中是一件讓人多么痛苦的事情。時間過得很快,Android生態鏈已經得到了充分的發展。現在市場上的Android資料已經開始泛濫,書籍已經數不勝數。然而,絕大部分書籍只限于講解Android應用的開發(拜Android應用API所賜),沒有深入到系統級的探討,極少的所謂提供Android深入指導的資料也只是淺嘗輒止。如果想深入了解Android系統,只有華山一條路:自己看Android源代碼!正是因為如此,當初凡平告訴我他要系統地整理其深入鉆研Android源代碼的心得時,我表示了強烈的贊同。這是一件極少有人做過的事情,這件事情將給已經或即將跨入Android世界的同仁們極大的幫助!這本書里,作者以代碼框架為主線,用循序漸進的方式將框架中的關鍵點一一剖開,從而給讀者一個架構清楚、細節完善的立體展現。另外,凡平還會用他的幽默給正在啃枯燥代碼的您帶來不少笑意和輕松。毫無疑問,如果您想深入了解Android系統,這本書就是您進入Android神秘世界的鑰匙。如果您看準了移動互聯網的前景,想深入理解Android,那就讓這本書指導您前進吧!
主題書展
更多
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

