Implémentation du mode faisceau de test

Test Harness Mode est une fonctionnalité ajoutée dans Android 10 pour les développeurs d'applications tierces qui souhaitent automatiser un appareil ou une flotte d'appareils. La fonctionnalité fournit une méthode pour effacer toutes les données utilisateur sur un appareil Android, conserver les clés ADB et ignorer tous les écrans de configuration initiale. Cela permet à l'utilisateur d'exécuter un test d'interface utilisateur immédiatement après le démarrage sans aucune interaction manuelle.

Personnalisation

Vous pouvez déterminer si un appareil est en mode Test Harness en vérifiant ActivityManager.isRunningInUserTestHarness() . Gardez les personnalisations au minimum; limitez-vous à des choses comme ignorer les écrans de configuration (sur le clavier ou l'assistant de configuration) qui interrompraient les tests de l'interface utilisateur ou nécessiteraient une interaction manuelle.

Mise en œuvre

L'implémentation par défaut de PersistentDataBlockManagerInternal est dans PersistentDataBlockService . Test Harness Mode est implémenté dans TestHarnessModeService .

L'implémentation par défaut du mode Test Harness utilise le même mécanisme de stockage que la protection contre les réinitialisations d'usine pour stocker temporairement les clés ADB dans une partition persistante. Si une partition persistante avec Factory Reset Protection est déjà implémentée sur le périphérique de test, peu ou pas de travail est nécessaire pour prendre en charge la fonctionnalité.

Les OEM qui n'ont pas configuré de partition persistante doivent implémenter PersistentDataBlockManagerInternal avant d'exécuter TestHarnessModeService .

Vérification de l'état du mode de test du faisceau

Lorsque le mode Test Harness est activé, ActivityManager.isRunningInUserTestHarness() renvoie true .

Exécution du mode de harnais de test

L'activation du mode Test Harness efface toutes les données de l'appareil et configure l'appareil pour les tests. Cela signifie que toutes les parties de l'appareil susceptibles d'interférer avec les tests (telles que la synchronisation automatique des comptes, la vérification des packages et les mises à jour automatiques) sont toutes désactivées par défaut, mais peuvent être réactivées par l'utilisateur.

Exécutez la commande adb pour activer le mode Test Harness :

adb shell cmd testharness enable