阅读 43

另一种打印输出日志信息的方式

当我们在调试应用程序的时候,我们或许会在我们的代码里插入几行log语句来看看这里到底发生了什么。比如:

class MainActivity : AppCompatActivity() {
 
    lateinit var retrofit: Retrofit
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        setupToolbar()
        Log.d("MyApp", "Toolbar Set")
 
        initRetrofit()
        Log.d("MyApp", "Retrofit Initialized")
 
 
        var myButton = findViewById<Button>(R.id.search_close_btn)
        myButton.setOnClickListener {
            Log.d("MyApp", "My Button Clicked")
        }
 
        Log.d("MyApp", "Activity Creation Done!")
 
    }
}


复制代码

这种方法很有效,但如果我们在提交代码之前忘记了删除这些日志,那么它们就会在代码审查的时候中被标记,甚至在我们发布应用时仍然存在。

现在IntelliJ和Android Studio提供了一种解决办法,它允许您创建非暂停性断点。

首先,单击任意一行代码,创建调试断点。然后你可以通过单击右键弹出编辑断点的对话框。你会看到这个:

然后,取消选中Suspend复选框,您会看到更多选项,如下所示:

现在,将代码中的log语句添加到Evaluate and log框中,如下所示:

当你从代码中删除了所有Log语句,并将它们放入断点之后,代码看起来会更干净整洁,如下所示:

class MainActivity : AppCompatActivity() {
 
    lateinit var retrofit: Retrofit
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        setupToolbar()
        
        initRetrofit()
        
        var myButton = findViewById<Button>(R.id.search_close_btn)
        myButton.setOnClickListener {
           
        }
 
    }
}


复制代码

最后您需要做的就是单击右上方“调试”按钮,在调试模式下运行应用程序,这些日志消息将会显示在调试控制台中。

评论