如何通过gradle提高多渠道构建android项目的效率

时间:2014-11-10 08:54:48

标签: java android ant gradle

我正在开发一个android项目。我想通过gradle构建这个项目。我需要根据不同的市场渠道生成20个apk文件。文件的区别在于清单文件中,我需要用每个通道名称替换字符串" UMENG_VALUE" 我目前的方式是使用这样的产品风味:

productFlavors {
  develop{}
  official{}
  ika{}

}


 android.applicationVariants.all{variant ->
            def manifestFile="${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml"


    new File(manifestFile).write(new File(manifestFile).getText('UTF-8').replaceAll("@string/channel_id", "${variant.productFlavors[0].name}"), 'UTF-8')


    variant.processResources.manifestFile = file("${buildDir}/intermediates/manifests/${variant.dirName}/AndroidManifest.xml")



  }

但是这个方法的问题是gradle会根据每个味道执行每个任务吗?但在我看来,大多数步骤完全相同。那么有没有更好的方法让gradle只编译和dex一次只需更改清单文件中的String?

0 个答案:

没有答案