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

android 图片内存溢出

 

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

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

  • 写回答

5条回答 默认 最新

  • smile_邝野 2017-08-08 22: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 vscode请求各位指导
  • ¥50 有偿求qftp工具。能连接,下载文件,发送代码,windows环境,最好qt6 要qt creator写的
  • ¥70 刚刚看到一个人的网站居然是通过cname访问的
  • ¥15 Attributeerror:super object has no attribute '__sklearn_tags__'_'
  • ¥15 逆置单链表输出不完整
  • ¥15 宇视vms-B200-A16@R启动不了,如下图所示,在软件工具搜不到,如何解决?(操作系统-linux)
  • ¥500 寻找一名电子工程师完成pcb主板设计(拒绝AI生成式答案)
  • ¥15 关于#mysql#的问题:UNION ALL(相关搜索:sql语句)
  • ¥15 matlab二位可视化能否针对不同数值范围分开分级?
  • ¥15 已经创建了模拟器但是不能用来运行app 怎么办😭自己搞两天了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部