Test-Harnischmodus implementieren

Der Test-Harness-Modus ist eine Funktion, die in Android 10 für App-Entwickler von Drittanbietern hinzugefügt wurde, die ein Gerät oder eine Geräteflotte 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() den Wert true zurück.

Test-Harnischmodus ausführen

Wenn Sie den Test-Harnischmodus aktivieren, werden alle Daten auf dem Gerät gelöscht und das Gerät für Tests eingerichtet. Das bedeutet, dass alle Teile des Geräts, die die Tests beeinträchtigen könnten, standardmäßig deaktiviert sind, z. B. die automatische Synchronisierung von Konten, die Paketüberprüfung und automatische Updates. Der Nutzer kann sie jedoch wieder aktivieren.

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

adb shell cmd testharness enable