Jenkins实战之动态替换Android应用图标

前言

最近公司运营活动比较多,所以App的发版也比较频繁,而且每次发版都会更改App的图标和欢迎页,以前都是运营和产品单独发给我,我再手动替换到工程中去,虽说这样就有了和运营妹子交流的机会,但本吊心里只有技术,次数多了就觉得麻烦。正好最近在学用Jenkins进行Android持续集成的东西,正好可以用来解决这个问题。

实战

不懂如何配置Jenkins和用Jenkins进行Android多渠道打包的,可以看下我的上一篇文章Jenkins+Git+Walle+AndResGuard打造Android多渠道打包系统,当然网上更详细的教程也有很多,就不再赘述了。
进入项目的配置里面,在general里面选择参数化构建过程,加入两个参数:

加好以后,在 Inject environment variables to the build process里面加入图标的路径参数(找不到这个选项的需要安装 Environment Injector插件);

SOURCE_TARGET=app
SOURCE_SRC=src
SOURCE_JAVA=main
SOURCE_SRC=src
SOURCE_RES=res
复制代码

再在构建里面加入Execute Shell,注意要放在Invoke Gradle Script,也就是实际的gradle编译过程之前。内容如下:

cd ${WORKSPACE}
iconFile="launcher.png"
# 上传的图标会放在当前Jenkins项目的根目录,下面判断$iconFile是否存在
if [ true == $isCustom ] && [ -f "$iconFile" ]; then
  Launcher_xxxh="${WORKSPACE}/${SOURCE_PATH}/${SOURCE_TARGET}/${SOURCE_SRC}/${SOURCE_JAVA}/${SOURCE_RES}/mipmap-xxxhdpi"
  Launcher_xxh="${WORKSPACE}/${SOURCE_PATH}/${SOURCE_TARGET}/${SOURCE_SRC}/${SOURCE_JAVA}/${SOURCE_RES}/mipmap-xxhdpi"
  Launcher_xh="${WORKSPACE}/${SOURCE_PATH}/${SOURCE_TARGET}/${SOURCE_SRC}/${SOURCE_JAVA}/${SOURCE_RES}/mipmap-xhdpi"
  Launcher_h="${WORKSPACE}/${SOURCE_PATH}/${SOURCE_TARGET}/${SOURCE_SRC}/${SOURCE_JAVA}/${SOURCE_RES}/mipmap-hdpi"

  sips -z 512 512 launcher.png --out ic_launcher.png
  mv ic_launcher.png ${Launcher_xxxh}

  sips -z 384 384 launcher.png --out ic_launcher.png
  mv ic_launcher.png ${Launcher_xxh}

  sips -z 256 256 launcher.png --out ic_launcher.png
  mv ic_launcher.png ${Launcher_xh}

  sips -z 192 192 launcher.png --out ic_launcher.png
  mv ic_launcher.png ${Launcher_h}
fi
复制代码

上面的shell脚本比较简单,用到了一个图片处理命令,就是将上传的图片调整到对应大小后分别放入对应的文件夹里,然后开始编译就行了:

上面就是替换利用Jenkins替换App图标的方式了,替换欢迎页图片也是同样的步骤。看下最终效果:

不过这样处理不足之处是只能适用于欢迎页数量固定的情况。所以如果图片数量不固定可以考虑统一上传一个压缩包,然后在Jenkins解压遍历图片文件。

好了,现在发版前运营和产品妹子再也不会找我换图片了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值