如何用最快的速度熟悉安卓專案老程式碼
背景
做開發最痛苦的事情,不是寫程式碼,是看別人的程式碼,看老程式碼. 寫個功能,刷刷就完了,要看懂別人的程式碼,就想罵娘.但是作為開發進入一個老專案時,又不得不熟悉老程式碼.那怎麼樣才能最快的熟悉呢? 安卓開發裡要了解老專案時,一般先從UI開始,一邊在手機上把app跑起來熟悉介面,一邊看程式碼.那麼怎麼找到當前瀏覽介面對應的程式碼呢? 大多數情況下,可見介面是一個activity,有時主體是fragment.本文介紹這個點.
一、檢視當前介面所屬activity
-
BaseActivity裡打斷點
一般的工程都會自定義一個BaseActivity,其他activity都是從這個繼承的.基於這一點,可以在BaseActivity的onCreate方法裡打斷點即可.
-
AppCompatActivity或更底層基類打斷點
如果工程裡沒有定義統一的BaseActivity,或者只有部分activity繼承了BaseActivity,那可以在activity的基類AppCompatActivity或更底層基類onCreate方法中打斷點.
- 使用檢視當前最前端activity的app
該專案地址: https://github.com/sinawangnan7/CurrentActivity
app下載地址
效果:
二、檢視當前介面所屬fragment
類似activity的檢視方式,在BaseFragment或者更底層的基類中onViewCreated方法打斷點.
-
BaseFragment裡打斷點
一般的工程都會自定義一個BaseFragment,其他fragment都是從這個繼承的.基於這一點,可以在BaseFragment的onViewCreated方法裡打斷點,然後在Debug面板中切換到“Variables”檢視this的值即可.
-
Fragment或更底層基類打斷點
如果工程裡沒有定義統一的BaseFragment,或者只有部分fragment繼承了BaseFragment,那可以在fragment的基類或更底層基類中onCreateView方法中打斷點,然後在Debug面板中切換到“Variables”檢視this的值即可.
三、查詢介面元素對應的xml檔案
- 根據介面顯示的文字直接到工程裡搜尋.
適用於具有特點的文字字串,並且不是拼接的那種. -
通過uiautomatorviewer檢視介面元素對應的控制元件id,再根據id到程式碼中查詢.
適用於控制元件設定了id,並且id唯一.
執行安卓sdk自帶的uiautomatorviewer(sdk/tools/bin目錄下)命令工具.resource-id的最後一部分(斜線後面部分)就是控制元件id.
安卓開發技術分享: https://www.jianshu.com/p/442339952f26
更多技術總結好文,請關注:「程式園中猿」
