最近公司运营活动比较多,因此App的发版也比较频繁,并且每次发版都会更改App的图标和欢迎页,之前都是运营和产品单独发给我,我再手动替换到工程中去,虽然说这样就有了和运营妹子交流的机会,但本吊内心只有技术,次数多了就以为麻烦。正好最近在学用Jenkins进行Android持续集成的东西,正好能够用来解决这个问题。shell
不懂如何配置Jenkins和用Jenkins进行Android多渠道打包的,能够看下个人上一篇文章Jenkins+Git+Walle+AndResGuard打造Android多渠道打包系统,固然网上更详细的教程也有不少,就再也不赘述了。
进入项目的配置里面,在general
里面选择参数化构建过程,加入两个参数:bash
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编译过程以前。内容以下:app
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脚本比较简单,用到了一个图片处理命令,就是将上传的图片调整到对应大小后分别放入对应的文件夹里,而后开始编译就好了:post
上面就是替换利用Jenkins替换App图标的方式了,替换欢迎页图片也是一样的步骤。看下最终效果:gradle
好了,如今发版前运营和产品妹子不再会找我换图片了。ui