构建适用于 Android 的 Firefox

第一步,您需要使用说明此处设置您的开发环境。

在构建之前,请设置 Java 安装路径和 Android SDK 路径

macOS

export JAVA_HOME=$HOME/.mozbuild/jdk/jdk-<latest-version>/Contents/Home
export ANDROID_HOME=$HOME/.mozbuild/android-sdk-<os_name>

非 macOS

export JAVA_HOME=$HOME/.mozbuild/jdk/jdk-<latest-version>
export ANDROID_HOME=$HOME/.mozbuild/android-sdk-<os_name>

使用命令行构建 Fenix

从根目录 mozilla-central 构建 Fenix

./mach gradle clean fenix:assembleDebug

然后,您可以在 objdir 下的 gradle/build/mobile/android/fenix/outputs/apk/fenix/debug 中找到生成的调试 apk 文件。

要使用您的调试密钥自动签署发布版本,请将以下内容添加到 <proj-root>/local.properties

autosignReleaseWithDebugKey

使用命令行运行 Fenix 或其他 Android 项目

您可以运行以下命令来启动模拟器并安装和运行 Fenix

./mach run --app=fenix

运行 Fenix 测试

您可以通过 Android Studio 中的所有常规途径运行测试。

  • 对于单个测试文件,点击顶部的绿色播放按钮。

  • 对于模块/组件

    • 在项目资源管理器中右键单击 → 运行所有测试。

    • 从 Gradle 任务窗口中选择。

如果您看到错误“未收到测试事件”,请检查您的顶级文件夹 - 如果您尝试从 mozilla-unified/mobile/android/fenix/ 中的 Android 组件运行测试,则会出现此错误。要为 Android 组件构建测试,您需要使用 build.gradle 文件,该文件位于 mozilla-unified/mobile/android/android-components/ 中。

或者,您可以使用命令行运行测试,例如:

  • ./mach test <file-name> 运行文件中的所有测试。

  • ./mach test <directory-name> 运行目录中的所有测试。

  • ./mach test {fenix,focus,ac,android-components,geckoview} 运行特定项目中的所有测试。

如果您在 Android 设备上运行测试后无法再长按,这是因为连接的 Android 测试会干扰手机的辅助功能设置。它们将长按延迟设置为 3 秒,这时间太长了。要解决此问题,请转到设置 → 辅助功能 → 触控并按住延迟,并将此设置重置为默认值或短时间(取决于制造商)。

Lint

您可以运行以下命令来验证您的代码格式是否正确。

  • ./mach lint -l android-fenix 检查 fenix 目录中所做的更改。

  • ./mach lint -l android-focus 检查 focus 目录中所做的更改。

  • ./mach lint -l android-ac 检查 android-components 目录中所做的更改。

您可以通过运行 ./mach lint --list 找到更多 linter。您可以传递额外的参数 --fix 来自动修复某些类型的报告问题。

预设 Try

建议在提交补丁之前运行您的测试。您可以使用 Mozilla 的 try 服务器来执行此操作。以下命令将确保根据所做的更改运行所有必要的测试。

  • ./mach try --preset fenix - 将运行 Fenix 测试套件。

  • ./mach try --preset firefox-android - 将运行 AC 和 Fenix 测试套件。

  • ./mach try --preset android-geckoview - 将运行 GeckoView 测试套件。

try 上的错误将以橙色突出显示测试名称的方式显示。选择测试以了解更多信息。由于测试工具的问题,偶尔会出现间歇性错误。重新触发测试是确认它是间歇性错误而不是由补丁引起的的好方法。通常,对于已记录的间歇性错误,还会有一个错误编号以及堆栈跟踪的一部分。