Implementieren Sie den Test-Harness-Modus

Der Test Harness Mode ist eine in Android 10 hinzugefügte Funktion für Drittanbieter-App-Entwickler, die ein Gerät oder eine Geräteflotte automatisieren möchten. Die Funktion bietet eine Methode zum Löschen aller Benutzerdaten auf einem Android-Gerät, zum Beibehalten von ADB-Schlüsseln und zum Überspringen aller Ersteinrichtungsbildschirme. Dadurch kann der Benutzer direkt nach dem Start einen UI-Test durchführen, ohne dass eine manuelle Interaktion erforderlich ist.

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 im Setup-Assistenten), die UI-Tests unterbrechen würden oder eine manuelle Interaktion erfordern würden.

Implementierung

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

Die Standardimplementierung des Test Harness-Modus verwendet denselben Speichermechanismus wie den Werksreset-Schutz, um die ADB-Schlüssel vorübergehend in einer dauerhaften Partition zu speichern. Wenn auf dem Testgerät bereits eine persistente Partition mit Werksreset-Schutz implementiert ist, ist zur Unterstützung der Funktion kaum oder gar keine Arbeit erforderlich.

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

Überprüfen Sie den Status des Testkabelbaummodus

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

Führen Sie den Test-Kabelbaummodus aus

Durch die Aktivierung des Test-Harness-Modus werden alle Daten vom Gerät gelöscht und das Gerät zum Testen eingerichtet. Das bedeutet, dass alle Teile des Geräts, die den Test beeinträchtigen könnten (z. B. automatische Synchronisierung von Konten, Paketüberprüfung und automatische Updates), standardmäßig deaktiviert sind, der Benutzer sie jedoch wieder aktivieren kann.

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

adb shell cmd testharness enable