安卓的多渠道打包

本文转载自:http://blog.csdn.net/qq_40090482/article/details/78922154

1.添加友盟统计依赖库

  1. dependencies {  
  2.     compile 'com.umeng.sdk:common:latest.integration'  
  3.     compile 'com.umeng.sdk:analytics:latest.integration'  
  4. }  
如果无法正常集成请添加如下配置:


  1. allprojects {  
  2.     repositories {  
  3.             mavenCentral()       
  4.     }  
  5. }  

2.Manifest中配置权限和Key:

        也就是清单文件中

  1. <uses-permission android:name="android.permission.INTERNET"/>  
  2.   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
  3.   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
  4.   <uses-permission android:name="android.permission.READ_PHONE_STATE"/>  
  5.   <application......>  
  6.         //这里的value="5a446bf5f29d987bd200008a"是在友盟里面自己账号生成的,看图  
  7.       <meta-data android:value="5a446bf5f29d987bd200008a" android:name="UMENG_APPKEY"/>  
  8.       <meta-data android:value="${UMENG_CHANNEL_VAULE}" android:name="UMENG_CHANNEL"/>  
  9.   
  10.   </application>  
  11.    




3.app build.gradle动态配置Manifest的占位符和默认值

     也就是在项目的build.gradle(Module:app)中配置:

  1. defaultConfig {  
  2.      
  3.        multiDexEnabled true // 突破方法数65535限制  
  4.        manifestPlaceholders = [UMENG_CHANNEL_VAULE: "umeng"]  
  5.    
    flavorDimensions "versionCode"
  6.   
  7.    }  

4.配置签名文件信息,注意:signingConfigs要在buildTypes之前

  1. signingConfigs {  
  2.        release {  
  3.            keyAlias 'key0'  
  4.            keyPassword '123456'  
  5.            storeFile file('release.jks')  
  6.            storePassword '123456'  
  7.        }  
  8.    }  

5. 添加渠道信息


  1. productFlavors {  
  2.         yingyongbao{  
  3.   
  4.             }  
  5.         xiaomi{  
  6.   
  7.         }  
  8.     }  
  1. <p>            为了简单可以用脚本去替换重复代码</p>  
  1. productFlavors.all {flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VAULE: name]  
  2. }  


最后点击 Build下的  Generate Signed APK  进行打包  在Flavors选中需要打包的   点击Finish就可以了。看图:


 



6.可以配置多渠道打包输出的名字,比如打包的名字就是渠道名字

  1. buildTypes {  
  2.         release {  
  3.             minifyEnabled false  
  4.             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'  
  5.             signingConfig signingConfigs.release  
  6.             applicationVariants.all { variant ->  
  7.                 variant.outputs.each{ output ->  
  8.                     def outputFile = output.outputFile  
  9.                     if (outputFile != null && outputFile.name.endsWith(".apk")) {  
  10.                         def fileName = "${variant.productFlavors[0].name}"+".apk"  
  11.                         output.outputFile = new File(outputFile.parent, fileName);  
  12.                     }  
  13.                 }  
  14.             }  
  15.         }  
  16.     }  

7.其他技巧:


①可以给不同渠道的apk赋不同的应用名


  1. productFlavors {         xiaomi{  
  2.         //            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]  
  3.         resValue "string""app_name""xiaomi"  
  4.     }  
  5.         wandoujia{  
  6. //            manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]  
  7.             resValue "string""app_name""wandoujia"  
  8.         }  

②给测试打不同功能点可以安装在同一个手机上的测试包

  1. productFlavors {  
  2.   
  3.       okhttp {  
  4.           applicationIdSuffix "okhttp"  
  5.           resValue "string""app_name""okhttp"  
  6.       }  
  7.       jpush {  
  8.           applicationIdSuffix "jpush"  
  9.           resValue "string""app_name""jpush"  
  10.       }  
  11.   }  




多渠道打包就是因为目前市场上   app应用商店太多,所以对于这一情况就有了多渠道打包,可以让用户在不用的应用商店下载app
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值