2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
TF에서 기기 사용
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Trade Federation은 ITestDevice
라는 추상화를 사용하여 테스트를 실행합니다. 이 추상화는 가장 약한 공통분모인 Android 기기를 객관화합니다.
- 일련번호가 있습니다.
- 온라인, 사용 가능, 복구 또는 사용 불가 등의 상태가 있습니다.
- 어느 정도의 안정성 개념이 있습니다. 예를 들어 명령어를 실행하면 명령어가 완료되지 않은 경우와 기기가 명령어 실행을 지원하지 않는 경우와 명령어 실행 도중 기기가 응답을 멈춘 경우를 구분할 수 있습니다.
기기 클래스
ITestDevice
의 기본적인 세 가지 구현은 세 가지의 일반적인 사용 사례를 나타냅니다.
실제 기기
USB 또는 adb의 TCP 기능을 사용하여 TF 호스트 머신에 연결된 실제 하드웨어입니다. TestDevice 클래스는 adb의 자바 인터페이스인 ddmlib 라이브러리 위에 위치합니다. 따라서 adb devices
에 나열된 모든 실제 기기를 인스턴스화하여 TestDevice
로 사용할 수 있습니다.
에뮬레이터
에뮬레이터는 다른 프로세스에 상주하므로 특별히 TF에 의해 처리됩니다. 에뮬레이터와 상호작용하려면 명령어에 --emulator
인수를 지정합니다. 자세한 내용은 LocalSdkBuildProvider 및 SdkAvdPreparer를 참고하세요.
기기 없음
기기와 전혀 상호작용하지 않는 테스트가 있다고 가정해 보겠습니다. 예를 들면 특정 서비스에서 파일을 다운로드하고 파일 자체가 유효한지만 확인할 수 있습니다. NullDevice는 스텁에 불과한 ITestDevice
입니다. null-device-N
과 같은 일련번호가 있으며, 시도된 대부분의 작업이 소리 없이 무작동하거나 뭔가를 반환합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 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."]]