前言
第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.2 實戰ext3grep恢復檔案
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 廣播處理歸納
6.5 startService 之按圖索驥
6.5.1 Service知識介紹
6.5.2 startService流程圖
6.6 AMS 中的處理程序管理
6.6.1 Linux處理程序管理介紹
6.6.2 關於Android中的處理程序管理的介紹
6.6.3 AMS處理程序管理函數分析
6.6.4 AMS處理程序管理歸納
6.7 App 的 Crash 處理
6.7.1 應用處理程序的Crash處理
6.7.2 AMS的handleApplicationCrash分析
6.7.3 AppDeathRecipient binderDied分析
6.7.4 App的Crash處理歸納
6.8 本章學習重點
第7章 深入了解ContentProvider
7.1 概述
7.2 MediaProvider 的啟動及建立
7.2.1 Context的getContentResolver函數分析
7.2.2 MediaStore.Image.Media的query函數分析
7.2.3 MediaProvider的啟動及建立歸納
7.3 SQLite 建立資料庫分析
7.3.1 SQLite及SQLiteDatabase家族
7.3.2 MediaProvider建立資料庫分析
7.3.3 SQLiteDatabase建立資料庫的分析歸納
7.4 Cursor 的query 函數的實現分析
7.4.1 分析query關鍵點
7.4.2 MediaProvider 的query分析
7.4.3 query關鍵點分析
7.4.4 Cursor query實現分析歸納
7.5 Cursor close 函數實現分析
7.5.1 用戶端close的分析
7.5.2 服務端close的分析
7.5.3 finalize函數分析
7.5.4 Cursor close函數歸納
7.6 ContentResolver openAssetFileDescriptor 函數分析
7.6.1 openAssetFileDescriptor之用戶端呼叫分析
7.6.2 ContentProvider的 openTypedAssetFile函數分析
7.6.3 跨處理程序傳遞檔案描述符號的探討
7.6.4 openAssetFileDescriptor函數分析歸納
7.7 本章學習重點
7.8 本章小結
第8章 深入了解ContentService 和AccountManagerService
8.1 概述
8.2 資料更新通知機制分析
8.2.1 初識ContentService
8.2.2 ContentResovler 的registerContentObserver分析
8.2.3 ContentResolver的 notifyChange分析
8.2.4 資料更新通知機制歸納和深入探討
8.3 AccountManagerService 分析
8.3.1 初識AccountManagerService
8.3.2 AccountManager addAccount分析
8.3.3 AccountManagerService的分析歸納
8.4 資料同步管理SyncManager 分析
8.4.1 初識SyncManager
8.4.2 ContentResolver 的requestSync分析
8.4.3 資料同步管理SyncManager分析歸納
8.5 本章學習重點
8.6 本章小結