Android 友盟多渠道打包和统计

一:多渠道打包

第一步:登入友盟官网,点击产品,点击移动统计,点击进入新版,点击添加新应用

Android 友盟多渠道打包和统计

然后提交并获取AppKey

Android 友盟多渠道打包和统计

第二步:添加maven以来配置,在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】sdk 新maven仓库地址

buildscript {
    
    repositories {
        google()
        jcenter()
      //  maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
        maven { url 'https://dl.bintray.com/umsdk/release' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "http://maven.aliyun.com/nexus/content/repositories/releases" }
        maven { url 'https://dl.bintray.com/umsdk/release' }
    }

}

task clean(type: Delete) {
    delete rootProject.buildDir
}

第三步:在工程App 对应build.gradle配置脚本dependencies段中添加基础组件库和统计SDK库依赖(在Android Studio 3.1及以上版本开发环境下,指定引用最新版本依赖写法”latest.integration”可能导致下载库超时,此时需要指定具体版本号。)

implementation 'com.umeng.sdk:analytics:latest.integration'
implementation  'com.umeng.umsdk:common:latest.integration'

第四步:在AndroidManifest.xml里添加权限

<uses-permission android:name="android.permission.INTERNET" />
<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_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

 

第五步:添加混淆设置

# 友盟
-keep class com.umeng.** {*;}
-keepclassmembers class * {
   public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

第六步:在AndroidManifest.xml里添加UMENG_APPKEY和UMENG_CHANNEL

<!-- 友盟多渠道打包 -->
<meta-data
    android:name="UMENG_APPKEY"
    android:value="5dba79744ca357149c000a2e" />

<meta-data
    android:name="UMENG_CHANNEL"
    android:value="${UMENG_CHANNEL_VALUE}" />

第七步:在工程App 对应build.gradle里配置多渠道

productFlavors {
    ALi {}
    Baidu {}
    QiHoo360 {}
    Samsung {}
    HuaWei {}
    OPPO {}
    VIVO {}
    MI {}
    MeiZu {}
    Lenovo {}
    Tencent {}

    //遍历productFlavors
    productFlavors.all {
            //动态设置UMENG_CHANNEL_VALUE对应的值
        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
    }

}

第八步:Make Project时出现All flavors must now belong to a named flavor dimension的错误

在stackoverflow上找到答案,必须至少有一个flavorDimensions添加到你的build.gradle文件里

https://stackoverflow.com/questions/54607967/how-do-i-resolve-this-productflavours-error

Android 友盟多渠道打包和统计

在build.gradle文件里的defaultConfig下添加

android {
defaultConfig {
      ..........
    flavorDimensions "default"
  }
}

第九步:打包 (打包时Flavors要出现你配置的渠道)

Android 友盟多渠道打包和统计

第十步:看结果

Android 友盟多渠道打包和统计

二:友盟统计

第一步:在前面的maven配置和引入依赖的环境下,我们在application.onCreate函数进行基础统计的初始化

@Override
public void onCreate() {
    super.onCreate();
    // SophixManager.getInstance().queryAndLoadNewPatch();
    UMConfigure.init(HotFixApplication.this, Constant.deviceType, Constant.pushSecret);
    UMConfigure.setLogEnabled(true);
}

第二步:添加代码(最好在所有activit的基类里添加)

@Override
public void onResume() {
    super.onResume();
    MobclickAgent.onResume(this);
}
@Override
public void onPause() {
    super.onPause();
    MobclickAgent.onPause(this);
}

第三步:操作下app,然后友盟平台查看结果

Android 友盟多渠道打包和统计

Android 友盟多渠道打包和统计