日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者:wanbo

Android Studio Debug 的 9 個小技巧

 

周末看 Android Dev Summit '19 的視頻的時候,看到一章關于 Android Studio Debug 的介紹,有很多日常非常有用的小技巧,學習了這些小技巧能很大程度的降低我們 Debug 的成本,快速定位問題的本質,今天就向大家介紹一下 Android Studio Debug 的 9 個小技巧。

沒關注的小伙伴記得關注,如果覺得這些文章有點意思,記得分享轉發評論點贊!

1. Log 過濾和折疊

有時候 Logcat 中 log 的信息很長,同時還有些我們不需要的信息也打印出來,例如下圖中的【時間+線程 ID】。

Android Studio Debug 的 9 個小技巧

 

這個時候我們可以點擊 Logcat 窗口上的【設置】按鈕,設置一條 Log 需要顯示哪些關鍵信息,可設置的項有:時間、線程ID、包名、Tag name。我們可以根據自己的需要控制顯示,并且下面還會有一條 Sample Log 提供設置后的預覽效果,就像下圖中這樣。

Android Studio Debug 的 9 個小技巧

 

日常開發的時候我們還會遇到另一種情況,比如根據當前 UI 的渲染情況,我們需要時刻打印 UI 的某個值,來幫助我們觀察 UI,同時當到達某種條件的時候,輸入一條我們得到的【結果 log】。也就是說在獲得我們的【結果 log】之前會有很多沒用但是又必須打印的 log,這樣當我們需要查找【結果 log】的時候就會非常麻煩。

Android Studio Debug 的 9 個小技巧

 

就像上圖中這樣,我們的【結果 log】被上下【循環打印 log】包圍了,很難一下子找出來,這時候我們可以選關鍵字【右鍵】,選擇【Fold Lines Like This】,如下圖所示。

Android Studio Debug 的 9 個小技巧

 

這樣我們相同關鍵字的 log 就會被折疊,當然也可以展開查看詳細 log。

Android Studio Debug 的 9 個小技巧

 

2. 自定義斷點執行條件

Android Studio Debug 的 9 個小技巧

 

我們來看上面這段代碼,通過字面意思我們可以得知:這是一個點擊事件執行的方法,點擊發生后通過 NavController 從當前 HomeFragment 跳轉到 EmailFragment。然后我們在第一行打了一個斷點,我們已經得知當 email 的 subject 包含 【Bonjour】關鍵字的時候,這段代碼會發生崩潰,反之不包含則不會發生崩潰,所以我們不需要每次斷點都生效。

這里我們可以右鍵斷點,在 Condition 里輸入我們的條件判斷語句,當條件允許的時候,斷點才生效。條件語句的代碼支持 Kotlin 和 JAVA 兩種語言的寫法,如下圖所示。

Android Studio Debug 的 9 個小技巧

 

然后如果我們想在跳轉到 EmailFragment 之后進一步去追蹤問題,于是我在 EmailFragment 的 onCreate 方法打了一個斷點(如下圖所示),然后這里還會遇到我們之前說的問題:不符合條件的時候斷點也會生效,這時候我們該怎么辦呢?

Android Studio Debug 的 9 個小技巧

 

我們可以在這個斷點上面,右鍵、點擊更多

Android Studio Debug 的 9 個小技巧

 

左邊選擇當前斷點之后,在右邊點擊【Disable until breakpoint hit】,選擇我們之前有條件判斷的斷點,那么這個新的斷點會在它所跟隨的斷點生效之后才會生效。

Android Studio Debug 的 9 個小技巧

 

3. 掛起線程

Android Studio Debug 的 9 個小技巧

 

當我們右鍵任意一個斷點的時候,會有一個 Suspend 選項【All、Thread】,All 也就意味著當我們在一個多線程的應用中 debug 問題的時候,一旦這個斷點生效,所有的線程都會被掛起,Thread 表示只掛起當前線程。所以當我們在某個后臺線程中 debug 問題的時候就可以選擇 Thread,這樣就不會在 debug 的時候阻塞主線程的正常功能。

還有一個打開關閉斷點的快捷鍵也分享一下:windows 用戶 Alt + Click ,mac Option + Click 。

4. 動態打印

詳細很多人包括我之前在 debug 的時候,都會在需要 debug 的地方增加 print 輸出一下信息供自己排查錯誤,這里提供一種快捷方便的方法,可以既不污染我們的代碼,又可以隨時輸出任意信息。

Android Studio Debug 的 9 個小技巧

 

如上圖所示,在需要打印的地方增加斷點,然后取消所有線程的掛起,選擇【Evaluate and log】,屬于我們需要打印的語句,當代碼執行到斷點的時候,不會暫停,而會根據我們設置的打印信息輸出 log,是不是很方便?

5. 斷點分組

Android Studio Debug 的 9 個小技巧

 

通常遇到一個問題的時候,我們需要增加很多斷點去追蹤問題的原因,當問題解決之后,往往會忘記取消這些斷點,導致在某次調試的時候,設備會被之前的斷點所暫停,會讓我們很無語。這里我們可以 debug 的時候在某個斷點上:右鍵、更多,然后選擇這個問題所有相關的斷點,將它們分到同一個 Group 里面,那么這一個組的斷點就可以統一開關、統一刪除。

6. 斷點上一步

說到這個真的很痛心,常常因為自己在 debug 的時候,由于下一步點擊的太快了而錯過了問題關鍵行,只能重新運行一次代碼,重新 debug 然后自己一次次點擊下一步。

Android Studio Debug 的 9 個小技巧

 

在運行 Android 10 的設備上,debug 界面中提供了一個叫【Drop frame】的按鈕,可以供我們跳出當前方法棧,返回上一步,這樣就會避免我們因為錯過斷點而不得不重新運行代碼。

7. 觀察對象

Android Studio Debug 的 9 個小技巧

 

當我們 debug 的時候,可以從 debug 窗口中觀察當前作用域中的對象以及對象的屬性,有時候我們會觀察在不同頁面是否是同一個對象,之前我的做法很粗暴...就是找張紙,把這個對象的 ID 記下來,然后在另一個頁面 debug 看 ID 是否一致

Android Studio Debug 的 9 個小技巧

 

這里我們可以在對象上右鍵、選擇【Mark Object】之后會讓你自定義一個 Label,然后在整個 debug 期間,相同的對象會以你設置的 Label 為 name 出現,幫助我們方便的分析是否是統一對象。

順便提一下,在任意一段代碼上,點擊行號,可以從當前斷點快速執行到目標行并暫停,這個我真是第一次知道,感覺之前 Android Studio 都白用了

Android Studio Debug 的 9 個小技巧

 

而且在 debug 的時候我們可以選擇 debug 窗口中的【Evaluate expression】按鈕來動態觀察對象,點擊之后會彈出一個計算框,我們可以輸入任意當前作用域中的對象以及屬性觀察。

Android Studio Debug 的 9 個小技巧

 

不得不說這個真的很方便,以前遇到這種情況我只有一種方法就是:print ,當然這里不僅僅是觀察對象,我們可以寫任意代碼觀察我們想要的值,就像下圖這樣。

Android Studio Debug 的 9 個小技巧

 

8. 增量更新

Android Studio Debug 的 9 個小技巧

 

我試了一下,這兩個按鈕是真的很好用啊,比重新全量運行應用真是快了不少,非常方便。

9. 錯誤棧分析

通常我們 App 中會繼承一下線上 bug 反饋的 SDK 比如 bugly,在 bugly 我們會得到崩潰的異常棧信息,類似下圖這樣。

Android Studio Debug 的 9 個小技巧

 

我們可以全選復制,打開我們的 Android Studio,選擇 Analyze → Analyze Stack Trace or Thread Dump,然后把異常棧信息粘貼進去,點擊確定。

Android Studio Debug 的 9 個小技巧

 

Android Studio 會在控制臺顯示這段異常棧信息,并且與現有代碼 Link 在一起,我們可以點擊跳轉到問題所在行。

Android Studio Debug 的 9 個小技巧

 

好了這就是今天要分享的全部內容,關于更多詳細的內容,大家可以關注我,進入我的主頁查看,改天考慮出一個【Android Studio 使用全攻略】,感覺很多人對 AS 真的只是會用,但還有很多東西需要去學習和探索。

分享到:
標簽:Android Studio
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定