andoird gradle 渠道包

来源:互联网 发布:2017淘宝网双11销量 编辑:程序博客网 时间:2024/05/02 01:29

0.打渠道包

Walle(瓦力):Android Signature V2 Scheme签名下的新一代渠道包打包神器

这里写图片描述

https://github.com/Meituan-Dianping/walle/

1. gradle 构建任务和构建场景

1.1 android 工程四种任务

  • assemble任务,汇集所有项目输出
  • check任务,运行所有校验
  • build任务,既汇集又校验
  • clean任务,清除所有项目输出

什么是BuildTypes、Flavors、BuildVariants

BuildTypes:构建类型,AndroidStudio的Gradle组件默认提供给了“debug”“release”两个默认配置,此处用于配置是否需要混淆、是否可调试等

Flavors:产品渠道,默认不提供任何默认配置,在实际发布中,根据不同渠道,我们可能需要用不同的包名,服务器地址等

BuildVariants:每个buildtype和flavor组成一个buildvariant

http://www.jsc0.com/post/145.html

2.打包命令

2.1 assemble + BuildTypes

assemble 这个命令,可以结合 Build Type 创建自己的task,如:

./gradlew assembleDebug
./gradlew assembleRelease

2.2assemble +Product Flavor + BuildTypes

除此之外 assemble 还能和 Product Flavor 结合创建新的任务,其实 assemble 是和 Build Variants 一起结合使用的,而 Build Variants = Build Type + Product Flavor , 举个例子大家就明白了:

如果我们想打包wandoujia渠道的release版本,执行如下命令就好了:

./gradlew assembleWandoujiaRelease
如果我们只打wandoujia渠道版本,则:

2.3assemble +Product Flavor

./gradlew assembleWandoujia
此命令会生成wandoujia渠道的Release和Debug版本

同理我想打全部Release版本:

./gradlew assembleRelease
这条命令会把Product Flavor下的所有渠道的Release版本都打出来。

2.4 多渠道目录

针对多渠道,例如staging、production连个flavor,他们所对应的源码目录是在主Module目录中的创建目录“src/staging/java”和“src/production/java”与原有的“src/main/java”目录对称

步骤分析:在Gradle进行构建时,它会现在main目录下寻找所需的.java文件,如果找不到,就会在构建时选择的渠道对应源码目录下寻找,如果此时main和渠道源码目录都有同一个.java文件,就会报“duplicate class(重复类)”错误。因此,应该删除main的原文件。

3. Resource merge priority

4 .gradlew vs gradle

gradlew是包装器,自动下载包装里定义好的gradle 版本,保证编译环境统一;
gradle 是用本地的gradle;

英文原版可以看这里 : The Gradle Wrapper
英文不好的话, 我也找到了中文版 : Wrapper (gradlew)

5. 参考链接

http://www.cnblogs.com/laughingQing/p/5855774.html

http://stormzhang.com/android/2016/07/15/android-gradle-config/

0 0
原创粉丝点击