在运行 Espresso 测试套件之前,如何更改设备或模拟器的辅助功能设置?
我的目标是使用 Spoon 在各种不同的辅助功能文本缩放级别捕获应用程序屏幕截图,以快速验证布局是否正确;而不是手动验证每个缩放级别。
您可以根据需要将这些adb shell 命令作为测试的一部分或在调用测试之前运行的脚本中运行。
adb shell settings put system font_scale 1.0
adb shell wm density <n>
设置字体大小很容易: 字体比例的可能值:
- 小 - 0.85
- 默认值 - 1.0
- 大 - 1.15
- 最大 - 1.30
设置设备密度更为复杂。您可以使用标准比例因子来表示密度,也可以选择自定义比例因子:
- 小(比例:0.85)
- 默认值(比例:1.00)
- 大型(比例:1.1)
- 较大(比例:1.2)
- 最大(在某些设备上未丢失,比例:1.3)
例如,让我们看一下Pixel 3。
> adb shell wm density
Physical density: 440
Override density: 572
此设备的屏幕密度已调高到最大。让我们将其设置为"小"密度。
(默认密度)* (比例因子)= n 440 x .85 = 374
因此,将设备密度设置为"小"的adb命令是
> adb shell wm density 374
> adb shell wm density
Physical density: 440
Override density: 374
如果我们想在不进行任何计算的情况下将其重置为默认密度,一个方便的快捷方式是
adb shell wm density reset
由于不同设备的默认/本机密度数字不同,因此必须首先检索默认密度,然后将其乘以比例因子以计算目标密度。
这是我在 https://alexzh.com/adb-commands-accessibility/#display-size 找到的信息摘要
对于测试级别,您可以使用自定义测试规则在使用 UiAutomator 框架运行测试之前更改字体设置。
对于套件级别,您可以在运行测试套件之前(在 gradle 命令之前)使用 adb 命令更改设备上的设置。
adb shell am start com.android.settings/.Settings
然后使用这些键事件转到哪个设置和更改设置