• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > 自定义收集用户行为统计库 (非常方便 可以自己拓展)

自定义收集用户行为统计库 (非常方便 可以自己拓展)

作者:六道对穿肠的学习之旅 字体:[增加 减小] 来源:互联网 时间:2017-07-22

六道对穿肠的学习之旅通过本文主要向大家介绍了事件收集-android等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

EventCollect

这是收集用户行为统计的代码

reademe:

需求::
现在App统计控件。 实际上就是监控所有事件 并把事件 发送到服务上去

要求: 可以监控用户的所有行为,例如用户谁(没有登录的情况使用UUID),

进入那个页面,进入的时间,在这个页面操作了什么(点击了那个按钮,或者是点击了列表那个列),

离开页面时间,以及其他统计信息,例如版本号,手机系统版本,用户当前网络,用户位置,用户单次使用App时长等

。用户是否把App退到了后台。用户离开了哪一个页面,离开时间。

解决方案:

重写 dispatchTouchEvent负责分发事件 的方法在这里 遍历 所有节点 收集按下的x y 坐标

在抬起的时候通过用户动作的范围查找相应的View,并组成自己所需要的json 参数

功能 特点::

可以无埋点 只需要在baseActivity里面 加上几行代码就可以实现收集用户

操作信息的功能.

注意 :
统计上报接口采用分布式,不然所有数据都请求同一个接口,那么日活大的情况下,

服务器挂了 不仅无法收到数据,反而影响客户端其他正常的功能

演示操作 gif图有点大 :

我这里演示 模拟请求成功和请求失败的情况

在DateSender类中MySend 线程 中控制请求成功和失败

第一种情况: 收集事件达到五次 上传数据成功的演示:

image

第二种情况: 收集事件达到五次 上传数据不成功的演示 存入本地:

image

第三种情况: 收集事件达到五次 上传数据成功 并且把以前未上传成功的数据一起上传:

image

流程图

image

上传的json数据

    {
        "userData":{
            "app_channel":"",
            "network":"NONE",
            "sysVersion":"6.0.1",
            "w_and_h":"1080*1920",
            "UUID":"ffffffff-89a3-f09e-115f-86b90033c587",
            "version":1,
            "phoneModel":"Redmi Note 3",
            "comeFrom":"az_wn",
            "user_loaction":{
                "district":"朝阳区",
                "streetName":"三元桥",
                "province":"北京",
                "lat":"37.0",
                "lng":"37.0",
                "city":"北京"
            }
        },
        "events":[
            {
                "type":"app",
                "evenTime":1499672827876,
                "even":"in",
                "page":"MainActivity",
                "name":"首页"
            },
            {
                "evenTime":1499672844001,
                "name":"点击收集数据",
                "page":"MainActivity",
                "even":"click",
                "type":"button"
            },
            {
                "evenTime":1499672844604,
                "name":"点击收集数据",
                "page":"MainActivity",
                "even":"click",
                "type":"button"
            },
            {
                "evenTime":1499672845334,
                "name":"自定义事件",
                "page":"MainActivity",
                "even":"click",
                "type":"button"
            },
            {
                "evenTime":1499672845338,
                "name":"nihao",
                "attributes":{
                    "item-category":"book"
                },
                "page":"MainActivity",
                "even":"click",
                "type":"custum"
            }
        ],
        "session":{
            "id":"1499672845390_1951868",
            "time":1499672845390
        }
    }

last:

感谢github上各种收集事件项目给我的思路.

所以我也把自己写的贡献出来,希望能帮助到有需要的人

项目 下载地址
http://download.csdn.net/detail/liudao7994/9904262

github 地址 https://github.com/liudao01/EventCollect

大家点个星星 支持下 你的支持 是我的动力

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-26在Android studio中进行单元测试和ui测试的分析
  • 2017-05-26okhttp3.4.1+retrofit2.1.0实现离线缓存,retrofitokhttp缓存
  • 2017-05-26阿里巴巴开源Weex 开发教程,开源weex
  • 2017-05-26Android 连接webservice(利用谷歌提供的jar包),androidwebservice
  • 2017-05-26EventBus简单使用教程
  • 2017-05-26eclipse安装genymotion插件。,eclipsegenymotion
  • 2017-05-26Android Studio添加Parcelable序列化小工具(快速提高开发效率)
  • 2017-05-26Android系统的“程序异常退出”,android退出
  • 2017-05-26安卓第十三天笔记-服务(Service),安卓第十三天
  • 2017-05-26androidStudio通过svn进行版本控制,androidstudiosvn

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 在Android上,怎样与Kotlin一起使用Retrofit(KAD21),kotlinretrofit
    • android基础部分再学习--AIDL
    • 解析View的getDrawingCache方法,getdrawingcache
    • Android开发学习之路--网络编程之初体验
    • Android 手机卫士11--窗体弹出PopupWindow,11--popupwindow
    • Android 隐藏状态栏 标题栏
    • VysorPro助手,vysorpro破解版
    • Docker+Redis3集群环境搭建
    • Android自定义控件系列案例【四】
    • Android中的属性动画(Property Animation)——Android开发艺术探索笔记

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有