Gradle productFlavors的使用

一、问题背景
在一次需求会议上,测试组提出了一个测试开发需求,需要APP能够在Android7.0的手机上抓取Https的报文,抓包方案根据这篇博客( https://blog.csdn.net/u011045726/article/details/76064048)可以实现。但是修改后引入的问题是,在res资源文件中增加了一个证书和一个xml文件。

另外对AndroidManifest.xml文件进行了修改,修改后的结果是编译出来的APP只能在抓包环境下运行,不能在正常环境下运行。

二、解决方案
原有方案
根据掌握的gradle的知识,会制作两份AndroidManifest.xml放置在不同的目录下,然后编译时用不同的参数选择不同的AndroidManifest.xml文件进行编译。但是这需要在gradle编译时传入参数,另外抓包用的证书和xml文件也会被编译进行正式APP中,方法很low。
使用productFlavors
将抓包用的资源文件和改写的AndroidManifest.xml文件单独放置在一个文件夹,比如在我的项目中命令为Charles,该目录与main目录同级,目录详情如下:

然后在productFlavors下加入与目录名相对应得渠道名即可
android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
....
}
buildTypes {
....
}

sourceSets {
....
}
//创建productFlavors
productFlavors {
charles {
}
}
}

三、总结
该文只是用来记录平时工作中遇到的小的问题的解决过程用于积累,希望对恰巧遇到类似问题的你有帮助。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值