Android Studio 友盟api实现apk多渠道打包

本篇主要给大家介绍利用友盟api实现Android多渠道打包,进入友盟的官网,注册账号,添加对应的应用。
1.添加友盟库的依赖
这里写图片描述

2.在manifest.xml中声明appkey,以及渠道占位符
这里写图片描述

3.builder.gradle相关脚本配置,添加默认的渠道名
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

4.执行命令gradlew assembleRelease打出所有渠道的Release包,相似的命令如:assembleDebug(只打Debug包)、assemblewandoujiaRelease(只打豌豆荚渠道的包)
命令执行成功生成的安装包:
没有重命名生成的apk

重命名后生成的apk

这里写图片描述

完整的builder.gradle配置代码如下

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.czhappy.autoinstall"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true //突破应用方法数65535的一个限制
        manifestPlaceholders=[UMENG_CHANNEL_VALUE:"umeng"]
    }


    /*
    添加签名文件
     */
    signingConfigs{
        Debug{}

        //为我们的release添加签名配置
        release{

            storeFile file("cztest.jks")
            storePassword "happy123456"
            keyAlias "happy"
            keyPassword "happy123456"
        }
    }

    buildTypes {
        release {
            minifyEnabled false//是否使用混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            signingConfig signingConfigs.release

            //指定输出的渠道文件名
            applicationVariants.all{ variant->
                variant.outputs.each{ output->
                    def outputFile = output.outputFile
                    if(outputFile!=null && outputFile.name.endsWith(".apk")){
                        def fileName = "${variant.productFlavors[0].name}" + ".apk"
                        output.outputFile = new File(outputFile.parent, fileName);

                    }

                }

            }
        }
    }

    /*
    渠道号名称
     */
    productFlavors{
        xiaomi{
            //manifestPlaceholders=[UMENG_CHANNEL_VALUE:"xiaomi"]
            //resValue "string", "app_name", "xiaomi_app"
        }

        wandoujia{
            //manifestPlaceholders=[UMENG_CHANNEL_VALUE:"wandoujia"]
            //resValue "string", "app_name", "wandoujia_app"
        }

//        okhttp{
//            applicationIdSuffix "okhttp"
//            resValue "string", "app_name", "okhttp"
//        }
//
//        jpush{
//            applicationIdSuffix "jpush"
//            resValue "string", "app_name", "jpush"
//        }
    }

    productFlavors.all{
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.0'
    compile 'com.squareup.okhttp3:okhttp:3.1.2'
    compile 'com.lzy.net:okgo:2.1.4'
    compile 'com.daimajia.numberprogressbar:library:1.2@aar'

    compile 'com.umeng.analytics:analytics:latest.integration'
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
友盟渠道打包工具主要是提供基本的通过工程源码打包的功能。 常见错误见这里目前不支持的Apk特性见这里(可能会导致发布的SDK产生严重bug)。 Google 现在已经发布了最新的构建系统(New Building System) , 在 Android Studio 中已经支持了最新的 构建系统,如果开发者已经迁移,可以使用新的系统方面的生成渠道包,这是取代渠道打包工具的最佳方式。 1. 工程结构 工程结构图 : - CommonTools 共用的工具类,包括对 `Apktool` , `Jarsigner` , `zipalign` 的封装 - UIControls_35   共用的UI类,对大部分控件的样式都是在这里设置的 - UmengMarket  Marekt 组件,现在还没有实现 - UmengPackage 打包组件 - UmengTools 工程主要UI,管理 UmengMarket, UmengPackage, UmengTools 三个组件 - UmengWidget 小工具组件,目前仅有解包分析的功能 打包工具组件: - Source - Builder - ApkBuilder.cs     通过 APK 打包的 Builder 实现                    - Builder.cs            抽象 Builder 类,提供打包的主要逻辑                    - SourceBuilder.cs通过源码打包的 Builder 实现 (目前代码还没有实现)          - Worker.cs 打包过程对外接口 3. 打包流程 V2.0 版本仅实现了通过 .apk 打包的方式,本质上对  apk 文件进行反编译,修改 AndroidManifest.xml 文件后,再重新打包,我们使用的工具是开源的拆包工具 Apktool 将  apktool  添加到当前 process 的环境变量 执行 apktool d --no-src -f xxxx.apk temp 拆解apk 替换或者添加 AndroidManifest.xml 中的 友盟channel 执行apktool b temp  unsigned.apk 重新打包apk 执行 SignApk.jar 生成签名后的 apk 文件 执行 zipAlign 生成对齐优化后的 apk 文件 回到 3 替换新的渠道 完成打包 使用  JarSigner.jar 给 Apk 签名, SignApk.jar  文件是我们修改过的 apk 签名工具,实现了和 ADT 中一样的签名方式,使用如下: Usage: signapk file.{keystore} keystore_password key_entry key_password input.apk output.apk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值