[]UI内存泄漏

说是内存统计问题,更新了好几个版本了,我又测试了下,好像还是没解决。
然后我自己看了下源码,找到些问题,像button,我视图卸载,释放后,CleanRes后,还能从AutoBitmap里取到我的图集并显示出来(附件Button1)。就是把Button里_sources缓存到了AutoBitmap里,destroy的时候这部分也没有相关的处理。暴力点,不理这个缓存,手动的释放sources的里Texture,整个资源得到真正的释放。这是一个问题,还有问题就是九宫格了,用到九宫格的地方,AutoBitmap里全部缓存了,而且都是静态缓存了,清理缓存只是简单的置空,其实主纹理还在内存中。我其实很不理解为什么AutoBitmap要做静态缓存,用到AutoBitmap的地方其实都new 了一个,为什么还要静态方法和静态变量来缓存,我想这么做的初衷可能是一套游戏,就一套UI,缓存起来方便,但模块部分可能有自己特殊的按钮,这就有问题了,模块的部分资源都不能彻底的释放。
已邀请:

yung

赞同来自:

关于释放:1.在1.0.2版本开始,缓存数量达到50后,会自动释放
2.可以手动释放,调用AutoBitmap.clearCache()方法
3.我们对这个结果仍然不满意,后面有更好的改进方式,还会进一步改进
 
关于做缓存的原因:
因为UI元素里面经常用到9宫格,比如按钮,设置9宫格,如果不做缓存,创建同样大小的按钮,会导致创建9个新的texture,其实这样很浪费,并且组织绘图命令也很浪费,这是为什么缓存原因。

要回复问题请先

商务合作
商务合作