Issue
We have an hybrid android application. I am trying to navigate from a WebView to a Native context back and forth. Using chrome://inspect/#devices I get to notice that multiple instances of device inspected are detached while one of all would be attached as displayed in chrome.
Referring to SO-28254614, now I have not developed the WebView though, but to what I know about our application the WebView are not designed using Cordova and are in JS.
An the question that I have are :
- Why is it so that we see these detached devices on chrome?
- Could this be a possibility of a leak in Android WebView?
Solution
So the way these web inspectors work is that they use the RemoteDebug Protocol.
This protocol defines the various messages and commands that are exchanged to let you 'inspect' your pages.
One instance of the inspector can only connect to one client at a time. So assuming that you are switching to and fro web-views and native context, you are basically spawning new webviews for every new context switch.
This would indicate that the previously opened webviews are now 'orphaned' and for all practical purposes detached.
You can try to inform the VM that a webview is no longer in use by calling destroy() on the webview to let the garbage collector know it is no longer required.
Hope this provides a deeper understanding on what is happening behind the scenes.
Answered By - Sunny R Gupta
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.