美文网首页
Android的createFromAsset内存溢出

Android的createFromAsset内存溢出

作者: lwtzzz | 来源:发表于2019-06-26 14:47 被阅读0次

先上日志:

06-26 14:20:56.914 E/filemap ( 6485): mmap(258048,5040412) failed: Out of memory

06-26 14:20:56.914 W/asset   ( 6485): create map from entry failed

找到OOM的位置。

罪魁祸首:

Typeface tf = Typeface.createFromAsset(mgr, "fonts/ShouShuti.ttf");

每次文字加载都去获取一下字体样式,估计之后设置就没有释放

selectionPinPaint.setTypeface(tf);

导致OOM;

解决方式:

private static Typeface fontCache;

private static Typeface getFrontType(Context mContext) {

    if (fontCache ==null) {

        try {

                fontCache = Typeface.createFromAsset(mContext.getAssets(),"fonts/frontType.ttf");

            }catch (Exception e) {

                Log.e("TextUtil--line:584", "fonts/ZITI.ttf not found");

                return null;

            }    

        }

      return fontCache;

}

增加缓存。

selectionPinPaint.setTypeface(getFrontType(context));

相关文章

  • Android的createFromAsset内存溢出

    先上日志: 06-26 14:20:56.914 E/filemap ( 6485): mmap(258048,5...

  • Android 优化

    Android 内存优化内存溢出 , 内存泄漏 , 内存泄漏过多就导致内存溢出 Android 系统垃圾回收机制内...

  • 面试总结 | 记一次Android 面试

    Android中的内存泄漏和内存溢出有什么区别?内存溢出是指程序在申请内存的时候,没有足够的内存可以分配,导致Ou...

  • 面试经历:记一次Android面试

    Android中的内存泄漏和内存溢出有什么区别? 内存溢出是指程序在申请内存的时候,没有足够的内存可以分配,导致O...

  • Android 非静态内部类/匿名类/Handler引起的内存泄

    一、内存溢出和内存泄漏 内存溢出:Android系统会给每个安卓程序分配一定的内存,当程序所使用的内存超过最大值就...

  • Android内存溢出

    如何避免OOM 1. 图片过大导致OOM(解决方法) 方法1: 等比例缩小图片方法2:对图片采用软引用,及时地进行...

  • 艺术开发探索十五章笔记

    Android性能优化 Android不可能无限制的使用内存和CPU资源,过多的使用内存会导致内存溢出,即OOM。...

  • Android内存如何泄露

    Android内存如何泄露 对象的生命周期溢出 对象无限创建引起内存爆满 生命周期溢出 内存泄露说到底是,对象的生...

  • Caused by: java.lang.OutOfMemory

    最笨拙的方法:解决Android[http://lib.csdn.net/base/android] 内存溢出 其...

  • leakcanery2源码

    LeakCanary是Android上用于检查内存泄漏的工具,LeakCanary大大减少因内存泄漏导致的内存溢出...

网友评论

      本文标题:Android的createFromAsset内存溢出

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