是否可以在Android中监控每个方法的CPU、内存使用情况

是否可以在Android中监控每个方法的CPU、内存使用情况,android,Android,我的Android应用程序有很多方法,也许每种方法都能运行1000行。我需要监控每个方法的CPU和内存使用时间(毫秒),这样我就可以知道哪个方法占用了大量的CPU和内存,我可以在以后对其进行优化。这可能吗?任何解决方案/建议都会有很大帮助:)您可以设置两个日期时间变量,一个在开头,一个在结尾 Time start= new Time(); now.setToNow(); //Your method Time end = new Time(); now.setToNow(); 从一开始就转移

我的Android应用程序有很多方法,也许每种方法都能运行1000行。我需要监控每个方法的CPU和内存使用时间(毫秒),这样我就可以知道哪个方法占用了大量的CPU和内存,我可以在以后对其进行优化。这可能吗?任何解决方案/建议都会有很大帮助:)

您可以设置两个日期时间变量,一个在开头,一个在结尾

Time start= new Time();
now.setToNow();

//Your method

Time end = new Time();
now.setToNow();
从一开始就转移注意力,看看需要多长时间


记录结果:Log.I(“方法名称”、“持续时间”)

考虑在Traceview中使用评测

这可以帮助您跟踪每个线程/方法等的时间线。请查看下面的链接


调试模式
带有
断点
,您可以看到每个方法/行的
内存泄漏
。这是为了检查方法执行时间,但我需要知道每个方法的cpu、内存利用率。抱歉。我的错。。。我必须读书。也许用这个?它是否也为我提供了每个方法的CPU和内存利用率?您需要在studio中使用两个开发工具来获取所需的信息,例如和DDMs。此链接应该让您对内存监视器、堆查看器和分配跟踪器有更多的了解,我需要通过编程实现这一点,而不是使用评测或traceview。
I finally found out how to do this - 

//Calculate function execution time
double start = System.currentTimeMillis();
double end = System.currentTimeMillis();
double t = (end - start);

//Calculate the amount of time that the current thread has spent executing code or waiting for certain types of I/O.
double start1 = Debug.threadCpuTimeNanos();
double end1 = Debug.threadCpuTimeNanos();
double t1 = (end1 - start1)/1000000;

//CPU Usage
double cpu = (t1/t) * 100;

//if t=0,cpu becomes infinity programmatically but it means cpu usage is 0.