記憶は大きな話題のようで、具体的な答えは見つかりません。ヒープで利用可能な量についての回答があり、どれだけ使用する必要があるかがわかります。アプリがヒープを使用しているメモリの量をプログラムで決定するためのコーディング方法についての回答が必要ですか?そして、私はどのくらいの総メモリを使用していますか?
質問する
3812 次
2 に答える
3
これは機能します:
Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo();
Debug.getMemoryInfo(memoryInfo);
String memMessage = String.format("App Memory: Pss=%.2f MB\nPrivate=%.2f MB\nShared=%.2f MB",
memoryInfo.getTotalPss() / 1024.0,
memoryInfo.getTotalPrivateDirty() / 1024.0,
memoryInfo.getTotalSharedDirty() / 1024.0);
Toast.makeText(this,memMessage,Toast.LENGTH_LONG).show();
Log.i("log_tag", memMessage);
于 2012-07-12T05:21:01.723 に答える
2
Android Shellコマンドを使用top -d 1 -n 1
して、プロセス名またはプロセスごとに使用されたメモリを含むすべてのプロセスリストを取得し、システムからの戻り文字列からプロセス情報を抽出します。
BufferedReader in = null;
try {
Process process = null;
process = Runtime.getRuntime().exec("top -n 1 -d 1");
in = new BufferedReader(new
InputStreamReader(process.getInputStream()));
String line ="";
String content = "";
while((line = in.readLine()) != null) {
content += line + "\n";
}
System.out.println(content);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {
if(in != null) {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
次のように文字列を取得します。
PID PPID USER STAT VSZ %MEM %CPU COMMAND
9673 9672 root R 712 0.1 0.0 top -d 1 -n 1
2489 2386 system S 369m 87.7 0.0 system_server
3101 2386 app_23 S 304m 72.3 0.0 com.android.browser
2581 2386 radio S 279m 66.3 0.0 com.android.phone
2585 2386 app_15 S 271m 64.4 0.0 com.android.launcher
于 2012-07-09T06:17:06.727 に答える