webentwicklung-frage-antwort-db.com.de

wie wird das Remote-Debugging/Inspector von WebKit für Android-Apps mit WebView aktiviert?

Ich muss die Ausführung von Javascript (Webview-Widget) in einer Android-Anwendung während des Debuggens überprüfen. über SDK & USB-Kabel und/oder http/websockets; vom Computer abschalten (z. B. Chrome, das auf dem Desktop ausgeführt wird).

Die Quellen von Webkit umfassen die Implementierung von DebuggerServer (platform_external_webkit\Source\WebKit\Android\wds\DebugServer.cpp), auf die auf CPP-Ebene zugegriffen werden kann, und die gebunden werden, wenn das Flag WDS aktiviert ist (zum Zeitpunkt der Erstellung?).

Source\WebKit\Android\jni\WebCoreFrameBridge.cpp: #if ENABLE (WDS) Source\WebKit\Android\jni\WebCoreFrameBridge.cpp: WDS :: server () -> addFrame (frame);

Der Standardport für den Server ist 9999

Die Quellen zeigen, dass alles implementiert ist (auf Cpp-Ebene), um die Funktion zu aktivieren, aber ich habe keine Referenz gefunden, die das Web nach Erfahrungen mit Live-Debugging auf Javascript-Ebene in Android-Geräten durchsucht, die die Inspektoroberfläche des Webkits automatisieren.

1.- Wird die Funktion in binärer Form auf tatsächlichen Android-Geräten ausgeführt? (Wurde die Webkit-Distribution von adroid ohne aktiviertes WDS-Flag erstellt? :-()

2.- Kann die Remote-Debug-Funktion über Javascript oder eine Anwendung (auf Java-Ebene) aktiviert/verwendet werden, z. beim Start der App?

3.- Falls es möglich ist, die Webkit Inspector/Debugger-Funktion zu aktivieren, wie kann eine Interaktion von einer entfernten Anwendung aus ermöglicht werden? (z. B. von einer anderen Javascript-App, die Websockets verwendet, oder Chrome auf Desktop-Computern).

Einige Abschnitte, in denen die Funktionsweise erläutert wird, wie https://developers.google.com/chrome-developer-tools/docs/remote-debugging#remote , wären nett!

vielen Dank im Voraus für Informationen oder Hinweise zu diesem Thema. Ich halte es für wichtig, das Remote-Debugging (auf dem Gerät) auf Javascript-Ebene zu aktivieren, um die moderne Entwicklung von HTML5-Anwendungen und ein zufriedenstellendes Debugging zu ermöglichen.

prost, Ale.

13
aleReimondo

Für Android> = 4.4 (KitKat)

Siehe Remote-Debugging auf Android mit Chrome

Für Android <4.4 (niedrigere Versionen)

Verwenden Sie ein sehr gutes Open-Source-Tool: weinre . Hilfe zur Verwendung finden Sie unter this video. Wenn Sie mit Grunzen vertraut sind, können Sie grunt-weinre verwenden.

Zur schnellen Ansicht:

  1. installiere weinre mit npm
  2. Mache die Konfiguration in deiner Grunzdatei.
  3. Führen Sie die Aufgabe weinre grunt aus.
  4. Verwenden Sie dieses Skript, um den weinre-Zielcode in Ihre Webseite einzufügen.
  1. Öffnen Sie http: // localhost: 8082 in Ihrem Browser, und Sie werden Geräte finden, die über dem Skript ausgeführt werden. Sie können alle diese Geräte debuggen.

HINWEIS: Wenn Sie Webview/Browser auf Ihrem Mobilgerät debuggen möchten, müssen Sie localhost durch die IP-Adresse Ihres Computers ersetzen, auf der weinre ausgeführt wird. Und ja, alle Geräte sollten sich im selben Netzwerk befinden.

7
vinesh
5
Jan

Sie können mit dem weinre - Projekt ein Remote-Debugging durchführen, das auf den Android-Browser abzielt. Oder verwenden Sie Chrome Remote Debugging mit dem Chrome für Android-Browser. Soweit ich weiß, können Sie WebView nicht direkt als Ziel festlegen, aber wenn Sie den Android-Browser als Ziel festlegen, sollten Sie nah dran sein.

3
David Chandler

Pre KitKat jsHyBugger funktioniert gut (Testversion und jährliche Einzelplatzlizenz 29 €)

(Ich habe keine Verbindung zu den Entwicklern/habe eine Lizenz gekauft)

0
Bob

Dies ist nicht möglich, da der Debugger-Backend-Code nicht vorhanden ist. Der Quellcode, auf den Sie verweisen, ist eine Kopie der Webkit-Quelle in Android, wird jedoch nicht in Android-Release-Bits kompiliert.

0
Jan