A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Lavorare con i dispositivi in TF
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Trade Federation utilizza un'astrazione chiamata
ITestDevice
per eseguire i test. Questa astrazione oggettivizza il dispositivo Android con il minimo comune denominatore:
- Ha un numero di serie
- Ha uno stato: Online, Disponibile, Recupero o Non disponibile
- Ha una certa idea di affidabilità. Ad esempio, se eseguiamo un comando, possiamo distinguere tra il caso in cui il comando non sia ancora terminato, il caso in cui il dispositivo non supporti l'esecuzione di comandi e il caso in cui il dispositivo non risponda durante l'esecuzione del comando.
Classi di dispositivi
Le tre implementazioni principali di ITestDevice
rappresentano tre use case comuni.
Dispositivo fisico
Si tratta di un vero e proprio hardware, collegato alla macchina host TF tramite USB o utilizzando la funzionalità TCP di adb. La classe TestDevice si basa sulla libreria ddmlib, che è un'interfaccia Java per adb. Pertanto, qualsiasi dispositivo fisico elencato in adb devices
può essere istanziato e utilizzato come TestDevice
.
Emulatore
Gli emulatori vengono gestiti in modo speciale da TF perché si trovano in un altro processo. Per interagire con un
emulatore, specifica l'argomento --emulator
per il comando. Per ulteriori informazioni, consulta
LocalSdkBuildProvider e
SdkAvdPreparer.
Nessun dispositivo
Supponiamo che tu abbia un test che non interagisce affatto con un dispositivo. Ad esempio, potrebbe semplicemente scaricare un file da un servizio e verificare che il file stesso sia valido. NullDevice è un ITestDevice
che è solo uno stub. Ha un numero di serie come
null-device-N
e la maggior parte delle operazioni tentate non viene eseguita in silenzio o genera un errore.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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."]]