美文网首页iOS备忘录
iOS - 无侵入式统计打点

iOS - 无侵入式统计打点

作者: Mitchell | 来源:发表于2017-01-12 21:30 被阅读382次

统计常规使用

  • 客户端统计中当要使用统计的时候,普通的写法是将统计单独写一个功能模块,在工程中引入,并在事件发生时去调用方法,例如:
-(void)btnClick{
  //某按钮点击
[StatClass logEvent:eventId message:@"message"];
}

常规统计造成的问题

  • 按照以上方式在客户端进行统计的话可能会造成以下问题:
    • 在客户端可能很多地方都会有类似冗余的代码,侵入式的方式会提高功能模块间耦合,代码上及其不友好。
    • 如果测试同学没有测出来很容易造成漏点,造成数据统计上出现问题。

无侵入解决思路

  • 思路:
    • 总体思路是否可以尝试将客户端所需的统计内容通过文件的形式下发到服务端,客户端通过解析文件来获取所需统计内容,客户端在进行事件调用的时候再进行打点文件的写入。
    • 代码层尽量做到在不修改之前代码的情况下,完成统计功能。
    • 借用 method swizzing 来替换通常的方法,在自己的实现中添加对打点事件的解析,解析后写入打点文件。
    • 制定文件协议,尽量通过有限的方法参数来完成多种打点需求。
  • 可能出现的问题:
    • hook 有的系统原有方法会出现问题。
    • 时常打点的统计。

实现过程与问题的解决

  • 过程:
    • 利用文件,在服务器配置所需打点文件,并下发客户端,客户端获取文件后进行升级。
    • 获取文件中打点内容,并进行缓存。
    • 根据 method swizzing 进行方法替换,实现通用打点逻辑,这里实现的是将 class 和 method 一些参数传入解析类中和文件内容进行匹配。
    • 打点类将结果写入统计文件中,之后上传后台统计服务器。
  • 待解决的问题:
    • 时常打点可以通过打点时候写入时间戳,后台进行统计来完成。
    • hook 原有方法造成的问题正在解决。

相关文章

  • iOS - 无侵入式统计打点

    统计常规使用 客户端统计中当要使用统计的时候,普通的写法是将统计单独写一个功能模块,在工程中引入,并在事件发生时去...

  • iOS打点

    1.iOS 关于统计打点2.使用runtime 实现iOS自动打点统计3.iOS 统计打点那些事4.Aspects

  • iOS:hook实现无侵入式埋点、统计

    今天来说说iOS的埋点。 不管是埋点,统计还是什么其他辟邪剑谱,主要的目的是为了了解用户行为习惯,进而开发出更友好...

  • iOS 关于统计打点

    之前到别人的一篇博客上评论了下他的打点统计方法,后来很多人来问我,,所以还是决定写下这篇文章。第一次写博客,不...

  • Android无侵入式引导提示-一键式启动

    git地址 安卓无侵入式引导提示-NoviceGuide 优点 代码无侵入式,不需要处理原来的布局以及逻辑,只要在...

  • iOS 统计打点工作记录

    iOS 统计打点记录 统计打点,意思就是在某个点击事件,或者函数调用上做一个记录,看一下这个函数调用的情况,简单的...

  • iOS使用AOP统计打点

    文章来源 方案一:使用Runtime的方式追踪点击的按钮 特点:需要对每个button进行tag编号,对手势点击、...

  • iOS 使用AOP统计打点

    统计打点是 App 开发里很重要的一个环节,App 的运行状态、用户的各种行为等都需要打点,有不少关于统计的第三方...

  • 分布式性能监控工具

    1.zipkin 2.pinpoint,无侵入式

  • 打点统计

    打点 百度统计后台 PV/UV PV(Page View):页面的访问次数,就算是刷新一次都会计算在内 UV(Un...

网友评论

    本文标题:iOS - 无侵入式统计打点

    本文链接:https://www.haomeiwen.com/subject/eqelbttx.html