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了,就這樣就行了,加起來很快。

不過我沒有要加什么支付監測或其他的,畢竟,不具體提到的需求,就是不用做的需求,嗯。

 

打包的時候選擇需要的市場包

 

 

安裝之后就可以在友盟平台上看到數據了

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM