本人菜鸟一枚,极大发挥了搜索的功能。现记录一番,以备后患。
用断点真的很烦,因为之前写linux的时候,就是用最蠢但是也是挺有帮助的printf()来进行调试。
其实用Log输出日志的原理也是差不多的,都是打印想输出的东西,看看编译器执行到哪个位置了。
为什么要用Log呢?
--Android Studio不能用print或者println来输出,本人亲自测试了(网上说println可以,但是我的还是不行,只能尝试Log方法了,然后一下子就调试成功了)
基本知识
1、Log需要导入的包为:import android.util.Log
2、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose(冗长,啰嗦),平时使用就是Log.v("随便一个字符串用作标签","随便一个字符串用作输出的东西")。
3、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,它会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择,这个用得就比较多了。
4、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息。
5、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化Android代码,同时选择它后还会输出Log.e的信息。
6、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。
用法简单介绍
1.如下,一个简单函数(用kotlin写的一个函数)
fun showDialog(view: View) {
Log.d("TAG","***********1")//这里是日志测试1
myDialog= MyDialog(this, R.layout.create_user_dialog, onClickListener)
Log.d("TAG","***********4")//这里是日志测试4
myDialog?.show()
}
val onClickListener = object : View.OnClickListener {
override fun onClick(v: View?) {
Log.d("TAG","***********2")//这里是日志测试2
when (v?.getId()) {
R.id.btn_save -> {
val name = myDialog?.text_name?.getText().toString().trim()
val mobile = myDialog?.text_mobile?.getText().toString().trim()
val info = myDialog?.text_info?.getText().toString().trim()
println(name + "——" + mobile + "——" + info)
}
}
Log.d("TAG","***********3")//这里日志测试3
}
2.点击左下角的Android Monitor,然后看到有一个logcat,就是主要观察点了
可以查看到Log输出信息:********1等信息,通过这些信息可以判断函数怎么执行的。
3.还可以把logcat窗口拖出来,方便查看。