我正在尝试了解Android应用程序使用的内存,因为看起来我的应用程序正在泄漏内存,而我无法控制内存使用情况。
设置应用程序列出了应用程序内存使用情况(例如,我的应用程序为90 MB)。这个数字是如何计算的?
adb shell ps | grep 'myapp'
显示常驻设置大小,对于我的应用,大约比设置应用下显示的大20MB
我的猜测是第一个是Android的PSS,第二个是常规的Linux RSS,但不确定......
我的应用程序是一个phonegap应用程序,即一个大的webview,并在本机Android端运行几个与网络相关的东西(发送和接收UDP数据包)。虽然没有触及设备,Eclipse DDMS中报告的Heap不会改变(我的SGS3上使用的12MB为15MB),但settings
app下的内存以及ps
输出中报告的内存略有增长随着时间的推移。每30分钟大约1MB,但有时会跳起10MB或更多而且永远不会再次下降。所以这看起来像是内存泄漏。我没有编写JNI代码,即整个网络部分都在使用Android SDK。
这种经历过记忆力增长的可能原因是什么?
如何调试Android上的非java堆内存问题?