2011-09-05 81 views
3

我想优化本机代码。我试过使用Debug.startMethodTracing()和Debug.stopMethodTracing()。但它只分析java函数,不分析本机代码。我们从java代码执行的本地调用仅显示那段时间,内部本地调用未显示。我以调试模式构建本地库,即使那样我也无法分析本机代码。无法分析Android本机代码

在stackoverflow我得到了这些链接,但这些也没有多大用处,请帮我分析本机代码。我正在为Android上的应用程序开发发布手机。所以,我没有访问android源代码。请指导我。

链接:
1)dmtracedump doesn't work, HELP!
2)Android native code profiling
3)http://developer.android.com/guide/developing/debugging/debugging-tracing.html

d:\仿形> dmtracedump -o d:\仿形\ EvrcEncoderProfiling.trace
ERROR:无法读取42170个字节从跟踪文件
d:\仿形> traceview d:\仿形\ EvrcEncoderProfiling.trace
d:\仿形>

Traceview正在工作,但dmtracedump无法正常工作。

感谢&问候,
SSuman185

+0

请考虑这个线程作为延续,因为在评论部分我不能格式化文本我打开了新的线程。如果我更新了上面的线程,那么延续将会错过,他回答[点击此处继续android-ndk-profiler](http://stackoverflow.com/questions/7316399/android-ndk-profiler-no-maps-发现) – Suman

回答

3

But its profiling only java functions, its not profiling the native code.

正确的。这就是Traceview所能做的,因为跟踪文件只有Dalvik信息。

Traceview is working but dmtracedump is not working.

虽然我不知道为什么它不适合你的工作(我从来没有使用过),它不会有任何更深入地了解您的本机代码比将Traceview。你需要用老式的方式来分析你的本地代码:收集和记录时间。

+0

我假设你已经尝试了这种[老式的方式](http://stackoverflow.com/questions/375913/what-c​​an-i-use-to-profile-c-code-in-linux/ 378024#378024)。 –

+0

实际上,我在网上获得了有关android-ndk-profiler的信息,但没有帮助。每当我收到错误,找不到地图,无法追踪本地代码。 – Suman