一种用户触控行为数据收集方法及终端与流程

文档序号:16627901发布日期:2019-01-16 06:17阅读:238来源:国知局
一种用户触控行为数据收集方法及终端与流程

本发明涉及计算机技术领域,尤其涉及一种用户触控行为数据收集方法及终端。



背景技术:

收集用户操作app的相关数据,对用户的潜在行为进行预估和把控,按照用户行为方向优化app,可以为用户提供更好的服务。其中,收集用户操作app的相关数据大致包含app的安装卸载数据、app的启动关闭次数、app异常崩溃信息以及app页面内用户的点击操作行为。

由于app页面内部的空间复杂繁多,因此用户在app页面内的点击操作行为数据收集起来最为困难。目前,收集app页面内用户的点击操作行为数据的方法主要有以下三种:

第一种是,埋点方式。该方式需要开发者将采集代码人工添加到app内目标控件的事件响应函数里,可以准确的收集到用户的点击操作行为数据,但是对于控件数量大的应用,添加代码的工作量大、耗时;

第二种是,代码反射方式。该方式采用代码反射方式获取目标事件信息,但是需要先知道app内目标控件的id名称,若目标控件的id名称发生变化,则无法准确收集到用户的点击操作行为数据;

第三种是,调用系统的accessibilityservice无障碍辅助服务来收集。其中,accessibilityservice是安卓系统提供的无障碍服务,可以监听用户界面的一系列状态变化,当监听到有点击事件发生时,将其与目标事件进行比较并收集信息,该方式首先需要用户手动开启该服务,另外还需要事先知道目标控件的id名称,若用户没有开启该服务或者目标控件的id名称发生变化,都会导致无法准确收集到用户的点击操作行为数据。

综上,现有技术中采用的收集app页面内用户的点击操作行为数据的方法存在有开发者添加代码的工作量大、效率较低以及需要用户手动开启系统的accessibilityservice服务,且在app内目标控件的id名称发送变化时,容易出现无法准确收集到用户的点击操作行为数据的问题。



技术实现要素:

本发明实施例提供一种用户触控行为数据收集方法及终端,旨在解决上述开发者添加代码的工作量大、效率较低以及需要用户手动开启系统的accessibilityservice服务,且在app内目标控件的id名称发送变化时,容易出现无法准确收集到用户的点击操作行为数据的问题。

第一方面,本发明实施例提供了一种用户触控行为数据收集方法,该方法包括:

若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理;

在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息;

将与所述用户触控操作事件相关的信息发送至目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为。

第二方面,本发明实施例提供了一种终端,该终端包括:

事件分发单元,用于若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理;

信息获取单元,用于在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息;

信息上传单元,用于将与所述用户触控操作事件相关的信息发送至目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为。

第三方面,本发明实施例提供了另一种终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持终端执行上述方法的应用程序指令,所述处理器被配置用于调用所述应用程序指令执行上述第一方面的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。

本发明实施例通过若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理;在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息;将与所述用户触控操作事件相关的信息发送至目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为,从而可以将用户触控行为数据收集功能集成到终端的操作系统中,由终端的操作系统统一收集app上的用户触控行为数据,有效的降低了开发者的工作量,提高了用户触控行为数据收集的执行效率,且无需事先获取app内目标控件的id,稳定性较高。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一提供一种用户触控行为数据收集方法的示意流程图;

图2是本发明实施例二提供一种用户触控行为数据收集方法的示意流程图;

图3是本发明实施例三提供的一种终端的示意性框图;

图4是本发明实施例四提供的一种终端的示意性框图;

图5是本发明实施例五提供的一种终端的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

具体实现中,本发明实施例中描述的终端包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。

在接下来的讨论中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和/或控制杆的一个或多个其它物理用户接口设备。

终端支持各种应用程序,例如以下中的一个或多个:绘图应用程序、演示应用程序、文字处理应用程序、网站创建应用程序、盘刻录应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息收发应用程序、锻炼支持应用程序、照片管理应用程序、数码相机应用程序、数字摄影机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。

可以在终端上执行的各种应用程序可以使用诸如触摸敏感表面的至少一个公共物理用户接口设备。可以在应用程序之间和/或相应应用程序内调整和/或改变触摸敏感表面的一个或多个功能以及终端上显示的相应信息。这样,终端的公共物理架构(例如,触摸敏感表面)可以支持具有对用户而言直观且透明的用户界面的各种应用程序。

参见图1,是本发明实施例一提供一种用户触控行为数据收集方法的示意流程图。如图1所示,该方法可包括:

步骤s101,若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理。

在本实施例中,当检测到app的活动窗口activity上发生了用户触控操作事件时,调用所述activity的触摸事件传递函数dispatchtouchevent()将用户触控操作事件传递给所述activity所包含的视图;如果所述activity中的视图都没有对所述用户触控操作事件进行拦截,则调用所述activity的ontouchevent()对所述用户触控操作事件进行处理;如果所述activity的视图拦截或消费了该事件,则不执行所述activity的ontouchevent()。进一步的,调用所述activity的触摸事件传递函数dispatchtouchevent()将用户触控操作事件传递给所述activity所包含的视图具体包括:

所述activity在通过dispatchtouchevent()传递用户触控操作事件时,通过调用所述activity所属window的superdispatchtouchevent(),进而调用到window的decorview的superdispatchtouchevent(),进一步的又调用到viewgroup的dispatchtouchevent(),从而实现将所述activity中的用户触控操作时间传递给它所包含的view或viewgroup。

步骤s102,在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息。

在本实施例中,在viewgroup找到目标视图后,会将目标视图保存在touchtarget变量中,因此我们收集到最终处理所述触控操作事件的目标视图即可得到目标touchtarget的相关信息。

进一步的,在本实施例中,主要在viewgroup的dispatchtouchevent()方法中实现与所述用户触控操作事件相关的信息的收集。

步骤s103,将与所述用户触控操作事件相关的信息发送至目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为。

在本实施例中,终端内预先存储有所述目标服务器路径,所述终端在收集到与所述用户触控操作事件相关的信息后,根据所述目标服务器路径将与所述用户触控操作事件相关信息发送至所述目标服务器,使所述目标服务器根据接收到的与所述用户触控操作事件相关的信息分析、整理并展示用户的潜在行为。

在本实施例中,所述终端内预先存储的所述目标服务器路径可由用户预先通过所述app来设置,不同的app可设置不同的目标服务器路径。

以上可以看出,本实施例提供的一种用户触控行为数据收集方法由于通过若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理;在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息;将与所述用户触控操作事件相关的信息发送至目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为,从而可以将用户触控行为数据收集功能集成到终端的操作系统中,由终端的操作系统统一收集app上的用户触控行为数据,有效的降低了开发者的工作量,提高了用户触控行为数据收集的执行效率,且无需事先获取app内目标控件的id,稳定性较高。

图2是本发明实施例二提供的一种用户触控行为数据收集方法的示意流程图。参见图2所示,该方法可以包括以下步骤:

步骤s201,若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理。该步骤的实现方式与上一实施例中步骤s101的实现方式完全相同,因此再次不再赘述。

步骤s202,判断所述app是否开启了用户数据收集权限;若开启了用户数据收集权限,则进入步骤s203;若未开启用户数据收集权限,则结束流程,不收集用户触控行为数据。

在本实施例中,所述app内设置有用户数据收集权限申请单元,在收集app上用户触控行为之前需要通过所述app的用户数据收集权限申请单元申请开启所述app的用户数据收集权限。所述终端的操作系统在收集所述app的用户行为数据之前,会判断所述app是否开启了用户数据收集权限,若开启了用户数据收集权限,则进入到步骤s203中对所述app上发生的用户触控操作事件进行收集;返回,结束流程,不收集所述app上发生的用户触控操作事件。其中,所述终端的操作系统包括但不限于安卓系统。

步骤s203,在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息。该步骤的实现方式与上一实施例中步骤s102的实现方式完全相同,在此不再赘述。

步骤s204,按照预设的存储方式对与所述用户触控操作事件相关的信息进行存储,其中所述预设的存储方式包括使用文件或者数据库方式进行数据存储。

在本实施例中,将收集到的与所述用户触控操作事件相关的信息进行存储,而非直接将收集到的与用户触控操作事件相关的信息发送至目标服务器,这样可以便于后续根据预设的数据上传间隔将在一段时间内收集的数据一起发送至目标服务器。

步骤s205,根据预设的目标服务器路径和数据上传间隔参数,将与所述用户触控操作事件相关的信息发送至所述目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为。

在本实施例中,用户可预先通过所述app设置所述目标服务器路径和数据上传间隔参数。所述终端在收集到与所述用户触控操作事件相关的信息后,可根据所述目标服务器路径和所述数据上传间隔参数将与所述用户触控操作事件相关的信息上传至所述目标服务器。所述目标服务器在接收到与所述用户触控操作事件相关的信息后,即可根据接收到的与所述用户触控操作事件相关的信息分析、整理并展示用户的潜在行为。

以上可以看出,本实施例提供的一种用户触控行为数据收集方法同样可以将用户触控行为数据收集功能集成到终端的操作系统中,由终端的操作系统统一收集app上的用户触控行为数据,有效的降低了开发者的工作量,提高了用户触控行为数据收集的执行效率,且无需事先获取app内目标控件的id,稳定性较高。

图3是本发明实施例三提供的一种终端的示意性框图。为了便于说明仅仅示出了与本实施例相关的部分。

参见图3所示,本实施例提供的一种终端100,包括:

事件分发单元11,用于若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理;

信息获取单元12,用于在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息;

信息上传单元13,用于将与所述用户触控操作事件相关的信息发送至目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为。

可选的,参见图4所示,在另一实施例中,所述终端100还包括权限管理单元14,用于:

判断所述app是否开启了用户数据收集权限;

若开启了用户数据收集权限,则控制所述信息获取单元获取与用户触控操作事件相关的信息;

若未开启用户数据收集权限,则禁止所述信息获取单元获取与用户触控操作事件相关的信息。

可选的,所述信息上传单元13具体用于:

根据预设的目标服务器路径和数据上传间隔参数,将与所述用户触控操作事件相关的信息发送至所述目标服务器。

可选的,所述终端100还包括:

存储单元15,用于按照预设的存储方式对与所述用户触控操作事件相关的信息进行存储,其中所述预设的存储方式包括使用文件或者数据库方式进行数据存储。

需要说明的是,本发明实施例提供的上述终端中的各个单元,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

以上可以看出,本实施例提供终端同样可以将用户触控行为数据收集功能集成到终端的操作系统中,由终端的操作系统统一收集app上的用户触控行为数据,有效的降低了开发者的工作量,提高了用户触控行为数据收集的执行效率,且无需事先获取app内目标控件的id,稳定性较高。

参见图5,是本发明实施例五提供的一种终端示意框图。如图5所示,,本实施例中的终端可以包括:一个或多个处理器501;一个或多个输入设备502,一个或多个输出设备503和存储器504。上述处理器501、输入设备502、输出设备503和存储器504通过总线505连接。存储器502用于存储应用程序指令,处理器501用于执行存储器502存储的应用程序指令。其中,所述处理器501用于:

若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理;

在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息;

将与所述用户触控操作事件相关的信息发送至目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为。

可选的,所述处理器501还用于:

判断所述app是否开启了用户数据收集权限;

若开启了用户数据收集权限,则进入所述获取与用户触控操作事件相关的信息的步骤;

若未开启用户数据收集权限,则结束流程,不收集用户触控行为数据。

可选的,所述处理器501还用于:

根据预设的目标服务器路径和数据上传间隔参数,将与所述用户触控操作事件相关的信息发送至所述目标服务器。

可选的,所述处理器501还用于:

按照预设的存储方式对与所述用户触控操作事件相关的信息进行存储,其中所述预设的存储方式包括使用文件或者数据库方式进行数据存储。

应当理解,在本发明实施例中,所称处理器501可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

输入设备502可以包括触控板、指纹采传感器(用于采集用户的指纹信息和指纹的方向信息)、麦克风等,输出设备503可以包括显示器(lcd等)、扬声器等。

该存储器504可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存储器。例如,存储器504还可以存储设备类型的信息。

具体实现中,本发明实施例中所描述的处理器501、输入设备502、输出设备503可执行本发明实施例提供的的方法的第一实施例和第二实施例中所描述的实现方式,也可执行本发明实施例所描述的终端的实现方式,在此不再赘述。

在本发明的实施例六中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现:

若检测到app的活动窗口上发生了用户触控操作事件,则调用所述活动窗口的触摸事件传递函数将所述用户触控操作事件分发给相应的视图进行处理;

在所述用户触控操作事件分发完成后,获取与所述用户触控操作事件相关的信息,其中与所述用户触控操作事件相关的信息至少包括最终处理所述用户触控操作事件的目标视图、所述触控操作事件所在app的进程号及事件发生的时间信息;

将与所述用户触控操作事件相关的信息发送至目标服务器,使所述目标服务器根据收集到的与所述用户触控操作事件相关的信息分析用户的潜在行为。

可选的,所述计算机程序被处理器执行时实现:

判断所述app是否开启了用户数据收集权限;

若开启了用户数据收集权限,则进入所述获取与用户触控操作事件相关的信息的步骤;

若未开启用户数据收集权限,则结束流程,不收集用户触控行为数据。

可选的,所述计算机程序被处理器执行时实现:

根据预设的目标服务器路径和数据上传间隔参数,将与所述用户触控操作事件相关的信息发送至所述目标服务器。

可选的,所述计算机程序被处理器执行时实现:

按照预设的存储方式对与所述用户触控操作事件相关的信息进行存储,其中所述预设的存储方式包括使用文件或者数据库方式进行数据存储。

所述计算机可读存储介质可以是前述任一实施例所述的终端的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述终端的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述终端所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1