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