Android Runtime 源碼解析
史寧寧
買這商品的人也買了...
-
軟體研發經驗談─觀念、紀律與個案 (書側有水漬,不介意再下單)$650$553 -
深入理解 Android 內核設計思想, 2/e (上下冊)$948$901 -
$1,014深入理解 Android:Java 虛擬機 ART -
輕鬆學會 LINE 程式設計與 AI 聊天機器人實作開發$520$406 -
Android 初學特訓班, 9/e (附影音/範例/機器學習教學與Kotlin開發入門電子書)$480$408 -
$505Android核心編程——Activity、BroadcastReceiver、Serv -
$556Android 進階指北 -
Android 十全大補:從 Kotlin、MVVM 到測試的全方面介紹(iT邦幫忙鐵人賽系列書)$520$406 -
$659Android 編程權威指南, 4/e (Android Programming: The Big Nerd Ranch Guide, 4/e) -
$454AI 探視人類情感原理與實踐 — 人工智能驅動的音樂信息檢索 -
Raspberry Pi 樹莓派:12道開胃菜打造 Linux 核心肌群(iT邦幫忙鐵人賽系列書)$680$530 -
圖解 IoT|物聯網的開發技術與原理$520$411 -
Android 移動安全攻防實戰 (微課視頻版)$414$393 -
Java SE 17 技術手冊$680$537 -
Python 小專案大集合:提升功力的 81個簡單有趣小程式$720$562 -
Android Jetpack 開發:原理解析與應用實戰$534$507 -
$474全光家庭組網與技術 -
新一代通用視頻編碼 H.266/VVC:原理、標準與實現$774$735 -
持續 API 管理|在不斷演變的生態系統中做出正確決策, 2/e (Continuous API Management: Making the Right Decisions in an Evolving Landscape, 2/e)$580$458 -
從0到0.99 Android 架構開發實戰:以便利貼應用程式為例 (iThome鐵人賽系列書) (書況較舊,不介意在下單)$600$468 -
大師級逆向神器 - Android Frida 協定剖析及應用$880$695 -
Kotlin 小宇宙:使用 Coroutine 優雅的執行非同步任務 (iThome鐵人賽系列書)$600$468 -
ChatGPT 4 萬用手冊:超強外掛、Prompt 範本、Line Bot、OpenAI API、Midjourney、Stable Diffusion$630$498 -
輕鬆學會 Android Kotlin 實作開發:精心設計 24個 Lab 讓你快速上手, 3/e$720$612 -
全面掌握 Gemini 開發實務:輕鬆駕馭 Google AI 引擎$680$537
商品描述
Android Runtime(ART)作為Android系統的核心組建,是Android應用運行及其效率的基礎,瞭解ART的組成和執行流程,有利於Android應用開發者高效開發Android應用。同時,ART作為一種Java虛擬機,也是廣大虛擬機開發者學習和改進的目標,瞭解ART有助於虛擬機的開發和調優。 本書基於Android 10.0.0_r39源碼,分析了ART基礎、ART的compiler、ART的啟動與運行、ART中的垃圾回收。這些分析旨在為讀者搭建ART的基本框架,帶領讀者一起瞭解ART的基本情況,為進一步瞭解ART打下基礎。 本書適合想瞭解ART的App開發者、Android系統優化開發者及虛擬機開發者閱讀,也適合高校學生學習虛擬機使用。
作者簡介
史寧寧,中國科學院軟件研究所智能軟件研究中心PLCT實驗室項目主管。吉林大學計算機學院碩士。2012年起作為核心開發人員和項目經理參與組織開發多個編譯器項目。長期堅持撰寫技術博客,其中“LLVM每日談”“方舟編譯器學習筆記”等系列影響較大,曾出版圖書1部。目前活躍在HelloGCC/HelloLLVM、方舟編譯器等開源社區。
目錄大綱
目錄
第1章ART基礎
1.1虛擬機基礎
1.2ART發展歷史
1.3ART核心架構
1.4源碼目錄介紹
1.5小結
第2章dex2oat工具介紹
2.1dex2oat入口代碼分析
2.2dex2oat的driver分析
2.3dex2oat driver的編譯函數
2.4DexToDexCompiler分析
2.5小結
第3章OptimizingCompiler介紹
3.1OptimizingCompiler類的JNI處理
3.2OptimizingCompiler:: Compile()
3.3HGraph的構建
3.3.1構建基於基本代碼塊的CFG
3.3.2構建支配樹
3.3.3構建SSA
3.4優化
3.5寄存器分配
3.5.1PrepareForRegisterAllocation
3.5.2SsaLivenessAnalysis
3.5.3RegisterAllocator
3.6代碼生成
3.7OptimizingCompiler總結
3.8小結
第4章OptimizingCompiler優化算法分析
4.1優化算法框架
4.2常量折疊
4.3指令簡化
4.4死代碼優化
4.5循環體優化
4.6指令下沈
4.7硬件平臺相關優化pass及其實現
4.8小結
第5章ART啟動分析
5.1ART啟動中的虛擬機啟動一
5.2ART啟動中的虛擬機啟動二
5.3ART啟動中的JIT編譯器的創建
5.4ART啟動中的Thread處理
5.5ART啟動中的運行時本地方法初始化
5.6ART啟動中的其他本地方法的註冊
5.7Zygote進程
5.7.1System Server進程
5.7.2應用進程
5.8小結
第6章ART的執行
6.1ART運行基本流程
6.2Zygote進程調用應用程序
6.2.1Zygote.forkAndSpecialize
6.2.2ZygoteConnection.handleChildProc
6.3類的查找與定義
6.4方法的加載和鏈接
6.5方法的執行
6.6小結
第7章ART GC實現
7.1GC的基本內容
7.2ART GC回收方案介紹
7.3ART GC回收器的實現
7.3.1回收器的類型
7.3.2不同類型回收器的實現
7.4ART GC的分配器實現
7.4.1分配器與空間類
7.4.2分配器與回收器
7.5ART GC的使用流程
7.5.1分配器的使用
7.5.2回收器的使用
7.6小結
參考文獻
後記



