失效链接处理 |
Flutter内核源码剖析 赵裕 PDF 下载
下载地址:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
https://product.dangdang.com/29355444.html
相关截图: 资料简介: 本书系统介绍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底层实现的开发人员阅读。 资料目录: 第 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 |