Android Studio 使用友盟进行多渠道打包

2019-08-22  本文已影响0人  龙_君

首先需要去友盟官网注册开发者账号,然后创建运用拿到appkey

在清单文件中添加权限并配置友盟

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cn.llwy.com.mydemos">
 
    <uses-sdk android:minSdkVersion="8"></uses-sdk>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
 
    <application
        android:allowBackup="true"
        android:name=".App"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
 
        <!--友盟-->
        <meta-data android:value="5b9727fda40fa3560f000023" android:name="UMENG_APPKEY"/>
        <meta-data android:value="${UMENG_CHANNEL_VALUE}" android:name="UMENG_CHANNEL"/>
 
 
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>

引入友盟依赖

 implementation 'com.umeng.analytics:analytics:latest.integration'

配置多渠道

  //多渠道打包支持
    productFlavors {
 
        Tencent {//投放应用宝市场
        }
        Baidu {//投放百度市场
        }
        Wandoujia {//投放豌豆荚市场
        }
        Vivo {//投放vivo市场
        }
        Oppo {//投放oppo市场
        }
        Xiaomi {//投放小米市场
        }
        Meizu {//投放魅族市场
        }
        Huawei {//投放华为应用市场
        }
        Lenovo {//投放联想市场
        }
        Letv {//投放乐视市场
        }
        Gionee {//投放金立市场
        }
        HiMarket {//投放安卓市场
        }
 
    }
    //注意我注释掉的,可以去掉注释,那样的话,下面这句就可以不用了
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

这里基本上要配置的都配置完了,但是你会发现有一个问题

遇到这个问题也不要慌主需要添加一句代码即可 flavorDimensions "versionCode"

然后就可以使用gradlew assembleRelease 打生产包 ;gradlew assembleDebug 打测试包

//编译并打所有的release包(通常上正式渠道只需要release包,所以我们只打release包就可以了)
gradlew assembleRelease
//编译并打所有的debug包
gradlew assembleDebug
//查看gradlew版本
gradlew -v
//清空
gradlew clean
// 编译
gradlew build
 下面运行最终效果



以上就是我们多渠道打包需要用到的一些东西,但是这些东西往往不够,我们有可能还需要友盟的统计功能,所以这里我们需要再添加一个依赖



并在自己的application里面初始化



接着在咋们的Activity里面添加有梦的两个方法用来统计



最后我们登录自己的友盟平台就可以看到使用详情


最后附上完成的app.gradle





apply plugin: 'com.android.application'
 
android {
 
    //多渠道打包支持
    productFlavors {
 
        Tencent {//投放应用宝市场
        }
        Baidu {//投放百度市场
        }
        Wandoujia {//投放豌豆荚市场
        }
        Vivo {//投放vivo市场
        }
        Oppo {//投放oppo市场
        }
        Xiaomi {//投放小米市场
        }
        Meizu {//投放魅族市场
        }
        Huawei {//投放华为应用市场
        }
        Lenovo {//投放联想市场
        }
        Letv {//投放乐视市场
        }
        Gionee {//投放金立市场
        }
        HiMarket {//投放安卓市场
        }
 
    }
    //注意我注释掉的,可以去掉注释,那样的话,下面这句就可以不用了
    productFlavors.all {
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }
 
    //添加我们签名文件配置
    signingConfigs {
        debug {
            storeFile file("C:\\Users\\Administrator\\Desktop\\mykey.mykey")//key store
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
        release {
            storeFile file("C:\\Users\\Administrator\\Desktop\\mykey.mykey")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
    }
 
    compileSdkVersion 27
    defaultConfig {
        applicationId "cn.llwy.com.mydemos"
        minSdkVersion 22
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 
    "android.support.test.runner.AndroidJUnitRunner"
        manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]//添加一个默认渠道号
        flavorDimensions "versionCode"
    }
    buildTypes {
        debug {
            minifyEnabled false //不启用混淆
            //签名配置
            signingConfig signingConfigs.debug
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 
     'proguard-rules.pro',
                    'proguard-fresco.pro'
 
        }
        release {
            minifyEnabled false //不启用混淆
            //签名配置
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 
      'proguard-rules.pro'
        }
     }
     }
 
      dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 
        'com.android.support.test.espresso:espresso-core:3.0.2'
 
    /*友盟统计需要的最新版本组件化基础库和统计SDK*/
    implementation 'com.umeng.sdk:common:latest.integration'
    implementation 'com.umeng.analytics:analytics:latest.integration'
     }

大家可以看到我们的包已经打好了至此教程也已经结束了,感谢大家多多支持多多关注。

如果小伙伴们集成遇到问题可以下载我的demo看看,简单易懂。注释齐全

附Demo下载链接
————————————————
版权声明:本文为CSDN博主「刘明昆」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/k571039838k/article/details/82625295

上一篇下一篇

猜你喜欢

热点阅读