新書推薦:
《
诛吕:“诸吕之乱”的真相与吕太后时期的权力结构
》
售價:NT$
454.0
《
炙野(全2册)
》
售價:NT$
356.0
《
女人的胜利
》
售價:NT$
254.0
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:NT$
1214.0
《
500万次倾听:陪伤心的人聊聊
》
售價:NT$
245.0
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:NT$
367.0
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:NT$
398.0
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:NT$
301.0
|
編輯推薦: |
1.内容丰富。
从Flutter的源码出发,从组件开发到技术综合应用,多角度介绍Flutter项目开发的方方面面,为开发人员提供一条高效的学习途径。
2.讲解由浅入深。
由浅入深剖析Flutter项目开发过程种遇到的问题,涉及源码的获取与构建,功能模块的实现以及Flutter应用的性能探测,监控和调优等。
3.举一反三。
系统且深入阐释了Flutter跨平台技术的底层原理,横跨Java、C 、Dart这3种编程语言,覆盖Flutter 1.0 和 2.0 版本。
本书以Flutter的源码为主要脉络,按照功能模块,从相关工具的准备、源码的获取与构建,再到启动流程、宿主通信、UI构建、状态管理等的实现,后,基于原理剖析,讲解如何对Flutter应用做性能探测、监控和调优。
本书适合对跨平台技术感兴趣的开发人员、前端开发人员、 Android/iOS开发人员,希望深入了解Flutter或有性能调优需求的开发人员,对移动端渲染框架感兴趣的开发人员,以及渴望深入了解 Flutter底层实现的开发人员阅读。
|
內容簡介: |
本书系统介绍Flutter跨平台技术的底层原理,横跨Java、C 、Dart 3种编程语言,可以帮助程序员学习前沿的跨平台技术,编写高质量的代码,深刻理解Flutter的内部运行机制。
本书共11章。第1章~第3章讲解阅读Flutter内核源码的前置知识,如何获取和构建源码,以及Dart的高级特性等。第4章~第7章讲解Flutter内核源码的核心内容,涉及Embedder层、Engine层、Framework层等。第8章~第11章基于对Flutter内核源码的分析,探讨如何编写高性能的业务代码,定位代码中的性能瓶颈,使用DevTool等工具的高阶特性,以及底层原理等高级主题。
本书适合对跨平台技术感兴趣的开发人员、前端开发人员、Android/iOS开发人员,希望深入了解Flutter或有性能调优需求的开发人员,对移动端渲染框架感兴趣的开发人员,以及渴望深入了解Flutter底层实现的开发人员阅读。
|
關於作者: |
赵裕,毕业于大连理工大学计算机与科学专业,目前就职于腾讯公司,负责PCG客户端开发工作。拥有多年软件开发经验,在博客上发表了众多编程相关知识,获得了读者一致好评。目前重点关注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章 环境搭建 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的环境准备 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 环境准备阶段 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创建流程 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 根节点构建流程 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 网络图片加载 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 消息循环原理分析 318
10.1.1 消息循环启动 319
10.1.2 任务注册 323
10.1.3 任务执行 324
10.2 动态线程合并技术 325
10.2.1 合并、维持与消解 326
10.2.2 合并状态下的任务执行 330
10.3 本章小结 331
第 11章 优化实践 332
11.1 平台资源复用 332
11.2 Flex布局实战 337
11.3 本章小结 338
|
|