0920~0926_夏季暢銷第三波BN

深入解剖Android原始程式

  • 9 522
    580

活動訊息

想找書的時候,特別想偷看網友的書櫃... 原來大家都在看這本 ↓↓↓

用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看

內容簡介

本書的重點是Android Framework的Java層,對Java層有關的核心模組和服務深入且詳細的分析。透過本書,讀者不僅能對Android系統本身有更深入的了解,而且還能掌握分析大型複雜原始程式碼的能力。

全書以直接剖析原始程式的方式進行講解,旨在引領讀者一步步深入Android系統中相關模組的內部原理,去了解它們是如何實現、如何工作的。在分析過程中,筆者根據個人研究Android 程式的心得,採用了精簡流程和一個個擊破的方法。同時,筆者還提出一些難度不大的基礎知識、相關的補充閱讀資料,甚至筆者在實際專案中遇到的開放式問題,留給讀者自行研究和探討。

適用:Android應用開發工程師、Android系統開發工程師、對Android系統執行原理有興趣的讀者。

目錄

前言

1 架設Android 原始程式工作環境
1.1 Android 系統架構
1.2 架設開發環境
1.2.1 下載原始程式
1.2.2 編譯原始程式
1.2.3 利用Eclipse偵錯system_process
1.3 本章小結

2 深入了解Java Binder MessageQueue
2.1 概述
2.2 Java 層中的Binder 架構分析  
2.2.1 Binder架構總覽  
2.2.2 初始化Java層Binder框架  
2.2.3 addService實例分析  
2.2.4 Java層Binder架構歸納
2.3 心系兩界的MessageQueue
2.3.1 MessageQueue的建立  
2.3.2 分析訊息  
2.3.3 nativePollOnce函數分析
2.3.4 MessageQueue歸納

3 深入了解SystemServer
3.1 概述  
3.2 SystemServer 分析  
3.2.1 main函數分析
3.2.2 Service群英會  
3.3 EntropyService 分析
3.4 DropBoxManagerService 分析  
3.4.1 DBMS建構函數分析  
3.4.2 dropbox記錄檔的增加  
3.4.3 DBMS和settings資料庫  
3.5 DiskStatsService 和DeviceStorageMonitorService 分析
3.5.1 DiskStatsService分析
3.5.2 DeviceStorageManagerService分析  
3.6 SamplingProfilerService 分析  
3.6.1 SamplingProfilerService建構函數分析  
3.6.2 SamplingProfilerIntegration分析
3.7 ClipboardService 分析  
3.7.1 複製資料到剪貼簿  
3.7.2 從剪貼簿貼上資料  
3.7.3 CBS中的許可權管理
3.8 本章小結

4 深入了解PackageManagerService
4.1 概述
4.2 初識PackageManagerService
4.3 PKMS 的main 函數分析  
4.3.1 建構函數分析之前期準備工作  
4.3.2 建構函數分析之掃描Package  
4.3.3 建構函數分析之掃尾工作
4.3.4 PKMS建構函數歸納
4.4 APK Installation 分析  
4.4.1 adb install分析
4.4.2 pm分析  
4.4.3 installPackageWithVerification函數分析  
4.4.4 APK 安裝流程歸納
4.4.5 Verification介紹
4.5 queryIntentActivities 分析
4.5.1 Intent及IntentFilter介紹  
4.5.2 Activity資訊的管理  
4.5.3 Intent 比對查詢分析
4.5.4 queryIntentActivities歸納  
4.6 installd 及UserManager 介紹  
4.6.1 installd介紹  
4.6.2 UserManager介紹
4.7 本章學習重點
4.8 本章小結

5 深入了解PowerManagerService
5.1 概述
5.2 初識PowerManagerService
5.2.1 PMS建構函數分析  
5.2.2 init分析
5.2.3 systemReady分析
5.2.4 BootComplete處理  
5.2.5 初識PowerManagerService歸納  
5.3 PMS WakeLock 分析
5.3.1 WakeLock用戶端分析  
5.3.2 PMS acquireWakeLock分析 .
5.3.3 Power類別及LightService類別介紹  
5.3.4 WakeLock歸納  
5.4 userActivity 及Power 按鍵處理分析  
5.4.1 userActivity分析  
5.4.2 Power按鍵處理分析
5.5 BatteryService 及BatteryStatsService 分析
5.5.1 BatteryService分析
5.5.2 BatteryStatsService分析
5.5.3 BatteryService及BatteryStatsService歸納  
5.6 本章學習重點
5.7 本章小結

6 深入了解ActivityManagerService
6.1 概述
6.2 初識ActivityManagerService  
6.2.1 ActivityManagerService的main函數分析
6.2.2 AMS的 setSystemProcess分析
6.2.3 AMS的 installSystemProviders函數分析  
6.2.4 AMS的 systemReady分析  
6.2.5 初識ActivityManagerService歸納
6.3 startActivity 分析
6.3.1 從am說起
6.3.2 AMS的startActivityAndWait函數分析  
6.3.3 startActivityLocked分析
6.4 Broadcast 和BroadcastReceiver 分析
6.4.1 registerReceiver流程分析
6.4.2 sendBroadcast流程分析
6.4.3 BROADCAST_INTENT_MSG訊息處理函數
6.4.4 應用處理程序處理廣播分析  
6.4.5 廣播處理

序/導讀

前言

本書以直接剖析原始程式的方式進行講解,旨在引領讀者一步步深入於Android 系統中相關模組的內部原理,去了解它們是如何實現、如何工作的。在分析過程中,筆者根據個人研究Android 程式的心得,採用了精簡流程和一個個擊破的方法。同時,筆者還提出了一些難度不大的基礎知識、相關的補充閱讀資料,甚至筆者在實際專案中遇到的開放式問題,留給讀者自行研究和探討。總之,筆者希望讀者在閱讀完本書後,至少能有以下兩個收穫:

◎ƒ能從“以Android 並高於Android”為基礎的角度來看待和分析Android。
◎能初步具有大型複雜程式的分析能力。

適合讀者群

適合閱讀本書的讀者包含:
(1)Android 應用開發工程師
雖然應用開發工程師平常接觸的多是Android SDK,但是只有更深入地了解了Android 系統執行原理,才能寫出更穩固、更高效率的模組。

(2)Android 系統開發工程師
系統開發工程師常常需要深入了解系統的運轉過程, 而本書所有關的內容正是他們在工作和學習中最想了解的。那些對實際服務( 如ActivityManagerService、PackageManagerService)有興趣的讀者,也可以單刀直入,閱讀本書相關章節。

(3)對Android 系統執行原理有興趣的讀者
這部分讀者需要具有基本的Android 開發知識基礎。

如何閱讀本書

本書是針對Android 原始程式進行分析的,而原始程式檔案所在的路徑一般都很長,例如,檔案AndroidRuntime.cpp 的真實路徑是frameworks/base/core/jni/AndroidRuntime.cpp。為了行文方便,在各章節開頭,均把本章有關的原始程式路徑全部列出,而在實際分析原始程式時,則只列出該原始程式的檔案名稱。例如:
 
[-->AndroidRuntime.cpp]
// 這裡是原始程式和一些註釋

另外,本書在描述類別之間的關係及函數呼叫流程上,使用了UML 的靜態類別圖及序列圖。UML 是一個強大的工具,但它的建模標準過於煩瑣,為更簡單清晰地描述事情的本質,本書並未完全遵循UML 的建模標準。

勘誤和支援

由於作者的水準有限,加之寫作時間倉促,書中難免會出現一些錯誤或不準確的地方,懇請讀者批評和指正。若有問題,可透過電子郵件或在部落格上留言與筆者共同討論。筆者的聯絡方式是:
 
電子郵件:fanping.deng@gmail.com
ƒ部落格:blog.csdn.net/innost、cnblogs.net/innost 和my.oschina.net/innost/blog

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9789863793946
    • 分級
    • 普通級
    • 頁數
    • 504
    • 商品規格
    • 23*17
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing