有谁在那里知道什么图像格式导致最快的加载速度? 我没有做任何检查,但如果有人,请发表评论。
我知道Android文档说它支持:.JPG
,.GIF
,.PNG
,.BMP
,.WEBP
。
可以说我必须非常快速地加载许多图像,我应该使用哪种格式来获得最佳性能?我已经在使用低分辨率和高分辨率图像了。加载低分辨率图像的速度非常快,但是如果你快速滚动我的屏幕,有时它可能无法跟上(有黑色部分)。
另外,加载物质的方法是什么?我目前正在使用BitmapFactory.DecodeFile(path)
,因为它是最简单的。我异步加载图像,因此UI中没有“打嗝”但我们有时会看到黑色部分几毫秒。
我知道这也与I / O速度有关,但让我们生活在一个理想的世界里,这个速度可以忽略不计。
答案 0 :(得分:1)
我的猜测是,瓶颈将是I / O速度,而不是CPU速度。这意味着最压缩的格式将是最快的,即使它需要CPU时间来解压缩。所以答案是JPEG。
答案 1 :(得分:1)
我的两分钱:我已经完成了一些测试,在Fragment onCreateView()方法中加载了一个大图像(1200x1700)作为背景资源(并调整大小以适应片段宽度)。
这是每个图像格式的4个定时测量(图像加载+布局膨胀),单位为ms:
PNG: 212 200 188 220 (saved with Photoshop)
PNG: 200 196 224 192 (compressed with TinyPNG)
JPG: 248 248 260 244
所以我猜PNG(无论是哪种,Photoshop或TinyPNG)加载的速度比JPG快一点。
答案 2 :(得分:0)
令人惊讶的是,IO并非瓶颈。
1024x1024x32BPP图片。
从本机方面来说,我在加载内容方面更具灵活性。
PNG:109ms
定制的TGA加载器:39ms
自定义RAW加载程序:32ms
探查器显示PNG加载器花费了很多时间来解压缩文件IO。