一個(gè)陽(yáng)光明媚的早晨盐欺,有個(gè)產(chǎn)品需求從天而降,說(shuō)要在這個(gè)彈窗上加個(gè)文案:
當(dāng)然這個(gè)頁(yè)面過(guò)分簡(jiǎn)單仅醇,只是舉了個(gè)Demo
即然要接盤別人寫的代碼冗美,首先,就得根據(jù)UI把對(duì)應(yīng)的代碼找出來(lái)析二。再品一品粉洼。
但是!R渡恪属韧!
這個(gè)彈窗是寫在哪里了呢?
最快的方法蛤吓,就是群里找同事問(wèn)問(wèn):
“誰(shuí)見過(guò)這個(gè)代碼[通常還帶一個(gè)狗頭] 宵喂?”
然后答案就來(lái)了~
但是!;岚痢锅棕!
萬(wàn)一這段陳年老碼,已經(jīng)隱世多年淌山,無(wú)人知曉了呢裸燎?
只能使出搜索大法,看看Ui附近都出現(xiàn)了哪些字符串泼疑,趕緊全局搜一搜顺少。
終于搜到了,才下眉頭王浴,卻上心頭脆炎。
居然只是個(gè)資源id,還要順藤摸瓜地找上去氓辣。
但是C朐!!钞啸!
萬(wàn)一根本搜不到呢几蜻?這個(gè)彈窗居然是張可配的圖片!
遇到是非固定文本的Ui怎么辦呢体斩?
甚至想看Dialog有多少個(gè)引用的心都有了梭稚?
不怕!P醭场弧烤!
說(shuō)時(shí)遲,那時(shí)快蹬敲,果斷打開了一個(gè)找代碼神器:
只要手指點(diǎn)擊屏幕上要找的元素暇昂,面板上就會(huì)出現(xiàn)Ui的層級(jí)以及對(duì)應(yīng)的代碼位置莺戒!
好家伙,果然是個(gè)圖片[狗頭]~
這里看到 Image
所在的位置是 DemoDialogFragment.kt
的57行~
在IDE里面打開看看:
成功的找到了Ui對(duì)應(yīng)的代碼! 接下來(lái)就可以磨刀霍霍了急波。
有了這個(gè)工具从铲,再也不怕老板問(wèn)我今天干了啥,
我只能說(shuō)正在深入了解業(yè)務(wù)體系澄暮,并做好充分的心理建設(shè)名段,順便熟悉下代碼。
回想起當(dāng)年接入這個(gè)工具的時(shí)候泣懊,就只需要在 build.gradle
中聲明:
dependencies { //在mavenCentral
debugImplementation "io.github.yvescheung:Uinspector:2.0.10"
// 如果有用Jetpack compose吉嫩,要加這個(gè)
debugImplementation "io.github.yvescheung:Uinspector-optional-compose:2.0.10"
// 如果要支持 Glide 等額外的屬性,要加這個(gè)
debugImplementation "io.github.yvescheung:Uinspector-optional-glide:2.0.10"
// 還有其他一些擴(kuò)展庫(kù)嗅定,可以在github上面查看...
}
然后就完事了!不需要寫任何代碼用踩,就可以在通知欄中開啟這個(gè)工具渠退!
除了 Jetpack compose
以外,普通的 Android View
也可以用它來(lái)找所在的Fragment
脐彩。
如果對(duì)實(shí)現(xiàn)原理有興趣的話碎乃,就到github上看看吧。
一個(gè)陽(yáng)關(guān)明媚的早晨惠奸,要開始去寫彈窗了梅誓。告辭。