Skip to content

windfallsheng/MonicatSDK

Repository files navigation

MonicatSDK

移动应用APP数据统计SDK 文档示例:

public class MySupportApplication extends Application {

@Override
	public void onCreate() {
    	super.onCreate();
	 // 使用默认配置参数;

// MonicatManager.getInstance() // .initConfig(new MonicatConfig.Builder(this).build()) // .monitor(); // ( 1 ) 初始化配置参数; MonicatConfig config = new MonicatConfig.Builder(this) // 传入Application的Context实例 // 设置开启debug模式,输出打印日志,默认为null // 没有设置时,会根据外层项目app的模式(debug or release)模式来选择 .debugEnable(true) // 是否关闭统计功能; //.enableMonicat(false) // 设置是否打开启动次数统计功能,默认为true .enableSessionStatistics(true) // 设置前后台切换的间隔时间(单位:毫秒)最大值,默认为30s .setSessionTimoutMillis(5 * 1000) // 设置数据上报策略,默认为INSTANT 即时上报数据 .setUploadStrategy(UploadStrategy.INSTANT) // 设置数据上报策略为定时上报 //.setUploadStrategy(UploadStrategy.TIMED_TASK) // 设置定时上报 时的小时和分钟,小时格式:大于等于0,小于24, // 分钟格式:大于等于0,小于60。 //.setTriggerTime(13, 42) // 设置数据上报策略为间隔上报 //.setUploadStrategy(UploadStrategy.PERIOD) // 设置间隔上报 的间隔时间(单位:毫秒),默认为30分钟,最小值为5分钟 //.setPeriodTime(5 * 60 * 1000) // 设置数据上报策略为批量上报 //.setUploadStrategy(UploadStrategy.BATCH) // 设置批量值,默认为50条 //.setBatchValue(30) .build(); // ( 2 ) 打开Monicat的监控功能 MonicatManager.getInstance().initConfig(config).monitor(); // 配置完成。 } }

注意:

  1. 如果设置上报策略为TIMED_TASK(定时上报)或者PERIOD(间隔上报)时需要在manifest中注册以下这个服务:
  1. 信息说明: 统计策略:(ONLY_WIFI功能实现未完成) INSTANT 即时上报 实时发送,APP每产生一条消息都会发送到服务器。 APP_LAUNCH 启动上报 只在启动时发送,本次产生的所有数据在下次启动时发送。 PERIOD 间隔上报 启动应用后每隔一段时间,一次性发送到服务器。 BATCH 批量发送 默认当消息数量达到50条时发送一次。 TIMED_TASK 定时上报 指定一天中的某个时间一次性上报所有本地缓存中未上报的数据 ONLY_WIFI WIFI网络下上报 只在WIFI状态下发送,非WIFI情况缓存到本地。 三、 功能说明:

  2. 会话统计: 记录应用启动和退出,包括启动次数,启动和退出的时间,可以统计出来每次使用时长等数据 MonicatManager.getInstance().monitor(); 方法调用后,主要由 SessionStatisticsManager类内部来实现。

  3. 页面统计: 记录某个页面开闭状态,能统计出某个页面访问的次数、时间等,也能监测出部分用户使用应用时各页面之间的跳转轨迹。(数据库本地缓存未完善) 使用方法1:

    MonicatManager.getInstance().registerPage(Context context); 或者: MonicatManager.getInstance().registerPage(Context context, String pageName) // 注销对某个页面的开闭状态的记录 MonicatManager.getInstance().unregisterPage(Context context);

使用方法2:

标记一次页面访问的开始: MonicatManager.getInstance().trackBeginPage(Context context); 或者: MonicatManager.getInstance().trackBeginPage(Context context, String pageName);

标记一次页面访问的结束: MonicatManager.getInstance().trackEndPage(Context context); 或者: MonicatManager.getInstance().trackEndPage(Context context, String pageName);

方法1代码示例:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
protected void onResume() {
    super.onResume();
// 标记一次页面访问的开始
MonicatManager.getInstance().trackBeginPage(this);
或者:
   MonicatManager.getInstance().trackBeginPage(this, "主界面"

); }

@Override
protected void onPause() {
    super.onPause();
// 标记一次页面访问的结束
MonicatManager.getInstance().trackEndPage(this);
或者:

MonicatManager.getInstance().trackEndPage(this, "主界面"); } }

  1. 事件统计: 包括普通事件、自定义事件统计,可以统计次数,即:统计指定行为被触发的次数; 也可统计时长,即,统计两个指定行为之间的消耗时间,以及其它相关数据。(数据库本地缓存未完善) 普通事件方法:

    //标记一次普通事件的开始 MonicatManager.getInstance().trackBeginEvent(Context context, String eventName); //标记一次普通事件的结束 MonicatManager.getInstance().trackEndEvent(Context context, String eventName);

自定义事件方法: // properties Key-Value参数对,key和value都是String类型 Properties prop = new Properties() .addProperty("name", "value") .addProperty("level", "51"); //标记一次普通事件的开始 MonicatManager.getInstance().trackCustomBeginEvent(Context context, String eventName, Properties properties); //标记一次普通事件的结束 MonicatManager.getInstance().trackCustomEndEvent(Context context, String eventName, Properties properties);

代码示例:

mButtonLogin.setOnClickListener(new View.OnClickListener() {

@Override public void onClick(View view) { Properties prop = new Properties() .addProperty("key", "value") .addProperty("level", "51");
MonicatManager.getInstance().trackCustomBeginEvent(MainActivity.this, "button_click login事件", prop);
} });

特别说明: 有关项目中SQLite数据库缓存数据及其它CRUD相关的功能及网络请求的功能,在本项目中只是粗略实现,未优化,有需要时可以进行修改,替换为其它ORM框架,完善网络请求的代码封装。

see Blog

由于作者水平有限,语言描述及代码实现中难免有纰漏,望各位看官多提宝贵意见!

Hello , World !

感谢所有!

About

移动应用APP数据统计SDK简单功能版

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages