1、在gradle文件中修改打出包的命名
def app_name = "projectName"
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def outFileName = app_name
if (android.defaultConfig.versionName != null) {
outFileName = outFileName + "_" + android.defaultConfig.versionName + "_" + new Date().format('yyyy-MM-dd') + "_" + productFlavors[0].name + ".apk"
}
output.outputFile = new File(outputFile.parent, outFileName)
}
}
}```
****
## 2、设置默认变量
> buildConfigField("boolean","isTest","false")
可在不同的渠道包内修改,在代码中引用。
## 3、同一个项目中为不同的渠道设置不同的资源文件
+ 设置不同的资源目录,gradle在编译的时候会将渠道指定的资源merge到主目录,从而打出不同渠道的不同包
`参考以下代码`
productFlavors {
yunos{
//这里可以设置applicationId等变量
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
switch (name) {
case "yunos":
//设置默认变量
buildConfigField("boolean", "isTest", "false")
//设置资源目录
initSourceSets(name, "src/yunos")
break;
}
}
}
//设置目录的方法
def initSourceSets(flavorName, resPath) {
android.sourceSets.findAll { source ->
source.name.equals(flavorName)
}.each { source ->
source.setRoot(resPath)
}
}```
项目目录如下图
项目结构.png
网友评论