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 for Java Developers unter eclipse.org/downloads herunterladen.

Projekte erstellen

  1. Führen Sie „make“ einmal über die Befehlszeile aus. Dadurch werden externe Bibliotheken erstellt, von denen die unten aufgeführten Projekte abhängen.
  2. Legen Sie die Klassenpfadvariable TRADEFED_ROOT in Window > Preferences > Java > Build Path> Classpath Variables fest und verweisen Sie damit auf das Tradefed-Quellstammverzeichnis.
  3. Legen Sie die Pfadvariable TRADEFED_ROOT in Window > Preferences > General > Workspace > Linked Resources fest und verweisen Sie damit auf Ihr Tradefed-Quellstammverzeichnis.
  4. Verwenden Sie den File > Import...-> General > Existing Projects into workspace"-Assistenten, um diese Open-Source-Java-Projekte unter den folgenden Pfaden zu importieren:

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

  6. Optional: 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 vollständigen Quellbaum der Plattform unter development/ide/eclipse. Sie müssen also einen Plattformzweig wie android-latest-release auschecken, um diese Dateien zu erhalten: /development/android16-release/ide/eclipse/

Verwenden Sie Einstellungsdateien in Eclipse, um den Formatierer automatisch auf den Android-Styleguide einzustellen. So gehts in YouTube Studio:

  1. Klicken Sie auf Window > Preferences > Java > Code Style (Fenster > Einstellungen > Java > Code Style).
  2. Importieren Sie unter Formatter (Formatierung) die Datei android-formatting.xml.
  3. Importieren Sie unter Verwalten > Importe die Datei android.importorder.

Nachgestellte Leerzeichen entfernen

So erzwingen Sie, dass Eclipse alle nachgestellten Leerzeichen entfernt:

  1. Klicken Sie auf Window > Preferences > Java > Editor > Save Actions (Fenster > Einstellungen > Java > Editor > Aktionen speichern).
  2. Klicken Sie dann auf Zusätzliche Aktionen -> Konfigurieren -> Code > Tab „Organisieren“ -> Formatierung.
  3. Klicken Sie auf Remove Trailing Whitespace (Nachfolgende Leerzeichen entfernen).
  4. Klicken Sie auf Anwenden und schließen.

Codestil prüfen

Wenn Sie eine Änderungsliste einreichen, wird automatisch ein Pre-Upload-Hook ausgeführt, um das Codeformat zu prüfen: google-java-format

So wird Ihr Code gemäß dem gängigen Standard formatiert.

Eclipse debuggen

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

Um einen TF-Unit-Test zu debuggen, klicken Sie einfach mit der rechten Maustaste darauf und wählen Sie Debug As > 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 > Debug-Konfigurationen.

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 in Schritt 4 jedoch 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ü Run > Debug configuration auf und legen Sie den Tab Arguments in der Eclipse-Debugkonfiguration auf -- package <package to run> instrument fest.

Remote-Debugging mit Eclipse

So debuggen Sie eine Tradefed-Sitzung, die über die tradefed.sh-Befehlszeile gestartet wurde, aus der Ferne:

  1. Starten Sie tradefed.sh mit dem Debugging-Flag: TF_DEBUG=1 tradefed.sh
  2. Warten Sie, bis Sie diese Aufforderung von der JVM sehen: 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. Mit der Remote-Debugging-Funktion von Eclipse anhängen: Wählen Sie im Hauptmenü Run > Debug Configurations... (Ausführen > Debugging-Konfigurationen...) 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 New launch configuration (Neue Startkonfiguration).
  6. Geben Sie der Konfiguration einen Namen Ihrer Wahl und wählen Sie tradefederation als Projekt aus.
  7. Geben Sie den Port mit der zuvor angegebenen Adresse ein.
  8. Wechseln Sie zum Tab Quelle und fügen Sie die Projekte tradefederation und google-tradefed zum Quellsuchpfad hinzu.
  9. Klicken Sie auf Debuggen, um die Debugging-Sitzung zu starten.

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

Wenn Sie Ihren Code im Debug-Modus schrittweise ausführen möchten, legen Sie in Eclipse einen Haltepunkt fest und rufen Sie Ihren Tradefed-Befehl (z.B. run <test>) im Terminal auf. Wenn Sie während des TF-Starts etwas debuggen möchten, können Sie zuerst den Haltepunkt festlegen und dann den Eclipse-Debugger anhängen.

TIPP: Wenn Sie einen alternativen Port 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 Hängefehler 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 den Start des Debuggers. Sie können dies jedoch jederzeit tun, solange der Prozess noch ausgeführt wird.

Remote-Debugging mit JDB

Wenn Sie den Java-Debugger JDB verwenden möchten, gehen Sie ähnlich wie bei Eclipse vor:

  1. Starten Sie tradefed.sh mit dem Debugging-Flag: TF_DEBUG=1 tradefed.sh
  2. Warten Sie, bis die Eingabeaufforderung von JVM angezeigt wird: Listening for transport dt_socket at address: 10088.
  3. Mit jdb verbinden Zum Beispiel aus „croot run“:

    jdb -attach 10088 \
        -sourcepath tools/tradefederation/core/src:vendor/google_tradefederation/core/src
    
  4. Warten Sie, bis die Verbindung hergestellt ist, und legen Sie los! Führen Sie man jdb aus, um weitere Informationen zu erhalten.

Codeabdeckung untersuchen

  1. Installieren Sie das Eclemma-Plug-in.
  2. Gehen Sie zu Hilfe > Neue Software installieren und verweisen Sie den Assistenten auf: http://update.eclemma.org/
  3. Wählen Sie nach der Installation die Testoption Coverage As > JUnit aus, um eine Code-Coverage-Ausführung durchzuführen.