目录
一、参考文档
二、简介
三、集成准备
(1)先注册官网账号
(2)点击【产品】——【移动统计(U-App)】——【进入新版】——【添加应用】
(3)获取应用的Appkey
四、开始配置
(1)自动集成
(2)手动集成
(3)混淆设置
五、基本使用
(1)初始化
(2)场景类型设置接口
(3)Appkey保护
(4)Session启动、App使用时长等基础数据统计接口API(主要部分)
(5)Session间隔时长设置接口(一般情况下不用修改此值)
六、数据分析
七、源码地址
友盟官网:https://www.umeng.com/
集成文档:https://developer.umeng.com/docs/66632/detail/66889
与:https://dev.umeng.com/analytics/android-doc/integration#3
集成流程:https://developer.umeng.com/docs/67953/detail/68423
当我们把APK发布到市场后就会开始关心应用的使用情况,比如每日新增用户数,活跃用户数或各平台的用户活动情况等...通过分析数据来做推广和改善应用。这时候我们就要使用到统计分析。今天就做个笔记写写怎么简单的使用第三方友盟统计来实现数据的收集。
根据流程图可只我们必须要先到官网创建一个应用才行(友盟官网:https://www.umeng.com/)
添加完应用会自动生成Appkey
然后下载sdk就可以开始集成了/不下载的话根据文档通过添加依赖也可以集成
哈哈 我比较懒就自动拷贝官网代码了 ,集成文档写的很详细,这里就做个笔记总结一下
①下载sdk 把umeng-common-x.x.x.jar、umeng-analytics-x.x.x.ja包添加到libs目录中,并在项目build.gradle中引入相应的组件包
implementation files('libs/umeng-common-1.5.3.jar')
implementation files('libs/umeng-analytics-7.5.3.jar')
②添加权限 在AndroidManifest.xml清单文件中添加相关权限
如果您的应用使用了代码混淆,请添加如下配置,以避免【友盟+】SDK被错误混淆导致SDK不可用。
-keep class com.umeng.** {*;}
-keepclassmembers class * {
public (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 *;
}
到这里基础配置算完成了
//在宿主应用application.onCreate函数中调用基础组件包提供的初始化函数:
/* 第一种方式
注意: 即使您已经在AndroidManifest.xml中配置过appkey和channel值,也需要在App代码中调用初始化接口
(如需要使用AndroidManifest.xml中配置好的appkey和channel值,UMConfigure.init调用中appkey和channel参数请置为null)。
*/
UMConfigure.init(Context context, String appkey, String channel, int deviceType, String pushSecret);
构造意义:
String appkey:官方申请的Appkey
String channel: 渠道号
EScenarioType eType: 场景模式,包含统计、游戏、统计盒子、游戏盒子
Boolean isCrashEnable: 可选初始化. 是否开启crash模式
/*第二种方式
注意:如果您已经在AndroidManifest.xml中配置过appkey和channel值,可以调用此版本初始化函数。
*/
UMConfigure.init(Context context, int deviceType, String pushSecret);
//然后在AndroidManifest.xml中配置appkey和channel值
将
中的Channel ID替换为您应用的推广渠道名称,channel id自定义。
例如在豌豆荚渠道推广此包,代码示例:
MobclickAgent.setScenarioType(mContext, EScenarioType.E_UM_NORMAL);
// context 当前宿主进程的ApplicationContext上下文。
/* etype
(1)EScenarioType.E_UM_NORMAL 普通统计场景,如果您在埋点过程中没有使用到
U-Game统计接口,请使用普通统计场景。
(2)EScenarioType.E_UM_GAME 游戏场景 ,如果您在埋点过程中需要使用到U-Game
统计接口,则必须设置游戏场景,否则所有的U-Game统计接口不会生效。
*/
secretkey设置接口,防止AppKey被盗用,secretkey需要网站申请。http://dev.umeng.com/analytics/reports/secretkey-detail
MobclickAgent.setSecret(mContext, "s10bacedtyz");
//context 当前宿主进程的ApplicationContext上下文。
//secretkey secretkey需要在【友盟+】网站申请。
在App中每个Activity的onResume方法中调用 MobclickAgent.onResume(context),
onPause方法中调用 MobclickAgent.onPause(context)。
@Override
public void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
@Override
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
注意:
(1)确保在所有的Activity中都调用 MobclickAgent.onResume() 和onPause()方法,这两个调用不会阻塞应用程序的主线程,也不会影响应用程序的性能。
(2)注意:如果您的Activity之间有继承或者控制关系,请不要同时在父和子Activity中重复添加nPause和nResume方法,否则会造成重复统计,导致启动次数异常增高。(例如:使用TabHost、TabActivity、ActivityGroup时)。
(3)当应用在后台运行超过30秒(默认)再回到前台,将被认为是两次独立的Session(启动),例如:用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。即被认为是两个独立的Session。
//interval 单位为毫秒,默认值为30000(默认Session间隔时间是30秒)。
MobclickAgent.setSessionContinueMillis(long interval);
至此,基本功能集成已经结束。
(6)高级功能这里就不写了,需要的伙伴可以参考官网文档
运行应用后,打开友盟进入之前创建的应用
选择你想要看的应用即可
https://github.com/DayorNight/BLCS
以上内容经供参考,详情请仔细阅读官方文档。哈哈
原文来自:https://www.jianshu.com/p/d93767c806e3
上一篇《Android Rxjava+Retrofit封装》