App埋点实现原理

现在App埋点一般采用talkingdata或者友盟,如果要我们自己实现埋点功能,该怎么做呢?个人觉得一个好的埋点库应该具有如下功能:

1、支持实时上报和非实时上报。

实时上报即立马上报数据;非实时上报即上报数据不立马上报,存储到本地文件,在合适的时机再上报。

2、实时上报支持内存缓存及上报频率。

为了减少频繁发起网络请求的次数和流量的浪费,实时上报数据内存缓存支持设定最大缓存个数和最大缓存大小,当超过这两个阈值之一时,就直接把内存缓存的数据全部上报。支持上报频率,比如1分钟上报一次。

3、非实时上报支持磁盘缓存和上报频率。

因为非实时上报不要求立马上报,所以要把数据存储到本地,存储方式可以选用json、archive、数据库等;支持上报频率,比如半小时上报一次。

4、上报时机。

实时上报可以在调用上报接口、定时器扫描、应用程序退出、程序进后台时进行上报;非实时上报接口可以在定时器扫描、应用程序退出、程序进后台时进行上报。

5、上报数据需要压缩后上报。

6、上报规则支持后端可配。

后端可以根据客户端网络类型下发不同的上报参数,比如调整最大缓存个数、上报频率等。

7、配合aspect来上报,实现代码无侵入性。

上报最好做到跟业务无关,配合使用aspect来实现。

8、如何实现无痕埋点?

iOS无埋点数据SDK实践之路

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,500评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,421评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,867评论 6 13
  • 那日傍晚,饭后与舍友在当地的一个广场散步。广场位于江边,很大。而那日是台风天气,风也很大。广场上一大群一大群的大妈...
    梦中随梦境阅读 3,921评论 0 0
  • 杜库二人对坐,开怀畅饮。酒至半酣,忽阴云漠漠,聚雨将至。杜与库凭栏观之。杜曰:“君知谁...
    秦渝阅读 4,857评论 0 0