Android gradle 相关设定

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)
}
}```

项目目录如下图


Android gradle 相关设定_第1张图片
项目结构.png

你可能感兴趣的:(Android gradle 相关设定)