zoukankan      html  css  js  c++  java
  • 小米开放平台,移动统计分析


    查看统计数据步骤:

    (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天内上报流程被触发,就会将本地之前没上报成功的所有数据打包上报。如果数据上报成功,则会把已经成功的数据从本地删除。


     




  • 相关阅读:
    正则表达式
    装饰练习
    JavaScript练习
    函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结
    [转载]C#读写文本文件
    c#中绝对路径和相对路径
    C# []、List、Array、ArrayList 区别及应用【转】
    中央子午线的计算方法(转)
    DataTabe的使用
    DataGridView的用法大全(一)
  • 原文地址:https://www.cnblogs.com/maxiaodoubao/p/4229095.html
Copyright © 2011-2022 走看看