SwissArmyKnife
SwissArmyKnife 是一款方便除錯android UI的工具。可以直接在android裝置螢幕上顯示控制元件的相關資訊,可能是你用過的最強的Android UI工具
接入方式
compile 'com.wanjian:sak-autopilot:0.4.0-beta9'
no opt 包
compile 'com.wanjian:sak-nop:0.0.3'
開啟
SAK.init(Application application, Config config)
關閉
SAK.unInstall();
複製程式碼
啟動app後會在螢幕右側看到一個 藍色靶心
,雙擊
即可進入功能介面。
功能介面
拾取控制元件
開啟拾取控制元件選項後,拖動圓環到要拾取的控制元件位置即可。可以獲取字型顏色,大小,背景色等資訊(支援SpannableString)
編輯控制元件
開啟編輯控制元件選項後,長按
需要編輯的控制元件即可彈出編輯視窗,可以修改內外邊距大小,字型顏色、大小、背景色等(該功能和相對距離、移動控制元件功能衝突,請勿同時開啟)
相對距離
開啟相對距離選項後,依次長按
兩個控制元件即可顯示兩個控制元件間的水平和豎直距離,距離預設單位是dp,可以通過功能介面的單位選項切換單位(該功能和編輯控制元件、移動控制元件功能衝突,請勿同時開啟)
移動控制元件
開啟移動控制元件選項後,長按
控制元件即可拖動,距離預設單位是dp,可以通過功能介面的單位選項切換單位(該功能和編輯控制元件、移動控制元件功能衝突,請勿同時開啟)
取色器
開啟取色器選項後,會在螢幕顯示 綠色圓環,可以任意拖動,螢幕下方會顯示圓環中心的顏色值
水平直尺,豎直直尺
開啟後會在螢幕顯示水平直尺和豎直直尺,可以任意拖動。直尺上有兩個值,一個單位是px,另一個是dp
Scalpel
開啟後會立體顯示view,可以直觀的檢視view的層級關係,拖動
螢幕左側的按鈕可以切換角度
外邊距/內邊距
開啟後可以看到任意一個view的外邊距,邊距單位預設為dp,可以通過功能介面的單位選項切換單位。可以通過功能介面的層級區間過濾掉部分view,避免數值相互覆蓋
寬高、字型大小、字型顏色、背景色等使用方式同 外邊距/內邊距,也可以通過 單位選項和層級區間進行控制
Fragment名稱、Activity名稱
開啟後可以看到當前Activity的類名,每一個Fragment的類名。可以通過功能介面的層級區間過濾掉部分Fragment,避免Fragment名稱相互覆蓋
效能
開啟可以看到當前視窗view的繪製耗時,事件分發耗時,measure,layout耗時,handler耗時。(開啟後會自動禁用硬體加速,實際繪製時間可能要少一些。ListView會在事件分發時呼叫getView,所以ListView事件分發時間稍微長一些。RecyclerView會在view繪製時bindView,所以RecyclerView繪製時間會稍長一些)
裁剪繪製範圍
若內外邊距、寬高、字型顏色等資訊不顯示,可以關閉 裁剪繪製
。開啟該功能可以避免 可以滾動的控制元件滾動後導致的資訊覆蓋。
特別注意:
當開啟新視窗時,需要手動點選一次螢幕右側的 靶心 按鈕,以此啟用當前視窗
,不然當前視窗不會啟用 SwissArmyKnife!