2015-12-05 11 views
29

Abbiamo un'applicazione ibrida per Android. Sto provando a navigare da un WebView a un contesto Native avanti e indietro. Utilizzo di chrome://inspect/#devices È possibile notare che più istanze del dispositivo ispezionato sono detached mentre uno di tutti è attached come visualizzato in chrome. Riferendosi allo SO-28254614, ora non ho ancora sviluppato la WebView, ma per quello che so della nostra applicazione la WebView non è progettata usando Cordova e si trova in JS. Una domanda che ho sono:Istanze di webview distaccate multiple viste in dispositivi chrome durante la navigazione nell'app ibrida per android

  • Perché è così che vediamo questi dispositivi staccati su Chrome?
  • Questa potrebbe essere una possibilità di perdita in Android WebView?

MODIFICA 1: In attesa di qualche aiuto. Ha aumentato la taglia su questo più volte ma inutilizzato. Aspetto una soluzione a questo.

MODIFICA 2: Ancora in cerca di una possibile risposta. Le attuali risposte non contengono dettagli sufficienti.

+1

Stai riscontrando un compromesso in termini di prestazioni mentre stai navigando nella WebView dell'app? Ecco i documenti Google relativi a perdite di memoria: https://developers.google.com/web/tools/chrome-devtools/profile/memory-problems/memory-diagnosis Probabilmente non sarà di aiuto, ma questo è un bug dell'ombrello per eclissi relativo a problemi con la visualizzazione web separata. https://bugs.eclipse.org/bugs/show_bug.cgi?id=276221 –

+1

@ElonZito Le prestazioni delle visualizzazioni Web sono relativamente più lente rispetto al contesto nativo. Avrebbe seguito i controlli delle prestazioni e tenere d'occhio il Bug. – nullpointer

risposta

4

Quindi il modo in cui funzionano questi ispettori web è che utilizzano lo RemoteDebug Protocol.

Questo protocollo definisce i vari messaggi e comandi scambiati per consentire di "ispezionare" le pagine.

Un'istanza dell'ispettore può connettersi solo a un client alla volta. Quindi, supponendo che tu stia passando da e verso le viste web e il contesto nativo, stai praticamente generando nuove visioni web per ogni nuovo cambio di contesto.

Ciò indicherebbe che le visualizzazioni Web precedentemente aperte sono ora "orfane" e per tutti gli scopi pratici detached.

È possibile provare a informare la VM che una visualizzazione Web non è più in uso chiamando destroy() nella visualizzazione Web per consentire al garbage collector di sapere che non è più necessario.

Spero che ciò fornisca una comprensione più profonda di ciò che accade dietro le quinte.

+2

La mia app attuale è anche un ibrido, e questa risposta è giusta sul denaro. La situazione che descrivi è riassunta perfettamente da Sunny. Questo è un comportamento totalmente normale per quanto ne so, e direi la risposta alla tua domanda _ Potrebbe esserci una possibilità di perdita in Android WebView? _ È no. – bhawkeswood

+0

@nullpointer Fatemi sapere se questo aiuta la vostra richiesta. –

Problemi correlati