提笔忘字 2017-08-09 02:36 采纳率: 50%
浏览 960
已采纳

android 图片内存溢出

 

在界面显示多个图片的时候(10多张图片,每张500Kb左右),就会出现内存溢出的日志,但是应用不会崩溃,只会导致图片不显示,只显示占位图或者加重错误的图片。
这种情况只在一种设备上出现(厂家定制的设备),在其他手机上不会出现,在模拟器上(运存调到800MB)也不会出现。有没有懂得老司机帮忙分析一下。

 
 
图片说明
上图是出现的异常日志
 
图片说明
上图是运行时内存使用情况
 
图片说明
上图是查看build.prop文件的内存
 

  • 写回答

5条回答 默认 最新

  • smile_邝野 2017-08-09 06:11
    关注

    重新配置下glide配置如下
    public class GlideModelConfig implements GlideModule{
    int diskSize = 1024 * 1024 * 100 ;
    int memorySize = (int) (Runtime.getRuntime().maxMemory()) / 8;
    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
    //默认内存和图片池大小
    MemorySizeCalculator calculator = new MemorySizeCalculator(context);
    int defaultMemoryCacheSize = calculator.getMemoryCacheSize();//默认内存大小
    int defaultBitmapPoolSize = calculator.getBitmapPoolSize();//默认图片池大小
    builder.setMemoryCache(new LruResourceCache(defaultMemoryCacheSize));
    builder.setBitmapPool(new LruBitmapPool(defaultBitmapPoolSize));

        //自定义图片的本地磁盘缓存
        File cacheDir =context.getExternalCacheDir();//置顶数据的缓存地址
        int diskCacheSize = 1024 * 1024 * 30 ;//最多缓存字节数据
        //设置磁盘缓存大小
        builder.setDiskCache(new DiskLruCacheFactory(cacheDir.getPath(),"glide",diskCacheSize));
        //定义缓存大小和位置
        builder.setDiskCache(new InternalCacheDiskCacheFactory(context,diskSize));//内存中
        builder.setDiskCache(new ExternalCacheDiskCacheFactory(context,"cache",diskSize));//SD卡中
        //定义图片格式
        builder.setDecodeFormat(DecodeFormat.PREFER_RGB_565);
        //自定义内存和图片池大小
        builder.setMemoryCache(new LruResourceCache(memorySize));
        builder.setBitmapPool(new LruBitmapPool(memorySize));
    }
    
    @Override
    public void registerComponents(Context context, Glide glide) {
    
    }
    

    }
    之后在清单文件中
    <!-- 配置glide相关缓存策略 -->
    android:name="包名.GlideModelConfig"
    android:value="GlideModule" />

                        这么试试
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素