当前位置:   article > 正文

(安卓) 多渠道打包

(安卓) 多渠道打包

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. </application>




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

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

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

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. xiaomi{
  5. }
  6. }
            为了简单可以用脚本去替换重复代码
  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. okhttp {
  3. applicationIdSuffix "okhttp"
  4. resValue "string", "app_name", "okhttp"
  5. }
  6. jpush {
  7. applicationIdSuffix "jpush"
  8. resValue "string", "app_name", "jpush"
  9. }
  10. }




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







声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/253078
推荐阅读
相关标签
  

闽ICP备14008679号