iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
Mobile Development

我的 Android 工具箱系列 第 8

Day 8 - [Trace Code] 03-搜尋大法

  • 分享至 

  • xImage
  •  

情境

前面介紹了兩種快速找到問題源頭方法,還沒看過的可以先參考:

在偵錯模式下,工具可以幫助我們快速找到問題的發生地。但更多時候,客戶回報問題只會有錄影或截圖。這時候要找問題發生地,就只能使用強大的搜尋功能啦~

這次可以使用這個範例來練習
GitHub: https://github.com/dreambo4/NavigationDemo

工具介紹

我常用的搜尋工具主要有兩個

  1. Search Everywhere

    • 快捷鍵:連點兩下 Shift
    • 快速搜尋並開啟 Class
    • 不一定需要輸入完整,"HomeActivity" 只需要輸入 "HA"就能找到
    • Search Everywhere
  2. Find in Files

    • 快捷鍵:Cmd + Shift + F (Windows: Ctrl + Shift + F)
    • 可以針對字串搜尋
    • 右上角的 File mask 可以只針對某副檔名搜尋。例如你很確定這個字串應該是在 layout 中使用,可以限定 *.xml;或是很確定有某個註解關鍵字在程式中,可以限定 *.kt*.java
    • 漏斗符號:可以過濾是否為字串或註解的內容。
    • Find in Files

使用步驟

這邊分享幾個我平常搜尋過程中的思路

以這個APP畫面為例,如果要你使用搜尋法找到這個頁面,你會搜尋什麼關鍵字呢?

Practice

第一種 - 使用 Search Everywhere

首先,這是登入畫面,所以我會先用 Search Everywhere 搜尋 Login 相關的頁面。幸運的話,很快就可以找到 LoginActivityLoginFragment

第二種 - 使用 Find in Files

若頁面不是可以直觀猜到名稱的,那麼我會使用 Find in Files 搜尋關鍵字,這時挑選合適的關鍵字就很重要了。

  1. 我會先淘汰 A、E,因為這些詞很常出現在註解或是 API 欄位的描述中
  2. H 的的內容,很明顯來自 API,不是 APP 端定義的字串
  3. 再來 B、D、G,這三個詞在 APP 中很可能有其他入口,或在其他頁面也有使用,所以也不會是第一首選
  4. 剩下 C、F,這兩個看起來比較像只有在登入頁才會出現的字串

關鍵就是盡量挑選「固定不變動」、「獨一無二」的字串。只要找對關鍵字,很快就能順藤摸瓜找到 Layout,再找到相關 Class。

工具優缺

  • 優點
    • 手邊沒有偵錯工具時,依然可以使用
  • 缺點
    • 需要依靠經驗,挑選合適的搜尋關鍵字


上一篇
Day 7 - [Trace Code] 02-使用Layout Inspector尋找當前所在Layout
下一篇
Day 9 - [Trace Code] 04-觀察物件繼承關係
系列文
我的 Android 工具箱30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言