Несколько отсоединенных экземпляров webview, которые можно увидеть на устройствах chrome во время навигации в гибридном приложении android


У нас есть гибридное приложение для android. Я пытаюсь перейти от контекста WebView к контексту Native назад и вперед. Используя chrome://inspect/#devices, я замечаю, что несколько экземпляров устройства проверяются detached, в то время как один из всех будет attached, как показано в chrome. Ссылаясь на SO-28254614 , Теперь я не разработал WebView, хотя, насколько я знаю о нашем приложении, WebView не разработаны с использованием Cordova и находятся в JS. И вопрос, который у меня есть:

  • Почему это это так, что мы видим эти отсоединенные устройства на chrome?
  • может ли это быть утечкой в Android WebView?
[5]}правка 1: с нетерпением жду помощи. Подняли за это несколько раз, но безрезультатно. Жду какого-то решения этой проблемы.

Правка 2: все еще ищу возможный ответ. Электрический ток ответы не содержат достаточно подробностей.

1 30

1 ответ:

Таким образом, способ работы этих веб-инспекторов заключается в том, что они используют протокол RemoteDebug.

Этот протокол определяет различные сообщения и команды, которыми вы обмениваетесь, чтобы "проверить" свои страницы.

Один экземпляр инспектора может одновременно подключаться только к одному клиенту. Поэтому, предполагая, что вы переключаетесь между веб-представлениями и собственным контекстом, вы в основном создаете новые веб-представления для каждого нового переключения контекста.

Это будет означать, что ранее открытые веб-просмотры теперь "осиротели" и для всех практических целей detached.

Можно попытаться сообщить виртуальной машине, что webview больше не используется, вызвав destroy() в webview, чтобы сборщик мусора знал, что он больше не требуется.

Надеюсь, это даст более глубокое понимание того, что происходит за кулисами.