震惊!!!Webview使用外部链接贴图会导致内存直线飙升!

设备:vivo X20,
运行环境:app内嵌webview运行creator打包的web-mobile项目 ,
具体代码:
changeHeadImg: function (sprite, url) {
//写法一
cc.loader.load(url, function (err, texture) {
if (err) {
cc.log(err);
}
sprite.spriteFrame = new cc.SpriteFrame(texture);
});

    //写法二
    var img = new Image();
    img.src = url;
    img.onload = function () {
        var texture = new cc.Texture2D();
        texture.generateMipmaps = false;
        texture.initWithElement(img);
        texture.handleLoadedTexture();
        var newFrame = new cc.SpriteFrame(texture);
        sprite.spriteFrame = newFrame;
    }
}

定位了几天终于定位到是这个使用外部链接的图片作为头像的代码导致的graphics内存飙升,加载了4个头像会在短短几秒钟内内存飚到1G以上 目前测试主要在vivo x20上有这个问题 其他手机正常

不知道是我写法的问题还是 设备兼容性的问题

引擎大大们 能帮忙看下吗

谁能来回答一下呀

:joy::joy::joy::joy::joy::joy:

帮顶~

1赞

:joy::joy::joy::joy::joy:

大佬们:sob:

恐怖, 看着就像是一个很棘手的问题. 如果其他手机都没有问题的话, 很有可能是 vivo 手机自己改了底层导致的.

这个问题折腾我好多天了 这么久才定位问题所在 现在却得不到解决办法呀

逛了论坛这么久, 我发现复杂一些的问题在论坛中能解决的几率很低, 主要原因可能是大家花费精力帮你解决问题后的收益(名/利)很低, 所以没有动力, 一般就是举手之劳能帮就帮.

所以对于你的这个情况, 我有这么几点建议:

  1. 尝试联系 VOVI技术人员 看有无解决方案.
  2. 在知乎这种名相对有用的地方去发帖咨询, 可以 @ cocos 官方账号/游戏行业的技术大牛
  3. 在 github 仓库发 issue 看能否引起引擎开发人员的注意.
  4. 找一个技术专家付费咨询/远程解决.

你需要准备的资料有:

  1. 略详细一些的问题描述
  2. 可以触发这个问题的最小 demo
1赞

新发现 是因为用了圆形mask导致的 在canvas渲染模式下导致的 @panda@jare

原生游戏里使用webview、videoview这类原生控件,特定设备的锅你找厂商比较靠谱
引擎只是封装了对原生控件的调用而已

可以发个bug 小demo让引擎人员测试下

不是用了原生控件 是在原生的web view跑h5游戏