综述
Flutter从架构上来说有3部分:
用Dart写的Framework层,面向开发者
用Java/Kotlin写的Embdder层(For Android,iOS是OC/Swift),纯Flutter App不需要关心
用C++写的Engine层,提供Dart运行环境和底层绘制能力
针对每个部分,对应的源码阅读环境不同,调试方法也不同。
对于阅读环境,最重要的是能够正确地完成调用/定义的跳转。
对于调试环境,最重要的是能够设置断点,单步执行。
Framework环境配置
Framework的环境设置比较简单。
源码阅读
Framework的代码在 https://github.com/flutter/flutter 下面,直接Clone下来。
亲测安装了Flutter插件的Android Studio是最好的阅读工具,直接打开./packages/flutter
目录,然后flutter pub get
即可。
这一步可能报错,主要是一些的版本冲突,按照信息解决即可。
源码调试
通过Flutter Acttach
按钮即可开始调试,但是如果要调试启动部分的Dart代码,用Debug
而不是Run
来启动程序: