Scalpel: Jake大神的第三把刀

cncde 9年前發布 | 54K 次閱讀 Scalpel

原文出處: 湯濤的微信

Jake Wharton,Android開發領域傳奇一般的存在,熟悉Android開發的同學應該都聽說過,即便沒有,也應該會經常用到他主導或參與貢獻的開源 項目,他在GitHub上開源了多個Android兼容性、依賴注入相關的知名項目,目前就職Square, 也參與貢獻了Square公司開源的諸如Retrofit, okhttp等熱門項目。

Jake大神喜歡以刀命名自己的項目,可能他覺得這能很好的表達它們作為開發利器的犀利程度,不過沒準他也很喜歡中國武俠小說呢。

他最有名的兩把刀,一把是Dagger, 匕首,一個依賴注入框架,用來解耦開發中各模塊依賴的,最早由他開發與維護,后來轉給Google維護;另一把是同樣大名鼎鼎的ButterKnife, 黃油刀,有了它,你再也不用寫findViewById了,以后有機會給大家詳細介紹它們。

今天的主角是它們不那么知名的小兄弟,Scalpel,這把非常酷炫實用的解剖刀。

大家在Android界面開發中可能會經常碰到這樣的困擾:

  • 新接手某個項目,它的界面布局復雜且亂,怎么快速了解清楚呢?

  • 感覺界面布局層次太深,對性能有影響,應該是有不合理的地方,怎么看是哪里不對呢?

  • 我寫的這個控件怎么就是不出來?它跑哪去了?

  • 這里的局部關系是怎樣的?要怎么修改才可以實現設計效果呀?

是的,這時候就輪到我們的主角出場了。Scal... 啊不對,是Hierarchy Viewer,

Hierarchy Viewer是Android給我們提供的一款查看View Tree的小工具,通過它可以清晰的看到界面布局與層次細節,相當強大,大家應該都很熟悉它了,截張圖大家感受下就好。

Scalpel: Jake大神的第三把刀

我們今天的主角Scalpel(終于輪到我出場了嗎?!) 與Hierarchy Viewer有關,一句話介紹它:A surgical debugging tool to uncover the layers under your app,大家看張圖就明白它能干嘛了。

是不是很酷?他其實就是實現了一個三維效果的界面布局層次展示,不需要手機連接開發設備,只需要簡單幾行代碼將其集成到你的應用中,即可開啟酷炫之旅,它提供的功能包括:

  • 通過setLayerInteractionEnabled(boolean)可開啟與關閉此功能。

  • 通過setDrawViews(boolean)可控制是否繪制View, 也就是說它可以僅僅是個簡單的布局線框圖,也可以是色彩豐富的真實效果圖。

  • 通過setDrawIds(boolean)可控制是否顯示各控件的Id, 你就能知道你自己正在調試的那個控件到底在哪了?

  • 通過setChromeColor,setChromeShadowColor可自定義線框圖的顏色,隨你喜歡。

太小了看不清怎么辦?布局太深了里面的怎么看?不用擔心,它提供了強大的手勢功能。

  • 單點觸摸:可以控制其旋轉角度。

  • 兩指垂直滑動:可以放大或縮小。

  • 兩指水平滑動:可以調整布局層次之間的間距,清晰看到深層次的布局結構。

值得注意的是, 它要求修改根布局來實現功能 ,如果擔心對線上用戶的影響,可以僅在Debug模式下將其嵌入,類似下面這樣幾行代碼即可在你的復雜項目中將其引入:

Scalpel: Jake大神的第三把刀

其實從實用角度上來說,還是Hirearchy Viewer更強大,可為什么我們還需要Scalpel呢?除了不用找USB線連電腦外,最主要是因為它真的很酷啊,這就夠了,不是嗎?

 本文由用戶 cncde 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!