安卓数据埋点方案演进和实现

本文探讨了安卓数据埋点的需求、演进历史和分类,重点介绍了全埋点、无痕埋点的实现方式,包括字节码文件注入和dex文件处理。此外,还提及了可视化埋点的技术挑战和未来展望。
摘要由CSDN通过智能技术生成

需求

在主打产品的世界里,有一个需求点是如何及时了解用户对于自己产品的使用习惯和感受。特别是在互联网产品中,依赖用户的主动反馈来了解他们的产品使用体验显然是非常被动的、延迟的。特别是在一些用户个性化明显的产品中,如何获取用户的使用特征是非常重要的。当然,为了获得最直接最优秀的产品迭代方向,几乎所有的互联网产品都有自己的方案,这种方案其实可以统一的称为:数据埋点。数据埋点最直接的表述就是在产品中埋下一些信息采集的功能。针对软件产品的话,就是在特定业务点、特定的代码段添加数据采集的逻辑代码。用户在使用产品的过程中,会触发预留的数据采集逻辑,客户端通过网络交互将数据发送给后端服务器,后端服务器收到数据后会通过算法分析出用户的个性特征或者使用习惯,从而可以顺着大部分用户喜好的方向进行产品的演进和迭代。

演进史

针对于数据埋点方案,在安卓应用中,其实有很多已经很成熟的方案,当然,这些方案是随着产品经理和研发人员对于需求和技术持续深入的了解和创新来实现的。在最早的时候,大部分研发人员都是通过手动在对应的项目代码处添加埋点采集代码,这种方式实现简单暴力,缺点是需要研发人员对整个项目代码很熟悉,并且需要进行很多重复单一的埋点任务。为了解放软件开发人员的开发时间,市面上慢慢出现了很多以提供简洁高效的埋点方案的软件服务型企业。这些企业的产品提供以SDK的形式集成、支持一定采集能力。这在一定程度上,解放了应用开发者的工作时间,让他们可以把精力投入到产品自身功能的开发之中。然而在某些大型或者数据比较敏感的应用中,采用他方的埋点采集产品可能会造成自我产品数据的泄漏和用户数据的泄漏,这是很严重的问题。因此,埋点采集方案在各个公司内部,甚至是产品线内部都会有自我独特的实现方式,这也很大程度上促进了数据埋点技术的发展。在不长的演进历史中,慢慢出现了自动化埋点方案、无痕埋点方案、可视化埋点方案等优秀的埋点技术。这些埋点技术的核心目标都是为了解放软件开发者的双手,实现简单、高效、可配置的埋点方案。

分类

在这些埋点方案中,从不同角度,他们可以被归属为不同的埋点类型,各自都有自己的优缺点。下面具体讨论一下。从埋点的范围来看,笔者将之分为:

全埋点

针对应用中所有可埋点的地方都进行埋点,通过一种配置文件来决定埋点是否触发采集和上报逻辑,这种配置可以使本地的,也可以是网络下发的。
它的缺点是对埋点的技术手段有较高的要求,可能会对应用的性能产生一定的影响;
它的优点是使用简单,灵活配置,可以实现线上制定策略、应用远端获取并使用的能力。灵活可配置是其最大的优势

定向埋点

只对应用中需要埋点的地方进行埋点,每个埋点都会触发采集和上报逻辑
它的缺点是需要软件开发者对自身应用的业务逻辑非常熟悉,才能准确的在对应地点添加采集逻辑,另外就是需要进行比较繁琐和单一的编码工作
它的优点是埋点范围较小,对应用性能的影响偏小

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值