本人菜鸟一枚,极大发挥了搜索的功能。现记录一番,以备后患。java
用断点真的很烦,由于以前写linux的时候,就是用最蠢可是也是挺有帮助的printf()来进行调试。linux
其实用Log输出日志的原理也是差很少的,都是打印想输出的东西,看看编译器执行到哪一个位置了。android
为何要用Log呢?ide
--Android Studio不能用print或者println来输出,本人亲自测试了(网上说println能够,可是个人仍是不行,只能尝试Log方法了,而后一会儿就调试成功了)函数
基本知识测试
一、Log须要导入的包为:import android.util.Log优化
二、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v表明verbose(冗长,啰嗦),平时使用就是Log.v("随便一个字符串用做标签","随便一个字符串用做输出的东西")。this
三、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,它会输出上层的信息,过滤起来能够经过DDMS的Logcat标签来选择,这个用得就比较多了。spa
四、Log.i的输出为绿色,通常提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息。debug
五、Log.w的意思为橙色,能够看做为warning警告,通常须要咱们注意优化Android代码,同时选择它后还会输出Log.e的信息。
六、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窗口拖出来,方便查看。