Android Studio系列教程6--Gradle多渠道打包.doc_第1页
Android Studio系列教程6--Gradle多渠道打包.doc_第2页
Android Studio系列教程6--Gradle多渠道打包.doc_第3页
Android Studio系列教程6--Gradle多渠道打包.doc_第4页
Android Studio系列教程6--Gradle多渠道打包.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android Studio系列教程六-Gradle多渠道打包 2015 年 01 月 15 日本文为个人原创,欢迎转载,但请务必在明显位置注明出处!由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。友盟多渠道打包废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段:里面的Channel_ID就是渠道标示。我们的目标就是在编译的时候这个值能够自动变化。 第一步 在AndroidManifest.xml里配置PlaceHolder 第二步 在build.gradle设置productFlavorsandroid productFlavors xiaomi manifestPlaceholders = UMENG_CHANNEL_VALUE: xiaomi _360 manifestPlaceholders = UMENG_CHANNEL_VALUE: _360 baidu manifestPlaceholders = UMENG_CHANNEL_VALUE: baidu wandoujia manifestPlaceholders = UMENG_CHANNEL_VALUE: wandoujia 或者批量修改android productFlavors xiaomi _360 baidu wandoujia productFlavors.all flavor - flavor.manifestPlaceholders = UMENG_CHANNEL_VALUE: name 很简单清晰有没有?直接执行./gradlew assembleRelease, 然后就可以静静的喝杯咖啡等待打包完成吧。assemble结合Build Variants来创建task上一篇博客介绍了assemble这个命令,会结合Build Type创建自己的task,如: ./gradlew assembleDebug ./gradlew assembleRelease除此之外assemble还能和Product Flavor结合创建新的任务,其实assemble是和Build Variants一起结合使用的,而Build Variants=Build Type+Product Flavor, 举个例子大家就明白了:如果我们想打包wandoujia渠道的release版本,执行如下命令就好了: ./gradlew assembleWandoujiaRelease如果我们只打wandoujia渠道版本,则: ./gradlew assembleWandoujia此命令会生成wandoujia渠道的Release和Debug版本同理我想打全部Release版本: ./gradlew assembleRelease这条命令会把Product Flavor下的所有渠道的Release版本都打出来。总之,assemble命令创建task有如下用法: *assemble*: 允许直接构建一个Variant版本,例如assembleFlavor1Debug。 *assemble*: 允许构建指定Build Type的所有APK,例如assembleDebug将会构建Flavor1Debug和Flavor2Debug两个Variant版本。 *assemble*: 允许构建指定flavor的所有APK,例如assembleFlavor1将会构建Flavor1Debug和Flavor1Release两个Variant版本。完整的gradle脚本最后福利大放送,来一份我在项目中使用的完整的gradle文件配置:apply plugin: com.android.applicationdef releaseTime() return new Date().format(yyyy-MM-dd, TimeZone.getTimeZone(UTC)android compileSdkVersion 21 buildToolsVersion 21.1.2 defaultConfig applicationId com.boohee.* minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName 1.0 / dex突破65535的限制 multiDexEnabled true / 默认是umeng的渠道 manifestPlaceholders = UMENG_CHANNEL_VALUE: umeng lintOptions abortOnError false signingConfigs debug / No debug config release storeFile file(./yourapp.keystore) storePassword your password keyAlias your alias keyPassword your password buildTypes debug / 显示Log buildConfigField boolean, LOG_DEBUG, true versionNameSuffix -debug minifyEnabled false zipAlignEnabled false shrinkResources false signingConfig signingConfigs.debug release / 不显示Log buildConfigField boolean, LOG_DEBUG, false minifyEnabled true zipAlignEnabled true / 移除无用的resource文件 shrinkResources true proguardFiles getDefaultProguardFile(proguard-android.txt), signingConfig signingConfigs.release applicationVariants.all variant - variant.outputs.each output - def outputFile = output.outputFile if (outputFile != null & outputF.endsWith(.apk) / 输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk def fileName = boohee_v$defaultConfig.versionName_$releaseTime()_$ductF.apk output.outputFile = new File(outputFile.parent, fileName) / 友盟多渠道打包 productFlavors wandoujia _360 baidu xiaomi tencent taobao . productFlavors.all flavor - flavor.manifestPlaceholders = UMENG_CHANNEL_VALUE: name dependencies compile fileTree(dir: libs, include: *.jar) compile com.android.support:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论