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