美文网首页Flutter圈子
Flutter engine构建

Flutter engine构建

作者: sssong_2017 | 来源:发表于2018-10-17 18:07 被阅读45次

    在Flutter官方只提供了4中CPU架构的so库,armeabi-v7a、arm64-v8a、x86和x86-64,其中x86系列只支持Debug模式,没有提供armeabi架构的库,在目前多数app使用的大量sdk都只提供了armeabi架构的库,因此开发者想到的一种方案是对engine进行修改构建。

    准备工作:

    操作系统,IDE,git等这些就不说了,重点安装下depot_tools(git的扩展)

    以mac为例:

    下载

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

    配置depot_tools环境变量 

    $ export PATH=$PATH:/你的下载目录/depot_tools

    获取源码和配置环境

    1  新建文件目录,建议命名engine,在engine目录下创建 .gclient文件,如下配置编辑到.gclient里

    其中<your_name_here> 用你的 GitHub账号名称

    2  cd engine

    3  gclient sync (这个命令获取flutter依赖的源码,它会自动运行git clone和其他命令)

    4  cd src/flutter(其中src/flutter文件是通过gclient syn命令生成的)

    5  git remote add upstream git@github.com:flutter/engine.git

    6 cd ..

    7 brew install ant 

    构建和运行代码

    Android (cross-compiling交叉编译)

    以下命名没有特别说明 当前目录是src

    1 git pull upstream master ( 进入src/flutter更新flutter engine)

    2 gclinet sync

    3 准备构建文件

    ./flutter/tools/gn --android --unoptimized   (为device-side executables)

    ./flutter/tools/gn --android --android-cpu x86 --unoptimized     (为 x86模拟器)

    ./flutter/tools/gn --android --android-cpu x64 --unoptimized ( 为x64 模拟器)

    ./flutter/tools/gn --unoptimized (为host-side executables)

    4 构建可执行文件

    ninja -C out/android_debug_unopt   (为device-side executables)

    ninja -C out/android_debug_unopt_x86(为 x86模拟器)

    ninja -C out/android_debug_unopt_x64 ( 为x64 模拟器)

    ninja -C out/host_debug_unopt (为host-side executables)

    这些命令可以组合,比如 ninja -C out/android_debug_unopt && ninja -C out/host_debug_unopt

    编译完成后可以在 out/android_debug_unopt 一系列目录下找到 flutter.jar文件

    修改源码构建支持arm架构参考 https://github.com/flutter/engine/wiki/Android-Builds-Supporting-armeabi

    官方文章:https://github.com/flutter/engine/blob/master/CONTRIBUTING.md

    相关文章

      网友评论

        本文标题:Flutter engine构建

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