Android开发:Android studio Gradle多渠道打包

Android studio终于发布1.0RC版了,而且官方说已经加上了本地的gradle maven库,创建工程时不需要再联网(我从0.9.3升级后,现有项目无法编译,还是要联网去下gradle-2.1,即使升级前已经下载好,可能是bug吧。会下载到~/.gradle/wrapper/dists/gradle-2.1-all里,如果你也是从老版本升级,这里应该有两个目录,一个是老版本下的2.1,一个是现在版本在下载的2.1,要避免再下载,从老版本目录复制gradle-2.1-all.zip到新目录即可),现在你可以抛弃笨重的Eclipse了。 当我们使用友盟等统计工具时,需要分渠道统计数据,可以在AndroidManifest.xml里或用java代码设置渠道,如果手工做这件事,那是相当麻烦的,每个渠道都要改一次代码,单独导出一个apk,但Gradle可以帮我们完成这些工作。 这里暂时只介绍用Java代码的方式,原理是不同的productFlavors可以配置不同的BuildConfig字段值。 build.gradle的android里加上

productFlavors {
    self{
    }
    hiapk {
    }
    baidu {
    }
}

里面的就是渠道名,此时生成的apk,BuildConfig.FLAVOR就会对应这里的渠道名,设置渠道时使用BuildConfig.FLAVOR即可。如果你想用其他字段,或者除了渠道名外,还有其他是不一样的,可以添加其他不同的字段,如BuildConfig.CHANNEL:

productFlavors {
    self{
        buildConfigField "String", "CHANNEL", "\"self\""
    }
    hiapk {
        buildConfigField "String", "CHANNEL", "\"hiapk\""
    }
    baidu {
        buildConfigField "String", "CHANNEL", "\"baidu\""
    }
}