Der Test-Harnessmodus ist eine Funktion, die Android 10 für Entwickler von Drittanbieter-Apps hinzugefügt wurde, die ein Gerät oder einen Gerätepool automatisieren möchten. Mit dieser Funktion können alle Nutzerdaten auf einem Android-Gerät gelöscht, ADB-Schlüssel beibehalten und alle Bildschirme für die Ersteinrichtung übersprungen werden. So kann der Nutzer direkt nach dem Start einen UI-Test ausführen, ohne manuell eingreifen zu müssen.
Personalisierung
Ob sich ein Gerät im Test-Harnischmodus befindet, kannst du anhand von ActivityManager.isRunningInUserTestHarness()
feststellen. Beschränken Sie Anpassungen auf ein Minimum. Sie sollten beispielsweise keine Einrichtungsbildschirme überspringen (auf der Tastatur oder im Einrichtungsassistenten), da dies UI-Tests beeinträchtigen oder manuelle Interaktionen erfordern würde.
Implementierung
Die Standardimplementierung von PersistentDataBlockManagerInternal
befindet sich in PersistentDataBlockService
.
Der Test-Harnischmodus ist in TestHarnessModeService
implementiert.
Die Standardimplementierung des Test-Harness-Modus verwendet denselben Speichermechanismus wie der Schutz vor dem Zurücksetzen auf die Werkseinstellungen, um die ADB-Schlüssel vorübergehend in einer persistenten Partition zu speichern. Wenn auf dem Testgerät bereits eine persistente Partition mit Schutz vor dem Zurücksetzen auf die Werkseinstellungen implementiert ist, sind nur wenige oder gar keine Maßnahmen zur Unterstützung der Funktion erforderlich.
OEMs, die keine persistente Partition eingerichtet haben, müssen PersistentDataBlockManagerInternal
implementieren, bevor sie TestHarnessModeService
ausführen.
Status des Test-Harnischmodus prüfen
Wenn der Test-Harnischmodus aktiviert ist, gibt ActivityManager.isRunningInUserTestHarness()
true
zurück.
Test-Harnischmodus ausführen
Wenn Sie den Test-Harnessmodus aktivieren, werden alle Daten vom Gerät gelöscht und es wird für Testzwecke eingerichtet. Das bedeutet, dass alle Teile des Geräts, die die Tests beeinträchtigen könnten (z. B. automatische Synchronisierung von Konten, Paketüberprüfung und automatische Updates), standardmäßig deaktiviert sind, aber der Nutzer sie wieder aktivieren kann.
Führen Sie den Befehl adb
aus, um den Test-Harnischmodus zu aktivieren:
adb shell cmd testharness enable