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 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 Assistenten File > Import...-> General > Existing Projects into workspace", um diese Open-Source-Java-Projekte unter den folgenden Pfaden bereitzustellen:

    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.

Leerzeichen am Zeilenende 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“ -> Formatierer.
  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.

Fehler in Eclipse beheben

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. Um Fehler in der "Instrument"-Konfiguration zu beheben, rufen Sie das Menü Run > Debug configuration (Ausführen > Debug-Konfiguration) auf und legen Sie in der Eclipse-Debug-Konfiguration den Tab Arguments (Argumente) auf -- package <package to run> instrument fest.

Remote-Debugging mit Eclipse

Führen Sie die folgenden Schritte aus, um eine über die tradefed.sh-Befehlszeile gestartete Fehlerbehebung per Remotezugriff zu beheben:

  1. Starten Sie tradefed.sh mit dem Debug-Flag: TF_DEBUG=1 tradefed.sh
  2. Warten Sie, bis die folgende Eingabeaufforderung von der JVM angezeigt wird: Listening for transport dt_socket at address: 10088. Das bedeutet, dass die JVM darauf wartet, dass der Debugger an 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 linken Menü Remote-Java-Anwendung aus.
  5. Klicken Sie in der Aktionsleiste auf das Symbol Neue Startkonfiguration.
  6. Benennen Sie die Konfiguration nach Bedarf und wählen Sie tradefederation als Projekt aus.
  7. Füllen Sie den Port mit der zuvor angegebenen Adresse aus.
  8. Wechseln Sie zum Tab Quelle und fügen Sie dem Quellsuchpfad die Projekte tradefederation und google-tradefed 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 Ihren Code im Debug-Modus durchlaufen möchten, legen Sie in Eclipse einen Haltepunkt fest und rufen Sie im Terminal den Tradefed-Befehl (z.B. run <test>) 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, bis der Debugger angehängt wird. Sie können dies aber jederzeit tun, solange der Prozess noch ausgeführt wird.

Remote-Fehlerbehebung 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 Abdeckung als > JUnit aus, um eine Codeabdeckung durchzuführen.