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