Java 检测特定应用程序的内存和CPU消耗
我想检测android中特定应用程序的内存和CPU消耗量(以编程方式),有人能帮我吗。我已经尝试了TOP方法,但我想要一个替代方法Java 检测特定应用程序的内存和CPU消耗,java,android,memory,cpu-usage,Java,Android,Memory,Cpu Usage,我想检测android中特定应用程序的内存和CPU消耗量(以编程方式),有人能帮我吗。我已经尝试了TOP方法,但我想要一个替代方法 任何帮助都将不胜感激,谢谢:)如果您想在应用程序中跟踪内存使用情况,那么就有API了 可以使用API跟踪Cpu使用情况 要获得更多关于内存使用情况的信息,请在应用程序外部使用adb shell dumpsys meminfo[-d]获取更具体的内存使用统计信息。例如,com.google.android.apps.mapsprocess的命令如下: adb shel
任何帮助都将不胜感激,谢谢:)如果您想在应用程序中跟踪内存使用情况,那么就有API了 可以使用API跟踪Cpu使用情况 要获得更多关于内存使用情况的信息,请在应用程序外部使用
adb shell dumpsys meminfo[-d]
获取更具体的内存使用统计信息。例如,com.google.android.apps.maps
process的命令如下:
adb shell dumpsys meminfo com.google.android.apps.maps-d
这将为您提供以下输出:
** MEMINFO in pid 18227 [com.google.android.apps.maps] **
Pss Private Private Swapped Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
Native Heap 10468 10408 0 0 20480 14462 6017
Dalvik Heap 34340 33816 0 0 62436 53883 8553
Dalvik Other 972 972 0 0
Stack 1144 1144 0 0
Gfx dev 35300 35300 0 0
Other dev 5 0 4 0
.so mmap 1943 504 188 0
.apk mmap 598 0 136 0
.ttf mmap 134 0 68 0
.dex mmap 3908 0 3904 0
.oat mmap 1344 0 56 0
.art mmap 2037 1784 28 0
Other mmap 30 4 0 0
EGL mtrack 73072 73072 0 0
GL mtrack 51044 51044 0 0
Unknown 185 184 0 0
TOTAL 216524 208232 4384 0 82916 68345 14570
(输出微调)更多信息
跟踪现代操作系统上的内存使用情况是一项非常复杂的任务。有关更多信息,请参见此项。要获取您的processid:
int pid = android.os.Process.myPid();
要获取CPU使用率,请执行以下操作:
public String getCPUUsage(int pid) {
Process p;
try {
String[] cmd = {
"sh",
"-c",
"top -m 1000 -d 1 -n 1 | grep \""+pid+"\" "};
p = Runtime.getRuntime().exec(cmd);
String line = reader.readLine();
// line contains the process info
}
我可以通过programmaticallyCpuStatsCollector API不是公共API的应用程序使用它吗,因此我们不能使用它,请在发布answer@Amritesh这意味着我们不能使用CpuStatsCollector?@ReflusterpointerException API未向开发人员公开。。因此,我们无法使用。您可以将此代码放在应用程序(您必须在日志中打印该行)、特定位置或广播接收器中,您可以在特定实例中触发该代码,并在控制台中检查日志。