关于android text view 加载第三方字库导致内存泄漏问题
来源:互联网 发布:浙江华为 知乎 编辑:程序博客网 时间:2024/05/21 23:54
最近项目里接到了一个需求,app里面不同的文本使用不同的字体样式
通常来说,你在百度上一搜,结果是这样的
这样的
以上方法都能实现,但是第一种方法每次加载一个自定义文本框,就会加载一次字库,
第二种方法只适用于少量 activity ,如果是大量的fragment 那就不太科学了,
一般字库大小也好几M,加载多几次就导致内存暴增了
不信你可以这样看看
adb shell dumpsys meminfo +包名
注意红色框框,每次加载都会添加一个,(上图为优化后结果)
几次界面切换,我的app运行内存竟然达到200m。。。
网上查了很多调用第三方字体的用例,都是用这种方法,难道他们都没注意到内存?
我的解决方法,就是把字库加载为全局变量
public class App extends Application { public static Typeface typeface; public static Typeface typeface2; @Override public void onCreate() { super.onCreate(); typeface = Typeface.createFromAsset(getAssets(), "fonts/Fzy3jw.ttf"); typeface2 = Typeface.createFromAsset(getAssets(), "fonts/fzcy.ttf"); }}
调用的时候
public class CustomFontContent extends TextView { public CustomFontContent(Context context) { super(context); } public CustomFontContent(Context context, AttributeSet attrs) { super(context, attrs); } public CustomFontContent(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void setTypeface(Typeface tf, int style) { super.setTypeface(App.typeface); }}<cn.dlj.XXX.utils.CustomFontTextView android:id="@+id/notice_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="bottom" android:maxWidth="700dp" android:text="-" android:textColor="@color/main_text_color" android:textSize="@dimen/activity_main_notice_title" />
完事,全局变量只加载一次,之后你怎么使用都不会增加内存
阅读全文
0 0
- 关于android text view 加载第三方字库导致内存泄漏问题
- 动态加载第三方字库
- 关于Android VideoView导致的内存泄漏的问题
- 关于Android VideoView导致的内存泄漏的问题
- 常见的导致Android内存泄漏问题
- Android中第三方框架【网络框架Volley】的使用【Application生命周期】【内存泄漏问题】
- 关于ExitInstance不执行,导致很多内存泄漏的问题
- 关于地图API 使用导致内存泄漏问题
- Android动态加载第三方APK的View研究过程
- Android:关于ListView的内存泄漏问题
- android 使用Handler 会导致内存泄漏问题
- 再谈android内存泄漏—常见的八种导致 APP 内存泄漏的问题
- 关于内存泄漏问题
- Android 全局替换第三方字库(自定义字体)
- 如何避免因第三方供应商而导致数据泄漏
- Android异常一、异步任务导致的窗口句柄泄漏问题(内存泄漏)
- 关于Android中的内存溢出和内存泄漏的问题
- android内存泄漏问题
- idea 快捷键
- 【校长刘阿姨寄语毕业生:终身学习 自信从容 不甘示弱】
- centos镜像文件下载链接
- 走向云计算之MapReduce的代码辅助优化和改善
- 使用 iOS 8 Spring Animation API 创建动画
- 关于android text view 加载第三方字库导致内存泄漏问题
- Java数组
- Oracle表空间,用户,用户授权
- rac 环境下的机器用户规划
- ES6学习记录
- 2017/6/15 linux makefile kconfig
- 89C52单片机之数码管中断
- 数据结构-双循环链表
- 浅谈C++指针类型的转换