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了,就这样就行了,加起来很快。
不过我没有要加什么支付监测或其他的,毕竟,不具体提到的需求,就是不用做的需求,嗯。
打包的时候选择需要的市场包
安装之后就可以在友盟平台上看到数据了