設置 Eclipse

請依照以下步驟使用 Eclipse 設定 Tradefed。

建立一個單獨的工作區來開發 Trade Federation,不要重複使用已用於 Android 裝置開發的工作區。

如果需要,您可以從以下位置下載Java 開發人員的 Eclipse IDEeclipse.org/downloads

創建專案

  1. 從命令列運行一次 make。這將建構以下項目所依賴的外部庫。
  2. Window > Preferences > Java > Build Path> Classpath Variables中設定 TRADEFED_ROOT 類別路徑變量,並將其指向您的 tradefed 來源根目錄
  3. Window > Preferences > General > Workspace > Linked Resources中設定 TRADEFED_ROOT 路徑變量,並將其指向您的 tradefed 來源根目錄
  4. 使用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
    
  5. 或者,如果您想查看ddmlib原始程式碼,請附加來自非捆綁工具分支的原始程式碼,例如/platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java

  6. 或者,如果您也希望載入 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 中執行此操作:

  1. 轉到“視窗”>“首選項”>“Java”>“程式碼樣式”
  2. Formatter下,導入檔案android-formatting.xml
  3. 組織 > 導入下,導入檔案android.importorder

刪除尾隨空格

要強制 Eclipse 刪除所有尾隨空格:

  1. Window > Preferences -> Java -> Editor -> Save Actions
  2. 然後“其他操作”->“配置”->“代碼”>“組織”選項卡->“格式化程式”
  3. 選取刪除尾隨空白
  4. 點擊應用並關閉

檢查程式碼風格

提交更改清單時,將執行自動預先上傳掛鉤來檢查您的程式碼格式: google-java-format

這有助於將您的程式碼格式化為通用標準。

調試Eclipse

如果您想透過 Eclipse 中的偵錯器執行 TF 程式碼,建議您先為相關程式碼建立一個單元測試,因為這將是行使該功能的最簡單、最快的方法。

要偵錯 TF 單元測試,只需右鍵單擊它並選擇Debug As > JUnit test

若要偵錯 TF 功能測試,請按照上一節中執行功能測試的說明進行操作,但使用「執行」>「偵錯設定」功能表。

若要偵錯TF 程式本身,在執行任何配置時,請按照上一節中執行功能測試的說明進行操作,但為您希望在步驟4 中執行的配置提供命令列參數。因此,請偵錯「儀器」配置,前往Run > Debug 配置選單,並將 Eclipse 偵錯配置中的Arguments標籤設定為-- package <package to run> instrument

使用 Eclipse 進行遠端偵錯

請依照下列步驟遠端偵錯從tradefed.sh命令列啟動的 tradefed 會話:

  1. 使用偵錯標誌啟動 tradefed.sh:TF_DEBUG=1 TF_DEBUG=1 tradefed.sh
  2. 等待,直到您看到來自 JVM 的提示: Listening for transport dt_socket at address: 10088這表示 JVM 正在等待偵錯器連接到連接埠10088
  3. 從主選單附加 Eclipse 的遠端偵錯:選擇Run > Debug Configurations...。
  4. 在彈出的對話方塊中,從左側選單中選擇「遠端 Java 應用程式」
  5. 按一下操作列上的新啟動配置圖示。
  6. 根據需要命名配置並選擇tradefederation作為專案。
  7. 使用之前提供的位址填入連接埠。
  8. 切換到Source標籤並將項目tradefederationgoogle-tradefed新增至Source Lookup Path
  9. 按一下“調試”啟動調試會話。

偵錯器附加到偵聽 JVM 進程,執行tradefed.sh的終端機顯示tf>提示字元。

若要在偵錯模式下單步執行程式碼,請在 Eclipse 中設定斷點並在終端機中呼叫 Tradefed 命令(即run <test> )。要在 TF 啟動期間偵錯任何內容,可以先設定斷點,然後附加 Eclipse 偵錯器。

提示:若要使用備用端口,請將TF_DEBUG_PORT=nnn新增至上述步驟 1 中的命令。如果您有神秘的掛起錯誤需要調查,您甚至可以在生產環境中使用它:將tradefed.sh中的suspend=y更改為suspend=n並從偵錯標誌開始。 JVM 不會等待偵錯器附加,但只要進程仍在運行,您就可以隨時執行此操作。

使用JDB進行遠端偵錯

若要使用 Java 偵錯器 JDB,請依照與 Eclipse 類似的步驟操作:

  1. 使用偵錯標誌啟動tradefed.sh TF_DEBUG=1 tradefed.sh
  2. 等待,直到看到 JVM 的提示: Listening for transport dt_socket at address: 10088
  3. 連接jdb 。例如,從 croot 運行:

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. 等待連接並調試!執行man jdb以獲得更多協助。

檢查程式碼覆蓋率

  1. 安裝Eclemma 插件
  2. 前往協助 > 安裝新軟體並將精靈指向:http://update.eclemma.org/
  3. 安裝後,選擇Coverage As > JUnit測試選項來執行程式碼覆蓋率運行。