Android中内存泄露监测
2015-09-18 11:45
253 查看
在了解了JVM的内存管理后,我们再回过头来看看,在android中应该怎样来监测内存,从而看在应用中是否存在内存分配和垃圾回收问题而造成内存泄露情况。
在android中,有一个相对来说还不错的工具,可以用来监测内存是否存在泄露情况:DDMS—Heap
使用方法比较简单:
选择DDMS视图,并打开Devices视图和Heap视图
点击选择要监控的进程,比如:上图中我选择的是system_process
选中Devices视图界面上的"update
heap" 图标
点击Heap视图中的"Cause
GC" 按钮(相当于向虚拟机发送了一次GC请求的操作)
在Heap视图中选择想要监控的Type,一般我们会观察dataobject的 total
size的变化,正常情况下total size的值会稳定在一个有限的范围内,也就说程序中的代码良好,没有造成程序中的对象不被回收的情况。如果代码中存在没有释放对象引用的情况,那么data object的total
size在每次GC之后都不会有明显的回落,随着操作次数的增加而total size也在不断的增加。(说明:选择好data
object后,不断的操作应用,这样才可以看出total size的变化)。如果totalsize确实是在不断增加而没有回落,说明程序中有没有被释放的资源引用。
在android中,有一个相对来说还不错的工具,可以用来监测内存是否存在泄露情况:DDMS—Heap
使用方法比较简单:
选择DDMS视图,并打开Devices视图和Heap视图
点击选择要监控的进程,比如:上图中我选择的是system_process
选中Devices视图界面上的"update
heap" 图标
点击Heap视图中的"Cause
GC" 按钮(相当于向虚拟机发送了一次GC请求的操作)
在Heap视图中选择想要监控的Type,一般我们会观察dataobject的 total
size的变化,正常情况下total size的值会稳定在一个有限的范围内,也就说程序中的代码良好,没有造成程序中的对象不被回收的情况。如果代码中存在没有释放对象引用的情况,那么data object的total
size在每次GC之后都不会有明显的回落,随着操作次数的增加而total size也在不断的增加。(说明:选择好data
object后,不断的操作应用,这样才可以看出total size的变化)。如果totalsize确实是在不断增加而没有回落,说明程序中有没有被释放的资源引用。
相关文章推荐
- Android代码截屏
- android 透明的activity
- android 高仿IOS水滴版上下拉刷新的Listview
- android 个人懒人笔记
- Android项目包名修改
- Android Studio如何发布APK
- 墙内无缝更新Android SDK
- Android开发中立即停止AsyncTask和Thread的一些办法
- android中listview的setAdapter()和getAdapter()
- Android中将布局文件/View添加至窗口过程分析 ---- 从setContentView()谈起
- android:图片裁剪
- Android基础入门教程——7.6.4 基于UDP协议的Socket通信
- Android 踩坑记录
- 非常实用的android动态注册广播并发送以及接收实例
- 遇到问题你可以 at 的那些 Android 开发者
- android中editText弹出软键盘并且根据editText中是否是内容来控制按钮的可用性
- Android代码混淆
- Android uses-permission 权限大全
- Android控件之文本控件---TextView 两种效果+SpannableString
- Android Studio增量更新(非软件自带方法)