当前位置: 主页 > 三五图库 > 内容

自动内存!Facebook推出强大Android图片库Fresco

时间:2017-07-25 23:34  来源:未知  作者:admin

  快速而又高效的显示图片对Android设备来说是件极其重要的事情,但在过去的几年里,在有效存储图像方面我们面临了很多问题。图片太大,而手机又只有很小的内存,特别是Android设备还要将内存分割给各个应用。所以,太多的图片总会耗去大部分的内存,从而导致应用的崩溃。

  为了解决这一问题,Facebook最近推出了一款用于Android应用中展示图片的强大图片库Fresco,它能够从网络、本地存储和本地资源中加载图片。而且,为了节省数据和CPU,它拥有缓存。此外,Fresco在显示方面是用了Drawees,可以显示占位符,直到图片加载完成。而当图片从屏幕上消失时,会自动图片所占的内存。Fresco支持Android 2.3及以上版本,目前已托管至Github上。

  解压后的图片和Android的位图都会占据很大的内存,这导致Java 垃圾收集器更频繁的运行,也让应用变得更加缓慢,这一问题在没有对垃圾收集器进行完善的Android 5.0上尤为严重。

  在Android 4.x及以下版本,Fresco将图片放置在Android内存的一个特殊。这可以确保当图像不在屏幕上显示时,可以自动它们所占的内存。让应用运行的更快速,且不易崩溃。

  使用Fresco的应用,即使在配置低端的设备上也能正常运行,而且你无需经常性地去担心图片的内存占用情况。

  Web上的渐进式(Progressive)JPEG图片已经存在多年,打开文件过程中,会先显示整个图片的模糊轮廓,随着扫描次数的增加,图片变得越来越清晰。这种格式可以说是网络较慢情况下的救星,通过图片的轮廓知道正在加载的图片大概是什么。

  Android自己的图片库不支持streaming,而Fresco可以,只需指定一个URI,你的应用程序就可以随着数据的到来,自动更新它的显示。

  动画GIF和WebP应该是应用的难点,每一帧都是一个大型的位图,而每个动画都是一系列的帧。Fresco则负责加载和处理这些帧及管理它们的内存。

  Fresco在显示方面使用了Drawees,Fresco的Drawees能够显示占位符,直到图片已加载,并自动显示到图像到达时:

相关推荐