android内存管理

快速降低运行时内存的方法

2020-03-17  本文已影响0人  朱_c713

原来的项目中代码如下:

fun loadImage(context: Context, imageUrl: Any?, view: ImageView, type: Int) {
    val myOptions = RequestOptions()
        .transform(GlideRoundTransform(7)) 
            Glide.with(context).load(imageUrl).apply(myOptions)
                .diskCacheStrategy(DiskCacheStrategy.NONE).into(view)
            println("圖片位址:$imageUrl")   

}

运行发现图片占用内存达到140兆左右。

没有对图片做缩放的处理
做了缩放处理后,运行时图片占用内存,从140m,到40兆左右。

fun loadImage(context: Context, imageUrl: Any?, view: ImageView, type: Int) {
   val myOptions = RequestOptions().override(300,300)
       .transform(GlideRoundTransform(7))
           Glide.with(context).load(imageUrl).apply(myOptions)
               .diskCacheStrategy(DiskCacheStrategy.NONE).into(view)
           println("圖片位址:$imageUrl")   

}

后来反复测试,感觉是误判。目前尚不清楚,为什么图片占用内存,一次运行,全是140左右(偶先),之后多次,两种代码都是四十多。
并且,感觉as有bug,后面图片内存一直显示42.2没动过,大神知道是申请情况么。


image.png

glide使用硬盘缓存策略的配置。

磁盘缓存策略(diskCacheStrategy)
Glide磁盘缓存策略分为四种,默认的是AUTOMATIC 智能缓存


image.png

1.ALL:缓存原图(SOURCE) 和缩略图
实测:显示效果不理想,滑动不流畅。
2.NONE:什么都不缓存
实测:显示效果不理想,item图片很久才能看到。
3.SOURCE:只缓存原图(SOURCE)
实测:和All的感觉差不多。
4.智能
最流畅,内存比较高。

在Adapter中加载图片采用以上缓存策略。

上一篇 下一篇

猜你喜欢

热点阅读