美文网首页android内存管理
快速降低运行时内存的方法

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

作者: 朱_c713 | 来源:发表于2020-03-17 14:10 被阅读0次

    原来的项目中代码如下:

    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中加载图片采用以上缓存策略。

    相关文章

      网友评论

        本文标题:快速降低运行时内存的方法

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