Android项目在使用jenkins自动构建过程中,一个比较常用的情况是需要对构建的变体进行选择生成。结合之前读的《巧用Gradle构建Android应用》和网上的一些资料,解决了我在实际项目遇到的两种情况,现记录如下
选择是否隐藏安装图标
在实际项目中我们可能需要构建一些小的变动的不同版本,比如生成的Apk在安装之后不需要显示桌面图标(只供第三方调用)。
- 在项目根目录的gradle.properties文件配置一个属性HAS_LANCHER=true用于决定是否需要隐藏图标,内容如图:
- 在main moduel的build.gradle文件中定一个函数getMainAction,根据配置的属性返回不同的字符串
- 根据实际需要在合适的位置设置manifestPlaceholders,这里在debug buildType设置mainAction为android.intent.action.MAIN字符串(测试版本不需要隐藏),在release buildType中设置mainAction为getMainAction函数返回
- 在main moduel的Manifest文件中将原来入口的Intent Filter的action的name改为引用属性的方式
- 接下来对jenkins上的项目配置进行更改,勾选参数化构建构成,增加一个布尔参数HAS_LANCHER
- 勾选如下选项应用配置的属性到构建构成中
选择构建buildType和productFlavor
有些项目需要配置一个项目的不同变体,在Android中可结合buildTypes和productFlavors来实现,在此讲述这些变体在jenkins中怎样选择构建(以下配置为测试使用,大家可以针对自己的项目进行更改)
- 在build.gradle中配置的buildType和productFlavor如图:
- 接下来对jenkins上的项目配置进行更改,勾选参数化构建构成,增加一个选择参数BUILD_TYPE和PRODUCT_FLAVORS(Choices需要和build.gradle配置的对应)
- 修改构建的Tasks,增加BUILD_TYPE和PRODUCT_FLAVORS参数
构建实施
通过以上的构建配置之后,构建的实施操作发生了一些变化
- 原来的'立即构建'现在变成了'参数化构建'(Build with Parameters)
- 点击构建之后的界面,增加了相应的选项操作
- 选择->开始构建->飞起来吧
下一篇 →2017再见不如怀念