J'ai besoin d'inspecter l'exécution de javascript (widget Webview) dans une application Android, lors du débogage; via le SDK et un câble USB et/ou http/websockets; à partir de l'ordinateur destop (par exemple, chrome fonctionnant sur le bureau).
Les sources de Webkit incluent une implémentation DebuggerServer (platform_external_webkit\Source\WebKit\Android\wds\DebugServer.cpp) accessible au niveau cpp et liée si l'indicateur WDS est activé (au moment de la construction?)
Source\WebKit\Android\jni\WebCoreFrameBridge.cpp: #if ENABLE (WDS) Source\WebKit\Android\jni\WebCoreFrameBridge.cpp: WDS :: serveur () -> addFrame (cadre);
Le port par défaut pour le serveur est 9999
Les sources montrent que tout est mis en œuvre (au niveau Cpp) pour activer la fonctionnalité, mais je n’ai trouvé aucune référence à la recherche sur le Web d’expériences utilisant le débogage en direct au niveau javascript dans des périphériques adroid automatisant l’interface d’inspecteur de webkit.
1.- La fonctionnalité est-elle présente, sous forme binaire, s'exécutant sur des appareils Android réels? (La distribution de webkit par adroid a-t-elle été construite sans le drapeau WDS activé? :-()
2.- La fonctionnalité de débogage distant peut-elle être activée/utilisée à partir de javascript ou d'une application (au niveau de Java), par exemple. au démarrage de l'application?
3.- S'il est possible d'activer la fonction inspecteur/débogueur webkit, comment permettre l'interaction à partir d'une application distante? (par exemple, depuis une autre application javascript utilisant des websockets ou chrome sur des ordinateurs de bureau).
Certains paragraphes expliquant les mécanismes tels que https://developers.google.com/chrome-developer-tools/docs/remote-debugging#remote seraient sympas!
merci d'avance pour toute information ou référence sur ce sujet. Je considère important d'activer le débogage à distance (dans l'appareil) au niveau javascript pour permettre le développement moderne d'applications HTML5 et une expérience de débogage optimisée.
à la vôtre, Ale.
Pour Android> = 4.4 (KitKat)
Voir Débogage à distance sur Android avec Chrome
Pour Android <4.4 (versions inférieures)
Utilisez un très bon outil open source: weinre . Voir this video pour obtenir de l'aide pour l'utiliser. Si vous maîtrisez grunt, vous pouvez utiliser grunt-weinre
Pour un aperçu rapide:
REMARQUE: si vous souhaitez déboguer webview/browser sur votre appareil mobile, vous devez remplacer localhost par l'adresse IP de votre ordinateur qui fonctionne, weinre. Et oui, tous les appareils doivent être sur le même réseau.
Maintenant, c'est facile avec Android 4.4. Voir https://developers.google.com/chrome-developer-tools/docs/remote-debugging#debugging-webviews
Vous pouvez effectuer un débogage à distance ciblant le navigateur Android avec le projet weinre . Ou utilisez Débogage à distance de Chrome avec le navigateur Chrome pour Android. Autant que je sache, vous ne pouvez pas cibler directement une WebView, mais le navigateur Android devrait vous rapprocher.
Pre KitKat jsHyBugger fonctionne bien (version d'essai et licence annuelle pour utilisateur unique 29 €)
(Je n'ai aucun lien avec les développeurs/j'ai acheté une licence)
Cela ne peut pas être fait, car le code d’arrière-plan du débogueur n’est pas là. Le code source auquel vous faites référence est une copie de la source Webkit dans Android, mais il n'est pas compilé dans les versions d'Android.