3

Androidで現在実行中のプロセスの空きメモリ量を取得するには? または、現在のプロセスに割り当てられているメモリの総量をプログラムで取得する方法は?

ActivityManager.getMemoryInfo()私の場合、空きシステムメモリを返しますが、プロセスメモリは返さないため、メソッドは機能しません。メソッドもありActivityManager.getProcessInfo()ますが、古い API 構造体を返します。そのデータを使用して空きメモリの量を取得できるかどうかはわかりません。

その方法についての説明、または空きメモリの量を取得するための他の方法はありますか?

4

5 に答える 5

3

Runtime.getRuntime().maxMemory();プロセスの最大ヒープサイズをバイト単位で返すwhichを使用することもできます。

これは通常、メモリクラスと同じですが、メモリクラスが高い値(つまり24MB)を返し、ヒープサイズが低い値(つまり16MB)を返し、プロセスで実際に使用できる値が低い場合の状況を見つけました。 。

于 2012-10-09T17:13:01.700 に答える
2

次のコードを試してください。

      ActivityManager activityManager = = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
      MemoryInfo mi = new MemoryInfo();
      activityManager.getMemoryInfo(mi);
      Log.i("memory free", "" + mi.availMem);
于 2012-10-09T16:43:07.347 に答える
1

私にとっては十分ではありませんが、ActivityManager.getMemoryClass()アプリケーションに割り当てられたメモリの量をメガバイト単位で返すことがわかりました。

于 2012-10-09T16:56:56.640 に答える
0

次のコマンドを試してください。

アプリケーションを起動し、次のコマンドを入力します

    C:\Program Files\Android\android-sdk\platform-tools\adb shell dumpsys meminfo "your package name"
于 2012-10-09T16:40:40.217 に答える
0

このDebugクラスは、プロセス メモリの使用に関する多くの有用な情報を提供します。Dalvik ヒープとネイティブ ヒープに関する情報を取得できます。http://developer.android.com/reference/android/os/Debug.htmlを参照してください

于 2012-10-09T20:11:38.460 に答える