Implementieren des Test-Harness-Modus

Der Test Harness Mode ist eine Funktion, die in Android 10 für Drittanbieter-App-Entwickler hinzugefügt wurde, die ein Gerät oder eine Flotte von Geräten automatisieren möchten. Die Funktion bietet eine Methode, um alle Benutzerdaten auf einem Android-Gerät zu löschen, ADB-Schlüssel beizubehalten und alle Ersteinrichtungsbildschirme zu überspringen. Dadurch kann der Benutzer sofort nach dem Start ohne manuelle Interaktion einen UI-Test ausführen.

Anpassung

Sie können feststellen, ob sich ein Gerät im Test Harness-Modus befindet, indem Sie ActivityManager.isRunningInUserTestHarness() überprüfen. Beschränken Sie Anpassungen auf ein Minimum; Beschränken Sie sich auf Dinge wie das Überspringen von Setup-Bildschirmen (auf der Tastatur oder dem Setup-Assistenten), die UI-Tests unterbrechen oder eine manuelle Interaktion erfordern würden.

Implementierung

Die Standardimplementierung von PersistentDataBlockManagerInternal befindet sich in PersistentDataBlockService . Der Test-Harness-Modus ist in TestHarnessModeService implementiert.

Die Standardimplementierung des Test Harness Mode verwendet denselben Speichermechanismus wie der Factory Reset Protection, um die ADB-Schlüssel vorübergehend in einer dauerhaften Partition zu speichern. Wenn auf dem Testgerät bereits eine persistente Partition mit Factory Reset Protection implementiert ist, ist wenig bis gar keine Arbeit erforderlich, um die Funktion zu unterstützen.

OEMs, die keine persistente Partition eingerichtet haben, müssen PersistentDataBlockManagerInternal implementieren, bevor sie TestHarnessModeService .

Prüfen des Status des Test-Harness-Modus

Wenn der Test-Harness-Modus aktiviert ist, gibt ActivityManager.isRunningInUserTestHarness() true zurück.

Test-Harness-Modus ausführen

Das Aktivieren des Test-Harness-Modus löscht alle Daten vom Gerät und richtet das Gerät zum Testen ein. Das bedeutet, dass alle Teile des Geräts, die das Testen beeinträchtigen könnten (z. B. automatische Synchronisierung von Konten, Paketüberprüfung und automatische Updates), standardmäßig deaktiviert sind, aber vom Benutzer wieder aktiviert werden können.

Führen Sie den adb -Befehl aus, um den Test-Harness-Modus zu aktivieren:

adb shell cmd testharness enable