
您不再需要将Log.d()放在每行代码上!
在调试应用程序时,有时我们会开始在整个代码中生成日志以处理任何问题。
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!") } }
这很好用,但是碰巧我们忘记在提交前删除日志,它们“安全地”进入了生产代码。
最好不要在完成日志后将日志留给调试,即使您使用ProGuard在编译后的代码中自动删除日志也是如此,因为它们会对代码的整体可读性产生不利影响。 就像注释一样,日志很容易开始与周围的代码有所不同,充其量变得毫无用处,最糟糕的是会引起误解。
当日志记录需要满足某些条件时,情况变得更加复杂。 现在,这不仅是无用的if else堆,而且还可能是昂贵的代码。
但是事实证明,有一种非常简单的方法可以解决此问题。 IntelliJ和Android Studio允许您创建不中断代码执行的断点(英文断点 )(是的,这是合法的)。
首先,通过单击编辑器的左侧或使用键盘快捷键Ctrl-F8在任意行上创建断点。 然后,您可以通过右键单击断点或使用键盘快捷键Ctrl-Shift-F8来编辑断点。 您将看到一个这样的窗口:

然后取消选中Suspend (俄罗斯暂停 ),您将在此模式窗口中看到更多选项:

现在,将任何日志添加到“ Evaluate and 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 { } } }
好多了吧? 现在使用不间断的断点! 您所要做的就是以调试模式启动该应用程序,并且消息将显示在控制台中。
在此处了解有关Android Studio中其他技巧的信息。