2012-02-24 52 views
1

我使用Eclipse + gdbserver + ndk7。似乎通过本地代码(由Java调用)进行调试需要很长时间(每步约20秒),可能会导致这种情况?这是正常的行为?Android JNI调试需要永久

+0

?当我使用模拟器使用gdb时,我注意到了巨大的延迟。在设备上调试应用程序没有这种延迟。 – 2012-02-24 22:46:31

+0

我正在使用实际的设备 – NadavRub 2012-02-25 05:28:18

回答

0

您可以使用日志进行调试。请看这link

  • 包括log.h文件到你的Android NDK源文件

    #include <android/log.h> 
    
  • 添加下面的一行到你的Android.mk使文件。现在

    LOCAL_LDLIBS := -llog 
    

你就可以开始记录,这两个步骤可以让你从Android NDK写在Eclipse日志。下面写在你的Android NDK的代码行和日志将体重出现在Eclipse

 __android_log_write(ANDROID_LOG_ERROR,"Tag","Message"); 

使用下列标志要在其中列写日志。

typedef enum android_LogPriority { 
    ANDROID_LOG_UNKNOWN = 0, 
    ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */ 
    ANDROID_LOG_VERBOSE, 
    ANDROID_LOG_DEBUG, 
    ANDROID_LOG_INFO, 
    ANDROID_LOG_WARN, 
    ANDROID_LOG_ERROR, 
    ANDROID_LOG_FATAL, 
    ANDROID_LOG_SILENT,  /* only for SetMinPriority(); must be last */ 
} android_LogPriority 

例如,如果你想在信息栏写你是你使用模拟器进行调试必须写

 __android_log_write(ANDROID_LOG_INFO,"Tag","Message"); 
+0

那么,用日志进行调试并不是那么高效......我真的需要能够通过调试器来充分利用我的时间...... – NadavRub 2012-02-25 05:29:33