互联网 频道

TalkingData灵动分析系统进入无码时代

  随着时代的发展,企业的不断壮大,其运营成本也水涨船高。TalkingData旗下移动应用统计分析系统——灵动分析大幅简化数据集成过程,只需在 App中加入分析SDK,便无需再编写任何代码和更新App版本,即可实现事件跟踪、增删数据点等操作,做到完全零代码数据跟踪,真正意义上做到解放研发 的双手,让他们不再需要管理冗长的埋点id列表。让运营/产品轻松完成对自定义事件的数据统计,不再需要向研发/测试解释埋点的业务逻辑,降低了沟通成 本,缩短整个上线周期,从而提高公司运营效率。

  作为业界率先推出五码分析系统,许多朋友对我们的无码集成细节很感兴趣,这里我们将针对产品三大技术特点就Android和iOS两大平台进行深入剖析。

  1. 如何同步手机界面到管理后台:

  对于Android平台,界面同步方案中有两个关键点:1. 通过Canvas来获取屏幕内容。2. 获取view属性。view的属性有很多,如位置信息、唯一性、绘制相关等。哪些属性是应该上传的,哪些属性是可以忽略的,为了动态的调整这些,可以使用 反射的机制来实现。具体说,就是在进入UI同步状态时,服务器将一个属性配置单下发到App中,SDK通过对配置的解析,利用反射执行配置中的指定方法获 取view的响应属性数据。这也是配置即代码的一种实现。完成此两项内容后便可根据发送至管理后台的数据,完成手机内容的绘制。

  对于iOS平台,同步界面的操作则分为以下几个步骤:

  1. 截屏。2. 获取控件属性:根据服务器下发配置表获取每个对象所需要的属性。3. 上传数据:将屏幕截图进行base64编码,并和控件属性一起上传到服务器。4. 管理后台界面展示:管理后台绘制手机屏幕的截图,根据获取到的x、y、w、h、alpha、hidden等属性绘制控件的范围。

  2.如何绑定事件至控件:

  Android系统要想定位一个控件,需要先获取当前Activity的rootview,通过以下代码,View rootView = activity.getWindow().getDecorView().getRootView(),获取之后遍历动态事件列表,用每个动态事件中控 件的唯一标示去匹配rootview中的内容,其匹配规则为:viewClassName && id && tag && contentDescription,当符合条件时,就通过代码给当前的view添加一个AccessibilityDelegate对象。

  相对应的IOS绑定事件到控件的步骤是:

  1. 从服务器获取动态事件列表,根据每条动态事件数据创建一个EventBinding对象。

  2. 获取当前window的rootViewController:

  3. 遍历动态事件列表,用每个动态事件中控件的path去匹配rootViewController中的内容,匹配规则遵循:ClassName && tag && 所在容器中的成员变量名 && Button中图片的指纹 && title

  3. 如何监测点击事件:

  通过分析Android系统View类的源代码,发现可利用Android中View类的方法来实现事件触发的。即只要设置了代理就可以对具备Accessibility能力的view实现点击事件的响应,完成点击事件的监测。

  而IOS对控件点击事件进行监测的步骤是:

  1. 找到要监控的控件时,就给当前控件添加一个Action。

  2. 监控事件被触发时相应的EventBinding对象得到响应,生成事件数据上报服务器进行统计。

  作为移动数据的领先者,TalkingData第一时间分享技术,希望能够帮助友商尽快跟进,群策群力,为客户提供更加优质的服务体验,同时带 动行业进入一种良性的互动,大家取长补短,共同营造更加健康的服务生态。而我们一贯秉承的理念,用数据改变世界不仅仅只是一个口号,我们一直在努力用数据 改变企业的根本运营模式,同时帮助企业和人们了解周围的环境。灵动分析吹响了移动数据分析新时代的号角,灵活高效,简化运营,将研发人员从繁琐的代码工作 中解放出来,激发更多有益创新,为业界带来更多的积极变化。这便是我们灵动分析产品背后的坚实意义。

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章