我想检测 android <中特定应用的内存和 CPU 消费 / strong>(以编程方式),任何人都可以帮助我。我尝试过TOP方法,但我想要一个替代方法。
感谢任何帮助,谢谢:)
答案 0 :(得分:0)
如果您想在应用中追踪内存使用情况,那么就会有ActivityManager.getMemoryInfo() API。
可以使用CpuStatsCollector API跟踪Cpu使用情况。
有关内容使用情况的更多信息,在应用程序外部,您可以使用adb shell dumpsys meminfo <package_name|pid> [-d]
获取更具体的内存使用情况统计信息。例如,有com.google.android.apps.maps
进程的命令:
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
(输出已修剪)有关它的更多信息here
在现代操作系统上跟踪内存使用情况是一项非常复杂的任务。有关详细信息,请参阅此question。
答案 1 :(得分:0)
获取你的processid:
class Child;
class Parent
{
public:
Parent(Child& ch) : child(ch) {}
private:
Child& child;
};
获取CPU使用率:
int pid = android.os.Process.myPid();