砖垛之android studio 友盟多渠道打包apk

一、在友盟后台注册一个账号,
这里写图片描述
1、当新添加应用时
这里写图片描述
点击提交
这里写图片描述

这个appkey,就是友盟后台的通行证,

2、当已经添加过应用时
这里写图片描述

这个时候友盟的AppKey我们就拿到了

二、添加友盟的依赖

1、 在项目的 build.gradle文件里的allprojects节点里添加
忘记友盟的库对应的是哪一个了,这个就看情况了,全写上也不会报错,早晚能用上!

这里写图片描述

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

2、 在APP的目录下的build.gradle文件里的dependencies里添加依赖

//    友盟多渠道打包
    compile 'com.umeng.analytics:analytics:latest.integration'

3、 在manifest里的
(1)首先加权限

<!--友盟多渠道打包权限-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

(2)在application节点里添加

<!--友盟key-->
        <meta-data
            android:name="UMENG_APPKEY"
            android:value="这里填,在友盟后台里拿到的AppKey" />
        <!--渠道号-->
        <meta-data
            android:name="UMENG_CHANNEL"
            //UMENG_CHANNEL_VALUE这是一个变量,不用管为什么,直接用就好
            android:value="${UMENG_CHANNEL_VALUE}" />

(3)在app目录下build.gradle里添加

def releaseTime() {
    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
android {
    compileSdkVersion 26
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "mo.com.mo"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        // AndroidManifest.xml 里面UMENG_CHANNEL的value为 ${UMENG_CHANNEL_VALUE}
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "Mo"]//添加一个默认渠道号
    }
    //添加我们签名文件配置
    signingConfigs {
        //这两个环境不同,但是密码什么的一般都是一样的
        //测试环境
        debug {
            storeFile file("mo.jks")//key store,秘钥名
            storePassword "111111" //密码
            keyAlias "mo"//别名
            keyPassword "111111"//别名密码
        }
        //正式环境
        release {
            storeFile file("mo.jks")//秘钥
            storePassword "111111"//密码
            keyAlias "mo"//别名
            keyPassword "111111"//别名密码
        }
    }
    buildTypes {
        debug {
            shrinkResources false // 移除无用的resource文件
            minifyEnabled false //不启用混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro','proguard-fresco.pro'
            //签名配置
            signingConfig signingConfigs.debug
        }
        release {
            shrinkResources false // 移除无用的resource文件
            minifyEnabled false //启用混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //签名配置
            signingConfig signingConfigs.release
            //自定义设置apk名字,可注释
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        // 输出apk名称格式为:打包人_版本号_打包日期_对应市场.例如:li_v1.0_2015-01-15_wandoujia.apk
                        def fileName = "li_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
        }
    }
    productFlavors {
        Mo {//普通打包
            //     manifestPlaceholders = [UMENG_CHANNEL_VALUE: Mo]
        }
        QQ {//应用宝的包
            //     manifestPlaceholders = [UMENG_CHANNEL_VALUE: QQ]
        }
    }
    //当开启上面的注释的时候,下面的这个就可以注释掉了
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
}

把相关的粘过去就可以了,
(4)生成apk
这里写图片描述

这里写图片描述

这里不明白的可以看看这个

http://blog.csdn.net/li419360214/article/details/79012440

这里写图片描述

点击finish,稍等会就去你的apk路径里看看吧,

我的是放在项目目录下的,所以可以直接在as的目录下看到
这里写图片描述

注意:渠道命名规范

1.可以由英文字母、阿拉伯数字、下划线、中划线、空格、括号组成,可以含汉字以及其他明文字符,但是不建议使用中文命名,会出现乱码。

2.首尾字符不可以为空格

3.不要使用纯数字作为渠道ID

4.最多256个字符

5.”unknown” 及其各种大小写形式,作为友盟保留的字段,不可以作为渠道名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值