美文网首页面试题IT面试前端开发
阿里面试题android网络图片加载优化

阿里面试题android网络图片加载优化

作者: 牧童遥指2000 | 来源:发表于2016-07-18 00:17 被阅读299次

    题目:

    遇到网络不好,卡顿的时候如何对网络的加载图片进行优化?

    思路:

    从加载的图片的本身和手机的存储两方面考虑

    解决办法:

    1.找现有图片格式的替换者

    在众多的图片格式中,选择了Google的WebP。原因很简单:压缩效率高,而且对Android的支持好(毕竟就是Google提出来的)。使用 WebP 之后,相对于JPG格式的图片,流量省了将近 25% 到 35 %;相对于 PNG 格式的图片,流量省了将近80%。最重要的是使用WebP之后图片质量还没改变。

    2.按照设备处理图片的能力来加载图片

    在之前,都是统一加载最大分辨率的图片,这样做是为了让用户可以自由的缩放图片。后来改进之后,app最先加载的图片大小适合显示这个图片窗口大小一样。如果需要缩略图,app就只加载缩略图大小的图片,用户需要更高分辨率的图片,app也能加载,而且之前的统一加载最大分辨率的图片了。

    3.调整缓存和重用图片的策略。

    使用手机的缓存,对经常使用的图片,比如首页的图片,以及经常点开的图片设置算法进行缓存

    4.优化网络请求

    使用OkHttp。OkHttp 支持在糟糕的网络环境下面更快的重试,并且还能利用 SPDY 协议进行快速的并发网络请求。
    利用Okhttp调整图片的预先抓取算法,确保app中下载队列前面的图片被优先处理,防止队列阻塞时间过长。
    参考:https://greenrobot.me/devnews/facebook-engineer-improve-android-app/

    相关文章

      网友评论

        本文标题:阿里面试题android网络图片加载优化

        本文链接:https://www.haomeiwen.com/subject/ndjpjttx.html