Чтобы понять этот раздел, сначала изучите Tradefed @Option .
Типичные параметры Tradefed позволяют тестовым классам получать дополнительную информацию из XML-конфигурации или командной строки. Эта функция позволяет сделать ещё один шаг и при необходимости получить доступ к этой дополнительной информации.
Пример параметра файла
Пример файла @option:
@Option(name = 'config-file')
private File mConfigFile;
Вышеуказанное можно настроить с помощью конфигурации XML:
<option name="config-file" value="/tmp/file" />
или через команду:
--config-file /tmp/file
Описание
Эта функция позволяет вам преобразовывать @Options, типизированные как файлы, удаленные в локальный файл, делая их легкодоступными с точки зрения пользователя.
Для этого необходимо указать путь к файлу с удалённым стилем . Например:
--config-file gs://bucket/tmp/file
 Этот путь указывает на файл в контейнере Google Cloud Storage (GCS), где он хранится. Tradefed, обнаружив этот удалённый путь, попытается загрузить файл локально и назначить его параметру @Option. В результате переменная mConfigFile теперь указывает на локальную версию файла, которую можно использовать в тесте.
 Если по какой-либо причине удалённый файл не может быть загружен, Tradefed выдаст исключение ConfigurationException , которое предотвратит запуск теста. Мы считаем отсутствие этих файлов критическим сбоем, поскольку некоторые тестовые артефакты также будут отсутствовать.
Использовать параметры запроса
 Добавление параметров запроса к URL-адресу возможно с помощью ? . Например, gs://bucket/path?unzip=true . Пара ключ/значение unzip=true будет доступна в реализации интерфейса IRemoteFileResolver .
Доступны два встроенных варианта поведения:
-  unzip: Если установлено значение trueи загруженный файл представляет собой ZIP-архив, он будет автоматически распакован во временную папку. Пример:?unzip=true
-  Необязательно: по умолчанию — false. Если установлено значениеtrueи разрешение не удалось, исключение не будет сгенерировано, и файл просто не будет заменен. Пример:?optional=true
 Вы также можете передавать глобальные аргументы запроса через --dynamic-download-args key=value , который передаст ключ/значение всем динамическим загрузкам, предпринятым при вызове.
Поддерживаемые протоколы
Официально поддерживаемые протоколы и соответствующие им форматы:
-  Google Cloud Storage, протокол: gs, формат:gs://<bucket name>/path
-  Локальные файлы, протокол: file, формат:file:/local/path
-  http-ссылки, протокол: http, формат:http://url
-  https-ссылки, протокол: https, формат:https://url
Ограничения
Динамическое разрешение @Option в настоящее время поддерживает лишь ограниченное количество протоколов и мест загрузки. Разрешение @Option в настоящее время включено только для основной конфигурации XML Tradefed.
 При запуске в составе набора текущие модули ( AndroidTest.xml ) по умолчанию не разрешают файлы. Это сделано для того, чтобы предотвратить создание модулями неизвестных зависимостей . Этого можно избежать, используя --enable-module-dynamic-download на уровне набора, но основные наборы, такие как Compatibility Test Suite (CTS) и Vendor Test Suite (VTS), не включают эту функцию.
Внедрить новый протокол
 Поддерживаемые протоколы имеют реализацию интерфейса IRemoteFileResolver в Tradefed, который определяет короткий тег протокола, который будет сопоставляться в пути к файлу через getSupportedProtocol . Например, gs используется для протокола Google Cloud Storage. Рекомендуемый интерфейс для реализации — #resolveRemoteFiles(RemoteFileResolverArgs) , который будет поддерживаться в долгосрочной перспективе.
Реализованные протоколы можно добавить в файл служб META-INF для официального включения поддержки.
