A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Trabalhar com dispositivos no TF
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A Trade Federation usa uma abstração chamada
ITestDevice
para
executar testes. Essa abstração objetiva o dispositivo Android de menor denominador comum:
- Ele tem um número de série
- Ele tem um estado: on-line, disponível, recuperação ou indisponível.
- Ele tem alguma noção de confiabilidade. Por exemplo, se executarmos um comando, podemos diferenciar
entre o caso em que o comando ainda não foi concluído, o caso em que o dispositivo não oferece suporte
à execução de comandos e o caso em que o dispositivo não responde durante a execução do
comando.
Classes de dispositivos
As três implementações principais de ITestDevice
representam três casos de uso
comuns.
Dispositivo físico
É um hardware real conectado à máquina host do TF por USB ou usando
o recurso TCP do adb. A classe TestDevice fica sobre a biblioteca ddmlib, que é uma interface Java para adb. Portanto, qualquer
dispositivo físico listado em adb devices
pode ser instanciado e usado como um
TestDevice
.
Emulador
Os emuladores são processados de forma especial pelo TF porque eles ficam em outro processo. Para interagir com um
emulador, especifique o argumento --emulator
para o comando. Consulte
LocalSdkBuildProvider e
SdkAvdPreparer para mais informações.
Nenhum dispositivo
Suponha que você tenha um teste que não interage com um dispositivo. Por exemplo, ele pode fazer o download de um arquivo de algum serviço e verificar se ele é válido. O
NullDevice é um ITestDevice
que é apenas um stub. Ele tem um número de série como
null-device-N
, e a maioria das operações tentadas não é executada silenciosamente ou é descartada.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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."]]