在使用gradle 进行多渠道打包的进程中参考了博文:http://blog.csdn.net/qihigh/article/details/17922345 (在此先感谢1下)
但是在使用的进程中使用gradle assembleRelease -Pmc 其实不能得到我想要的所有的包,究其缘由是:作者使用了buildType来作为渠道的定义类型,这个不能满足我的需求。而在我的理解,多渠道应当是flavor,因此自己重新写了1下flavor的脚本
def falvors = getMyFlavorsFromFileSystem();
productFlavors{
prod {
}
dev{
}
_4T{}
falvors.each{name,config->
"$name"{
sourceSets["$name"].res.srcDirs = [config.rrrr]
}
}
}
这样在在使用assembleRelease -Pmc 时就可以够依照预期的打包生成apk了
附上相干的代码:
def getMyFlavorsFromFileSystem(){
flavors = [:]
if (project.hasProperty('mc')){
println '------setup flavors ---------------'
def path = './build-type/type.txt'
def prefix = '_'
file(path).eachLine{ line ->
println line
def f = file("./build-type/$line")
if (!f.exists()) {
f.mkdir()
}
def resPath = file("./build-type/$line/res-" + prefix+line)
if (!resPath.exists()) {
resPath.mkdir()
}
copyRes(resPath.absolutePath,line)
flavors.put(prefix+line,[
rrrr : resPath
])
}
}
return flavors
}
参考文档:
Android自动构建多平台的包
dynamically-generating-product-flavors
还有这个