bundle zip压缩,只是变成zip包,应该是会释放文件到缓存目录,
加载时其实是加载解压后内容先进内存再进显存
加载文件时有可能是导致内存峰值更高的原因之一
感觉不是这里的问题,他说的是bundle 这个包用的是zip方式,你下载了bundle 然后解压缩成散文件,这个过程不占内存,只占CPU,然后加载的都是包里面的那些散文件了,如果是加载ASTC 那根本不会和内存打交道的 直接进显存了就
先本地找一台设备测试一下吧,减少一些干扰因素。
有少数几张图,构建时警告说非二次幂,压缩纹理的配置将失效。但大部分图的astc都是构建成功的,从构建后的产物的体积确实变化了也能看出来。
你啊 打个安卓包 AS里比较一下就知道了其实 这个最直观
好,我打个包试试
这个前后,有关系吗?
不是直接进显存的
先读取文件进内存,
ASTC就不需要解码直接传递给显存
PNG就需要先解码为argb数据
你看前面给出的抖音文档的示图。
题主都没有配PNG,只有ASTC,如果设备不支持的ASTC的话,图像都显示不出来
我也好奇为么题主开启了纹理压缩,内存看起来毫无变化?
我分别用png和ASTC8x8打了安卓包,运行时使用androidStudio的Profiler查看内存,发现两个包内存占用还是差不多,在260MB~290MB之间波动。
ASTC 8x8:
PNG:
可以肯定纹理压缩是生效了的,因为ASTC 8x8的画质明显很糊。

你的图片占的比例是不是太小了,就是内存可能都是其他部分占用的,虽然图片压缩了,但这部分比例很小?
有可能,一张2048*2048的图片不压缩内存也就16M。引擎本身打开就占了几百M的内存。如果他只是拿几张图测试是很有可能这样的
他应该是先测试引擎占了多少内存,减去引擎的内存再去计算。或者多加个十几二十张大图片
可能内存瓶颈不在图片上。导致图片压缩后实际变化不大。
这个波动范围太大了, 可以搞个按钮,分别加载 astc 和png 对比 两个图片代来的内存增长。
这种讨论没有意义 , 压缩纹理内存占用规则肯定是生效的。






