Test-Harnischmodus implementieren

Der Test Harness-Modus ist eine Funktion, die in Android 10 für Drittanbieter-App-Entwickler eingeführt 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 werden, ohne dass ADB-Schlüssel entfernt werden. Außerdem werden alle Einrichtungsbildschirme übersprungen. So kann der Nutzer einen UI-Test direkt nach dem Start ohne manuelle Interaktion ausführen.

Personalisierung

Ob sich ein Gerät im Test-Harnischmodus befindet, können Sie anhand von ActivityManager.isRunningInUserTestHarness() feststellen. Halten Sie Anpassungen auf ein Minimum beschränkt. Beschränken Sie sie auf Dinge wie das Überspringen von Einrichtungsbildschirmen (auf der Tastatur oder im Einrichtungsassistenten), die UI-Tests unterbrechen oder manuelle Interaktion erfordern.

Implementierung

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

Bei der Standardimplementierung des Test Harness-Modus wird derselbe Speichermechanismus wie beim Schutz vor dem Zurücksetzen auf die Werkseinstellungen verwendet, um die ADB-Schlüssel vorübergehend in einer persistenten Partition zu speichern. Wenn auf dem Testgerät bereits eine persistente Partition mit Schutz für zurückgesetzte Geräte implementiert ist, ist nur wenig oder gar kein Aufwand erforderlich, um die Funktion zu unterstützen.

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 vom Gerät gelöscht und das Gerät wird für Tests eingerichtet. Das bedeutet, dass alle Teile des Geräts, die die Tests beeinträchtigen könnten (z. B. die automatische Synchronisierung von Konten, die Paketüberprüfung und automatische Updates), standardmäßig deaktiviert sind. 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