如何搭建 Flutter Framework 源码开发环境并用 examples 验证安装成功
【免费下载链接】flutterFlutter makes it easy and fast to build beautiful apps for mobile and beyond项目地址: https://gitcode.com/GitHub_Trending/flutter41/flutter
这篇文章面向要参与 Flutter Framework 源码开发的人:任务是把 flutter/flutter 仓库克隆到本地、把仓库自带的flutter命令行工具配置到 PATH、拉齐所有 Dart 依赖,最后用仓库自带的 examples 跑一次flutter run,确认整套环境可用。适用平台为 Linux、macOS 或 Windows。步骤依据仓库内的 Framework 开发环境搭建文档 和 运行 examples 文档。
环境前置要求
开始克隆之前,确认本机具备以下条件:
- 操作系统为 Linux、macOS 或 Windows;
- 已安装
git(用于源码版本控制); - 一个 IDE,例如带 Flutter 插件的 Android Studio 或 VS Code;
- Android platform tools,按平台安装:
- Mac:
brew install --cask android-platform-tools - Linux:
sudo apt-get install android-tools-adb
- Mac:
- Python(部分工具会用到)。
安装完 Android platform tools 后,验证adb已在 PATH 中,即which adb能打印出合理的输出。如果验证不到,说明 tools 没装好或没进 PATH,先解决这个问题再继续。
文档还提到一个可选情况:如果你同时在做 Flutter engine 开发,可以直接复用 engine 仓库里.../engine/src/third_party/android_tools/sdk/platform-tools下的那份 platform tools,对应说明见 engine 开发环境文档。
克隆仓库并配置 upstream/origin 两个 remote
Framework 源码开发采用双 remote 约定:upstream指向官方 flutter/flutter 仓库,origin指向你自己的 fork。
- 克隆官方仓库,SSH 或 HTTPS 均可(推荐 SSH,前提是 GitHub 账号已配置好可用的 SSH key):
git clone git@github.com:flutter/flutter.git # 或 git clone https://github.com/flutter/flutter.git- 进入克隆出的仓库目录,把默认的
origin改名为upstream:
cd flutter git remote rename origin upstream把 flutter/flutter 仓库 fork 到你自己的 GitHub 账号下(在 GitHub 仓库页面上操作)。
把你的 fork 添加为本地克隆的
originremote。下面命令中的your-github-username是占位符,首次出现这里说明一下:请把它替换成你自己的 GitHub 账号名,源文档中用████████表示这个位置:
# SSH(推荐) git remote add origin git@github.com:your-github-username/flutter.git # 或 HTTPS git remote add origin https://github.com/your-github-username/flutter.git- 验证两个 remote 配置正确:
git remote -v输出里应能看到upstream指向 flutter/flutter 官方仓库、origin指向你的 fork。
把仓库的 bin 目录加入 PATH
Framework 仓库自带flutter命令行工具,必须让 shell 找到的是这份,而不是你机器上可能已装的另一份 Flutter SDK。在仓库根目录执行(以 UNIX 为例):
export PATH="$PATH:$HOME/<path to flutter repository>/bin"其中<path to flutter repository>是占位符,替换为你克隆的 flutter 仓库相对于$HOME的路径(比如克隆在~/dev/flutter,就写$HOME/dev/flutter/bin)。
这一步有一个明确的边界条件:如果你机器上已经装过 Flutter,需要把那份旧的从 PATH 里移除,或者每次运行flutter时都用完整路径指向本仓库。文档给出的判断方法是——如果后面运行 examples 时出现版本求解(version solving)错误,说明你当前运行的不是本仓库 checkout 出来的那个 Flutter 版本,而是 PATH 里先命中的另一份。flutter 工具文档 也要求 PATH 上的flutter和dart解析到本仓库bin目录下的脚本。
拉取依赖:flutter update-packages
PATH 配置好后,在仓库根目录执行:
flutter update-packages该命令会递归拉取 Flutter 仓库依赖的所有 Dart 包。如果版本求解失败,文档给出的处理顺序是:先执行git fetch upstream更新到较新的 Flutter 版本,再重新执行flutter update-packages。
可选分支:如果你用 IntelliJ 系列 IDE 开发,可以再执行一条命令,为仓库生成 IntelliJ 配置文件,这样能直接把 flutter 主目录作为工程打开、在 IDE 内运行 examples:
flutter ide-config --overwrite使用其他 IDE 可以跳过这一步,它不影响flutter run验证。
用 examples 验证安装
前置步骤都完成后,用仓库自带的 example 项目做一次真实运行,这是文档指定的"see if your setup works"验证方式。
主路径:examples/hello_world
前提:有一个运行中的模拟器,或一台通过 USB 连接、已开启调试的设备。
cd examples/hello_world flutter runexamples/hello_world/lib/main.dart存在,属于有默认入口的标准 example,直接flutter run即可。程序按你连接的模拟器/设备启动并展示 hello world 界面,就说明环境链路(工具、依赖、设备连接)是通的。
可选分支:指定入口文件运行 example
某些 example 目录没有lib/main.dart,需要-t参数指定要运行的 Dart 文件。文档给出的例子是examples/layers目录下的widgets/spinning_square.dart:在该目录下、连接了 Android 设备时执行:
cd examples/layers flutter run -t widgets/spinning_square.dart这一分支只是演示-t的用法,不是主路径的必要步骤。
验证结果与常见失败判断
把文档中给出的判断方法集中列一下:
which adb没有合理输出:Android platform tools 安装或 PATH 问题,回到前置要求一节处理;git remote -v中缺少upstream或origin指向不对:remote 配置没做全,按上一节第 2、4、5 步补;- 运行 examples 时出现版本求解错误:你执行的
flutter不是本仓库bin里的那份,检查 PATH 中是否有其他 Flutter SDK 抢先命中; flutter update-packages版本求解失败:先git fetch upstream更新源码再重试。
文档没有给出flutter run的固定成功日志,因此不要以特定输出内容作为判定标准,以应用能否在模拟器/设备上正常启动为准。
下一步
环境验证通过后,Framework 开发环境文档 列出的后续阅读方向:
- The flutter tool:了解
flutter命令行工具的工作原理; - Style guide for Flutter repo:Flutter 仓库代码风格;
- Tree hygiene:如何提交补丁;
- Signing commits:配置提交签名。
【免费下载链接】flutterFlutter makes it easy and fast to build beautiful apps for mobile and beyond项目地址: https://gitcode.com/GitHub_Trending/flutter41/flutter
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考