android加载字体内存泄漏的处理方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android加载字体内存泄漏的处理方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1742字,纯文字阅读大概需要3分钟。
内容图文
在开发android app的开发过程中,会使用到外部的一些字体。外部字体在加载的时候,容易造成内存泄漏。
比如:
Typeface tf=Typeface.createFromAsset(getAssets(), Consts.LANTING_FONT_PATH);
title.setTypeface(tf);
如果在每次调用的时候都这样写,会造成每次执行的时候都会重新加载一次该字体,导致内存不断变大。
跑monkey测试的时候,执行:
adb shell dumpsys meminfo 【packgename】
此命令会打出当前应用内存占用情况,如下:
** MEMINFO in pid 26390 [packgemane] ** Pss Private Private Swapped Heap Heap Heap Total Dirty Clean Dirty Size Alloc Free ------ ------ ------ ------ ------ ------ ------ Native Heap 0 0 0 0 24372 23593 758 Dalvik Heap 30256 30020 0 0 39116 34608 4508 Dalvik Other 2254 2180 0 0 Stack 132 132 0 0 Cursor 8 8 0 0 Other dev 4 0 4 0 .so mmap 998 816 12 0 .apk mmap 1795 0 1636 0 .ttf mmap 115 0 76 0 .dex mmap 1215 56 980 0 Other mmap 406 4 88 0 Unknown 22295 22292 0 0 TOTAL 59478 55508 2796 0 63488 58201 5266 Objects Views: 840 ViewRootImpl: 7 AppContexts: 6 Activities: 4 Assets: 39 AssetManagers: 39 Local Binders: 47 Proxy Binders: 29 Death Recipients: 0 OpenSSL Sockets: 0 SQL MEMORY_USED: 296 PAGECACHE_OVERFLOW: 136 MALLOC_SIZE: 62 DATABASES pgsz dbsz Lookaside(b) cache Dbname 4 116 80 28/19/5 /××××××4 16 110 9/18/4 /×××××× Asset Allocations zip:/system/app/×××××.apk:/assets/fonts/Roboto-Light.ttf: 366K zip:/system/app/×××××.apk:/assets/fonts/Lantinghei.TTF: 2344K zip:/system/app/×××××.apk:/assets/fonts/CoreSansM25ExtraLight.ttf: 210K zip:/system/app/×××××.apk:/assets/fonts/CoreSansM25ExtraLight.ttf: 210K ... ... ... zip:/system/app/×××××.apk:/assets/fonts/CoreSansM25ExtraLight.ttf: 210K
从日志可以看出CoreSansM25ExtraLight这个字体被加载了多次,导致内存泄漏。
如和解决字体内存泄漏呢?方法很简单:
将字体定义为常量,仅在oncreate方法中进行初始化即可。
Consts.TF_CORESANS_FONT = Typeface.createFromAsset(getAssets(), Consts.CORESANS_FONT_PATH);
原文:http://www.cnblogs.com/xiajf/p/4138464.html
内容总结
以上是互联网集市为您收集整理的android加载字体内存泄漏的处理方法全部内容,希望文章能够帮你解决android加载字体内存泄漏的处理方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。