本人菜鳥一枚,極大發揮了搜索的功能。現記錄一番,以備後患。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窗口拖出來,方便查看。