深入理解android內核設計思想第2版是提供編程教學的電子書籍,由作者林學森所著。書籍從操作系統的基礎知識入手,全面剖析進程/線程、內存管理、Binder機制等核心技術在Android中的實現原理。每個重點區域都有詳細的講解,具有較強的實用性。
基于Android SDK最新版本,全面剖析了進程/線程、內存管理、Binder機制、GUI顯示系統、多媒體管理、輸入系統等核心知識在Android中的實現原理。通過大量圖片與實例來引導讀者學習,以求盡量在源碼分析外,為讀者提供更易于理解的思維路徑。由淺入深,由總體框架再到細節實現,讓讀者盡快了解Android內核的設計思想。
第1篇 Android編譯篇
第1章 Android系統簡介
1.1 Android系統發展歷程
1.2 Android系統特點
1.3 Android系統框架
第2章 Android源碼下載及編譯
2.1 Android源碼下載指南
2.1.1 基于Repo和Git的版本管理
2.1.2 Android源碼下載流程
2.2 原生態系統編譯指南
2.2.1 建立編譯環境
2.2.2 編譯流程
2.3 定制產品的編譯與燒錄
2.3.1 定制新產品
2.3.2 Linux內核編譯
2.3.3 燒錄
2.4 Android系統映像文件
2.4.1 boot.img
2.4.2 ramdisk.img
2.4.3 system.img
2.5 OTA系統升級
2.5.1 生成升級包
2.5.2 獲取升級包
2.5.3 OTA升級—RecoveryMode
2.6 Android反編譯
第3章 Android編譯系統
3.1 Makefile入門
3.2 Android編譯系統
3.2.1 Makefile依賴樹的概念
3.2.2 樹根節點droid
3.2.3 main.mk解析
3.2.4 droidcore節點
3.2.5 dist_files
3.2.6 Android.mk的編寫規則
第2篇 Android原理篇
第4章 操作系統基礎
4.1 計算機體系結構(Computer Architecture)
4.1.1 馮·諾依曼結構
4.1.2 哈佛結構
4.2 什么是操作系統
4.3 進程間通信的經典實現
4.3.1 共享內存(Shared Memory)
4.3.2 管道(Pipe)
4.3.3 Unix Domain Socket
4.3.4 RPC(RemoteProcedure Calls)
4.4 同步機制的經典實現
4.4.1 信號量(Semaphore)
4.4.2 Mutex
4.4.3 管程(Monitor)
4.4.4 同步范例
4.5 Android中的同步機制
4.5.1 進程間同步——Mutex
4.5.2 條件判斷——Condition
4.5.3 “柵欄、障礙”——Barrier
4.5.4 加解鎖的自動化操作——Autolock
4.6 操作系統內存管理基礎
4.6.1 虛擬內存(Virtual Memory)
4.6.2 內存保護(Memory Protection)
4.6.3 內存分配與回收
4.6.4 進程間通信——mmap
4.7 Android中的Low Memory Killer
4.8 Android匿名共享內存(Anonymous Shared Memory)
4.8.1 Ashmem設備
4.8.2 Ashmem應用實例
4.9 JNI
4.9.1 Java函數的本地實現
4.9.2 本地代碼訪問JVM
4.10 學習Android系統的兩條線索
第5章 Android進程/線程管理
5.1 Android進程和線程
5.2 Handler, MessageQueue,Runnable與Looper
5.3 UI主線程——ActivityThread
5.4 Thread類
5.4.1 Thread類的內部原理
5.4.2 Thread休眠和喚醒
5.4.3 Thread實例
5.5 Android應用程序的典型啟動流程
第6章 進程間通信——Binder
6.1 智能指針
6.1.1 智能指針的設計理念
6.1.2 強指針sp
6.1.3 弱指針wp
6.2 進程間的數據傳遞載體——Parcel
6.3 Binder驅動與協議
6.3.1 打開Binder驅動——binder_open
6.3.2 binder_mmap
6.3.3 binder_ioctl
6.4 “DNS”服務器——ServiceManager(Binder Server)
6.4.1 ServiceManager的啟動
6.4.2 ServiceManager的構建
6.4.3 獲取ServiceManager服務——設計思考
6.4.4 ServiceManagerProxy
6.4.5 IBinder和BpBinder
6.4.6 ProcessState和IPCThreadState
6.5 Binder客戶端——Binder Client
6.6 Android接口描述語言——AIDL
6.7 匿名Binder Server
第7章 Android啟動過程簡析
7.1 第一個系統進程(init)
7.1.1 init.rc語法
7.1.2 init.rc實例分析
7.2 系統關鍵服務的啟動簡析
7.2.1 Android的“DNS服務器”——ServiceManager
7.2.2 “孕育”新的線程和進程——Zygote
7.2.3 Android的“系統服務”——SystemServer
第8章 管理Activity和組件運行狀態的系統進程——Activity ManagerService (AMS)
8.1 AMS功能概述
8.2 管理當前系統中Activity狀態——Activity Stack
8.3 startActivity流程
8.4 完成同一任務的“集合”——Activity Task
8.4.1 “后進先出”——Last In,First Out
8.4.2 管理Activity Task
第9章 GUI系統之SurfaceFlinger
9.1 OpenGL ES與EGL
9.2 Android的硬件接口——HAL
9.3 Android終端顯示設備的“化身”——Gralloc與Framebuffer
9.4 Android中的本地窗口
9.4.1 FramebufferNativeWindow
9.4.2 應用程序端的本地窗口——Surface
9.5 BufferQueue詳解
9.5.1 BufferQueue的內部原理
9.5.2 BufferQueue中的緩沖區分配
9.5.3 應用程序的典型繪圖流程
9.5.4 應用程序與BufferQueue的關系
9.6 SurfaceFlinger
9.6.1 “黃油計劃”——project Butter
9.6.2 SurfaceFlinger的啟動
9.6.3 接口的服務端——Client
9.7 VSync的產生和處理
9.7.1 VSync信號的產生和分發
9.7.2 VSync信號的處理
9.7.3 handleMessageTransaction
9.7.4 “界面已經過時/無效,需要重新繪制”——handleMessageInvalidate
9.7.5 合成前的準備工作——precomposition
9.7.6 可見區域——rebuildLayerStacks
9.7.7 為“Composition”搭建環境——setupHWComposer
9.7.8 doDebugFlashRegions
9.7.9 docomposition
第10章 GUI系統之“窗口管理員”——WMS
10.1 “窗口管理員”——WMS綜述
10.1.1 WMS的啟動
10.1.2 WMS的基礎功能
10.1.3 WMS的工作方式
10.1.4 WMS,AMS與Activity間的聯系
10.2 窗口屬性
10.2.1 窗口類型與層級
10.2.2 窗口策略(Window Policy)
10.2.3 窗口屬性(LayoutParams)
10.3 窗口的添加過程
10.3.1 系統窗口的添加過程
10.3.2 Activity窗口的添加過程
10.3.3 窗口添加實例
10.4 Surface管理
10.4.1 Surface申請流程(relayout)
10.4.2 Surface的跨進程傳遞
10.4.3 Surface的業務操作
10.5 performLayoutAndPlaceSurfacesLockedInner
10.6 窗口大小的計算過程
10.7 啟動窗口的添加與銷毀
10.7.1 啟動窗口的添加
10.7.2 啟動窗口的銷毀
10.8 窗口動畫
10.8.1 窗口動畫類型
10.8.2 動畫流程跟蹤——WindowStateAnimator
10.8.3 AppWindowAnimator
10.8.4 動畫的執行過程
第11章 讓你的界面炫彩起來的GUI系統之View體系
11.1 應用程序中的View框架
11.2 Activity中View Tree的創建過程
11.3 在WMS中注冊窗口
11.4 ViewRoot的基本工作方式
11.5 View Tree的遍歷時機
11.6 View Tree的遍歷流程
11.7 View和ViewGroup屬性
11.7.1 View的基本屬性
11.7.2 ViewGroup的屬性
11.7.3 View,ViewGroup和ViewParent
11.7.4 Callback接口
11.8 “作畫“工具集——Canvas
11.8.1 “繪制UI”——Skia
11.8.2 數據中介——Surface.lockCanvas
11.8.3 解鎖并提交結果——unlockCanvasAndPost
11.9 draw和onDraw
11.10 View中的消息傳遞
11.10.1 View中TouchEvent的投遞流程
11.10.2 ViewGoup中TouchEvent的投遞流程
11.11 View動畫
第12章 “問渠哪得清如許,為有源頭活水來”——InputManagerService與輸入事件
12.1 事件的分類
12.2 事件的投遞流程
12.2.1 InputManagerService
12.2.2 InputReaderThread
12.2.3 InputDispatcherThread
12.2.4 ViewRootImpl對事件的派發
第13章 應用不再同質化——音頻系統
13.1 音頻基礎
13.1.1 聲波
13.1.2 音頻的錄制、存儲與回放
13.1.3 音頻采樣
13.1.4 Nyquist–Shannon采樣定律
13.1.5 聲道和立體聲
13.1.6 聲音定級——Weber–Fechner law
13.1.7 音頻文件格式
13.2 音頻框架
13.2.1 Linux中的音頻框架
13.2.2 TinyAlsa
13.2.3 Android系統中的音頻框架
13.3 音頻系統的核心——AudioFlinger
13.3.1 AudioFlinger服務的啟動和運行
13.3.2 AudioFlinger對音頻設備的管理
13.3.3 PlaybackThread的循環主體
13.3.4 AudioMixer
13.4 策略的制定者——AudioPolicyService
13.4.1 AudioPolicyService概述
13.4.2 AudioPolicyService的啟動過程
13.4.3 AudioPolicyService與音頻設備
13.5 音頻流的回放——AudioTrack
13.5.1 AudioTrack應用實例
13.5.2 AudioPolicyService的路由實現
13.6 音頻數據流
13.6.1 AudioTrack中的音頻流
13.6.2 AudioTrack和AudioFlinger間的數據交互
13.6.3 AudioMixer中的音頻流
13.7 音量控制
13.8 音頻系統的上層建筑
13.8.1 從功能入手
13.8.2 MediaPlayer
13.8.3 MediaRecorder
13.8.4 一個典型的多媒體錄制程序
13.8.5 MediaRecorder源碼解析
13.8.6 MediaPlayerService簡析
13.9 Android支持的媒體格式
13.9.1 音頻格式
13.9.2 視頻格式
13.9.3 圖片格式
13.9.4 網絡流媒體
13.10 ID3信息簡述
13.11 Android多媒體文件管理
13.11.1 MediaStore
13.11.2 多媒體文件信息的存儲“倉庫”——MediaProvider
13.11.3 多媒體文件管理中的“生產者”——MediaScanner
……
第3篇 應用原理篇
第4篇 Android系統工具
提取碼:xfqa
pdf電子書專區為用戶免費提供相關的pdf資源下載,你可以不花錢免費在這里下載到你想要的資源,并且各種書籍相關的行業也非常的多哦,所以需要耐心的找到你的資源,圖書書籍股改范圍廣,教育教學,科學建筑,生活相關,文學藝術等等!
西門子mm430變頻器說明書 pdf版
6.24 MB/ 簡體中文
pdf版
gb50026-2007工程測量規范pdf版
2.10 MB/ 簡體中文
07sd101-8電力電纜井圖集 pdf免費版
4.65 MB/ 簡體中文
pdf免費版
17j925-1壓型鋼板圖集 pdf版
133.00 MB/ 簡體中文
pdf版
文案素材軟件 v3.3.1 安卓免費版
67.7 MB/ 簡體中文
v3.3.1
招生之友2020電子版河南 pdf免費版
273.90 MB/ 簡體中文
pdf免費版
11zj401樓梯欄桿圖集 pdf版
6.60 MB/ 簡體中文
pdf版
啊哈算法pdf完整版 pdf電子書
73.34 MB/ 簡體中文
pdf電子書
盖楼回复X
(您的评论需要经过审核才能显示)
網友評論