Android SDK
https://github.com//sa-sdk-android
SDK的AndroidStudio插件
https://github.com/sensorsdata/sa-sdk-android-plugin2
SDK的客户端调试工具
https://github.com/sensorsdata/sa-sdk-android-runtime
埋点原理
Aspectj 是 Java 的超集, Aspectj 定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件
概述:SDK基于Aspectj语言对App进行插桩,根据插桩代码获取到UI各关键位置(如点击事件)的"JoinPoint"对象,再通过JoinPoint对象获取到各关键位置的调用以及数据
定义的各种UI点击事件监听1,获取View的点击事件:通过Aspectj语法插桩App各处的点击事件,得到各处点击事件发生时的JoinPoint对象,通过JoinPoint对象获取到点击事件所传入的View对象,获取到ViewID根据是否后台配置了埋点判断是否存储统计数据
拦截View的点击事件,获取View对象2,Dialog\Menu\SeekBar等等点击事件统计与上类似
3,后台配置:SDK通过WebSocket与处于后台页面的Javascript进行连接,连接成功后SDK通过给APP当前页面进行截图然后发送给后台页面,后台页面接收后展示并使用,当埋点配置完后生成DSL规则文件
网络模块
概述:SDK统计数据存入数据库,然后在Activity页面关闭后等等时机进行同步数据到服务器,数据经过GZIP压缩字符串,然后Base64加密处理,数据大小上限默认保存32MB(有接口可以设置大小)
1,设置数据保存大小接口
设置数据大小上限接口2,监听activity页面关闭,同步数据库数据到服务器
监听Activity页面关闭,调用发送数据3,将数据使用GZIP压缩,然后再Base64加密,准备发送到服务器
GZIP压缩字符串,然后Base64加密4,将处理后的数据发送至服务器
网友评论