Android SDK logcat是否按照创建它们的顺序显示自定义Log.d()消息?

时间:2013-09-02 10:16:06

标签: java android logcat android-logcat

我在Thread中有以下代码部分

    if(isPlaying){
        if(applyDsp){
            // Convert short lin[] to double
             Log.d("MYLOG", "applyDSP is True");

            if(bufferFull){
                // when the code reaches here x[39] always holds the latest sample
                // (if lin.length  == 1)
                Log.d("MYLOG", "bufferFull is True");
                for(i=0;i<(lin.length - 1);i++){
                    x[i] = x[i+1];
                }
            }  

这是在Thread内部的无限循环内。 Thread的run()函数在此无限循环结束之前不会结束。所以上面的代码部分继续被调用,直到其他地方满足其他条件。 applyDspbufferFullboolean个变量。它们最初是假的,但一旦它们变为true,它们就不会在run()函数内的无限循环内重置为false。一旦bufferFull成立,每次无限循环执行时,消息applyDSP is TruebufferFull is True都应该被显示。但我看到有时消息applyDSP is True连续多次出现,然后两个交替,然后applyDSP is True再次连续出现,然后再次交替,依此类推。我已多次查看代码,无法找到为什么bufferFull将重置为false。所以我现在猜测消息可能没有以正确的顺序显示。

Logcat是否在显示它们之前首先缓冲它的消息,或者它们在Logcat中看到它们的确切顺序?

--- --- EDIT
使用@TCA对答案的评论中解释的方法,它只将logcat输出的一小部分写入文件,可能是在给出命令时生成的那一部分。我希望将logcat输出流式传输到文件,因为它将流式传输到android SDK中的logcat面板。

1 个答案:

答案 0 :(得分:0)

我认为,如果您有疑问,请按顺序输出日志消息

System.currentTimeMillis()

使用您的日志消息并检查时间。

喜欢

  

Log.d(“MILLSEC中的MYLOG TIME:”+ System.currentTimeMillis(),“bufferFull   是真的“);