android随意创建字体对象引发的应用程序运行时占用内存过大

android随意创建字体对象引发的应用程序运行时占用内存过大


在实际开发android项目过程中,由于是初次设置android系统没有的字体,所以用到了一个外部文件FounderFineRoundSimplified.ttf。为了让这个文件随apk一起打包进入应用,需要将该文件放在assets/fonts目录下,fonts是手动在assets目录下创建的目录,是为了方便管理。

       在应用程序用,由于整个应用程序凡是涉及到设置字体的,我都在即将要使用的地方使用了:Typeface fontFace = Typeface.createFromAsset(getAssets(),"fonts/FounderFineRoundSimplified.ttf"); 这句话来创建一个字体对象,由于使用的比较多,所以到后来程序中很多位置出现了这条语句。等到我把整个程序开发完毕之后做测试时,发现我的这个应用程序非常的占内存,一运行起来就要占用200M,这个数字的非常的恐怖的,很少见到一个简单的应用程序运行时需要这么多内存的,后来通过屏蔽语句一句一句的排除,发现,就是这条语句,每次创建时都会占用大约5M的内存,程序中我是用的位置,应该不在20条以下了,所以才会出现,无论如何我怎么精简我的其他部分程序都无法将运行内存降低下去,知道我把这条语句都屏蔽之后,占用内存奇迹般的减少了。但是由于程序中任然需要使用到字体设置,所以我将这条语句放在了application 中这样就达到了在整个运用程序中只需一条这个语句就可以设置所有字体了。这个问题困扰了两天,最终得以解决,在此特意做下笔记,提醒自己切勿忘记。

android随意创建字体对象引发的应用程序运行时占用内存过大,布布扣,bubuko.com

android随意创建字体对象引发的应用程序运行时占用内存过大

上一篇:Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析


下一篇:Arcgis For Android之离线地图实现的几种方式