我有一个类似Pulse的应用程序及其处于测试阶段 https://play.google.com/store/apps/details?id=com.braindigit.nepal.khabar
我有一个主要布局,其中包含一个名为LinearLayout
的{{1}},在此布局中,我动态添加和删除另一个布局名称NewsCategoryHolder
。这个CategoryView
包含{{1}和其他CategoryView
。
为了进一步导航,我实施了HorizontalListView
,每次点击标签views
都会删除其所有观看次数,然后添加ActionbarSherlock Tab
。
每个NewsCategoryHolder
都有自己的CategoryView
,可以从服务器或数据库加载数据。
在每次添加和删除CategoryView
时,我删除了所有视图,将其适配器指定为null,甚至将AsyncTask
保持为null。但是当我从CategoryView
导航到Context
时,应用程序的内存会增加。我觉得我的应用程序出现了一些内存泄漏的情况。
我已经阅读了有关Tab
和其他分析器的所有教程,链接和视频,但我无法确定应用消耗内存的确切部分或Tab
无法使用的点收集对象引用。
我只是想找到内存消耗高的位置,但无法做到这一点。我已经附加了* .hprof http://news.braindigit.com/saved/android3201806337409456011.hprof文件,只是希望得到一些关于其分析和我的应用程序包的帮助名称为MAT
答案 0 :(得分:0)
我发现内存消耗高的主要原因。从MAT
开始,从布局和各种语句中删除各种视图后,我发现我使用的是asset
文件夹中的字体是罪魁祸首。
headingText.setTypeface(Typeface.createFromAsset(context.getAssets(), DataHolder.FONT_PATH));
通过执行此操作,可能会引用Context
或引用TypeFace
并且从未garbage collected
。但删除此行代码修复了我的应用上的所有内存泄漏问题。
此问题可以使用此处描述的技术解决 Typeface memory leak