Flutter Engine

作者: iOS小洁 | 来源:发表于2022-12-23 22:18 被阅读0次

Engine安装

工具:

1、下载Chromium提供的部署工具depo_tools

git clone https://chromium.googlesource.com/chromium/tools/depot_tools

2、配置depo_tools的环境变量

open ~/.bash_profile

export PATH=/opt/depot_tool/:$PATH

3、安装ant编译工具

brew install ant

下载引擎

1、新建目录

mkdir engine

2、创建gclien文件。

flutter/engine需要通过gclient工具获取,因为engine有很多依赖,gclient可以很好地处理这些依赖,简化源码管理流程。

touch .gclient

3、配置文件

solutions = [
  {
    "managed": False,
    "name": "src/flutter", //指定仓库的存放位置
    "url": "git@github.com:flutter/engine.git@6bc433c6b6b5b98dcf4cc11aff31cdee90849f32", //制定将要下载的仓库地址,最好fork一份到自己仓库
    "custom_deps": {},
    "deps_file": "DEPS", // 指定存放第三方依赖的文件名。
    "safesync_url": "",
  },
]

4、在.gclient 文件所在的目录执行 sync

gclient sync

5、成功后src/flutter中的部分目录结构

├── assets  #资源读取
├── common  #公共逻辑
├── flow  #渲染管道相关逻辑
├── flutter_frontend_server  #Dart构建相关逻辑
├── fml   #消息循环相关逻辑
├── lib   #Dart Runtime及渲染和Web相关逻辑
├── runtime  #Dart Runtime相关逻辑
├── shell
    ├──platform
        ├──android  #Android Embedder相关逻辑
        ├──common #Embedder公共逻辑
├── sky
├── testing  #测试相关
├── third_party

编译引擎代码

1、构建。此处./gn文件目录“engine/src/flutter/tools/gn”

不要直接使用gn命令,因为会使用depot_toolsde gn工具

# 构建iOS设备使用引擎
# 真机debug
./gn --ios --unoptimized
# 真机release
./gn --ios --unoptimized --runtime-mode=release 
# 模拟器版本
./gn --ios --simulator --unoptimized
# 主机端(Mac)构建
./gn --unoptimized

2、编译

ninja -C host_debug_unopt && ninja -C ios_debug_sim_unopt && ninja -C ios_debug_unopt && ninja -C ios_release_unopt

配置项目代码

iOS工程。在iOS工程中找到Generated.xcconfig文件,在里面添加两个环境变量

FLUTTER_ENGINE= ${引擎代码路径}/engine/src 
LOCAL_ENGINE=ios_debug_sim_unopt  # 使用引擎对应的版本

相关文章

网友评论

    本文标题:Flutter Engine

    本文链接:https://www.haomeiwen.com/subject/tpkbqdtx.html