2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
Eclipse 설정
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Eclipse를 사용하여 Tradefed를 설정하려면 다음 단계를 따르세요.
별도의 작업공간을 형성하여 Trade Federation을 개발하고, 이미 Android 기기 개발에 사용된 작업공간은 재사용하지 않습니다.
필요한 경우 eclipse.org/downloads에서 Java 개발자용 Eclipse IDE를 다운로드할 수 있습니다.
프로젝트 생성
- 명령줄에서 make once를 실행합니다. 그러면 아래 프로젝트가 종속된 외부 라이브러리가 빌드됩니다.
Window > Preferences > Java > Build
Path> Classpath Variables
에 TRADEFED_ROOT 클래스 경로 변수를 설정하고 tradefed 소스 루트를 가리킵니다.
Window > Preferences > General >
Workspace > Linked Resources
에 TRADEFED_ROOT 경로 변수를 설정하고 tradefed 소스 루트를 가리킵니다.
File > Import...-> General > Existing Projects into
workspace"
마법사를 사용하여 다음 경로에 오픈소스 Java 프로젝트를 불러옵니다.
prebuilts/misc/common/ddmlib\*
tools/loganalysis
tools/loganalysis/tests
tools/tradefederation/core
tools/tradefederation/core/tests
tools/tradefederation/contrib
tools/tradefederation/core/remote
platform_testing/libraries/health/runners/longevity/host
platform_testing/libraries/annotations
platform_testing/libraries/health/composers/host
ddmlib
소스 코드를 확인하고 싶은 경우에는 /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java와 같이 번들화되지 않은 도구 브랜치에서 소스 코드를 연결할 수도 있습니다.
CTS 하네스 프로젝트도 로드하고 싶은 경우에는 다음을 가져옵니다.
test/suite_harness/common/util
test/suite_harness/common/host-side/util
test/suite_harness/common/host-side/tradefed
참고: 필수 파일은 전체 플랫폼 소스 트리의 development/ide/eclipse
내에 상주합니다. 따라서 android-latest-release
등의 플랫폼 브랜치를 확인하여 이러한 파일을 가져와야 합니다(/development/android16-release/ide/eclipse/).
Eclipse에서 환경설정 파일을 사용하여 형식 지정 도구를 Android 형식 가이드로 자동 설정합니다. 스튜디오에서 설정하는 방법:
- 창 > 환경설정 > Java > 코드 형식으로 이동합니다.
- 형식 지정 도구에서
android-formatting.xml
파일을 가져옵니다.
- 구성 > 가져오기에서
android.importorder
파일을 가져옵니다.
후행 공백 삭제
Eclipse가 모든 후행 공백을 삭제하도록 강제하는 방법은 다음과 같습니다.
- 창 > 환경설정 -> Java -> 편집기 -> 작업 저장으로 이동합니다.
- 그런 다음 추가 작업 -> 구성 -> 코드 > 구성 탭 -> 형식 지정 도구로 이동합니다.
- 후행 공백 삭제를 선택합니다.
- 적용 및 닫기를 클릭합니다.
코드 형식 확인
변경 목록을 제출할 때는 자동 사전 업로드 후크가 실행되어 코드 형식 google-java-format
을 확인합니다.
이는 코드 형식을 공통 표준에 맞게 지정하는 데 도움이 됩니다.
Eclipse 디버그
Eclipse의 디버거를 통해 TF 코드를 실행하고 싶은 경우에는 먼저 코드의 단위 테스트를 생성하는 것이 좋습니다. 이는 기능을 가장 간단하고 빠르게 실행할 수 있는 방법이기 때문입니다.
TF 단위 테스트를 디버그하려면 테스트를 마우스 오른쪽 버튼으로 클릭하고 다음으로 디버그: > JUnit 테스트를 선택하기만 하면 됩니다.
TF 기능 테스트를 디버그하려면 이전 섹션의 기능 테스트 실행 관련 안내를 따르되 실행 > 디버그 구성 메뉴를 사용하세요.
TF 프로그램 자체를 디버그하려면 구성을 실행할 때 이전 섹션의 기능 테스트 실행 관련 안내를 따르되 4단계에서 실행하려는 구성의 명령줄 인수를 제공하세요. 따라서 '계측' 구성을 디버그하려면 실행 > 디버그 구성 메뉴로 이동한 다음 Eclipse 디버그 구성의 인수 탭을 -- package <package to run> instrument
로 설정합니다.
Eclipse를 사용한 원격 디버그
tradefed.sh
명령줄에서 시작된 Tradefed 세션을 원격으로 디버그하려면 다음 단계를 따르세요.
- 디버그 플래그
TF_DEBUG=1 tradefed.sh
로 tradefed.sh를 시작합니다.
- JVM에서
Listening for transport
dt_socket at address: 10088
메시지가 표시될 때까지 기다립니다. 이는 JVM에서 디버거가 포트 10088
에 연결되기를 기다리고 있음을 의미합니다.
- 실행 > 디버그 구성...을 선택하여 기본 메뉴에서 Eclipse의 원격 디버깅을 연결합니다.
- 팝업 대화상자의 왼쪽 메뉴에서 원격 Java 애플리케이션을 선택합니다.
- 작업 모음에서 새 실행 구성 아이콘을 클릭합니다.
- 구성에 원하는 이름을 지정하고 tradefederation을 프로젝트로 선택합니다.
- 앞에서 제공된 주소를 사용하여 포트를 채웁니다.
- 소스 탭으로 전환하고 프로젝트 tradefederation 및 google-tradefed를 소스 조회 경로에 추가합니다.
- 디버그를 클릭하여 디버깅 세션을 시작합니다.
디버거가 수신 중인 JVM 프로세스에 연결되고 tradefed.sh
를 실행 중인 터미널에 tf>
프롬프트가 표시됩니다.
디버그 모드에서 코드를 단계별로 실행하려면 Eclipse에서 중단 지점을 설정하고 터미널에서 Tradefed 명령어(run <test>
)를 호출합니다. TF 시작 도중에 디버그하려면 먼저 중단 지점부터 설정한 다음 Eclipse 디버거를 연결합니다.
팁: 대체 포트를 사용하려면 위의 1단계에서 명령어에 TF_DEBUG_PORT=nnn
을 추가합니다. 이는 알 수 없는 버그를 조사해야 하는 경우 프로덕션 환경에서 사용할 수 있습니다. suspend=y
를 tradefed.sh
의 suspend=n
으로 변경하고 디버그 플래그로 시작하세요. JVM은 디버거가 연결될 때까지 대기하지 않지만 프로세스가 실행 중인 경우 언제든지 연결할 수 있습니다.
JDB를 사용한 원격 디버그
Java 디버거 JDB를 사용하려면 Eclipse의 경우와 유사한 단계를 따르세요.
- 디버그 플래그
TF_DEBUG=1 tradefed.sh
로 tradefed.sh
를 시작합니다.
- JVM에서 프롬프트
Listening for transport dt_socket
at address: 10088
이 표시될 때까지 기다립니다.
jdb
를 연결합니다. 예를 들면 croot에서 다음을 실행합니다.
jdb -attach 10088 \
-sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
연결될 때까지 기다렸다가 디버깅합니다. 도움이 필요한 경우 man jdb
를 실행하세요.
코드 적용 범위 검토
- Eclemma 플러그인을 설치합니다.
- 도움말 > 새 소프트웨어 설치로 이동한 다음 마법사로 http://update.eclemma.org/를 가리킵니다.
- 설치되면 다음을 범위에 포함: > JUnit 테스트 옵션을 선택하여 코드 적용 범위를 실행합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 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,["# Set up Eclipse\n\nFollow these steps to set up Tradefed using Eclipse.\n\nCreate a separate workspace to develop Trade Federation, do not reuse a\nworkspace already employed for Android-device development.\n\nIf needed, you can download the *Eclipse IDE for Java developers* from:\n[eclipse.org/downloads](https://www.eclipse.org/downloads/)\n\nCreate projects\n---------------\n\n1. Run make once from the command line. This will build external libraries depended by the projects below.\n2. Set TRADEFED_ROOT classpath variable in `Window \u003e Preferences \u003e Java \u003e Build\n Path\u003e Classpath Variables` and point it to your tradefed source root\n3. Set TRADEFED_ROOT path variable in `Window \u003e Preferences \u003e General \u003e\n Workspace \u003e Linked Resources` and point it to your tradefed source root\n4. Use the `File \u003e Import...-\u003e General \u003e Existing Projects into\n workspace\"`wizard to bring in these open source Java projects under the\n following paths:\n\n prebuilts/misc/common/ddmlib\\*\n tools/loganalysis\n tools/loganalysis/tests\n tools/tradefederation/core\n tools/tradefederation/core/tests\n tools/tradefederation/contrib\n tools/tradefederation/core/remote\n platform_testing/libraries/health/runners/longevity/host\n platform_testing/libraries/annotations\n platform_testing/libraries/health/composers/host\n\n5. Optionally, if you want to see `ddmlib` source code, attach the source code\n from an unbundled tools branch, such as [/platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java](https://android.googlesource.com/platform/tools/base/+/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java).\n\n6. Optionally, if you also want the CTS harness projects loaded, import:\n\n test/suite_harness/common/util\n test/suite_harness/common/host-side/util\n test/suite_harness/common/host-side/tradefed\n\nAuto format\n-----------\n\nNOTE: Requisite files live within `development/ide/eclipse` in the full platform\nsource tree. So you will need to check out a platform branch such as\n`android-latest-release` to get these files:\n[/development/android16-release/ide/eclipse/](https://android.googlesource.com/platform/development/+/refs/heads/android16-release/ide/eclipse/)\n\nUse preference files in Eclipse to automatically set the formatter to the\nAndroid style guide. To do this in Studio:\n\n1. Go to *Window \\\u003e Preferences \\\u003e Java \\\u003e Code Style*.\n2. Under *Formatter* , import the file `android-formatting.xml`.\n3. Under *Organize \\\u003e Imports* , import the file `android.importorder`.\n\n### Remove trailing whitespaces\n\nTo force Eclipse to remove all trailing whitespace:\n\n1. Go to *Window \\\u003e Preferences -\\\u003e Java -\\\u003e Editor -\\\u003e Save Actions*.\n2. Then *Additional Actions -\\\u003e Configure -\\\u003e Code \\\u003e Organizing tab -\\\u003e\n Formatter*.\n3. Check **Remove Trailing Whitespace**.\n4. Click **Apply and Close**.\n\n### Check code style\n\nWhen submitting a changelist, an automatic preupload hook will run to check your\ncode format: `google-java-format`\n\nThis helps formatting your code to the common standard.\n\nDebug Eclipse\n-------------\n\nIf you want to run TF code through a debugger in Eclipse, it is recommended you\nfirst create a unit test for the code in question as this will be the simplest\nand fastest way to exercise the functionalilty.\n\nTo debug a TF unit test, simply right-click on it and select **Debug As \\\u003e JUnit\ntest**.\n\nTo debug a TF functional test, follow the instructions in the previous section\nfor running a functional test but use the *Run \\\u003e Debug configurations* menu.\n\nTo debug the TF program itself, when running any configuration, follow the\ninstructions in the previous section for running a functional test but provide\nthe command line arguments for the configuration you wish to run in step 4. So\nto debug the 'instrument' configuration, go to the *Run \\\u003e Debug configuration*\nmenu and set the *Arguments* tab in the Eclipse debug configuration to\n`-- package \u003cpackage to run\u003e instrument`.\n\n### Remote debug with Eclipse\n\nFollow these steps to remotely debug a tradefed session started from\n`tradefed.sh` command line:\n\n1. Start tradefed.sh with the debug flag: `TF_DEBUG=1 tradefed.sh`\n2. Wait until you see this prompt from the JVM: `Listening for transport\n dt_socket at address: 10088` This means the JVM is waiting for debugger to attach at port `10088`.\n3. Attach with Eclipse's remote debugging from main menu: Select *Run \\\u003e Debug\n Configurations...*.\n4. In the pop-up dialog, select *Remote Java Application* from the left menu.\n5. Click the *New launch configuration* icon on the action bar.\n6. Name the configuration as you desire and select **tradefederation** as the project.\n7. Populate the port using the address provided earlier.\n8. Switch to the *Source* tab and add the projects **tradefederation** and **google-tradefed** to the *Source Lookup Path*.\n9. Click **Debug** to start the debugging session.\n\nThe debugger attaches to the listening JVM process, and the terminal running\n`tradefed.sh` shows the `tf\u003e` prompt.\n\nTo step through your code in debug mode, set a break point in Eclipse and invoke\nyour Tradefed command (i.e. `run \u003ctest\u003e`) in the terminal. To debug anything\nduring TF startup, you can set the break point first and then attach the Eclipse\ndebugger.\n\nTIP: To use an alternative port, add `TF_DEBUG_PORT=nnn`to the command in step 1\nabove. You can even use this in production environment if you have mysterious\nhang bugs to investigate: change `suspend=y` to `suspend=n` in `tradefed.sh` and\nstart with debug flag. The JVM won't wait for debugger to attach, but you can do\nso at any time as long as the process is still running.\n\n### Remote debug using JDB\n\nTo use the Java Debugger JDB, follow steps resembling those for Eclipse:\n\n1. Start `tradefed.sh` with the debug flag: `TF_DEBUG=1 tradefed.sh`\n2. Wait until you see the prompt from JVM: `Listening for transport dt_socket\n at address: 10088`.\n3. Connect `jdb`. For example, from croot run:\n\n jdb -attach 10088 \\\n -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src\n\n4. Wait for the connection and debug away! Run `man jdb` for more help.\n\nExamine code coverage\n---------------------\n\n1. Install the [Eclemma plugin](https://www.eclemma.org/).\n2. Go to *Help \\\u003e Install New Software* and point the wizard to: http://update.eclemma.org/\n3. Once installed, select the *Coverage As \\\u003e JUnit* test option to conduct a code coverage run."]]