5分钟实现Android最新2018友盟统计

前言

基本上现在任何一个实用的App都离不开瞒点统计,否则应用发出去就一抹乌黑了,也难以做运营和一些决策,为进一步了解这一块, 于是选择了业界用得比较多的友盟平台

统计的方式很多,不过是最基本的新增用户和启动次数。关于这个,可能就需要涉及Android的Activity的生命周期和状态改变,为了让你们更好点的理解,做个简单的代码尝试:

protectedvoid onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.e(TAG,"enter onCreate”);
}
protectedvoid onStart() {
    super.onStart();
    Log.e(TAG,"onStart");
}
@Override
protectedvoid onResume() {
    super.onResume();
    Log.e(TAG,"onResume");
}
@Override
protectedvoid onPause() {
    super.onPause();
    Log.e(TAG,"onPause");
}
@Override
protectedvoid onStop() {
    super.onPause();
    Log.e(TAG,"onStop");
}

然后做了一些实验:

1.第一次启动main activity有三个状态值发生,onCreate,onStart,onResume
2.按Home键将应用切到后台,触发onPasue和onStop
3.长按home键,找到应用打开后,切换到前台,触发onStart,onResume
这里写图片描述

后面你们如果真正使用友盟SDK后会发现它也是基于这个统计来计算活跃用户的,接下来正式开始讲解


介绍

友盟统计

友盟官方集成文档:


使用

饭前运动

1.必要的集成步骤

  • XML配置Appkey和权限
<manifest……>
    !-- 必须的权限 -->
    //取用户设备的mac地址,在平板设备上,无法通过imei标示设备,我们会将mac地址作为用户的唯一标识
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        //检测联网方式,区分用户设备使用的是2G、3G或是WiFi
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        //获取用户设备的IMEI,通过IMEI和mac来唯一的标识用户。
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        //检测联网方式,区分用户设备使用的是2G、3G或是WiFi
        //允许应用程序联网,以便向我们的服务器端发送数据。
        <uses-permission android:name="android.permission.INTERNET" />

    <!-- 推荐的权限 -->
    <!-- 添加如下权限,以便使用更多的第三方SDK和更精准的统计数据 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application ……>
……
    <activity ……/>
        <meta-data android:value="YOUR_APP_KEY" android:name="UMENG_APPKEY"/>
        <meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
    </application>    
</manifest>

YOUR_APP_KEY: 换为您在友盟后台申请的应用Appkey(Appkey可在统计后台的 统计分析->设置->应用信息 页面查看)
Channel ID: 用户自定义写(什么都可以)

  • session的调用

    在每个Activity的onResume方法中调用 MobclickAgent.onResume(Context) ,onPause方法中调用 MobclickAgent.onPause(Context)

    public void onResume() {
        super.onResume();
        MobclickAgent.onResume(this);          //统计时长
    }
    public void onPause() {
        super.onPause();
        MobclickAgent.onPause(this);             //统计时长
    }

1.确保在所有的Activity中都调用 MobclickAgent.onResume()和MobclickAgent.onPause()方法

2.注意 如果您的Activity之间有继承或者控制关系请不要同时在父和子Activity中重复添加onPause和onResume方法,否则会造成重复统计,导致启动次数异常增高。(eg.使用TabHost、TabActivity、ActivityGroup时)。

3.当应用在后台运行超过30秒(默认)再回到前端,将被认为是两个独立的session(启动),例如用户回到home,或进入其他程序,经过一段时间后再返回之前的应用。可通过接口:MobclickAgent.setSessionContinueMillis(long interval) 来自定义这个间隔(参数单位为毫秒)。

4.如果开发者调用Process.kill或者System.exit之类的方法杀死进程,请务必在此之前调用MobclickAgent.onKillProcess(Context context)方法,用来保存统计数据。

非常重要:必须调用 MobclickAgent.onResume() 和MobclickAgent.onPause()方法,才能够保证获取正确的新增用户、活跃用户、启动次数、使用时长等基本数据。

2.集成SDK

  • 通过在Android Studio工程build.gradle配置脚本中

添加依赖

      compile 'com.umeng.sdk:common:1.4.4'  
      compile 'com.umeng.sdk:analytics:7.4.4'

如果无法正常集成请添加如下代码 :



    allprojects {
            repositories {
            mavenCentral()     
        }
    }
  • 混淆

    请详细查看官方文档

3.初始化和通用接口

  • 先在application.onCreate初始化
  /*
         * 如果在注册清单里 声明APP KEY,就可以使用这个初始化方法
         *
         * 初始化common库
         * 参数1:上下文,不能为空
         * 参数2:APP_KEY  如果设置为null
         * 参数3:Channel  如果设置为null
         * 参数4:设备类型,UMConfigure.DEVICE_TYPE_PHONE为手机、UMConfigure.DEVICE_TYPE_BOX为盒子,默认为手机
         * 参数5:Push推送业务的secret 需要集成Push功能必须传入的sercet,否则为空
         */
     UMConfigure.init(getApplicationContext(), null, null, UMConfigure.DEVICE_TYPE_PHONE, null);
  • 设置通用接口
       /**
         * 设置组件化的Log开关
         * 参数: boolean 默认为false,如需查看LOG设置为true
         */
        UMConfigure.setLogEnabled(true);

        /**
         * 设置日志加密
         * 参数:boolean 默认为false(不加密)
         */
        UMConfigure.setEncryptEnabled(true);
        /**
         *  设置场景类型接口
         *  参数:上下文
         *  参数: 模式
         */
        MobclickAgent.setScenarioType(getApplicationContext()
        , MobclickAgent.EScenarioType.E_UM_NORMAL)

至此,基本功能集成已经结束,在你们使用的时候一定要详细查看文档,有很多配置没有详细指出

饭后运动

以上设置完成之后就可以安装app查看简单的页面统计了

  • 扩展下自定义事件统计

介绍:自定义事件分为计数时间和计算事件

详细介绍他们的区别

添加事件:【统计分析】->【设置】->【事件】->【添加事件】
这里写图片描述
MainActivity添加代码

  /**
     * 计数事件
     * @param context 当前宿主进程的ApplicationContext上下文。
     * @param eventID 为当前统计的事件ID。
     * @param label   事件的标签属性。
     */
    public static void onEvent(Context context, String eventID, String label) {
        MobclickAgent.onEvent(context, eventID, label);
    }
    //点击事件处理
    onEvent(MainActivity.this, "test", "测试");

查看效果图

这里写图片描述


总结

国内比较强大而且好用的统计

如果还有疑问的话点击连接github地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值