Режим тестовой программы был добавлен в Android 10 для сторонних разработчиков приложений, которые хотят автоматизировать работу одного или нескольких устройств. Эта функция позволяет удалить все пользовательские данные на устройстве Android, сохранить ключи ADB и пропустить все экраны первоначальной настройки. Это позволяет пользователю запустить тест интерфейса сразу после запуска приложения без каких-либо действий вручную.
Настройка канала
Чтобы узнать, находится ли устройство в режиме с тестовой программой, проверьте значение ActivityManager.isRunningInUserTestHarness(). Сведите настройки к минимуму. Например, можно пропустить экраны настройки (на клавиатуре или в мастере настройки), которые могут нарушить работу тестов интерфейса или потребовать взаимодействия с пользователем.
Реализация
Реализация по умолчанию для PersistentDataBlockManagerInternal находится в PersistentDataBlockService.
Режим с тестовой программой реализован в TestHarnessModeService.
В реализации тестовой программы по умолчанию используется тот же механизм хранения, что и при защите после сброса настроек. Ключи adb временно хранятся в постоянном разделе. Если на тестируемом устройстве уже реализован постоянный раздел с защитой после сброса настроек, для поддержки этой функции потребуется минимум усилий.
Производителям, у которых нет постоянного раздела, необходимо реализовать PersistentDataBlockManagerInternal перед запуском TestHarnessModeService.
Как проверить статус режима с тестовой программой
Если включен режим с тестовой программой, функция "ActivityManager.isRunningInUserTestHarness()" возвращает значение "true".
Как запустить режим с тестовой программой
При включении режима тестовой программы все данные с устройства удаляются и оно настраивается для тестирования. Это означает, что все части устройства, которые могут помешать тестированию (например, аккаунты с автосинхронизацией, проверка пакетов и автоматические обновления), по умолчанию отключены, но пользователь может включить их снова.
Выполните команду adb, чтобы включить режим с тестовой программой:
adb shell cmd testharness enable