编码之旅
用键盘述说着工作和生活中的点点滴滴

Android-jenkins自动构建属性配置

Published on
/3 分钟读/---

Android项目在使用jenkins自动构建过程中,一个比较常用的情况是需要对构建的变体进行选择生成。结合之前读的《巧用Gradle构建Android应用》和网上的一些资料,解决了我在实际项目遇到的两种情况,现记录如下

选择是否隐藏安装图标

在实际项目中我们可能需要构建一些小的变动的不同版本,比如生成的Apk在安装之后不需要显示桌面图标(只供第三方调用)。

  1. 在项目根目录的gradle.properties文件配置一个属性HAS_LANCHER=true用于决定是否需要隐藏图标,内容如图:

  1. 在main moduel的build.gradle文件中定一个函数getMainAction,根据配置的属性返回不同的字符串

  1. 根据实际需要在合适的位置设置manifestPlaceholders,这里在debug buildType设置mainAction为android.intent.action.MAIN字符串(测试版本不需要隐藏),在release buildType中设置mainAction为getMainAction函数返回

  1. 在main moduel的Manifest文件中将原来入口的Intent Filter的action的name改为引用属性的方式

  1. 接下来对jenkins上的项目配置进行更改,勾选参数化构建构成,增加一个布尔参数HAS_LANCHER

  1. 勾选如下选项应用配置的属性到构建构成中

选择构建buildType和productFlavor

有些项目需要配置一个项目的不同变体,在Android中可结合buildTypes和productFlavors来实现,在此讲述这些变体在jenkins中怎样选择构建(以下配置为测试使用,大家可以针对自己的项目进行更改)

  1. 在build.gradle中配置的buildType和productFlavor如图:

  1. 接下来对jenkins上的项目配置进行更改,勾选参数化构建构成,增加一个选择参数BUILD_TYPE和PRODUCT_FLAVORS(Choices需要和build.gradle配置的对应)

  1. 修改构建的Tasks,增加BUILD_TYPE和PRODUCT_FLAVORS参数

构建实施

通过以上的构建配置之后,构建的实施操作发生了一些变化

  1. 原来的'立即构建'现在变成了'参数化构建'(Build with Parameters)

  1. 点击构建之后的界面,增加了相应的选项操作

  1. 选择->开始构建->飞起来吧