内存管理与防范手段
caiwenfeng_for_23
这个作者很懒,什么都没留下…
展开
-
内存分配跟踪工具DDMS –>Allocation tracker 使用
运行DDMS,只需简单的选择应用进程并单击Allocation tracker标签,就会打开一个新的窗口,单击“Start Tracing”按钮;然后,让应用运行你想分析的代码。运行完毕后,单击“Get Allocations”按钮,一个已分配对象的列表就会出现第一个表格中。单击第一个表格中的任何一项,在表格二中就会出现导致该内存分配的栈跟踪信息。通过allocation tracker,不仅知道转载 2014-04-08 21:39:36 · 8811 阅读 · 0 评论 -
内存分析工具MAT(MemoryAnalyzerTool)
如果使用DDMS确实发现了我们的程序中存在内存泄漏,那又如何定位到具体出现问题的代码片段,最终找到问题所在呢?如 果从头到尾的分析代码逻辑,那肯定会把人逼疯,特别是在维护别人写的代码的时候。这里介绍一个极好的内存分析工具 MemoryAnalyzerTool(MAT)。 MAT是一个Eclipse插件,同时也有单独的RCP客户端。官方下载地址、MAT介绍和详细的使用教程请参见:www.ecl转载 2014-04-08 21:45:33 · 7228 阅读 · 0 评论 -
防范不良代码
1.查询数据库没有关闭游标 程序中经常会进行查询数据库的操作,但是经常会有使用完毕Cursor后没有关闭的情况。如果我们的查询结果集比较小,对内存的消耗不容易被发现,只有在常时间大量操作的情况下才会复现内存问题,这样就会给以后的测试和问题排查带来困难和风险。 示例代码: Cursor cursor=getContentResolver().query(uri...); if(cur转载 2014-04-08 21:59:46 · 1478 阅读 · 0 评论 -
优化代码
1.使用自身方法(Use Native Methods) 当处理字符串的时候,不要犹豫,尽可能多的使用诸如String.indexOf()、String.lastIndexOf()这样对象自身带有的方法。因为这些方法使用C/C++来实现的,要比在一个java循环中做同样的事情快10-100倍。还有一点要补充说明的是,这些自身方法使用的代价要比那些解释过的方法高很多,因而,对于细微的运算,尽量不用转载 2014-04-08 22:04:59 · 1726 阅读 · 0 评论 -
内存监测工具DDMS-->Heap
无论怎么小心,想完全避免badcode是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方。Androidtools中的DDMS就带有一个很不错的内存监测工具Heap(这里我使eclipse的ADT插件,并以真机为例,在模拟器中的情况类似)。用Heap监测应用进程使用内存情况的步骤如下: 1.启动eclipse后,切换到DDMS透视图,并确认Devices视图、He转载 2014-04-08 21:41:20 · 1812 阅读 · 0 评论 -
MAT使用实例
使用DDMS检查这个应用的heap使用情况。你可以使用下面的方法启动DDMS: From Eclipse : click Window > Open Perspective>Other...>DDMS 在左边的面板选择进程com.founder.android.new.kyodo.activity,然后在工具条上边点击 heap updates按钮。 这个时候切换到DDM转载 2014-04-08 21:54:24 · 5693 阅读 · 1 评论