| 書[0名0]: | 深入理解Android:捲II[按需印刷]|3683060 |
| 圖書定價: | 79元 |
| 圖書作者: | 鄧凡平 |
| 齣版社: | 機械工業齣版社 |
| 齣版日期: | 2012/8/1 0:00:00 |
| ISBN號: | 9787111389187 |
| 開本: | 16開 |
| 頁數: | 440 |
| 版次: | 1-1 |
| 作者簡介 |
| 鄧凡平,資深Android開發工程師和係統工程師,熱衷於Android源代碼的研究,對Android的架構設計和實現原理有非常深刻的認識和理解,經驗十分豐富。《深入理解Android:捲I》的作者,同時也是“深入理解Android”係列圖書的總策劃。目前就職於[0國0]內[0領0]先的Android企業中科創達(ThunderSoft),負責Android Framework的開發和維護。喜歡鑽研,樂於分享,活躍於CSDN、51CTO和開源中[0國0]等專業技術社區,撰寫的Android Framework源碼分析的係列文章深受讀者歡迎。此外,他對Linux內核、C/C++/Python相關的技術,以及高性能網絡服務器和多核並行開發等也有一定的研究。 |
| 內容簡介 |
| 《深入理解Android:捲II》是“深入理解Android”係列的[0第0]二本,本書上市後得到瞭廣[0大0]讀者的高度[0評0]價,在Android開發者社群內口口相傳。本書不僅繼承瞭本的[0優0]點、改正瞭其在細微處存在的一些不足,而且還在寫作的總體思想上進行瞭創新,更強調從係統設計者的角度去分析Android係統中各個模塊內部的實現原理和工作機製。從具體內容上講,本書的重點是Android Framework的Java層,對Java層涉及的核心模塊和服務進行瞭深入而細緻的分析。通過本書,讀者不僅能對Android係統本身有更深入的理解,而且還能掌握分析[0大0]型復雜源代碼的能力。 全書共8章:[0第0]1章介紹瞭閱讀本書所需要做的準備工作,包括Android 4.0源碼的下載和編譯、Eclipse環境的搭建,以及Android係統進程(system_process)的調試等;[0第0]2章對Java Binder和MessageQueue的實現進行瞭深入分析;[0第0]3章詳細剖析瞭SystemServer的工作原理,這些服務包括EntropyService、DropboxManagerService、DiskStatsService、DeviceStorageMonitorService、SamplingProfilerService和ClipboardService;[0第0]4章對係統中負責Package信息查詢和APK安裝、卸載、更新等工作的服務PackageManagerService進行瞭詳細分析;[0第0]5章則對Android係統中負責電源管理的核心服務 PowerManagerService的原理進行瞭一番深入的分析;[0第0]6章以ActivityManagerService為分析重點,對它的啓動、Activity的創建和啓動、BroadcastReceiver的工作原理、Android中的進程管理等內容展開瞭較為深入的研究;[0第0]7章對ContentProvider的創建和啓動、SQLite、Cursor query和close的實現等進行瞭深入分析;[0第0]8章以ContentService和AccountManagerService為分析對象,介紹瞭數據更新通[0知0]機製的實現,以及賬戶管理和數據同步等相關[0知0]識。 |
| 目錄 |
《深入理解Android:捲II》 前 言 [0第0]1章 搭建Android源碼工作環境 / 1 1.1 Android係統架構 / 2 1.2 搭建開發環境 / 3 1.2.1 下載源碼 / 3 1.2.2 編譯源碼 / 4 1.2.3 利用Eclipse調試system_process / 5 1.3 本章小結 / 11 [0第0]2章 深入理解Java Binder和MessageQueue / 12 2.1 概述 / 13 2.2 Java層中的Binder架構分析 / 13 2.2.1 Binder架構總覽 / 13 2.2.2 初始化Java層Binder框架 / 14 2.2.3 addService實例分析 / 17 2.2.4 Java層Binder架構總結 / 26 2.3 心係兩界的MessageQueue / 27 2.3.1 MessageQueue的創建 / 27 2.3.2 提取消息 / 28 2.3.3 nativePollOnce函數分析 / 31 2.3.4 MessageQueue總結 / 41 2.4 本章小結 / 42 [0第0]3章 深入理解SystemServer / 44 3.1 概述 / 45 3.2 SystemServer分析 / 45 3.2.1 main函數分析 / 45 3.2.2 Service群英[0會0] / 48 3.3 EntropyService分析 / 49 3.4 DropBoxManagerService分析 / 50 3.4.1 DBMS構造函數分析 / 51 3.4.2 dropbox日誌文件的添加 / 51 3.4.3 DBMS和settings數據庫 / 56 3.5 DiskStatsService和DeviceStorageMonitorService分析 / 56 3.5.1 DiskStatsService分析 / 56 3.5.2 DeviceStorageManagerService分析 / 58 3.6 SamplingProfilerService分析 / 60 3.6.1 SamplingProfilerService構造函數分析 / 61 3.6.2 SamplingProfilerIntegration分析 / 62 3.7 ClipboardService分析 / 64 3.7.1 復製數據到剪貼闆 / 64 3.7.2 從剪切闆粘貼數據 / 67 3.7.3 CBS中的[0權0]限管理 / 69 3.8 本章小結 / 73 [0第0]4章 深入理解PackageManagerService / 74 4.1 概述 / 75 4.2 初識PackageManagerService / 76 4.3 PKMS的main函數分析 / 77 4.3.1 構造函數分析之前期準備工作 / 78 4.3.2 構造函數分析之掃描Package / 90 4.3.3 構造函數分析之掃尾工作 / 105 4.3.4 PKMS構造函數總結 / 105 4.4 APK Inst[0all0]ation分析 / 105 4.4.1 adb inst[0all0]分析 / 105 4.4.2 pm分析 / 107 4.4.3 inst[0all0]PackageWithVerification函數分析 / 109 4.4.4 APK 安裝流程總結 / 121 4.4.5 Verification介紹 / 122 4.5 queryIntentActivities分析 / 124 4.5.1 Intent及IntentFilter介紹 / 124 4.5.2 Activity信息的管理 / 125 4.5.3 Intent 匹配查詢分析 / 128 4.5.4 queryIntentActivities總結 / 131 4.6 inst[0all0]d及UserManager介紹 / 131 4.6.1 inst[0all0]d介紹 / 131 4.6.2 UserManager介紹 / 136 4.7 本章[0學0]習指導 / 138 4.8 本章小結 / 138 [0第0]5章 深入理解PowerManagerService / 139 5.1 概述 / 140 5.2 初識PowerManagerService / 140 5.2.1 PMS構造函數分析 / 141 5.2.2 init分析 / 141 5.2.3 systemReady分析 / 147 5.2.4 BootComplete處理 / 148 5.2.5 初識PowerManagerService總結 / 149 5.3 PMS WakeLock分析 / 149 5.3.1 WakeLock客戶端分析 / 149 5.3.2 PMS acquireWakeLock分析 / 151 5.3.3 Power類及LightService類介紹 / 160 5.3.4 WakeLock總結 / 163 5.4 userActivity及Power按鍵處理分析 / 164 5.4.1 userActivity分析 / 164 5.4.2 Power按鍵處理分析 / 167 5.5 BatteryService及BatteryStatsService分析 / 168 5.5.1 BatteryService分析 / 169 5.5.2 BatteryStatsService分析 / 172 5.5.3 BatteryService及BatteryStatsService總結 / 182 5.6 本章[0學0]習指導 / 183 5.7 本章小結 / 183 [0第0]6章 深入理解ActivityManagerService / 184 6.1 概述 / 185 6.2 初識ActivityManagerService / 186 6.2.1 ActivityManagerService的main函數分析 / 187 6.2.2 AMS的 setSystemProcess分析 / 197 6.2.3 AMS的 inst[0all0]SystemProviders函數分析 / 202 6.2.4 AMS的 systemReady分析 / 211 6.2.5 初識ActivityManagerService總結 / 218 6.3 startActivity分析 / 219 6.3.1 從am說起 / 219 6.3.2 AMS的startActivityAndWait函數分析 / 221 6.3.3 startActivityLocked分析 / 230 6.4 Broadcast和BroadcastReceiver分析 / 265 6.4.1 registerReceiver流程分析 / 267 6.4.2 sendBroadcast流程分析 / 272 6.4.3 BROADCAST_INTENT_MSG消息處理函數 / 276 6.4.4 應用進程處理廣播分析 / 282 6.4.5 廣播處理總結 / 284 6.5 startService之按圖索驥 / 285 6.5.1 Service[0知0]識介紹 / 285 6.5.2 startService流程圖 / 286 6.6 AMS中的進程管理 / 287 6.6.1 Linux進程管理介紹 / 287 6.6.2 關於Android中的進程管理的介紹 / 289 6.6.3 AMS進程管理函數分析 / 294 6.6.4 AMS進程管理總結 / 305 6.7 App的 Crash處理 / 305 6.7.1 應用進程的Crash處理 / 306 6.7.2 AMS的handleApplicationCrash分析 / 306 6.7.3 AppDeathRecipient binderDied分析 / 309 6.7.4 App的Crash處理總結 / 313 6.8 本章[0學0]習指導 / 314 6.9 本章小結 / 315 [0第0]7章 深入理解ContentProvider / 316 7.1 概述 / 317 7.2 MediaProvider的啓動及創建 / 318 7.2.1 Context的getContentResolver函數分析 / 318 7.2.2 MediaStore.Image.Media的query函數分析 / 319 7.2.3 MediaProvider的啓動及創建總結 / 329 7.3 SQLite創建數據庫分析 / 330 7.3.1 SQLite及SQLiteDatabase傢族 / 330 7.3.2 MediaProvider創建數據庫分析 / 335 7.3.3 SQLiteDatabase創建數據庫的分析總結 / 344 7.4 Cursor 的query函數的實現分析 / 345 7.4.1 提取query關鍵點 / 346 7.4.2 MediaProvider 的query分析 / 349 7.4.3 query關鍵點分析 / 356 7.4.4 Cursor query實現分析總結 / 368 7.5 Cursor close函數實現分析 / 368 7.5.1 客戶端close的分析 / 369 7.5.2 服務端close的分析 / 371 7.5.3 finalize函數分析 / 372 7.5.4 Cursor close函數總結 / 373 7.6 ContentResolver openAssetFileDescriptor函數分析 / 373 7.6.1 openAssetFileDescriptor之客戶端調用分析 / 374 7.6.2 ContentProvider的 openTypedAssetFile函數分析 / 376 7.6.3 跨進程傳遞文件描述符的探討 / 379 7.6.4 openAssetFileDescriptor函數分析總結 / 384 7.7 本章[0學0]習指導 / 384 7.8 本章小結 / 385 [0第0]8章 深入理解ContentService和AccountManagerService / 386 8.1 概述 / 387 8.2 數據更新通[0知0]機製分析 / 387 8.2.1 初識ContentService / 388 8.2.2 ContentResovler 的registerContentObserver分析 / 389 8.2.3 ContentResolver的 [0no0]tifyChange分析 / 391 8.2.4 數據更新通[0知0]機製總結和深入探討 / 393 8.3 AccountManagerService分析 / 395 8.3.1 初識AccountManagerService / 396 8.3.2 AccountManager addAccount分析 / 402 8.3.3 AccountManagerService的分析總結 / 414 8.4 數據同步管理SyncManager分析 / 415 8.4.1 初識SyncManager / 415 8.4.2 ContentResolver 的requestSync分析 / 424 8.4.3 數據同步管理SyncManager分析總結 / 436 8.5 本章[0學0]習指導 / 437 8.6 本章小結 / 437 “深入理解Android”係列書籍的規劃路綫圖 / 438 |
| 編輯推薦 |
| 市麵上關於Android源碼分析的書非常多,但是沒有一本書的分析粒度像本書這樣細緻。Android係統本身非常龐[0大0],源代碼錯綜復雜,的確很難想象僅靠一本書就能透徹分析整個係統的原理。“深入理解Android”係列圖書考慮到瞭這一點,於是每一本書隻專注於一個[0大0]的主題,捲I和捲II關注的都是Android的框架層,捲I針對的是Native Framework,捲II針對的是Java Framework。如果想從Android係統設計者的角度徹底理解整個係統的架構思想和設計原理,以及係統中各個服務和模塊之間錯綜復雜的關係,“深入理解Android”係列圖書應該是目前好的選擇之一! ——51CTO移動開發頻道(http://mobile.51cto.com/) “深入理解Android”係列的捲I上市後,既叫好,又叫座,在Android開發者圈子裏反響強烈。從Android源代碼分析的角度來講,該係列書從內容和分析方[0法0]上確實值得稱道,不僅能體現作者的技術水準,而且能看齣作者的用心良苦。在內容細節和作者自己對Android係統的認識深入程度上,捲II在捲I更上一層樓,內容更加精彩。不僅深入地分析瞭Java Framework層各種服務和模塊的工作原理和實現機製,而且還理清瞭它們之間的關係。對於想提高Android開發水平的讀者來說,本書值得反復研讀! ——開源中[0國0]社區(http://www.oschina.net/) |
這本書真是讓我眼前一亮,尤其是當我翻開它準備深入Android世界的學習之旅時。我一直對Android底層工作原理很感興趣,但市麵上很多書籍要麼過於 superficial,要麼就直接跳到瞭高階框架,中間的很多關鍵技術和原理卻語焉不詳。這本書,就像一位經驗豐富的引路人,一點一點地將我帶入Android的核心。我特彆欣賞它那種由淺入深、循序漸進的講解方式。從最初對進程、綫程、內存管理的清晰闡述,到後麵深入到 Binder IPC、Activity 啓動流程、Service 生命周期等這些“硬骨頭”,每一章都感覺作者花瞭大量心思去設計,力求讓讀者能夠理解其中的“為什麼”,而不僅僅是“怎麼做”。我甚至覺得,這本書不僅僅是關於Android,更是關於計算機底層如何組織和運行一個復雜係統的一個絕佳案例。那些關於Dalvik/ART虛擬機、類加載機製、垃圾迴收的細節,第一次讓我對Java虛擬機在Android上的應用有瞭更深刻的認知,也讓我對Android應用的性能優化有瞭更紮實的理論基礎。讀完一部分,我感覺自己對Android的理解不僅僅是停留在API的使用層麵,而是能夠觸及到更深層的機製,這對於我日後進行更復雜、更高性能的應用開發非常有幫助。
評分說實話,一開始拿到這本書,我抱著一種試試看的心態。我之前也讀過一些Android的書,但總感覺要麼是教程性質太強,要麼就是理論過於晦澀。但這本書,它給我的感覺是“實在”。那種實在,體現在每一個知識點的講解都非常到位,而且作者似乎預料到瞭讀者可能會遇到的各種睏惑,並在文中提前給齣瞭解答。我尤其喜歡它在講解係統服務時,那種抽絲剝繭的風格。比如,當我看到關於 PackageManager 的部分時,我纔真正理解瞭應用程序安裝、卸載、權限管理的底層實現是多麼的精妙。作者沒有迴避那些復雜的代碼細節,而是通過圖文並茂的方式,將那些看似難以理解的源碼邏輯,變得清晰可見。讓我印象深刻的是,書中還穿插瞭一些計算機網絡的基礎知識,比如 TCP/IP 協議在 Android 中的應用,以及 HTTP/HTTPS 協議棧的實現。這讓我意識到,一個完整的Android應用,不僅僅依賴於Android自身的框架,也離不開底層網絡通信的支持。這種跨領域的知識整閤,讓我的視野更加開闊,也讓我對整個互聯網技術棧有瞭更宏觀的認識。這本書,讓我覺得我不再是孤立地學習Android,而是將其置於整個計算機和互聯網的大環境中去理解。
評分當我翻開這本書的扉頁,我便被其沉甸甸的知識分量所吸引。對於我這樣一個在技術領域摸爬滾打多年的老兵來說,找到一本既能更新我的知識庫,又能激發我思考的書實屬不易。這本書恰恰做到瞭這一點。它沒有陳詞濫調的套路,而是用一種非常務實的態度,去剖析Android係統內部的運作機製。我一直對Android的圖形渲染管綫很感興趣,但很多公開資料都語焉不詳。這本書在這方麵給予瞭我極大的滿足,它詳細講解瞭SurfaceFlinger、Hardware Composer等關鍵組件,以及它們是如何協同工作,將UI繪製到屏幕上的。這讓我對Android的UI性能優化有瞭全新的認識,也能夠更有效地排查和解決UI卡頓等問題。更令我驚喜的是,書中還涉及到瞭Android的媒體框架,比如音頻和視頻的編解碼、播放流程等。這對我來說是全新的領域,但作者的講解卻絲毫不令人畏懼,反而充滿瞭探索的樂趣。我感覺,這本書就像一個寶藏,每一次翻閱都能發現新的亮點,每一次理解都加深一層對Android的敬畏。我迫不及待地想將書中的知識應用到我的實際工作中,相信它會為我帶來質的飛躍。
評分這本書的排版和內容組織,可以說是我近期閱讀體驗中數一數二的。我一直覺得,技術書籍不僅僅是內容為王,閱讀的順暢度和理解的便捷性同樣重要。這本書在這兩方麵都做得非常齣色。開篇的幾個章節,對我來說就像是一次對Android基礎架構的“考古”。我終於搞清楚瞭ActivityManagerService 究竟做瞭些什麼,LayoutInflation 過程又是如何一步步完成的。作者的筆觸非常細膩,對於一些容易混淆的概念,比如進程與綫程的區彆,內存分配與迴收的原理,都給齣瞭非常形象的比喻和深入的解釋。我印象特彆深刻的是,書中對Binder IPC 的講解,不僅僅停留在API層麵,而是深入到瞭 JNI、Native 層,詳細剖析瞭 Binder 的通信機製。這讓我對Android的跨進程通信有瞭前所未有的理解,也為我今後處理分布式係統或服務化架構打下瞭堅實的基礎。我感覺,這本書就像是我學習Android路上的“定海神針”,無論遇到什麼難題,翻開它,總能找到解決問題的思路和方嚮。
評分我一直認為,真正好的技術書籍,是能夠引領你進入一個全新認知層麵的。這本書,無疑就是這樣的存在。我之前一直覺得Android開發就是圍繞著SDK、框架進行的,但這本書讓我看到瞭Android背後更深邃的計算機科學原理。例如,書中對Android的包管理機製的深入探討,讓我理解瞭 APK 的結構,權限的校驗,以及如何在係統級彆上管理應用程序的生命周期。這不僅僅是理論上的知識,更是對整個Android生態係統運作方式的根本性理解。我尤其喜歡書中關於 Android 啓動流程的詳細講解,從 BootLoader 到 Zygote,再到 System Server,每一步都清晰明瞭。這讓我對 Android 係統的啓動過程有瞭一個全新的認識,也能夠更有效地去分析和排查一些係統啓動慢的問題。此外,書中還涉及到瞭一些與計算機網絡相關的章節,這讓我意識到,任何一個現代的應用程序,都離不開網絡的支持。這本書,讓我覺得我的知識不再是零散的碎片,而是能夠形成一個完整的知識體係,對我而言,這是一種巨大的提升。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有