我需要找到我的Android应用程序中的瓶颈在哪里。
有哪些分析工具或技术可以使用?
我需要找到我的Android应用程序中的瓶颈在哪里。
有哪些分析工具或技术可以使用?
这要看你要测试什么。
如果你正在开发Android应用程序,你应该尝试使用TimingLogger类。请查看描述TimingLogger帮助类使用方法的这篇文章。
一个非常好的工具是JMeter,也有一个针对Android的插件。
如果你不想使用外部工具,而是想采用非常标准的方式来测量经过的时间,你必须使用System.nanoTime()。你不应该使用currentTimeMillis,因为它测量的是挂钟时间,由于没有电脑的时钟是完美的(它们都偶尔需要校正),所以会有一个运行并持续发出小的纠正系统时钟的进程。更不用说闰秒的校正了。
尽管currentTimeMillis经常被使用,但它仍然不正确地测量经过的时间和时间。无论如何,由于调用需要一些时间,你不应该期望正确地计时非常非常小的时间间隔。但在处理Android时这不应该是个问题。
我会给你展示一个例子:
long startTime = System.nanoTime();
// run/call the method
long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);
你也可以看一下这个免费的库:http://jetm.void.fm/。
同样,你也可以找到 JMeter 的教程。
http://developer.android.com/training/articles/perf-tips.html 推荐的另一个工具是 Caliper: https://code.google.com/p/caliper/。 (我没有使用过它,所以对它不是很了解。)