App 无痕埋点的思路了解么?你认为理想的无痕埋点系统应该具备哪些特点?

无痕埋点就是记录所有的事件,需要的时候去查询。
可分为两种

用户点击事件

button 手势的点击,这个可以hook相关的方法,addtarget 等,去埋点,通过view获取vc名,view的层级信息(在vc的第几个subview层级)

事件 hook的系统类 hook的系统方法
按钮的点击 UIApplication sendAction:to: from:forEvent:
手势操作 UIGestureRecognizer initWithTarget:action: addTarget:action:
列表点击 UITableView和UICollectionView setDelegate:、tableView:didSelectRowAtIndexPath:、collectionView:didSelectItemAtIndexPath:等
系统弹窗 UIAlertView setDelegate:、alertView:clickedButtonAtIndex:

(2)页面事件拦截

事件 hook的系统类 hook的系统方法
页面事件 UIVIewController viewDidLoad 、viewWillAppear: 、viewDidAppear: 、viewWillDisappear:等生命周期方法:
系统导航栏返回按钮 UINavigationController navigationBar:didPopItem:

非点击事件

进入,离开vc的信息,这个hook vc的相应方法也可达到。

如何使用

需要查找某个按钮的点击,需要在相应版本上获取按钮所在vc的subview层级信息,去上报系统中查询。

log上报

无痕埋点log量是很大的,实时上传是不可取的。我的方案是,后台写入log,wifi环境下达到一定大小上传(2m)。
如果数据量过大没有上传,要丢弃,在海量用户面前,丢弃这些是无伤大雅的。

https://www.jianshu.com/p/69ce01e15042

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容