浅谈「DataFlux」移动设备数据采集

DataFlux是上海驻云自研发的一套大数据统一分析平台,可以通过对任何来源、类型、规模的实时数据进行监控、分析和处理,释放数据价值

DataFlux 作为实时大数据分析平台,支持移动设备数据的收集,是其中非常重要的功能。短期规划,我们的目标是聚焦用户行为分析。下面就用户行为分析这一块展开,从系统设计、原理实现、后期展望来说说 Dataflux 移动设备的收集。

系统设计

移动端的数据采集,通过集成方在应用中集成我们的 SDK 来实现。具体实现如下图:
image

DataFlux 所有的系统设计都本着一个概念叫旁路,这里摘录一段百度百科的解释:

ByPass Mode(略过模式或旁路模式),泛指在一个系统的正常流程中,有一堆检核机制,而“ByPass Mode”就是当检核机制发生异常,无法在短期间内排除时,使系统作业能绕过这些检核机制,使系统能够继续运行的作业模式。

回到 SDK 的设计,我们引入了程序设计 AOP (Aspect-oriented programming 面线切面的程序设计)的概念,我就这里就不对 AOP 做赘述,相对应原理讲解网上有很多,简单来说集成方只需要进行简单的 SDK 启动配置之后,不需要将我们 SDK的夹杂应用的业务代码,换一种说法,这个就是全埋点。
image

好处是不要进行埋点的重复工作,另外因为没有和业务代码中添加代码,降低了代码耦合,在版本迭代过程中,不需因为界面或者业务代码变动一同修改,减少了代码维护成本。

当然全埋点也有它的缺点,因为把所有的数据都采集,如何在这些数据中过滤出有价值的数据,又变成了新的课题。我们这里一方面是通过 SDK 配置,通过黑白名单策略对上报采集数据进行过滤,另一方面是通过 Dataflux Web 端的自定义图标来实现。
image

实现原理

用户行为分析,全埋点这一块,这里 Android 使用了 Gradle Plugin Transform 静态代理的方式写入拦截代码,原理是在代码编译之前,由插件写入需要拦截的方法,iOS 则是在 Runtime,动态代理方式,在程序运行之后,注册拦截方法进行拦截,拦截到方法之后,我们对应应用的界面和用户的行为进行采集,之后以时序数据的方式,上报给 DataFlux服务器,然后用户通过 DataFlux 进行对收集数据进行洞察。
image

为了解除集成方安全性顾虑我们对SDK iOS 和 Android 进行了开源。

后期展望
在移动设备数据采集规划上,用户行为分析只是一部分,中期规划是采集设备的监控项目,例如,一方面用户行为数据可以根据这些监控数据做关联,另一方面可以作为实时监控手段,主要针对的是手机平板性能监控场景。

目前 SDK 只限于移动端,支持Android、iOS ,后期还会支持Flutter,并且会对支持的设备进行扩充,理论上安装有移动操作系统的设备,都是我们努力的目标,例如TV、车载设备等等。

image

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/763174

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。