DownOL 软件仓库– 软件下载,字节世界与新知

Android App开发之埋点大数据收集总结篇,收藏吧~

发表于:2024-05-03 作者:创始人
编辑最后更新 2024年05月03日,之前在写项目的时候,有了一个大数据收集的需求。之前也写了两篇关于大数据收集的文章,都是简单分析以及说明自己的实现思路,分享给大家。今天写大数据收集的最后一篇,结合我自己现在的项目,来写具体的实现观点。

之前在写项目的时候,有了一个大数据收集的需求。之前也写了两篇关于大数据收集的文章,都是简单分析以及说明自己的实现思路,分享给大家。

今天写大数据收集的最后一篇,结合我自己现在的项目,来写具体的实现观点。对于没有看过需求的朋友们我先阐述一下具体的需求,以及之前的实现思路。

项目需求是大数据的收集,也就是Android 埋点需求,主要是收集用户的行为,我们项目 要求收集用户包裹点击、下拉、上拉、滑动、唤醒、退出、更新等10种数据的收集。之前的大致思路是创建一个静态的单例管理类,类里面创建一个集合,用来存放每一次的数据,当数据够20条的时候,上传一次服务器。对于内存不足,APP被杀死,采用了sharePerferce来本地保存。

上面是大致的思路。写代码的时候有很多的实现方式,可能最简单的例如,我们在每一个需要的地方,都获取对象来添加。好像这样还很完美。但是问题来了,那么多点击事件,那么多唤醒,挂起要统计不把程序员累死,也就是代码量太大封装并不好。代码埋点的方式是比较简单,但是后期维护,扩展性能特别差,所以代码埋点被推翻了。然后就想着能不能通过封装在基类或者一个单独的地方进行操作呢?

接下来,我们主要说一下,怎么封装点击事件到基类,不用再代码中埋点,这里主要讲点击事件的收集和唤醒挂起全局的收集:

点击事件收集的大致思路,此种方式有借鉴其他人:需要统计页面的点击事件,即添加埋点进行统计,如何实现?我当时回答的是反射加代理去实现这个功能。有朋友说,这不是很简单嘛,直接用代理模式就OK了啊,干嘛还反射。的确,如果在项目初期就确定了这个需求的话,我想大部分人都会想到用代理模式来实现这个功能。但是如果项目已经稳定运行了一段时间呢?我们不可能把每个事件都重新替换成我们的代理类吧?这样重复的工作太没有效率了,这里我们可以通过反射加代理技术来实现这个功能。

封装的工具类:

图1

图2

每一步怎么操作什么意思,代码中都有说明,项目中具体的使用:

结果

因为如果直接粘贴代码,代码的格式就发生了变化所以我就直接站体截图,供大家参考,因为篇幅有限,我吧唤醒、挂起、以及APP的启动的封装放到明天的文章里面发表,感兴趣的朋友可以持续关注一下~

题外话,双11来了,发现花呗一直再涨,不知道你们发现没有,今天支付宝又给我们每个人默默的提额了,小编提了1000块,您的呢?

支付宝花呗

你的呢?金额提了多少?双11都要买买买。

2022-05-09 23:23:30
0