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