集成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安卓巴士开发者大会 - 巴掌《饿了么视觉验收利器》

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