亚洲精品92内射,午夜福利院在线观看免费 ,亚洲av中文无码乱人伦在线视色,亚洲国产欧美国产综合在线,亚洲国产精品综合久久2007

?
Java知識分享網(wǎng) - 輕松學(xué)習(xí)從此開始!????

Java知識分享網(wǎng)

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus權(quán)限系統(tǒng)實戰(zhàn)課程 震撼發(fā)布        

最新Java全棧就業(yè)實戰(zhàn)課程(免費)

AI人工智能學(xué)習(xí)大禮包

IDEA永久激活

66套java實戰(zhàn)課程無套路領(lǐng)取

鋒哥開始收Java學(xué)員啦!

Python學(xué)習(xí)路線圖

鋒哥開始收Java學(xué)員啦!

深入理解Android內(nèi)核設(shè)計思想 上冊 第2版 PDF 下載


分享到:
時間:2021-01-26 11:01來源:http://sh6999.cn 作者:轉(zhuǎn)載  侵權(quán)舉報
深入理解Android內(nèi)核設(shè)計思想 上冊 第2版 PDF 下載
失效鏈接處理
深入理解Android內(nèi)核設(shè)計思想  上冊  第2版 PDF 下載


本站整理下載:
版權(quán)歸出版社和原作者所有,鏈接已刪除,請購買正版
 
 
用戶下載說明:
電子版僅供預(yù)覽,下載后24小時內(nèi)務(wù)必刪除,支持正版,喜歡的請購買正版書籍:
http://product.dangdang.com/25102881.html
  
相關(guān)截圖:


資料簡介:
全書從操作系統(tǒng)的基礎(chǔ)知識入手,全面剖析進程/線程、內(nèi)存管理、Binder機制、GUI顯示系統(tǒng)、多媒體管理、輸入系統(tǒng)、虛擬機等核心技術(shù)在Android中的實現(xiàn)原理。書中講述的知識點大部分來源于工程項目研發(fā),因而具有較強的實用性,希望可以讓讀者“知其然,更知其所以然”。本書分為編譯篇、系統(tǒng)原理篇、應(yīng)用原理篇、系統(tǒng)工具篇,共4篇25章,基本涵蓋了參與Android開發(fā)所需具備的知識,并通過大量圖片與實例來引導(dǎo)讀者學(xué)習(xí),以求盡量在源碼分析外為讀者提供更易于理解的思維方式。 本書既適合Android系統(tǒng)工程師,也適合于應(yīng)用開發(fā)工程師來閱讀,從而提升Android開發(fā)能力。讀者可以在本書潛移默化的學(xué)習(xí)過程中更深刻地理解Android系統(tǒng),并將所學(xué)知識自然地應(yīng)用到實際開發(fā)難題的解決中


資料目錄:
第1篇 Android編譯篇

第1章 Android系統(tǒng)簡介 2

1.1 Android系統(tǒng)發(fā)展歷程 2

1.2 Android系統(tǒng)特點 4

1.3 Android系統(tǒng)框架 8

第2章 Android源碼下載及編譯 11

2.1 Android源碼下載指南 11

2.1.1 基于Repo和Git的

版本管理 11

2.1.2 Android源碼下載流程 12

2.2 原生Android系統(tǒng)編譯指南 16

2.2.1 建立編譯環(huán)境 16

2.2.2 編譯流程 19

2.3 定制產(chǎn)品的編譯與燒錄 22

2.3.1 定制新產(chǎn)品 22

2.3.2 Linux內(nèi)核編譯 26

2.3.3 燒錄/升級系統(tǒng) 27

2.4 Android Multilib Build 28

2.5 Android系統(tǒng)映像文件 31

2.5.1 boot.img 32

2.5.2 ramdisk.img 34

2.5.3 system.img 35

2.5.4 Verified Boot 35

2.6 ODEX流程 37

2.7 OTA系統(tǒng)升級 39

2.7.1 生成升級包 39

2.7.2 獲取升級包 40

2.7.3 OTA升級—Recovery

模式 41

2.8 Android反編譯 44

2.9 NDK Build 46

2.10 第三方ROM的移植 48

第3章 Android編譯系統(tǒng) 50

3.1 Makefile入門 50

3.2 Android編譯系統(tǒng) 52

3.2.1 Makefile依賴樹的概念 53

3.2.2 Android編譯系統(tǒng)抽象

 模型 53

3.2.3 樹根節(jié)點droid 54

3.2.4 main.mk解析 55

3.2.5 droidcore節(jié)點 59

3.2.6 dist_files 61

3.2.7 Android.mk的編寫規(guī)則 61

3.3 Jack Toolchain 64

3.4 SDK的編譯過程 68

3.4.1 envsetup.sh 68

3.4.2 lunch sdk-eng 70

3.4.3 make sdk 75

3.5 Android系統(tǒng)GDB調(diào)試 85

第2篇 Android原理篇

第4章 操作系統(tǒng)基礎(chǔ) 90

4.1 計算機體系結(jié)構(gòu)

(Computer Architecture) 90

4.1.1 馮 諾依曼結(jié)構(gòu) 90

4.1.2 哈佛結(jié)構(gòu) 90

4.2 什么是操作系統(tǒng) 91

4.3 進程間通信的經(jīng)典實現(xiàn) 93

4.3.1 共享內(nèi)存

(Shared Memory) 94

4.3.2 管道(Pipe) 95

4.3.3 UNIX Domain Socket 97

4.3.4 RPC(Remote Procedure Calls) 99

4.4 同步機制的經(jīng)典實現(xiàn) 100

4.4.1 信號量(Semaphore) 100

4.4.2 Mutex 101

4.4.3 管程(Monitor) 101

4.4.4 Linux Futex 102

4.4.5 同步范例 103

4.5 Android中的同步機制 104

4.5.1 進程間同步——Mutex 104

4.5.2 條件判斷——Condition 105

4.5.3 “柵欄、障礙”

 ——Barrier 107

4.5.4 加解鎖的自動化操作

——Autolock 108

4.5.5 讀寫鎖——Reader

WriterMutex 109

4.6 操作系統(tǒng)內(nèi)存管理基礎(chǔ) 110

4.6.1 虛擬內(nèi)存

(Virtual Memory) 110

4.6.2 內(nèi)存保護

(Memory Protection) 113

4.6.3 內(nèi)存分配與回收 113

4.6.4 進程間通信——mmap 114

4.6.5 寫時拷貝技術(shù)

(Copy on Write) 115

4.7 Android中的Low

Memory Killer 115

4.8 Android匿名共享內(nèi)存

(Anonymous Shared Memory) 118

4.8.1 Ashmem設(shè)備 118

4.8.2 Ashmem應(yīng)用實例 122

4.9 JNI 127

4.9.1 Java函數(shù)的本地實現(xiàn) 127

4.9.2 本地代碼訪問JVM 130

4.10 Java中的反射機制 132

4.11 學(xué)習(xí)Android系統(tǒng)的兩條線索 133

第5章 Android進程/線程和

程序內(nèi)存優(yōu)化 134

5.1 Android進程和線程 134

5.2 Handler, MessageQueue,

Runnable與Looper 140

5.3 UI主線程——ActivityThread 147

5.4 Thread類 150

5.4.1 Thread類的內(nèi)部原理 150

5.4.2 Thread休眠和喚醒 151

5.4.3 Thread實例 155

5.5 Android應(yīng)用程序如何利用

 CPU的多核處理能力 157

5.6 Android應(yīng)用程序的典型啟

 動流程 157

5.7 Android程序的內(nèi)存管理與優(yōu)化 159

5.7.1 Android系統(tǒng)對內(nèi)存使用

 的限制 159

5.7.2 Android中的內(nèi)存泄露與

 內(nèi)存監(jiān)測 160

第6章 進程間通信 — Binder 166

6.1 智能指針 169

6.1.1 智能指針的設(shè)計理念 169

6.1.2 強指針sp 172

6.1.3 弱指針wp 173

6.2 進程間的數(shù)據(jù)傳遞載體

 ——Parcel 179

6.3 Binder驅(qū)動與協(xié)議 187

6.3.1 打開Binder驅(qū)動

——binder_open 188

6.3.2 binder_mmap 189

6.3.3 binder_ioctl 192

6.4 “DNS”服務(wù)器——Service

 Manager(Binder Server) 193

6.4.1 ServiceManager的啟動 193

6.4.2 ServiceManager的構(gòu)建 194

6.4.3 獲取ServiceManager服

務(wù)—設(shè)計思考 199

6.4.4 ServiceManagerProxy 203

6.4.5 IBinder和BpBinder 205

6.4.6 ProcessState和IPCThreadState 207

6.5 Binder客戶端——Binder Client 237

6.6 Android接口描述語言——AIDL 242

6.7 匿名Binder Server 254

第7章 Android啟動過程 257

7.1 第一個系統(tǒng)進程(init) 257

7.1.1 init.rc語法 257

7.1.2 init.rc實例分析 260

7.2 系統(tǒng)關(guān)鍵服務(wù)的啟動簡析 261

7.2.1 Android的“DNS服務(wù)器”

——ServiceManager 261

7.2.2 “孕育”新的線程和進程

——Zygote 261

7.2.3 Android的“系統(tǒng)服務(wù)”

——SystemServer 274

7.2.4 Vold和External Storage

存儲設(shè)備 276

7.3 多用戶管理 282

第8章 管理Activity和組件運行狀

態(tài)的系統(tǒng)進程——Activity ManagerService(AMS) 284

8.1 AMS功能概述 284

8.2 管理當(dāng)前系統(tǒng)中Activity

 狀態(tài)——Activity Stack 286

8.3 startActivity流程 288

8.4 完成同一任務(wù)的“集合”——Activity Task 296

8.4.1 “后進先出”——Last In,F(xiàn)irst Out 297

8.4.2 管理Activity Task 298

8.5 Instrumentation機制 300

第9章 GUI系統(tǒng) — SurfaceFlinger 305

9.1 OpenGL ES與EGL 305

9.2 Android的硬件接口——HAL 307

9.3 Android終端顯示設(shè)備的“化身”

——Gralloc與Framebuffer 309

9.4 Android中的本地窗口 313

9.4.1 FramebufferNativeWindow 315

9.4.2 應(yīng)用程序端的本地窗口——Surface 321

9.5 BufferQueue詳解 325

9.5.1 BufferQueue的內(nèi)部原理 325

9.5.2 BufferQueue中的緩沖區(qū)

分配 328

9.5.3 應(yīng)用程序的典型繪圖

流程 333

9.5.4 應(yīng)用程序與BufferQueue

的關(guān)系 339

9.6 SurfaceFlinger 343

9.6.1 “黃油計劃”——Project Butter 343

9.6.2 SurfaceFlinger的啟動 347

9.6.3 接口的服務(wù)端——Client 351

9.7 VSync的產(chǎn)生和處理 355

9.7.1 VSync信號的產(chǎn)生和

分發(fā) 355

9.7.2 VSync信號的處理 361

9.7.3 handleMessageTransaction 363

9.7.4 “界面已經(jīng)過時/無效,需要重

新繪制”——handleMessage Invalidate 367

9.7.5 合成前的準備工作

 ——preComposition 369

9.7.6 可見區(qū)域

 ——rebuildLayerStacks 371

9.7.7 為“Composition”搭建環(huán)境

 ——setUpHWComposer 375

9.7.8 doDebugFlashRegions 377

9.7.9 doComposition 377

第10章 GUI系統(tǒng)之“窗口管理員”

 —WMS 385

10.1 “窗口管理員”——WMS綜述 386

10.1.1 WMS的啟動 388

10.1.2 WMS的基礎(chǔ)功能 388

10.1.3 WMS的工作方式 389

10.1.4 WMS,AMS與Activity

 間的聯(lián)系 390

10.2 窗口屬性 392

10.2.1 窗口類型與層級 392

10.2.2 窗口策略

?。╓indow Policy) 396

10.2.3 窗口屬性

 (LayoutParams) 398

10.3 窗口的添加過程 400

10.3.1 系統(tǒng)窗口的添加過程 400

10.3.2 Activity窗口的添加

 過程 409

10.3.3 窗口添加實例 412

10.4 Surface管理 416

10.4.1 Surface申請流程(relayout) 416

10.4.2 Surface的跨進程傳遞 420

10.4.3 Surface的業(yè)務(wù)操作 422

10.5 performLayoutAndPlace

 SurfacesLockedInner 423

10.6 窗口大小的計算過程 424

10.7 啟動窗口的添加與銷毀 433

10.7.1 啟動窗口的添加 433

10.7.2 啟動窗口的銷毀 437

10.8 窗口動畫 438

10.8.1 窗口動畫類型 439

10.8.2 動畫流程跟蹤——Window

 StateAnimator 440

10.8.3 AppWindowAnimator 444

10.8.4 動畫的執(zhí)行過程 446

第11章 讓你的界面炫彩起來的GUI

 系統(tǒng) — View體系 452

11.1 應(yīng)用程序中的View框架 452

11.2 Activity中View Tree的

 創(chuàng)建過程 455

11.3 在WMS中注冊窗口 461

11.4 ViewRoot的基本工作方式 463

11.5 View Tree的遍歷時機 464

11.6 View Tree的遍歷流程 468

11.7 View和ViewGroup屬性 477

11.7.1 View的基本屬性 477

11.7.2 ViewGroup的屬性 482

11.7.3 View、ViewGroup和

 ViewParent 482

11.7.4 Callback接口 482

11.8 “作畫“工具集——Canvas 484

11.8.1 “繪制UI”——Skia 485

11.8.2 數(shù)據(jù)中介——Surface.

 lockCanvas 486

11.8.3 解鎖并提交結(jié)果——unlock

 CanvasAndPost 490

11.9 draw和onDraw 491

11.10 View中的消息傳遞 497

11.10.1 View中TouchEvent

 的投遞流程 497

11.10.2 ViewGoup中Touch-

 Event的投遞流程 500

11.11 View動畫 504

11.12 UiAutomator 509

第12章 “問渠哪得清如許,為有源頭

 活水來”— InputManager

 Service與輸入事件 514

12.1 事件的分類 514

12.2 事件的投遞流程 517

12.2.1 InputManagerService 518

12.2.2 InputReaderThread 519

12.2.3 InputDispatcherThread 519

12.2.4 ViewRootImpl對事件

 的派發(fā) 523

12.3 事件注入 524

第13章 應(yīng)用不再同質(zhì)化 — 音頻系統(tǒng) 526

13.1 音頻基礎(chǔ) 527

13.1.1 聲波 527

13.1.2 音頻的錄制、存儲

 與回放 527

13.1.3 音頻采樣 528

13.1.4 Nyquist?CShannon采樣

 定律 530

13.1.5 聲道和立體聲 530

13.1.6 聲音定級——Weber?C

 Fechner law 531

13.1.7 音頻文件格式 532

13.2 音頻框架 532

13.2.1 Linux中的音頻框架 532

13.2.2 TinyAlsa 534

13.2.3 Android系統(tǒng)中的

 音頻框架 536

13.3 音頻系統(tǒng)的核心——Audio-

 Flinger 538

13.3.1 AudioFlinger服務(wù)的

 啟動和運行 538

13.3.2 AudioFlinger對音頻

 設(shè)備的管理 540

13.3.3 PlaybackThread的

 循環(huán)主體 547

13.3.4 AudioMixer 551

13.4 策略的制定者——Audio-

 PolicyService 553

13.4.1 AudioPolicyService

 概述 554

13.4.2 AudioPolicyService

 的啟動過程 556

13.4.3 AudioPolicyService

 與音頻設(shè)備 558

13.5 音頻流的回放——AudioTrack 560

13.5.1 AudioTrack應(yīng)用實例 560

13.5.2 AudioPolicyService

 的路由實現(xiàn) 567

13.6 音頻數(shù)據(jù)流 572

13.6.1 AudioTrack中的音頻流 573

13.6.2 AudioTrack和AudioFlinger

 間的數(shù)據(jù)交互 576

13.6.3 AudioMixer中的

 音頻流 582

13.7 音量控制 584

13.8 音頻系統(tǒng)的上層建筑 588

13.8.1 從功能入手 588

13.8.2 MediaPlayer 589

13.8.3 MediaRecorder 592

13.8.4 一個典型的多媒體

 錄制程序 595

13.8.5 MediaRecorder

 源碼解析 596

13.8.6 MediaPlayerService簡析 598

13.9 Android支持的媒體格式 600

13.9.1 音頻格式 600

13.9.2 視頻格式 601

13.9.3 圖片格式 601

13.9.4 網(wǎng)絡(luò)流媒體 602

13.10 ID3信息簡述 602

13.11 Android多媒體文件管理 606

13.11.1 MediaStore 607

13.11.2 多媒體文件信息的

 存儲“倉庫”

 ——MediaProvider 608

13.11.3 多媒體文件管理中

 的“生產(chǎn)者”

 —MediaScanner 611



第3篇 應(yīng)用原理篇

第14章 Intent的匹配規(guī)則 616

14.1 Intent屬性 616

14.2 Intent的匹配規(guī)則 618

14.3 Intent匹配源碼簡析 624

第15章 APK應(yīng)用程序的資源適配 628

15.1 資源類型 629

15.1.1 狀態(tài)顏色資源 630

15.1.2 圖形資源 631

15.1.3 布局資源 632

15.1.4 菜單資源 633

15.1.5 字符串資源 633

15.1.6 樣式資源 634

15.1.7 其他資源 635

15.1.8 屬性資源 635

15.2 提供可選資源 638

15.3 最佳資源的匹配流程 642

15.4 屏幕適配 644

15.4.1 屏幕適配的重要參數(shù) 644

15.4.2 如何適配多屏幕 646

15.4.3 橫豎屏切換的處理 648

第16章 Android字符編碼格式 650

16.1 字符編碼格式背景 650

16.2 ISO/IEC 8859 651

16.3 ISO/IEC 10646 651

16.4 Unicode 652

16.5 String類型 655

16.5.1 構(gòu)建String 655

16.5.2 String對多種編碼

 的兼容 656

第17章 Android和OpenGL ES 660

17.1 3D圖形學(xué)基礎(chǔ) 661

17.1.1 計算機3D圖形 661

17.1.2 圖形管線 662

17.2 Android中的OpenGL ES簡介 664

17.3 圖形渲染API—EGL 665

17.3.1 EGL與OpenGL ES 665

17.3.2 egl.cfg 665

17.3.3 EGL接口解析 667

17.3.4 EGL實例 670

17.4 簡化OpenGL ES開發(fā)

 —GLSurfaceView 670

17.5 OpenGL分析利器

 —GLTracer 677

第18章 “系統(tǒng)的UI”——SystemUI 685

18.1 SystemUI的組成元素 685

18.2 SystemUI的實現(xiàn) 687

18.3 Android壁紙資源

 —WallpaperService 694

18.3.1 WallPaperManager-

 Service 695

18.3.2 ImageWallpaper 697

第19章 Android常用的工具

“小插件”——Widget機制 700

19.1 “功能的提供者”——AppWidgetProvider 700

19.2 AppWidgetHost 702

第20章 Android應(yīng)用程序

 的編譯和打包 707

20.1 “另辟蹊徑”采用第三方工具——Ant 707

20.2 通過命令行編譯和打包APK 708

20.3 APK編譯過程詳解 709

20.4 信息安全基礎(chǔ)概述 711

20.5 應(yīng)用程序簽名 716

20.6 應(yīng)用程序簽名源碼簡析 719

20.7 APK重簽名實例 724

第21章 Android虛擬機 725

21.1 Android虛擬機基礎(chǔ)知識 725

21.1.1 Java虛擬機核心概念 725

21.1.2 LLVM編譯器框架 734

21.1.3 Android中的經(jīng)典

 垃圾回收算法 736

21.1.4 Art和Dalvik之爭 738

21.1.5 Art虛擬機整體框架 741

21.1.6 Android應(yīng)用程序與

 虛擬機 742

21.1.7 Procedure Call Standard

 for Arm Architecture

?。ㄟ^程調(diào)用標準) 744

21.1.8 C 11標準中的新

 特性 746

21.2 Android虛擬機核心文件格式

 —Dex字節(jié)碼 749

21.3 Android虛擬機核心文件格式

 —可執(zhí)行文件的基石ELF 756

21.3.1 ELF文件格式 756

21.3.2 Linux平臺下ELF文件的加載和動態(tài)鏈接過程 764

21.3.3 Android Linker和

 動態(tài)鏈接庫 771

21.3.4 Signal Handler和

 Fault Manager 782

21.4 Android虛擬機核心文件格式

 ——“主宰者”OAT 786

21.4.1 OAT文件格式解析 786

21.4.2 OAT的兩個編譯時機 793

21.5 Android虛擬機的典型

 啟動流程 806

21.6 堆管理器和堆空間釋義 815

21.7 Android虛擬機中的線程管理 823

21.7.1 Java線程的創(chuàng)建過程 823

21.7.2 線程的掛起過程 827

21.8 Art虛擬機中的代碼執(zhí)行

 方式綜述 829

21.9 Art虛擬機的“中樞系統(tǒng)”

 ——執(zhí)行引擎之Interpreter 836

21.10 Art虛擬機的“中樞系統(tǒng)”——執(zhí)行引擎之JIT 839

21.10.1 JIT重出江湖的契機 839

21.10.2 Android N版本中JIT

 的設(shè)計目標及策略 840

21.10.3 Profile Guided Compilation

 (追蹤技術(shù)) 842

21.10.4 AOT Compilation

 Daemon 843

21.11 Art虛擬機的“中樞系統(tǒng)”

 ——執(zhí)行引擎之本地代碼 844

21.12 Android x86版本兼容ARM二

 進制代碼——Native Bridge 864

21.13 Android應(yīng)用程序調(diào)試

 原理解析 871

21.13.1 Java代碼調(diào)試與

 JDWP協(xié)議 872

21.13.2 Native代碼調(diào)試 879

21.13.3 利用GDB調(diào)試

 Android Art虛擬機 885

第22章 Android安全機制透析 887

22.1 Android Security綜述 887

22.2 SELinux 889

22.2.1 DAC 889

22.2.2 MAC 890

22.2.3 基于MAC的SELinux 890

22.3 Android系統(tǒng)安全保護

 的三重利劍 892

22.3.1 第一劍:Permission

 機制 893

22.3.2 加強劍:DAC(UGO)

 保護 896

22.3.3 終極劍:SEAndroid 898

22.4 SEAndroid剖析 899

22.4.1 SEAndroid的頂層模型 899

22.4.2 SEAndroid相關(guān)的核心

 源碼 900

22.4.3 SEAndroid標簽和規(guī)則 901

22.4.4 如何在Android系統(tǒng)中

 自定義SEAndroid 903

22.4.5 TE文件的語法規(guī)則 905

22.4.6 SEAndroid中的核心

 主體—init進程 907

22.4.7 SEAndroid中的客體 912

22.5 Android設(shè)備Root簡析 913

22.6 APK的加固保護分析 916

第4篇 Android系統(tǒng)工具

第23章 IDE和Gradle 922

23.1 Gradle的核心要點 922

23.1.1 Groovy與Gradle 923

23.1.2 Gradle的生命周期 926

23.2 Gradle的Console語法 927

23.3 Gradle Wrapper和Cache 929

23.4 Android Studio和Gradle 931

23.4.1 Gradle插件基礎(chǔ)知識 931

23.4.2 Android Studio中的

 Gradle編譯腳本 932

第24章 軟件版本管理 937

24.1 版本管理簡述 937

24.2 Git的安裝 937

24.2.1 Linux環(huán)境下安裝Git 938

24.2.2 Windows環(huán)境下

 安裝Git 939

24.3 Git的使用 939

24.3.1 基礎(chǔ)配置 939

24.3.2 新建倉庫 940

24.3.3 文件狀態(tài) 942

24.3.4 忽略某些文件 943

24.3.5 提交更新 944

24.3.6 其他命令 944

24.4 Git原理簡析 945

24.4.1 分布式版本系統(tǒng)的特點 946
------分隔線----------------------------
?
鋒哥公眾號


鋒哥微信


關(guān)注公眾號
【Java資料站】
回復(fù) 666
獲取 
66套java
從菜雞到大神
項目實戰(zhàn)課程

鋒哥推薦