返回

在 Android 设备上编译和调试 Flutter Engine

Android

如何在 Android 设备上编译和调试 Flutter Engine

Flutter 是一种用于创建跨平台移动应用程序的开源框架。Flutter Engine 是 Flutter 的核心组件,提供应用程序运行所需的基础架构。在本文中,我们将分步指导您如何在 Android 设备上编译和调试 Flutter Engine。

前提条件

  • 运行 Android 10 或更高版本的 Android 设备
  • 搭载 macOS、Windows 或 Linux 的计算机
  • Android Studio
  • Gradle
  • depot_tools
  • lldb

步骤 1:下载 Flutter Engine 源代码

从 Chromium 存储库下载 Flutter Engine 源代码:

git clone https://chromium.googlesource.com/flutter/engine

步骤 2:配置 Flutter Engine

设置工具链环境变量:

export PATH=$PATH:/path/to/depot_tools
export ANDROID_SDK_ROOT=/path/to/android_sdk
export ANDROID_NDK_ROOT=/path/to/android_ndk

在 Android Studio 中创建一个新的 Flutter 项目。

步骤 3:配置 Android 项目

AndroidManifest.xml 中启用嵌入式视图:

<meta-data android:name="io.flutter.embedded_views_preview" android:value="true" />

build.gradle 中添加 Flutter 嵌入依赖项:

dependencies {
    implementation project(':flutter_embedding')
}

MainActivity.java 中扩展 FlutterActivity:

import io.flutter.embedding.android.FlutterActivity;

public class MainActivity extends FlutterActivity {
}

strings.xml 中设置应用程序名称:

<string name="app_name">My Flutter App</string>

步骤 4:编译 Flutter Engine

在 Flutter Engine 目录中运行以下命令:

./build/gn --android --unopt
ninja -C out/android_debug

步骤 5:调试 Flutter Engine

将 Android 设备连接到计算机并启用 USB 调试。在 Flutter Engine 目录中启动 lldb:

lldb -b out/android_debug/flutter_engine

连接到 Android 设备:

platform connect android:debug-socket=/data/local/tmp/debugger-socket

设置断点:

breakpoint set --name MyBreakpoint --file path/to/file.cc --line 123

运行 Flutter Engine:

run

使用 lldb 命令调试:

continue
next
step
print variable_name

结论

本指南提供了如何在 Android 设备上编译和调试 Flutter Engine 的分步说明。使用此知识,您可以开发和调试复杂的 Flutter 应用程序。

常见问题解答

  • 问:我无法编译 Flutter Engine。
    • 答:确保已正确设置工具链环境变量并安装了所有必需的依赖项。
  • 问:调试器无法连接到我的设备。
    • 答:确保已启用 USB 调试并使用正确的调试套接字连接。
  • 问:我无法设置断点。
    • 答:检查文件和行号是否正确,并且您已使用正确的命令设置断点。
  • 问:我无法打印变量。
    • 答:确保变量在当前作用域中可用,并且您使用正确的变量名称。
  • 问:调试时我收到错误。
    • 答:仔细检查错误消息并查看相关文档以获得更多信息。