集成UETool工具踩坑記

寫作原因

前幾天無意中在安卓巴士上閒逛,看到了其視頻專欄下面的線下活動專欄,然後就看了2018安卓巴士開發者大會看到了餓了麼分享的一個視覺驗收神器,從而引起了自己的注意,因爲在項目交付過程中跟設計師確實會出現以下部分問題:

  • 漸變色取值不方便
  • 佔位圖尺寸不清除
  • UI調整過程效率低
    a.設計師會有大一點、小一點的描述,不能準確說出準確數字
  • 控件圓角大小未知
  • 控件是否對齊判斷不方便
  • 文本超長時控件是否會異常

因爲自己也是深受UI修改調整的折磨,所以看到這個東西的時候,心中是萬分激動,尤其是看到餓了麼工程師講述其主要功能及演示其效果的時候,更是忍不住在自己項目中做一番嘗試,首先先介紹下他的功能:

  • 查看/修改控件屬性
  • 移動屏幕上任意控件
  • 輕鬆定製所需控件
  • 顯示網格柵欄
  • 控件位置信息

開始集成

集成步驟,餓了麼在github上已經給出了集成方式,這個不是本文的重點,詳見官方UETool(中文文檔)

官方給出的集成方式很簡單,只需要兩步

  • 安裝依賴
dependencies {
  debugImplementation >'me.ele:uetool:1.0.17'
  releaseImplementation 'me.ele:uetool-no->op:1.0.17'
  // if you want to show more attrs aboutFresco's DraweeView
  debugImplementation 'me.ele:uetool-fresco:1.0.17'
}
  • 使用
    打開懸浮框
UETool.showUETMenu();

關閉懸浮框

UETool.dismissUETMenu();

開始填坑

雖然只有這簡單的幾步但是真正的集成卻存在很多坑,下面來一一說下

  • 包衝突問題

java.util.zip.ZipException: duplicate entry: android/support/design/widget/CoordinatorLayout$1.class

這個問題很明顯是由於包衝突造成的,由於是集成UETool SDK 造成的,所以就要對這個sdk開始入手,看到是由於和android/support庫中的控件衝突
所以我們只需要在UEToolsdk中把這個類庫剔除就行了

compile 'me.ele:uetool-fresco:1.0.17', {
        exclude group: 'com.android.support'
    }

這樣就可以了

  • 集成之後無法顯示

集成之後調用showUETMenu()方法發現無法顯示操作的按鈕,後來打日誌追蹤,發現一直返回的都是false,追蹤發現,由於打包打的是release包,所以調用的一直都是me.ele:uetool-no-op:1.0.17 這個庫裏面的方法,後面把這個註釋掉就行了,至於線上和測試環境的區別,可自行進行配置在線上不引入這個包就行了,代碼中可利用反射進行判斷,如果沒有集成這個類庫就不使用顯示方法

  • 提示需要add classpath

在集成後使用的時候會提示add gradle ‘me.ele:uetool:1.0.17’ to classpth

後在根目錄的gradle文件中dependencies裏面添加了

  classpath 'me.ele:uetool:1.0.17'

問題解決,不解的是,後面將這塊移除也沒問題,不知道當時爲什麼會有這個提示

網上有些文章說這個庫只能給餓了麼自己的項目用,這其實是不對的,親測在我們自己的項目中也是可以用的,這裏還是感謝餓了麼大神的貢獻,最後添加一個對這個工具的分析的文章,來看下這個工具的原理是什麼
餓了麼UETool源碼分析
餓了麼大神也親自介紹了裏面的部分實現
2018安卓巴士開發者大會 - 巴掌《餓了麼視覺驗收利器》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章