Android图片加载速度

时间:2012-02-07 11:17:12

标签: android performance image load format

有谁在那里知道什么图像格式导致最快的加载速度? 我没有做任何检查,但如果有人,请发表评论。

我知道Android文档说它支持:.JPG.GIF.PNG.BMP.WEBP。 可以说我必须非常快速地加载许多图像,我应该使用哪种格式来获得最佳性能?我已经在使用低分辨率和高分辨率图像了。加载低分辨率图像的速度非常快,但是如果你快速滚动我的屏幕,有时它可能无法跟上(有黑色部分)。

另外,加载物质的方法是什么?我目前正在使用BitmapFactory.DecodeFile(path),因为它是最简单的。我异步加载图像,因此UI中没有“打嗝”但我们有时会看到黑色部分几毫秒。

我知道这也与I / O速度有关,但让我们生活在一个理想的世界里,这个速度可以忽略不计。

3 个答案:

答案 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。