zoukankan      html  css  js  c++  java
  • android分渠道打包,监测日活量统计(基于友盟SDK)

    客服说要看App日活,让加个统计功能。

    (我们技术部已经混到客服部都能直接提需求的地步

    首先接入友盟统计的SDK,在项目外层的build.gradle中添加依赖'https://dl.bintray.com/umsdk/release'

    buildscript {
        
        repositories {
            google()
            jcenter()
            maven {
                url 'https://dl.bintray.com/umsdk/release'
            }
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.3.0'
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
            maven {
    //         url 'https://dl.bintray.com/umsdk/release'//虽然官方文档说这里也要加,但我在这里也加的话有报错,不加也可以编译正常
                url 'https://jitpack.io'
            }
        }
    }

    再在module的build.gradle中注入依赖

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

    因为要做多渠道打包,所以在这里还要加入各渠道支持

    android {
    
        //多渠道打包支持
        productFlavors {
    
            Tencent {//投放应用宝市场
            }
            Vivo {//投放vivo市场
            }
            Xiaomi {//投放小米市场
            }
            Huawei {//投放华为应用市场
            }
            Meizu {//投放魅族市场
            }
            Oppo {//投放oppo市场
            }
            Wandoujia {//投放豌豆荚市场
            }
            Baidu {//投放百度市场
            }
            Lenovo {//投放联想市场
            }
            Letv {//投放乐视市场
            }
            Gionee {//投放金立市场
            }
            HiMarket {//投放安卓市场
            }
    
        }
       
        productFlavors.all {
            flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
        }
    defaultConfig {
            manifestPlaceholders = [
                    UMENG_CHANNEL_VALUE: "umeng",
            ]
            flavorDimensions "versionCode"
        }
    }

    如果有混淆的话记得在混淆文件中新增

    -keep class com.umeng.** {*;}
    -keepclassmembers class * {
       public <init> (org.json.JSONObject);
    }
    -keepclassmembers enum * {
        public static **[] values();
        public static ** valueOf(java.lang.String);
    }
    #SDK需要引用导入工程的资源文件,通过了反射机制得到资源引用文件R.java,
    #但是在开发者通过proguard等混淆/优化工具处理apk时,proguard可能会将R.java删除,如果遇到这个问题,请添加如下配置:
    #-keep public class [您的应用包名].R$*{
    #public static final int *;
    #}

    还需要的是在清单文件中设置几个权限,都是基本权限,一般项目中都已经有添加设置了,下面添加APPKey和channel值就好(channel值就是刚刚设置的对应渠道)

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

    然后再application类里初始化就好

     UMConfigure.init(this,  UMConfigure.DEVICE_TYPE_PHONE, null);//第三个值是pushKey,我没用友盟推送,置null就行

    在baseActivity里监测(确保每个activity里都能调用到就行)

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

    OK了,就这样就行了,加起来很快。

    不过我没有要加什么支付监测或其他的,毕竟,不具体提到的需求,就是不用做的需求,嗯。

    打包的时候选择需要的市场包

    安装之后就可以在友盟平台上看到数据了

     

  • 相关阅读:
    java基础(一)-----java的三大特性之封装
    并发编程(十六)——java7 深入并发包 ConcurrentHashMap 源码解析
    深入并发包 ConcurrentHashMap 源码解析
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
    星空雅梦
  • 原文地址:https://www.cnblogs.com/Sharley/p/11684644.html
Copyright © 2011-2022 走看看