要想完全的了解flutter引擎的内容,需要自行编译做调试跟进。
核心参考 965K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6u0L8i4m8S2j5%4c8Q4x3X3c8u0i4K6u0r3M7X3g2r3L8s2g2@1N6r3g2J5i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2K9h3&6Q4x3V1k6Q4x3X3g2Y4K9i4c8Z5N6h3u0Q4x3V1k6%4L8%4u0C8k6X3I4G2N6%4y4Q4x3V1k6E0j5h3W2F1i4K6u0W2P5h3#2D9
这个 github action 配置文件
为了这次编译我完全开了一个新的ubuntu18的虚拟机。下面开干。
![](upload/attach/202205/832784_5PDNS5T7HMASU8R.png)
depot_tools 谷歌的包管理工具,可以管理多个git项目。重点就是可以断点续传,避免拉一半消失。
配置环境变量使gclient命令生效
底部新增一行
配置生效
这一步我们使用gclient来拉取仓库
新建文件夹
新建配置文件填写gclient配置
写入配置
方便同步 可以fork一份到自己仓库 配置ssh密钥
参考 5f0K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1L8r3!0Y4i4K6u0W2j5%4y4V1L8W2)9J5k6h3&6W2N6q4)9J5c8Y4q4I4i4K6g2X3x3K6j5J5y4K6f1%4x3K6c8Q4x3V1k6S2M7Y4c8A6j5$3I4W2i4K6u0r3k6r3g2@1j5h3W2D9M7#2)9J5c8U0M7^5z5o6M7%4z5o6f1I4
修改前面的git仓库路径为自己的
开始同步
需要等很久 打开网络流量监控看下
![](upload/attach/202205/832784_AB2AUUEA5HP3REY.png)
同步完成切换分支 先去看本地的flutter版本
你的flutter环境下的 /flutter/bin/internal/engine.version可以找到
比如我的 57d3bac3dd5cb5b0e464ab70e7bc8a0d8cf083ab
097K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3L8s2g2@1N6r3g2J5i4K6u0r3k6h3&6Y4K9h3&6W2i4K6u0r3N6s2u0W2k6g2)9J5c8U0f1%4k6o6y4T1j5h3x3K6k6r3b7#2j5$3t1#2j5U0m8W2y4o6j5@1j5h3t1%4x3r3f1%4j5X3x3^5j5e0m8V1z5r3y4X3x3o6R3K6j5h3t1`.
查看当前commitid
确认开始同步
又是漫长的等待同步完成
编译预配置
只编译安卓
具体的编译参数看官方文档
db1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3L8s2g2@1N6r3g2J5i4K6u0r3k6X3I4#2N6s2c8W2M7W2)9J5c8Y4N6A6K9$3W2Q4x3V1k6o6L8$3#2H3K9h3I4A6L8X3N6Q4x3X3c8@1K9r3g2Q4x3X3c8W2L8X3N6A6L8X3g2Q4x3U0y4U0L8$3#2H3K9h3I4A6L8X3N6Q4x3X3c8X3L8%4u0Q4x3X3c8S2L8X3c8J5L8$3W2V1i4K6u0V1k6Y4u0G2L8g2)9J5k6r3#2S2j5$3!0K6i4K6u0V1L8%4u0Q4x3X3c8D9K9h3&6#2P5l9`.`.
开始编译 自行输出目录 是前面创建的输出目录
等待成功即可。
目标引擎版本 857bd6b74c5eb56151bfafe91e7fa6a82b6fee25
fatal: Could not parse object '857bd6b74c5eb56151bfafe91e7fa6a82b6fee25'.
先 进行 git pull 操作 更新git log找到该版本信息
开始同步
gclient sync --with_branch_heads --with_tags --verbose
git clone https:
/
/
chromium.googlesource.com
/
chromium
/
tools
/
depot_tools.git
git clone https:
/
/
chromium.googlesource.com
/
chromium
/
tools
/
depot_tools.git
gedit
/
etc
/
profile
export PATH
=
"$PATH:/home/nizz/work_space/flutter/depot_tools"
export PATH
=
"$PATH:/home/nizz/work_space/flutter/depot_tools"
source
/
etc
/
profile
mkdir engine_compile
cd engine_compile
mkdir engine_compile
cd engine_compile
touch .gclient
gedit .gclient
touch .gclient
gedit .gclient
solutions
=
[
{
"managed"
:
False
,
"name"
:
"src/flutter"
,
"url"
:
"git@github.com:flutter/engine.git"
,
"custom_deps"
: {},
"deps_file"
:
"DEPS"
,
"safesync_url"
: "",
},]
solutions
=
[
{
"managed"
:
False
,
"name"
:
"src/flutter"
,
"url"
:
"git@github.com:flutter/engine.git"
,
"custom_deps"
: {},
"deps_file"
:
"DEPS"
,
"safesync_url"
: "",
},]
gclient sync
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2022-11-24 11:12
被小黄鸭爱学习编辑
,原因: