請按照下列步驟,使用 Eclipse 設定 Tradefed。
請建立專用的工作區來開發 Trade Federation,不要重複使用已用於 Android 裝置開發的工作區。
如有需要,您可以從 eclipse.org/downloads 下載適用於 Java 開發人員的 Eclipse IDE。
建立專案
- 透過指令列執行 make 一次。這會建構外部程式庫,依賴於下列專案。
- 在
Window > Preferences > Java > Build Path> Classpath Variables
中設定 TRADEFED_ROOT 類別路徑變數,然後將其指向換購來源根目錄 - 在
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
中。因此,您需要檢出 main
等平台分支,才能取得這些檔案:/development/main/ide/eclipse/
使用 Eclipse 中的偏好設定檔,自動將格式化工具設為 Android 樣式指南。如要在 Studio 中執行此操作:
- 依序前往「Window」>「Preferences」>「Java」>「Code Style」。
- 在「Formatter」下方,匯入
android-formatting.xml
檔案。 - 在「組織 > 匯入」底下,匯入
android.importorder
檔案。
移除結尾的空白字元
如要強制 Eclipse 移除所有尾隨空格,請按照下列步驟操作:
- 依序前往「Window」>「Preferences」->「Java」->「Editor」->「Save Actions」。
- 然後依序點選「Additional Actions」->「Configure」->「Code」->「Organizing」分頁標籤->「Formatter」。
- 勾選「移除結尾空白字元」。
- 按一下「套用並關閉」。
檢查程式碼樣式
提交變更清單時,系統會執行自動預上傳鉤子,檢查程式碼格式:google-java-format
這有助於將您的程式碼格式設定為符合通用標準的格式。
偵錯 Eclipse
如果您想透過 Eclipse 中的偵錯工具執行 TF 程式碼,建議您先為相關程式碼建立單元測試,以達到最簡單快速的方式執行功能。
如要對 TF 單元測試進行偵錯,只要在該測試上按一下滑鼠右鍵,然後依序選取「Debug As」>「JUnit test」即可。
如要對 TF 功能測試進行偵錯,請按照上一節的操作說明執行功能測試,但請使用「Run」>「Debug Configurations」選單。
如要對 TF 程式本身進行偵錯,請在執行任何設定時按照上一節的操作說明執行功能測試,但針對要在步驟 4 中執行的設定,提供指令列引數。因此,如要對「instrument」設定進行偵錯,請前往「Run」>「Debug configuration」選單,並將 Eclipse 偵錯設定中的「Arguments」分頁設為 -- package <package to run> instrument
。
使用 Eclipse 進行遠端偵錯
請按照下列步驟,透過遠端方式對透過 tradefed.sh
指令列啟動的 Tradefed 工作階段進行偵錯:
- 使用偵錯旗標啟動 tradefed.sh:
TF_DEBUG=1 tradefed.sh
- 請等到您看到 JVM 的提示訊息:
Listening for transport dt_socket at address: 10088
這表示 JVM 正在等待偵錯工具連結至10088
通訊埠。 - 從主選單中選取 Eclipse 的遠端偵錯功能:依序選取「Run」>「Debug Configurations...」。
- 在彈出式對話方塊中,從左選單中選取「遠端 Java 應用程式」。
- 按一下動作列上的「New launch configuration」圖示。
- 為設定命名,並選取「tradefederation」做為專案。
- 使用先前提供的地址填入埠。
- 切換至「Source」分頁,然後將「tradefederation」和「google-tradefed」專案新增至「Source Lookup Path」。
- 按一下「Debug」,開始偵錯工作階段。
偵錯工具會附加至監聽 JVM 程序,執行 tradefed.sh
的終端機則會顯示 tf>
提示。
如要在偵錯模式中逐步執行程式碼,請在 Eclipse 中設定中斷點,然後在終端機中叫用 Tradefed 指令 (即 run <test>
)。如要對 TF 啟動期間發生的任何偵錯,您可以先設定中斷點,然後再附加 Eclipse 偵錯工具。
提示:如要使用其他連接埠,請在上述步驟 1 的指令中加入 TF_DEBUG_PORT=nnn
。如果您有需要調查的神秘掛起錯誤,也可以在實際工作環境中使用這個方法:在 tradefed.sh
中將 suspend=y
變更為 suspend=n
,並以偵錯標記開始。JVM 不會等待系統附加偵錯工具,但只要程序仍在執行,您隨時都可以這麼做。
使用 JDB 進行遠端偵錯
如要使用 Java Debugger JDB,請按照 Eclipse 的步驟操作:
- 使用偵錯標記啟動
tradefed.sh
:TF_DEBUG=1 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 外掛程式。
- 依序前往「Help」>「Install New Software」,並將精靈指向:http://update.eclemma.org/
- 安裝完成後,請選取「Coverage As > JUnit」測試選項,執行程式碼涵蓋率。