メモリ使用量を制御できない時点でアプリがメモリをリークしているように見えるため、Android アプリケーションで使用されるメモリを理解しようとしています。
設定アプリケーションには、アプリケーションのメモリ使用量が一覧表示されます (例: 私のアプリでは 90 MB)。この数はどのように計算されますか?
adb shell ps | grep 'myapp'
私のアプリでは、設定アプリの下に表示されているものよりも約20MB大きい常駐セットサイズを示しています
私の推測では、最初のものは Android の PSS で、2 つ目は通常の Linux RSS ですが、確かではありません...
私のアプリは phonegap アプリ、つまり大きな webview であり、ネイティブの Android 側 (UDP パケットの送受信) でいくつかのネットワーク関連のものを実行します。デバイスに触れていない間、Eclipse DDMS で報告されるヒープは変化しませんが (私の SGS3 では 15MB のうち 12MB が使用されています)、settings
アプリのメモリと出力で報告されるメモリはps
時間の経過とともにわずかに増加します。約 30 分間で 1MB ですが、10MB 以上跳ね上がることもあり、二度と下がらないこともあります。したがって、これは本当にメモリ リークのように見えます。私は JNI のコードを書いていません。つまり、ネットワーキング部分全体で Android SDK を使用しています。
この経験豊富なメモリの増加の考えられる原因は何ですか?
Android で Java ヒープ以外のメモリの問題をデバッグするにはどうすればよいですか?