Flutter Engine编译与应用介绍

2020-01-04  本文已影响0人  二休的歌

** 导语 **mac系统上进行flutter engine编译和应用的介绍


官方介绍

环境依赖准备

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install ant
brew install ninja
# flutter engine
172.217.160.112 storage.l.googleusercontent.com
172.217.160.112 commondatastorage.googleapis.com
172.217.160.68 googleapis.com
172.217.160.116 chrome-infra-packages.appspot.com
172.217.160.116 appspot-preview.l.google.com
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 
export PATH=$PATH:/yourpath/to/depot_tools //添加环境变量

<a name="Omhjf"></a>

源码下载

solutions = [
  {
    "managed": False,
    "name": "src/flutter",
    "url": "git@github.com:<your_name_here>/engine.git",
    "custom_deps": {},
    "deps_file": "DEPS",
    "safesync_url": "",
  },
]
cd engine
gclient sync  //拉取Flutter引擎所有依赖的关联库

编译源码

# 查看engine版本vim /path/to/flutter/bin/internal/engine.version
cd /path/to/engine/src/flutter
git reset --hard xxxxxxxxxxxxxxxxx
gclient sync -D --with_branch_heads --with_tags
cd engine/src  //进入src目录
./flutter/tools/gn --runtime-mode debug //生成Host编译产物存放文件
./flutter/tools/gn --android --runtime-mode debug //生成android编译产物存放文件
ninja -C out/host_debug -j 6
ninja -C out/android_debug -j 6

使用编译的engine

flutter create test_engine   //创建flutter工程
cd test_engine
flutter run --local-engine-src-path /path/to/engine/src --local-engine=android_debug
image.pngimage.png
cd engine/src
./flutter/tools/gn --android --android-cpu x64 --runtime-mode debug
ninja -C out/android_debug_x64 -j 6

使用方式,将 local-engine 或者 localEngineOut 指向 android_debug_x64<br />

image.pngimage.png <br />PS: 更多编译产物可以参考https://www.jianshu.com/p/ff84455fb451 编译产物小节

编辑源码

cd engine/src/flutter
ln -s ../out/compile_commands.json ./
image.pngimage.png image.pngimage.png image.pngimage.png <br />运行时如果出现安装卡住或者不生效可以尝试先stop再重新运行<br /> image.pngimage.png image.pngimage.png image.pngimage.png image.pngimage.png image.pngimage.png

参考链接

上一篇 下一篇

猜你喜欢

热点阅读