0%

Flutter SDK源码调试

由于网络问题,需要把 flutter 打包过程中生成的 .android 工程中的 maven 地址换成内网地址,但是 .android 工程的生成与构建是一个原子操作,中途没有时机去修改 gradle 文件。好在可以修改生成工程的模板:

  • flutter/packages/flutter_tools/templates/module/android/gradle/build.gradle.tmpl
  • flutter/packages/flutter_tools/templates/app_shared/android.tmpl/gradle/wrapper/gradle-wrapper.properties.tmpl

后来又发现 distributionUrl 的修改没有生效,因此想调试下 flutter 的 SDK

步骤如下:

  • Android Studio 打开 flutter SDK源码
  • 如果有修改 SDK 代码,需要删除 bin/cache/flutter_tools.snapshot 让修改生效(会强制重新构建flutter tool
  • Android Studio 中选择 configuration ,新建一个 “Dart Command Line App”,”Environment Variables” , 输入 FLUTTER_ROOT=directory_to_your_flutter_framework_repo
  • “Program arguments” 填想要运行的命令,如 “flutter run” ,只用填 “run”
  • “Working directory” 选填

flutter_sdk_debug_editor

回到最开始的问题,修改了 packages/flutter_tools/lib/src/android/gradle_utils.dart 没有生效的原因是 flutter tool 有缓存,修改了源码并不会立即生效,需要删除 bin/cache/flutter_tools.snapshot

参考链接:https://github.com/flutter/flutter/wiki/The-flutter-tool