Gradle多渠道打包

 

国内众多Android开发环境有众多的应用市场,产品存在着不同渠道统计的需求,为此android开发人员需要为每个应用市场发布一个安装包,这是一件很苦逼的事,更换成android studio之后自带的编译工具gradle其实已经可以实现多渠道打包的功能了;下面主要简单介绍一下gradle如何实现的多渠道打包。

 

(一)在androidmanifest.xml中定义mate-data标签

 

[html] view plain copy 
 
 在CODE上查看代码片派生到我的代码片
  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"    
  2.     package="your.package.name">    
  3.     <application>    
  4.     
  5.           <meta-data android:name="UMENG_CHANNEL" android:value="{UMENG}"/>    
  6.     
  7.     </application>    
  8. </manifest>    

 

这里需要注意的是:上面的value的值要和渠道名所对应,比如wandoujia里面要对应为你豌豆荚的渠道名称

 

(二)在build.gradle下的productFlavors定义渠道号:

 

[html] view plain copy 
 
 在CODE上查看代码片派生到我的代码片
  1. productFlavors {  
  2.   
  3.         internal {}  
  4.   
  5.         /*InHouse {}  
  6.         pcguanwang {}  
  7.         h5guanwang {}  
  8.         hiapk {}  
  9.         m91 {}  
  10.         appchina {}  
  11.         baidu {}  
  12.         qq {}  
  13.         jifeng {}  
  14.         anzhi {}  
  15.         mumayi {}  
  16.         m360 {}  
  17.         youyi {}  
  18.         wandoujia {}  
  19.         xiaomi {}  
  20.         sougou {}  
  21.         leshangdian {}  
  22.         huawei {}  
  23.         uc {}  
  24.         oppo {}  
  25.         flyme {}  
  26.         jinli {}  
  27.         letv {}*/  
  28.   
  29.         productFlavors.all { flavor ->  
  30.              flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]  
  31.         }  
  32.     }  

 

 

同时需要注意的是,这里需要在defaultConfig中配置一个默认的渠道名称

 

[html] view plain copy 
 
 在CODE上查看代码片派生到我的代码片
  1. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "channel_name"]  

实现多渠道打包更换mate-data标签中的内容
 
posted @ 2016-05-05 11:38  新感觉  阅读(495)  评论(0编辑  收藏  举报