安卓多渠道打包

1.项目配置

当需要在多个平台(例如google、华为)发布应用时需要用到多渠道打包。修改应用级别的build.gradle文件,在Android标签内增加如下内容,

上图中配置了两个渠道:google及华为,Falvor的名字可以自己定,每个Flavor里面一定要指定dimension,可以相同也可以不同,在productFlaovrs前面要定义flavorDimensions,如果定义多个可以使用逗号分隔。对于不同渠道如果有特定的依赖需要导入可以使用favor名+Implementation导入,这样只在指定的flavor编译时导入,例如华为渠道需要导入如下依赖,则可以使用huaweiImplementation,

注意:如果要使用条件依赖,dependencies标签一定要位于android标签下面,否则上图中会提示无法找到的方法huaweiImplementation

如果我们想要在程序中取当前的渠道,可以在AndroidManifest.xml文件中增加元数据,

在build.gralde的不同渠道中通过manifestPlaceholders设置其值即可,

然后可以在代码里面通过如下方式获取,

对于不同渠道如果依赖特定的资源或者代码逻辑不同时,可以在src目录下新建一个falvor同名的目录,然后添加资源到该目录下,如果需要写特定代码可以在该flavor目录下新建一个java文件夹(新建后右击Mark Directory As Sources Root才能在此目录下新建Package)然后新建包并添加代码文件。

例如华为渠道需要特定的json文件及增加新的元数据,

Huawei目录下的AndroidManifest.xml文件内容如下,

在编译时候会将application节点下的内容合并到主的清单文件中。

2.模块支持多渠道

在模块的src目录下新建渠道命名的文件夹,例如google及huawei,然后各自新建一个java目录,设为Resources Root后新建同名的包及在相应的包下新建同名的类,

在模块的build.gradle文件中添加与应用级build.grable同样的productFalvors,

然后在该文件中添加相应的依赖。如果有其它模块引用了该模块,则必须在引用的模块中的build.gradle文件中也添加相同的productFlavors。

3.运行与打包

 打开Build Variants菜单,找不到可以搜索,然后选择编译变体即可,

如果在打包时候需要指定目录,可以在应用级build.gradle文件的android标签内增加如下内容,

则打包后生成的文件都位于release目录下,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值