代码埋点这是目前移动端测试领域为人所熟知的一种类型,也是使用最广泛的,包括Google Analyitcs,友盟在内的一些第三方工具都是使用这个方案。

代码埋点的原理是部署完基础的SDK后,在需要采集数据地方添加跟踪代码,APP启动的时候会初始化SDK,你点击或触发数据采集位置的时候就会调用SDK对应的数据接口把数据发送出去,例如,我们要对某个位置的点击做埋点,也就是该按钮被点击的,这个按钮对应的OnClick就会调用SDK提供的数据接口去发送数据。通常来说,为了避免消耗用户的流量,一般是多条数据压缩后发送,而不是一条就发一次。

有人说,用代码埋点这个方案,版本更新的代码大,容易造成混乱,其实不存在这样的问题,版本更迭根本不用对旧版本的埋点做重新部署的,只有说,放弃旧版本框架,完全重写一个APP的时候需要重新部署,当然,新增页面或需求的时候,会需要添加新的埋点,这个的工作量并不算大的,如果移动端测试内部有一个比较好的反馈机制,响应会很及时的。

还有人说,代码埋点会有性能影响,使用第三方SDK,肯定会消耗内存,带宽,这是避免不了的,至于说传递数据,现在大部分的第三方都不是实时发送的,都是累计压缩数据后,等网络比较好的时候才发送数据的;最后一个是,现在的手机,处理能力可能都不亚于一些旧的台式电脑的,如果说影响性能,那被测的APP本身就很大或者架构很复杂。

至于数据传输的不可靠,只要涉及到网络,都可能会有网络延迟或丢包出现的,是通病,也有很多解决方案,加锁,重发,回调等等。