【问题标题】:Android Image Loading SpeedsAndroid 图片加载速度
【发布时间】:2012-02-28 19:44:50
【问题描述】:

有没有人知道哪种图像格式可以带来最快的加载速度? 我没有做过任何检查,但如果有人做过,请发表评论。

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

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

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

【问题讨论】:

    标签: android performance image load format


    【解决方案1】:

    我的猜测是,瓶颈将是 I/O 速度,而不是 CPU 速度。这意味着压缩最多的格式将是最快的,即使解压缩需要 CPU 时间。所以答案是JPEG。

    【讨论】:

      【解决方案2】:

      我的两分钱:我做了一些测试,在 Fragment onCreateView() 方法中加载了一个大图像 (1200x1700) 作为背景资源(并调整大小以适合片段宽度)。

      以下是每种图像格式的 4 次计时测量(图像加载 + 布局膨胀),以毫秒为单位:

      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 略快。

      【讨论】:

      • 数据。我喜欢用数据而不是猜测来回答,谢谢!
      【解决方案3】:

      令人惊讶的是 IO 并不是瓶颈。

      1024x1024x32BPP 图像。

      在原生方面,我在加载内容方面拥有更大的灵活性。

      PNG:109 毫秒 自定义 TGA 加载器:39 毫秒
      自定义 RAW 加载器:32ms

      分析器显示 PNG 加载器花费了一段时间来解压缩,使文件 IO 相形见绌。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        • 2014-12-14
        • 2019-02-15
        • 1970-01-01
        • 2014-02-06
        • 1970-01-01
        • 2014-12-03
        相关资源
        最近更新 更多