2015-12-05 5 views
29

ハイブリッドアンドロイドアプリケーションがあります。 WebViewからNativeに前後にナビゲートしようとしています。 chrome://inspect/#devicesを使用すると、検査されたデバイスの複数のインスタンスはdetachedであり、一方はすべてがattachedと表示されます。 SO-28254614を参照して、今私はWebViewを開発していませんが、私のアプリケーションについて知っているところでは、WebViewはCordovaを使用して設計されておらず、JSにあります。 私が持っている質問は次のとおりです。ハイブリッドアンドロイドアプリでナビゲートしているときにクロムデバイスに表示される複数のデタッチされたwebviewインスタンス

  • なぜこれらの取り外したデバイスがクロムに​​見えるのですか?
  • これはAndroid WebViewでリークする可能性がありますか?

編集1:助けを楽しみにしています。この の特典を何度も使用していますが、何度も使用していません。これに対するいくつかの解決を待っています。

編集2:まだ可能な答えを探しています。現在の 回答には十分な詳細が含まれていません。

+1

アプリのWebViewでブラウズ中にパフォーマンスが低下していますか? メモリリークに関するGoogleドキュメントは次のとおりです。https://developers.google.com/web/tools/chrome-devtools/profile/memory-problems/memory-diosis おそらく助けになりませんが、これはおそらく役に立ちません。孤立したWebビューの問題に関するEclipseの傘バグ。 https://bugs.eclipse.org/bugs/show_bug.cgi?id=276221 –

+1

@ElonZito Webビューのパフォーマンスは、ネイティブコンテキストに関して比較的低速です。性能チェックに続き、バグを見守ります。 – nullpointer

答えて

4

したがって、これらのWeb検査官の作業方法は、RemoteDebug Protocolを使用することです。

このプロトコルは、ページを閲覧するために交換されるさまざまなメッセージとコマンドを定義します。

インスペクタの1つのインスタンスは、一度に1つのクライアントにしか接続できません。したがって、Webビューとネイティブコンテキストを切り替えると仮定すると、基本的に新しいコンテキストスイッチごとに新しいWebviewが生成されます。

これは、以前に開いたウェブビューが現在「孤立している」ことを示しており、実際の目的ではすべてdetachedです。

webviewで不要となったことをガベージコレクタに知らせるために、webviewでdestroy()を呼び出して、Webビューが使用中ではなくなったことをVMに知らせることができます。

これは、舞台裏で起こっていることをより深く理解することを望んでいます。

+2

私の現在のアプリもハイブリッドであり、この回答はお金の上にあります。あなたが描いている状況は、Sunnyによって完全にまとめられています。これは私が知っている限り、まったく正常な動作です。あなたの質問に対する答えは、_これはAndroid WebViewのリークの可能性がありますか?_はありません。 – bhawkeswood

+0

@nullpointerこれがクエリに役立つかどうか教えてください。 –

関連する問題