l10n 屏幕截图生成

此 Wiki 描述了在设备上生成 l10n 屏幕截图的步骤。

先决条件

您需要安装 Fastlane Screengrab 才能运行屏幕截图测试。确保所有依赖项也已安装。Gradle 依赖项和 screengrab 配置文件位于仓库的根文件夹中。

打开控制台,转到 Focus 文件夹,然后输入 export LC_ALL="en_US.UTF-8"。Fastlane 需要设置此值,否则测试将在某些语言环境中崩溃。

启用 行并禁用下面的行。确保已正确添加导入。 HostScreencapScreenshotStrategy 是为了在 Taskcluster 上生成屏幕截图而开发的,但目前未使用。为了拍摄设备屏幕截图,您需要 UiAutomatorScreenshotStrategy

构建

通过执行 ./gradlew assembleFocusArmDebug assembleFocusArmDebugAndroidTest 构建测试运行器和 apk。

配置 Screengrabfile

Screengrabfile 包含 Screengrab 执行的配置,包括语言环境列表。语言环境列表可以在以下位置找到:https://pontoon.mozilla.org/projects/focus-for-android/。确保 locales 数组是最新的。

请注意, clear_previous_screenshots 最初设置为 true,但如果您运行了测试并且少数语言环境失败,则应更新 locales 数组以仅包含失败的语言环境,并将此值设置为 false。这样,您就不会丢失成功的语言环境屏幕截图。

执行测试

确保设备已通过 USB 连接,然后运行 bundle exec fastlane screengrab run 命令。目前,这将花费大约 3 个小时才能遍历所有语言环境。

压缩输出

屏幕截图位于 fastlane/metadata/android 文件夹中。转到此文件夹,并调整图像大小以通过运行 find . -name "*.png" | xargs mogrify -resize 50% 来减小文件大小。

在 OS X 上,您可以使用 ImageOptim 进一步压缩文件大小。ImageOptim 存在一个 bug,即加载了太多文件,导致速度变慢并最终无法处理图像。为了规避此问题,可以在 android 文件夹上运行 find . -type f -iname \*png -print0 | xargs -0 -t -n 100 /Applications/ImageOptim.app/Contents/MacOS/ImageOptim 命令,它将只打开 100 个图像,关闭,然后用接下来的 100 个图像重新打开。

screenshots.html 重命名为 index.html。如果需要进行通用查看,则将屏幕截图上传到 https://github.com/npark-mozilla/npark-mozilla.github.io 仓库。或者,您可以选择上传到 Google 云端硬盘并共享链接。