Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Mit Geräten in TF arbeiten
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Trade Federation verwendet eine Abstraktion namens ITestDevice
, um Tests auszuführen. Diese Abstraktion objektiviert das Android-Gerät mit dem geringsten gemeinsamen Nenner:
- Es hat eine Seriennummer.
- Es hat einen Status: „Online“, „Verfügbar“, „Wiederherstellung“ oder „Nicht verfügbar“.
- Es gibt eine gewisse Vorstellung von Zuverlässigkeit. Wenn wir beispielsweise einen Befehl ausführen, können wir unterscheiden, ob der Befehl noch nicht abgeschlossen ist, das Gerät keine ausgeführten Befehle unterstützt oder das Gerät während der Ausführung des Befehls nicht mehr reagiert.
Geräteklassen
Die drei Hauptimplementierungen von ITestDevice
stehen für drei gängige Anwendungsfälle.
Physisches Gerät
Dies ist eine physische Hardware, die entweder über USB oder mithilfe der TCP-Funktion von adb mit dem TF-Hostcomputer verbunden ist. Die Klasse TestDevice befindet sich über der ddmlib-Bibliothek, einer Java-Schnittstelle zu adb. Daher kann jedes in adb devices
aufgeführte physische Gerät instanziiert und als TestDevice
verwendet werden.
Emulator
Emulatoren werden von TF speziell behandelt, da sie in einem anderen Prozess ausgeführt werden. Wenn Sie mit einem Emulator interagieren möchten, geben Sie das Argument --emulator
für den Befehl an. Weitere Informationen finden Sie unter LocalSdkBuildProvider und SdkAvdPreparer.
Kein Gerät
Angenommen, Sie haben einen Test, der überhaupt nicht mit einem Gerät interagiert. So kann er beispielsweise eine Datei von einem Dienst herunterladen und prüfen, ob die Datei selbst gültig ist. Das NullDevice ist ein ITestDevice
, das nur ein Stub ist. Es hat eine Seriennummer wie null-device-N
und die meisten versuchten Vorgänge werden entweder ohne Fehlermeldung ausgeführt oder es wird eine Fehlermeldung ausgegeben.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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."]]