Eclipse einrichten

So richten Sie Tradefed mit Eclipse ein:

Erstellen Sie einen separaten Arbeitsbereich für die Entwicklung von Trade Federation. Verwenden Sie keinen Arbeitsbereich, der bereits für die Entwicklung von Android-Geräten verwendet wird.

Falls erforderlich, können Sie die Eclipse IDE für Java-Entwickler unter eclipse.org/downloads herunterladen.

Projekte erstellen

  1. Führen Sie „make“ einmal über die Befehlszeile aus. Dadurch werden externe Bibliotheken erstellt, die von den folgenden Projekten abhängig sind.
  2. Legen Sie die ClassPath-Variable TRADEFED_ROOT in Window > Preferences > Java > Build Path> Classpath Variables fest und weisen Sie sie auf das Stammverzeichnis der TradeFed-Quelle hin.
  3. Legen Sie die Pfadvariable TRADEFED_ROOT in Window > Preferences > General > Workspace > Linked Resources fest und weisen Sie sie auf das Stammverzeichnis der TradeFed-Quelle hin.
  4. Verwenden Sie den File > Import...-> General > Existing Projects into workspace"-Assistenten, um diese Open-Source-Java-Projekte unter den folgenden Pfaden einzubinden:

    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. Wenn Sie den Quellcode von ddmlib sehen möchten, können Sie den Quellcode aus einem nicht gebündelten Tools-Branch anhängen, z. B. /platform/tools/base/tools_r22/ddmlib/src/main/java/com/android/ddmlib/IDevice.java.

  6. Wenn Sie auch die CTS-Harness-Projekte laden möchten, importieren Sie Folgendes:

    test/suite_harness/common/util
    test/suite_harness/common/host-side/util
    test/suite_harness/common/host-side/tradefed
    

Automatische Formatierung

HINWEIS: Die erforderlichen Dateien befinden sich im development/ide/eclipse im vollständigen Plattform-Quellbaum. Sie müssen also einen Plattformzweig wie main auschecken, um diese Dateien zu erhalten: /development/main/ide/eclipse/

Verwenden Sie in Eclipse die Voreinstellungsdateien, um den Formatierer automatisch auf den Android-Stilguide festzulegen. So gehts in Studio:

  1. Gehen Sie zu Fenster > Einstellungen > Java > Codestil.
  2. Importieren Sie unter Formatierer die Datei android-formatting.xml.
  3. Importieren Sie die Datei android.importorder unter Verwalten > Importe.

Nachgestellte Leerzeichen entfernen

So erzwingen Sie, dass Eclipse alle nachgestellten Leerzeichen entfernt:

  1. Gehen Sie zu Fenster > Einstellungen -> Java -> Editor -> Aktionen speichern.
  2. Gehen Sie dann auf Zusätzliche Aktionen -> Konfigurieren -> Code -> Tab „Organisieren“ -> Formatierungstool.
  3. Setzen Sie ein Häkchen bei Trailing Whitespace Remove (Abschließende Leerzeichen entfernen).
  4. Klicken Sie auf Übernehmen und schließen.

Codestil prüfen

Wenn Sie eine Änderungsliste einreichen, wird ein automatischer Preupload-Hook ausgeführt, um Ihr Codeformat zu prüfen: google-java-format

So können Sie Ihren Code gemäß dem gängigen Standard formatieren.

Eclipse debuggen

Wenn Sie TF-Code in Eclipse über einen Debugger ausführen möchten, sollten Sie zuerst einen Unit-Test für den betreffenden Code erstellen. Dies ist die einfachste und schnellste Methode, um die Funktionalität zu testen.

Wenn Sie einen TF-Unit-Test debuggen möchten, klicken Sie einfach mit der rechten Maustaste darauf und wählen Sie Fehler beheben als > JUnit-Test aus.

Wenn Sie einen TF-Funktionstest debuggen möchten, folgen Sie der Anleitung im vorherigen Abschnitt zum Ausführen eines Funktionstests, verwenden Sie aber das Menü Ausführen > Konfigurationen für die Fehlerbehebung.

Wenn Sie das TF-Programm selbst debuggen möchten, folgen Sie beim Ausführen einer beliebigen Konfiguration der Anleitung im vorherigen Abschnitt zum Ausführen eines Funktionstests, geben Sie aber in Schritt 4 die Befehlszeilenargumente für die Konfiguration an, die Sie ausführen möchten. Wenn Sie die Konfiguration „instrument“ debuggen möchten, rufen Sie das Menü Ausführen > Debug-Konfiguration auf und legen Sie in der Eclipse-Debug-Konfiguration auf dem Tab Argumente den Wert -- package <package to run> instrument fest.

Remote-Debugging mit Eclipse

So beheben Sie per Fernzugriff Fehler in einer Tradefed-Sitzung, die über die tradefed.sh-Befehlszeile gestartet wurde:

  1. Starten Sie tradefed.sh mit dem Debug-Flag: TF_DEBUG=1 tradefed.sh
  2. Warten Sie, bis diese Aufforderung von der JVM angezeigt wird: Listening for transport dt_socket at address: 10088. Das bedeutet, dass die JVM darauf wartet, dass der Debugger am Port 10088 angehängt wird.
  3. Über das Hauptmenü mit der Remote-Fehlerbehebung von Eclipse verbinden: Wählen Sie Ausführen > Konfigurationen zur Fehlerbehebung... aus.
  4. Wählen Sie im Pop-up-Dialogfeld im Menü auf der linken Seite Remote Java Application aus.
  5. Klicken Sie in der Aktionsleiste auf das Symbol Neue Startkonfiguration.
  6. Geben Sie der Konfiguration einen Namen und wählen Sie tradefederation als Projekt aus.
  7. Geben Sie den Port mit der zuvor angegebenen Adresse an.
  8. Wechseln Sie zum Tab Quelle und fügen Sie die Projekte tradefederation und google-tradefed zum Suchpfad der Quelle hinzu.
  9. Klicken Sie auf Debug, um die Debugging-Sitzung zu starten.

Der Debugger wird an den JVM-Prozess angehängt, der auf eingehende Verbindungen wartet, und im Terminal, in dem tradefed.sh ausgeführt wird, wird die Eingabeaufforderung tf> angezeigt.

Wenn Sie den Code im Debug-Modus schrittweise durchgehen möchten, legen Sie einen Haltepunkt in Eclipse fest und rufen Sie den Tradefed-Befehl (z.B. run <test>) im Terminal auf. Wenn Sie beim Starten von TF etwas debuggen möchten, können Sie zuerst den Haltepunkt setzen und dann den Eclipse-Debugger anhängen.

TIPP: Wenn Sie einen alternativen Anschluss verwenden möchten, fügen Sie dem Befehl in Schritt 1 oben TF_DEBUG_PORT=nnn hinzu. Sie können dies sogar in der Produktionsumgebung verwenden, wenn Sie mysteriöse Abstürze untersuchen müssen: Ändern Sie suspend=y in suspend=n in tradefed.sh und starten Sie mit dem Debug-Flag. Die JVM wartet nicht auf das Anhängen des Debuggers, Sie können dies aber jederzeit tun, solange der Prozess noch läuft.

Remote-Debugging mit JDB

Wenn Sie den Java-Debugger JDB verwenden möchten, gehen Sie so vor, wie für Eclipse beschrieben:

  1. Starten Sie tradefed.sh mit dem Debug-Flag: TF_DEBUG=1 tradefed.sh
  2. Warten Sie, bis die Eingabeaufforderung der JVM angezeigt wird: Listening for transport dt_socket at address: 10088.
  3. Verbinden Sie jdb. Führen Sie beispielsweise in croot Folgendes aus:

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. Warten Sie auf die Verbindung und beginnen Sie mit dem Debuggen. Führen Sie man jdb aus, um weitere Hilfe zu erhalten.

Codeabdeckung prüfen

  1. Installieren Sie das Eclemma-Plug-in.
  2. Gehen Sie zu Hilfe > Neue Software installieren und geben Sie als Ziel für den Assistenten Folgendes an: http://update.eclemma.org/
  3. Wählen Sie nach der Installation die Testoption Coverage As > JUnit aus, um einen Code Coverage-Lauf durchzuführen.