Javascript 使用HTML5视频的WebView内存泄漏

Javascript 使用HTML5视频的WebView内存泄漏,javascript,android,performance,android-webview,html5-video,Javascript,Android,Performance,Android Webview,Html5 Video,我正在用android创建一个非常简单的应用程序。 此应用程序有1个Web视图。和index.html文件中的 我想做的是, 我想在WebView中运行index.html(成功) index.html所做的是, 它从同一文件夹中获取3个视频,并在无限循环中逐个运行这些视频。 一切都很顺利,然而,我能看到的最大问题是内存分析器 在对应用程序进行长期测试之后,我发现本机内存一直在上升,而不是下降。这真奇怪 到目前为止我所做的 1) 在不同的WebView版本中测试应用程序 2) 在Cordova中

我正在用android创建一个非常简单的应用程序。 此应用程序有1个Web视图。和index.html文件中的

我想做的是, 我想在WebView中运行index.html(成功)

index.html所做的是, 它从同一文件夹中获取3个视频,并在无限循环中逐个运行这些视频。 一切都很顺利,然而,我能看到的最大问题是内存分析器

在对应用程序进行长期测试之后,我发现本机内存一直在上升,而不是下降。这真奇怪

到目前为止我所做的

1) 在不同的
WebView
版本中测试应用程序

2) 在Cordova中创建项目时测试相同的问题

3) 在爱奥尼亚开发同样的东西

4) 每隔一小时调用System.gc()

5) 从HTML和javascript中删除所有可能的代码

6) 创建本机项目加载webview并在其中显示index.html

请检查下面的代码index.htm代码

<!DOCTYPE html>
<html>
<head>

<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Arial;
  font-size: 17px;
}

#myVideo {
  position: fixed;
  right: 0;
  bottom: 0;
  min-width: 100%; 
  min-height: 100%;
}

.content {
  position: fixed;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  color: #f1f1f1;
  width: 100%;
  padding: 20px;
}

#myBtn {
  width: 200px;
  font-size: 18px;
  padding: 10px;
  border: none;
  background: #000;
  color: #fff;
  cursor: pointer;
}

#myBtn:hover {
  background: #ddd;
  color: black;
}
</style>
</head>
<body>

<video id="homevideo" width="100%" autoplay onended="run()" muted>
    <source src="video1.webm" type="video/webm">
Your browser does not support HTML5 video.
</video>

<script>

video_count =1;
videoPlayer = document.getElementById("homevideo");

function run(){
        video_count++;
        if (video_count == 4) video_count = 1;
        var nextVideo = "video"+video_count+".webm";
        videoPlayer.src = nextVideo;
        videoPlayer.play();
   };

</script>

</body>
</html>

* {
框大小:边框框;
}
身体{
保证金:0;
字体系列:Arial;
字号:17px;
}
#我的视频{
位置:固定;
右:0;
底部:0;
最小宽度:100%;
最小高度:100%;
}
.内容{
位置:固定;
底部:0;
背景:rgba(0,0,0,0.5);
颜色:#f1f1;
宽度:100%;
填充:20px;
}
#myBtn{
宽度:200px;
字号:18px;
填充:10px;
边界:无;
背景:#000;
颜色:#fff;
光标:指针;
}
#myBtn:悬停{
背景:ddd;
颜色:黑色;
}
您的浏览器不支持HTML5视频。
视频计数=1;
videoPlayer=document.getElementById(“家庭视频”);
函数运行(){
视频计数++;
如果(视频计数=4)视频计数=1;
var nextVideo=“video”+视频计数+”.webm”;
videoPlayer.src=nextVideo;
视频播放器;
};
如果需要进一步的信息,请告诉我

还要检查探查器报告

提前谢谢

===============================================================================

花了一整天的时间在android原生浏览器应用程序“com.android.browser”中运行index.html之后。它给出了几乎相同的结果。图表继续上升。请核对所附图表

我不能给出确切的问题,但除了主要内容(地图链接…)外,我从不在index.html中添加任何内容。Index.html是应用程序的主要加载部分,它是一个重定向点,因此将文件放在一个普通的ionic页面中,然后在不放置js循环的情况下,将视频放在page.html中,将ts文件留空,然后运行应用程序,看看是否再次过热,如果没有,那么过热来自您在此处创建的else Recommition循环,我将了解更多关于..@MostafaHarb的信息:问题是当我运行index.html时,经过一段时间,本机内存(蓝色)不断增加。最终导致应用程序崩溃。此外,这个index.html是理解这个问题的核心。否则,我已经遵循了你建议的指导方针。记忆还在增长吗?@MostafaHarb是的,你正在使用的设备是什么?