A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Cómo trabajar con dispositivos en TF
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Trade Federation usa una abstracción llamada ITestDevice
para ejecutar pruebas. Esta abstracción objetiva el dispositivo Android de denominador común más bajo:
- Tiene un número de serie
- Tiene un estado: En línea, Disponible, Recuperación o No disponible.
- Tiene alguna noción de confiabilidad. Por ejemplo, si ejecutamos un comando, podemos diferenciar entre el caso en el que el comando aún no finalizó, el caso en el que el dispositivo no admite la ejecución de comandos y el caso en el que el dispositivo dejó de responder mientras se ejecutaba el comando.
Clases de dispositivos
Las tres implementaciones principales de ITestDevice
representan tres casos de uso
comunes.
Dispositivo físico
Es un hardware real que se conecta a la máquina host de TF por USB o con la función TCP de adb. La clase TestDevice se encuentra en la parte superior de la biblioteca ddmlib, que es una interfaz de Java para adb. Por lo tanto, se puede crear una instancia de cualquier dispositivo físico que aparezca en adb devices
y usarlo como TestDevice
.
Emulador
TF controla de forma especial los emuladores porque se encuentran en otro proceso. Para interactuar con un emulador, especifica el argumento --emulator
para el comando. Consulta LocalSdkBuildProvider y SdkAvdPreparer para obtener más información.
Ningún dispositivo seleccionado
Supongamos que tienes una prueba que no interactúa con ningún dispositivo. Por ejemplo, podría descargar un archivo de algún servicio y verificar que el archivo sea válido. NullDevice es un ITestDevice
que es solo un stub. Tiene un número de serie como null-device-N
, y la mayoría de las operaciones que se intentan no se realizan de forma silenciosa o se arrojan.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-27 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-27 (UTC)"],[],[],null,["# Work with devices in TF\n\nTrade Federation uses an abstraction called\n[ITestDevice](/reference/com/android/tradefed/device/ITestDevice) to\nrun tests. This abstraction objectifies the lowest-common-denominator Android device:\n\n- It has a serial number\n- It has a state: Online, Available, Recovery, or Not Available\n- It has some notion of reliability. For instance, if we run a command, we can differentiate between the case where the command hasn't finished yet, the case where the device doesn't support running commands, and the case where the device has become unresponsive while running the command.\n\nDevice classes\n--------------\n\nThe three primary implementations of `ITestDevice` represent three common\nusecases.\n\n### Physical device\n\nThis is an actual piece of hardware, connected to the TF host machine either by USB, or by using\nadb's TCP feature. The [TestDevice](/reference/com/android/tradefed/device/TestDevice) class sits atop the ddmlib library, which is a Java interface to adb. So any\nphysical device listed in `adb devices` can be instantiated and used as a\n`TestDevice`.\n\n### Emulator\n\nEmulators are handled specially by TF because they live in another process. To interact with an\nEmulator, specify the `--emulator` argument for the command. See\n[LocalSdkBuildProvider](/reference/com/android/tradefed/build/LocalSdkBuildProvider) and\n[SdkAvdPreparer](/reference/com/android/tradefed/targetprep/SdkAvdPreparer) for more info.\n\n### No device\n\nSuppose you have a test that doesn't interact with a device at all. For instance, it might just\ndownload a file from some service and verify that the file itself is valid. The\n[NullDevice](/reference/com/android/tradefed/device/NullDevice) is an `ITestDevice` that is just a stub. It has a serial number like\n`null-device-N`, and most attempted operations either no-op silently or throw."]]