注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件工程及軟件方法學Flutter內(nèi)核源碼剖析

Flutter內(nèi)核源碼剖析

Flutter內(nèi)核源碼剖析

定 價:¥89.90

作 者: 趙裕 著
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

ISBN: 9787115575463 出版時間: 2022-01-01 包裝: 平裝
開本: 16開 頁數(shù): 338 字數(shù):  

內(nèi)容簡介

  本書系統(tǒng)介紹Flutter跨平臺技術的底層原理,橫跨Java、C++、Dart 3種編程語言,可以幫助程序員學習前沿的跨平臺技術,編寫高質量的代碼,深刻理解Flutter的內(nèi)部運行機制。本書共11章。第1章~第3章講解閱讀Flutter內(nèi)核源碼的前置知識,如何獲取和構建源碼,以及Dart的高級特性等。第4章~第7章講解Flutter內(nèi)核源碼的核心內(nèi)容,涉及Embedder層、Engine層、Framework層等。第8章~第11章基于對Flutter內(nèi)核源碼的分析,探討如何編寫高性能的業(yè)務代碼,定位代碼中的性能瓶頸,使用DevTool等工具的高階特性,以及底層原理等高級主題。本書適合對跨平臺技術感興趣的開發(fā)人員、前端開發(fā)人員、Android/iOS開發(fā)人員,希望深入了解Flutter或有性能調優(yōu)需求的開發(fā)人員,對移動端渲染框架感興趣的開發(fā)人員,以及渴望深入了解Flutter底層實現(xiàn)的開發(fā)人員閱讀。

作者簡介

  趙裕,畢業(yè)于大連理工大學計算機與科學專業(yè),目前就職于騰訊公司,負責PCG客戶端開發(fā)工作。擁有多年軟件開發(fā)經(jīng)驗,在博客上發(fā)表了眾多編程相關知識,獲得了讀者一致好評。目前重點關注Android、Flutter以及Java、Dart、Kotlin等。

圖書目錄

第 1章 準備工作 1
1.1 移動端跨平臺簡史 1
1.1.1 跨平臺的起源 1
1.1.2 跨平臺的價值 1
1.1.3 跨平臺的演進 2
1.1.4 跨平臺的未來 5
1.2 Flutter框架概覽 6
1.2.1 分層架構模型 7
1.2.2 響應式與Widgets 8
1.2.3 初識渲染管道 9
1.2.4 平臺嵌入與交互 10
1.3 本章小結 10
第 2章 環(huán)境搭建 11
2.1 Flutter源碼獲取 11
2.2 Flutter源碼結構 14
2.3 Flutter源碼構建 15
2.4 Flutter源碼調試 17
2.4.1 Framework源碼調試 18
2.4.2 Embedder源碼調試 20
2.4.3 Engine源碼調試 22
2.5 本章小結 25
第3章 flutter tool 26
3.1 flutter tool啟動流程 26
3.1.1 基于Bash的環(huán)境準備 27
3.1.2 基于Zone的上下文管理 32
3.1.3 基于args的子命令管理 37
3.2 flutter create詳解 38
3.3 flutter build詳解 40
3.3.1 BuildApkCommand流程分析 40
3.3.2 flutter.gradle流程分析 42
3.3.3 AssembleCommand流程分析 48
3.4 flutter attach詳解 57
3.4.1 環(huán)境準備階段 57
3.4.2 服務連接階段 62
3.4.3 增量編譯階段 64
3.5 flutter run詳解 70
3.6 本章小結 73
第4章 啟動流程 74
4.1 Embedder啟動流程 74
4.1.1 Embedder關鍵類分析 74
4.1.2 啟動準備階段 76
4.1.3 FlutterEngine初始化 78
4.1.4 FlutterView初始化 83
4.1.5 Framework啟動 89
4.1.6 Engine入口整理 89
4.2 Engine啟動流程 90
4.2.1 Engine關鍵類分析 91
4.2.2 JNI接口綁定 92
4.2.3 Settings解析 94
4.2.4 關鍵類初始化 95
4.3 Surface啟動流程 104
4.3.1 Flutter繪制體系介紹 104
4.3.2 PlatformViewAndroid初始化 106
4.3.3 Surface初始化 109
4.4 Dart Runtime啟動流程 115
4.4.1 Dart Runtime介紹 115
4.4.2 Dart VM創(chuàng)建流程 116
4.4.3 Isolate啟動流程 124
4.5 Framework啟動流程 134
4.5.1 Framework關鍵類分析 134
4.5.2 Binding啟動流程 135
4.6 本章小結 138
第5章 渲染管道 139
5.1 首幀渲染 139
5.1.1 Widget、Element與RenderObject 139
5.1.2 根節(jié)點構建流程 141
5.1.3 案例分析 143
5.1.4 請求渲染 151
5.2 Vsync機制分析 154
5.2.1 Vsync準備階段 154
5.2.2 Vsync注冊階段 156
5.2.3 Vsync響應階段 158
5.2.4 Framework響應階段 161
5.2.5 Continuation設計分析 163
5.3 Build流程分析 165
5.3.1 Mark階段 165
5.3.2 Flush階段 166
5.3.3 清理階段 170
5.4 Layout流程分析 171
5.4.1 Mark階段 171
5.4.2 Flush階段 172
5.4.3 Layout實例分析 174
5.5 Paint流程分析 176
5.5.1 Compositing-State Mark階段 177
5.5.2 Compositing-State Flush階段 179
5.5.3 Paint Mark階段 180
5.5.4 Paint Flush階段 181
5.6 Composition流程分析 186
5.6.1 Mark階段 187
5.6.2 Flush階段 187
5.7 Rasterize流程分析 193
5.8 本章小結 199
第6章 Box布局模型 201
6.1 Box布局概述 201
6.2 Align布局流程分析 202
6.3 Flex布局流程分析 205
6.4 本章小結 213
第7章 Sliver布局模型 214
7.1 Sliver布局概述 214
7.2 RenderViewport布局流程分析 215
7.3 RenderSliverToBoxAdapter布局流程分析 224
7.4 本章小結 229
第8章 Framework探索 230
8.1 StatefulWidget生命周期分析 230
8.2 InheritedWidget原理分析 233
8.3 Key原理分析 237
8.3.1 GlobalKey 238
8.3.2 LocalKey 240
8.4 Animation原理分析 244
8.4.1 補間動畫 245
8.4.2 物理動畫 251
8.5 Gesture原理分析 252
8.5.1 目標收集 254
8.5.2 手勢競爭 256
8.5.3 雙擊事件 259
8.5.4 拖曳事件與列表滑動 263
8.6 Image原理分析 268
8.6.1 框架分析 268
8.6.2 網(wǎng)絡圖片加載 274
8.6.3 緩存管理 274
8.7 Navigation原理分析 277
8.8 本章小結 281
第9章 Embedder探索 282
9.1 Platform Channel原理分析 282
9.1.1 Platform Channel架構分析 282
9.1.2 BasicMessageChannel流程詳解 283
9.1.3 MethodChannel流程分析 289
9.1.4 EventChannel原理分析 291
9.2 Platform View原理分析 293
9.2.1 Platform View架構 293
9.2.2 Virtual Display原理分析 294
9.2.3 Hybrid Composition原理分析 301
9.3 Plugin原理分析 315
9.4 本章小結 317
第 10章 Engine探索 318
10.1 消息循環(huán)原理分析 318
10.1.1 消息循環(huán)啟動 319
10.1.2 任務注冊 323
10.1.3 任務執(zhí)行 324
10.2 動態(tài)線程合并技術 325
10.2.1 合并、維持與消解 326
10.2.2 合并狀態(tài)下的任務執(zhí)行 330
10.3 本章小結 331
第 11章 優(yōu)化實踐 332
11.1 平臺資源復用 332
11.2 Flex布局實戰(zhàn) 337
11.3 本章小結 338

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) hotzeplotz.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號