Flutter Engine编译和源码阅读


Flutter Engine的编译以及源码阅读其实挺简单的,只要按照官方文档的步骤来,一般都不会有什么问题.这里记录一下编译的流程,以及源码查看的一些配置和问题.

下载

  1. 下载depot_tools,并配置环境

    git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    
    export PATH=/path/to/depot_tools:$PATH
  1. Fork https://github.com/flutter/engine 到自己的账号下

  2. 根目录创建.gclient文件

    solutions = [
      {
        "managed": False,
        "name": "src/flutter",
        "url": "git@github.com:<your_name_here>/engine.git",
        "custom_deps": {},
        "deps_file": "DEPS",
        "safesync_url": "",
      },
    ]
  3. 执行 gclient sync

  4. 通过cd src/flutter进入flutter目录下,并执行git remote add upstream git@github.com:flutter/engine.git关联仓库

编译(Android)

  1. src/flutter下执行git pull upstream master同步最新代码
  2. gclient sync更新依赖
  3. ./flutter/tools/gn --android --unoptimized --android-cpu=arm64 生成构建文件
  4. ninja -C out/android_debug_unopt_arm64 编译

VSCode 配置

  • C/CPP

    编译完成之后,在out文件下会生成一个compile_commands.json,将这个文件添加到c_cpp_properties.json配置文件中

  • Java

    安装两个插件vscjava.vscode-java-packvscjava.vscode-java-dependency

    配置JDK,但是目前要求版本最低为JDK11

问题以及解决办法

  • C/CPP代码头文件总是报错,显示红色波浪线

    VSCODE c/cpp问题修复


文章作者: 姜康
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 姜康 !
评论
 上一篇
C++11中的Lambda C++11中的Lambda
C++ 11 中支持了Lambda,然后C++14, C++20中又有所增加. 本着实用的目的,这里就简单的说下C++11中Lambda的基本用法. 语法有以下几种形式: [ captures ] ( params ) -> ret { b
2020-12-08
下一篇 
C++11中的std::function C++11中的std::function
先来看一个例子: #include <iostream> std::function<int(int, int)> func; int add(int a, int b) { return a + b; } aut
2020-12-06
  目录