编译一个Flutter Engine并运行flutter应用

command

Posted by MetaNetworks on September 18, 2022
本页面总访问量

编译一个自定义fluter engine

官方文档地址Github

但是其并没有叙述如何针对具体某个版本定制engine

找到flutter当前版本对应的engine版本

是一个commit-id.

1
2
3
4
5
# 3.3.1

cat $FLUTTER_REPO/bin/internal/engine.version

> 3efdf03e73dd352873fc5a7e1c0de04e52863b3a

环境准备

GClient

下载一个gclientgoogleapis.com

网速较慢,可尝试其他不知名办法

拉取最新代码

分为两个部分:flutter engine源码 + dart sdk + clang等编译工具

为了加快源码拉取速度,可以终端配置set http_proxy/https_proxy/HTTP_PROXY/HTTPS_PROXY,以及在git中配置代理服务器git config --global http.proxy xxx来加快速度。

为了加快cipd-client拉取dart/buildtools速度,可以使用Proxifier软件,配置代理服务器,重定向不支持终端上配置的代理的软件。

编译

回到src目录,调用以下生成编译缓存。

1
python .\flutter\tools\gn --unoptimized

使用自定义engine编译/运行flutter代码

使用--local-engine定位到输出即可。

1
flutter run -d windows --local-engine="C:\projects\engine\src\out\host_debug_unopt"