自定义数据采集插件三部曲之开篇介绍

时间:2021-7-9 作者:qvyue

说到自定义数据采集插件,大家可能不是很了解它的组成以及功能,在这里简略进行介绍。

功能

它是一种数据采集的实现方式,通过它我们可以采集APP内任意的页面加载信息、用户行为操作等数据,便于我们分析用户的行为、优化APP的性能。

组成

自定义数据采集插件是由:AOP、Annotation、自定义Gradle插件三部分组成。通过它我们可以学习、了解相关的原理和技术。

工作原理

使用自定义注解实现数据采集的Annotation,通过AOP的Aspect把Annotation变成pointcut注入数据统计逻辑,最后打包成Gradle插件使用。

数据统计介绍

谈到数据统计,目前普遍有两种方式:一种是使用第三方SDK(例:友盟统计、小米统计、百度统计等),另一种是自定义统计插件。两者各有优缺点:前者优点是简单、方便、稳定,集成即可使用,不用做其他处理,缺点是过度依赖第三方平台,对数据的统计存在一定的限制,有些需求可能无法满足。后者优点是自定义,完全满足业务的需求(废话就是根据需求开发的),后续可以根据不同的需求进行调整,缺点是实现复杂,涉及的知识点多,并且自己需要做数据的采集、上传处理。

其中自定义数据采集目前比较先进的方案有两种,一种是《网易乐得无埋点数据收集SDK》模式,另一种是通过Annotation+AOP的方式实现。

两者原理比较类似:前者也是通过Annotation+AOP实现,只不过在Annotation步骤不是手动添加注解,而是通过ASM库操纵java字节码,从而添加Annotation埋点。后者则是在Annotation步骤手动添加埋点。

前者的优点是不用在代码中添加任何埋点痕迹,所有埋点均在字节码中处理,缺点是涉及字节码底层,逻辑复杂,还需要大量代码进行id的区分、Annotation的埋点设置、以及后续的维护。参考资料:Android AOP之字节码插桩 Android无埋点数据收集SDK关键技术

后者则是一个折中的办法,考虑到开发成本、人员精力、以及后续的业务变动,直接通过添加Annotation能够节省大量时间开发和维护。缺点是需要在代码中标注Annotation。

总结

好了,今天关于自定义数据采集的介绍就在这里。后面会逐步完善其三部曲:自定义Annotation、AOP、自定义Gradle插件系列文章,请持续关注。

简书地址:http://www.jianshu.com/p/16efe98d4554/)

E-mail:931675174@qq.com

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。