码迷,mamicode.com
首页 > 移动开发 > 详细

小米开放平台,移动统计分析

时间:2015-01-16 18:23:08      阅读:484      评论:0      收藏:0      [点我收藏+]

标签:


查看统计数据步骤:

(1) 链接:http://dev.xiaomi.com/
文档 dev.xiaomi.com/doc/p=3995/index.html
(2) 登录——统计服务——你的APP——查看统计报表——左边菜单栏“集成测试”——测试设备
   即可看到已有测试设备的统计信息

(3)新增测试设备方法:
    Activity中,初始化后加入:
    String deiviceId = .getDeviceID(this);
    if(deiviceId!=null){
          Log.d("test","deviceId = "+deviceId);
    }
    在Log中得到当前小米盒子的deviceId
    在之前网站中点击列表上方“新增测试设备”,输入名称和deviceId

(4)项目中使用方式
        1、初始化
            //建议放在LauncherActivity中,如果放在Application中,如有后台sevice会导致统计数据不准确
            MiStatInterface.initialize(this, XIAOMI_APP_ID, XIAOMI_APP_KEY, "xiaomi channel"); 

            //上传方式,当前选择实时上传,第二个参数只在延时上传时才需设置
            MiStatInterface.setUploadPolicy(MiStatInterface.UPLOAD_POLICY_REALTIME, 0);       

            //是否需要打印Log。Log的TAG为:MI_STAT
            MiStatInterface.enableLog();

         2、记录一次操作。Acitivity结束之后,仍会在线程中自动上传
            MiStatInterface.recordPageStart(LoginActivity.this, "familycircle launcher");            //在onResume中调用
            MiStatInterface.recordPageEnd();                                                                         //在onPause中调用
 
     如需记录用户整个Session和操作路径,需在每个Activity中加入此代码。
   曾经尝试放在BaseActivity中,取class的name,取到的是当前的Activity的名称,但是初始化如果放在BaseActivity中,会调用多次。
   放在其他Activity中,在BaseAcitiity中会报空指针
          String name = this.getClass().getName();
          if(name!=null){
                name = name.substring(name.lastIndexOf(".")+1,name.length()-8);    //名字去掉Acitivity
                Log.d("test", name);
          }
 

(5)Notes:
  第一次安装时,会自动采集设备信息上传。例如:
        "key":"IMEI","type":"字符串属性","value":"XXXXXXXXX"
        "key":"resolution","type":"字符串属性","value":"1080x1920"
        "key":"locale","type":"字符串属性","value":"zh_CN"
        "key":"new","type":"计数","value":"1"
        "key":"model","type":"字符串属性","value":"MiBOX2"
        "key":"OS","type":"字符串属性","value":"android19"

          之后再进入应用,会从LocalDB中取record数据。有时会将多次操作打包,只上传一次。虽然选择实时上传方式。事实上也不完全实时
          recordPageStart,recordPageEnd    如果在init之前调用的话,会报空指针异常。为防止只能try catch。


    上报策略
  • UPLOAD_POLICY_REALTIME 实时上报。每当有一条新的记录,就会激发一次上报。
  • UPLOAD_POLICY_WIFI_ONLY 只在WIFI下上报。当设备处于WIFI连接时实时上报,否则不上报记录。
  • UPLOAD_POLICY_BATCH 批量上报。当记录在本地累积超过一个固定值时(50条),会触发一次上报。
  • UPLOAD_POLICY_WHILE_INITIALIZE
    启动时候上报。每次应用启动(调用initialize方法)时候,会将上一次应用使用产生的数据记录打包上报。    
  • UPLOAD_POLICY_INTERVAL
    指定时间间隔上报。开发者可以指定从5分钟-1天之间的任意时间间隔上报数据记录。需要注意,由于SDK并没有使用安卓的实时唤醒机制,因此采用此策略上报,SDK做不到严格的遵守开发者设定的间隔,而会根据应用数据采集的频率和设备休眠策略,会有一定的偏差。
  • UPLOAD_POLICY_DEVELOPMENT
    调试模式。使用此策略,只有开发者手动调用一个接口才会触发上报,否则在任何情况下都不上报。SDK中提供了一个triggerUploadManually方法用于手动触发。这种策略主要用于开发者调试时候可手动控制上报时机,便于做数据对比。

  小米统计服务的本地缓存最长会保存3天,只要在3天内上报流程被触发,就会将本地之前没上报成功的所有数据打包上报。如果数据上报成功,则会把已经成功的数据从本地删除。


 




小米开放平台,移动统计分析

标签:

原文地址:http://www.cnblogs.com/maxiaodoubao/p/4229095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!