CN111737100A - 数据获取方法、装置、设备及存储介质 - Google Patents
数据获取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111737100A CN111737100A CN202010519655.5A CN202010519655A CN111737100A CN 111737100 A CN111737100 A CN 111737100A CN 202010519655 A CN202010519655 A CN 202010519655A CN 111737100 A CN111737100 A CN 111737100A
- Authority
- CN
- China
- Prior art keywords
- component
- target application
- target
- data
- reporting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000005316 response function Methods 0.000 claims abstract description 57
- 238000013507 mapping Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 84
- 230000006399 behavior Effects 0.000 claims description 36
- 230000008569 process Effects 0.000 claims description 18
- 230000015654 memory Effects 0.000 claims description 16
- 238000011161 development Methods 0.000 abstract description 19
- 238000012545 processing Methods 0.000 abstract description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 230000001960 triggered effect Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000009933 burial Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3438—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
Abstract
本申请公开了一种数据获取方法、装置、设备及存储介质,属于数据处理领域。所述方法包括:当检测到用户触发事件时,调用数据上报函数的调用接口,调用接口是根据用户触发事件与组件的事件响应函数之间的映射规则在目标应用的源代码中插入的;通过调用接口调用数据上报函数;通过数据上报函数,基于埋点配置规则,确定响应用户触发事件的目标组件对应的上报内容,基于该上报内容进行数据上报,埋点配置规则用于指示组件与上报内容之间的对应关系。如此,可以实现根据目标应用的组件化开发模式,对目标应用进行自动化埋点,提高了埋点效率。而且,可通过动态配置埋点配置规则来改变埋点配置信息,无需对目标应用进行重新埋点和重新发版。
Description
技术领域
本申请涉及数据处理领域,特别涉及一种数据获取方法、装置、设备及存储介质。
背景技术
在应用运行过程中,用户的操作会产生各种用户行为数据。目前,为了便于对用户行为数据进行分析,通常采用在应用的源代码中进行埋点的方式来获取应用的用户行为数据。其中,埋点是数据获取的关键手段,用于采集应用根据用户的操作所产生的一系列行为数据,并将采集的数据进行上报。
相关技术中,通常需要由技术人员在应用的源代码中进行手动埋点。也即是,技术人员需要先对应用的源代码进行分析,确定源代码中需要进行数据采集的位置以及对应位置需要上报的用户行为数据,然后根据对应位置需要上报的用户行为数据在对应位置手动编写埋点代码,该埋点代码用于采集和上报对应位置的用户行为数据。之后,即可基于手动埋点后的源代码,向终端发送应用的更新版本,以便终端在允许更新版本的应用时,能够基于其中的埋点代码自动进行数据上报。
但是,由于需要由技术人员手动埋点,因此埋点效率较低。而且,埋点代码与源代码中的业务代码强耦合,如果埋点代码中的配置信息发生改变,比如需要上报的用户行为数据发生改变,也就需要重新对源代码进行手动埋点,并重新向终端发送应用的更新版本,这将导致应用的频繁发版,进而对应用的稳定性以及获取上报数据的及时性造成影响。
发明内容
本申请实施例提供了一种数据获取方法、装置、设备及存储介质,可以用于解决相关技术中存在的手动埋点效率较低,以及手动埋点导致的频繁发版,会对应用的稳定性以及获取上报数据的及时性造成影响的问题。所述技术方案如下:
一方面,提供了一种数据获取方法,所述方法包括:
当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口,所述调用接口是根据用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则在所述目标应用的源代码中预先插入得到;
通过所述调用接口,调用所述数据上报函数;
通过所述数据上报函数,基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系。
可选地,所述当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口之前,还包括:
从服务器获取所述目标应用的目标代码,所述目标代码是由所述服务器基于用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入所述调用接口后得到;
所述当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口,包括:
在基于所述目标代码运行所述目标应用的过程中,当基于所述目标应用检测到用户触发事件时,调用所述目标代码中所述用户触发事件对应的事件响应函数处的所述调用接口。
可选地,所述基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,包括:
确定所述目标组件在组件结构树中的节点位置,所述组件结构树是基于所述目标应用中的所有组件按照组件依赖关系构成;
根据所述目标组件在组件结构树中的节点位置,通过所述埋点配置规则,确定所述目标组件对应的上报内容,所述埋点配置规则用于指示至少一个指定组件在所述组件结构树中的节点位置以及对应的上报内容,所述至少一个指定组件为所述目标应用中需要上报用户行为数据的组件。
可选地,所述确定所述目标组件在组件结构树中的节点位置,包括:
确定所述目标组件在所述组件结构树中的对应节点到所述组件结构树的根节点之间的路径;
基于所述路径,确定所述目标组件在所述组件结构树中的节点位置。
可选地,所述基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容之前,还包括:
接收服务器发送的所述埋点配置规则,所述埋点配置规则是由所述服务器基于所述目标应用中需要上报用户行为数据的组件和对应的上报内容生成的。
一方面,提供了一种数据获取方法,所述方法包括:
基于存储的用户触发事件与目标应用中组件的事件响应函数的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到所述目标应用的目标代码;
其中,所述调用接口用于调用所述数据上报函数,所述数据上报函数用于触发基于埋点配置规则,确定所述目标应用中响应当前用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
将所述目标应用的目标代码发送给终端,由所述终端基于所述目标代码运行所述目标应用。
可选地,所述方法还包括:
获取所述目标应用的埋点配置规则,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
将所述埋点配置规则发送给所述终端。
可选地,所述获取所述目标应用的埋点配置规则,包括:
获取所述目标应用中所有组件之间的组件依赖关系;
基于所述组件依赖关系,构建所述目标应用的组件结构树;
从所述组件结构树中确定需要上报用户行为数据的至少一个指定组件,以及确定所述至少一个指定组件分别对应的上报内容;
基于所述至少一个指定组件以及对应的上报内容,生成所述埋点配置规则。
可选地,所述从所述组件结构树中确定需要上报用户行为数据的至少一个指定组件,以及确定所述至少一个指定组件分别对应的上报内容,包括:
显示所述组件结构树;
若基于显示的所述组件结构树接收到组件选择指令,则将所述组件选择指令选择的组件,确定为所述指定组件;
获取针对所述指定组件设置的上报内容,将获取的上报内容作为所述指定组件对应的上报内容。
可选地,所述获取针对所述指定组件设置的上报内容之前,还包括:
对所述目标应用的代码进行静态扫描,得到所述目标应用的页面模板;
基于所述目标应用的页面模板,显示所述目标应用的页面预览图;
若基于所述目标应用的页面预览图接收到组件选择指令,则将所述组件选择指令选择的组件,确定为所述指定组件。
一方面,提供了一种数据获取装置,所述装置包括:
第一调用模块,用于当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口,所述调用接口是根据用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则在所述目标应用的源代码中预先插入得到;
第二调用模块,用于通过所述调用接口,调用所述数据上报函数;
上报模块,用于通过所述数据上报函数,基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系
可选地,所述装置还包括:
获取模块,用于从服务器获取所述目标应用的目标代码,所述目标代码是由所述服务器基于用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入所述调用接口后得到;
所述第一调用模块用于:
在基于所述目标代码运行所述目标应用的过程中,当基于所述目标应用检测到用户触发事件时,调用所述目标代码中所述用户触发事件对应的事件响应函数处的所述调用接口。
可选地,所述上报模块用于:
第一确定单元,用于确定所述目标组件在组件结构树中的节点位置,所述组件结构树是基于所述目标应用中的所有组件按照组件依赖关系构成;
第二确定单元,用于根据所述目标组件在组件结构树中的节点位置,通过所述埋点配置规则,确定所述目标组件对应的上报内容,所述埋点配置规则用于指示至少一个指定组件在所述组件结构树中的节点位置以及对应的上报内容,所述至少一个指定组件为所述目标应用中需要上报用户行为数据的组件。
可选地,所述第一确定单元用于:
确定所述目标组件在所述组件结构树中的对应节点到所述组件结构树的根节点之间的路径;
基于所述路径,确定所述目标组件在所述组件结构树中的节点位置。
可选地,所述装置还包括:
接收模块,用于接收服务器发送的所述埋点配置规则,所述埋点配置规则是由所述服务器基于所述目标应用中需要上报用户行为数据的组件和对应的上报内容生成的。
一方面,提供了一种数据获取装置,所述装置包括:
插入模块,用于基于存储的用户触发事件与目标应用中组件的事件响应函数的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到所述目标应用的目标代码;
其中,所述调用接口用于调用所述数据上报函数,所述数据上报函数用于触发基于埋点配置规则,确定所述目标应用中响应当前用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
发送模块,用于将所述目标应用的目标代码发送给终端,由所述终端基于所述目标代码运行所述目标应用。
可选地,所述装置包括:
获取模块,用于获取所述目标应用的埋点配置规则,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
所述发送模块,还用于将所述埋点配置规则发送给所述终端。
可选地,所述获取模块用于:
获取所述目标应用中所有组件之间的组件依赖关系;
基于所述组件依赖关系,构建所述目标应用的组件结构树;
从所述组件结构树中确定需要上报用户行为数据的至少一个指定组件,以及确定所述至少一个指定组件分别对应的上报内容;
基于所述至少一个指定组件以及对应的上报内容,生成所述埋点配置规则。
可选地,所述获取模块用于:
显示所述组件结构树;
若基于显示的所述组件结构树接收到组件选择指令,则将所述组件选择指令选择的组件,确定为所述指定组件;
获取针对所述指定组件设置的上报内容,将获取的上报内容作为所述指定组件对应的上报内容。
可选地,所述获取模块还用于:
对所述目标应用的代码进行静态扫描,得到所述目标应用的页面模板;
基于所述目标应用的页面模板,显示所述目标应用的页面预览图;
若基于所述目标应用的页面预览图接收到组件选择指令,则将所述组件选择指令选择的组件,确定为所述指定组件。
一方面,提供了一种数据获取系统,所述系统包括终端和服务器侧;
所述服务侧,用于基于存储的用户触发事件与目标应用中组件的事件响应函数的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到所述目标应用的目标代码,将所述目标应用的目标代码发送给所述终端;
所述服务器侧,还用于获取所述目标应用的埋点配置规则,将所述埋点配置规则发送给所述终端,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
所述终端,用于接收所述服务器侧发送的所述目标应用的目标代码和所述埋点配置规则,在基于所述目标代码运行所述目标应用的过程中,当基于所述目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口;通过所述调用接口,调用所述数据上报函数;通过所述数据上报函数,基于所述埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报。
一方面,提供了一种终端,所述终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任一种数据获取方法的步骤。
一方面,提供了一种服务器,所述服务器包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任一种数据获取方法的步骤。
一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述任一种数据获取方法的步骤。
一方面,还提供了一种计算机程序产品,当所述计算机程序产品被执行时,用于实现上述任一种数据获取方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例中,可以预先根据用户触发事件与目标应用中各组件的事件响应函数之间的映射规则,在目标应用的源代码中自动插入数据上报函数的调用接口,这样,在目标应用运行过程中,当检测到用户触发事件时,即可自动触发数据上报函数的调用,通过调用的数据上报函数,基于埋点配置规则,确定响应用户触发事件的目标组件对应的上报内容,并基于该上报内容进行数据上报。如此,可以实现根据目标应用的组件化开发模式,对目标应用进行自动化埋点,提高了埋点效率。而且,当埋点的配置信息发生改变时,只需获取新的埋点配置规则即可实现对配置信息的改变,而无需对目标应用进行重新埋点和重新发版,从而有效减少了对应用稳定性以及获取上报数据的及时性的影响。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据获取系统的示意图;
图2是本申请实施例提供的另一种数据获取系统的示意图;
图3是本申请实施例提供的一种数据获取方法的流程图;
图4是本申请实施例提供的一种代码编译的示意图;
图5是本申请实施例提供的一种数据上报函数的处理流程图;
图6是本申请实施例提供的一种数据获取装置的结构框图;
图7是本申请实施例提供的另一种数据获取装置的结构框图;
图8是本申请实施例提供的一种终端的结构框图;
图9是本申请实施例提供的一种服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细地解释说明之前,先对本申请实施例涉及的名称进行解释。
组件:组件是对数据和方法等逻辑的简单封装。组件具备单个可移植性,即“随加载随用”,不需要为其准备复杂的基础条件。
组件化开发模式:组件化开发模式是指把图形、非图形的各种逻辑均抽象为统一的组件来实现开发的模式。通过组件化开发模式开发的应用通常包括多个组件,如页面组件、业务组件、基础组件或功能组件等。
埋点:埋点是数据获取的关键手段,通过在应用的源代码中插入埋点代码,来采集应用的用户行为数据,并对采集的数据进行上报。
接下来,对本申请实施例涉及的应用场景进行介绍。
本申请实施例提供的数据获取方法,应用于采集目标应用的用户行为数据的场景中。比如,采集用户的点击行为数据以及点击的网络资源等,以便根据这些数据分析用户的行为习惯和感兴趣的网络资源等。
需要说明的是,本申请实施例所述的目标应用可以为网页应用或客户端应用,且目标应用是采用组件化开发模式开发得到。在对目标应用进行埋点时,可以利用目标应用的组件化开发模式,根据用户触发事件与目标应用中组件的事件响应函数之间的映射规则,对目标应用进行自动化埋点。而且,可以向目标应用下发埋点配置规则,来改变埋点的配置信息,从而实现了一种可动态下发埋点配置信息的自动化埋点方法。
接下来,对本申请实施例涉及的实施环境进行介绍。
图1是本申请实施例提供的一种数据获取系统的示意图,如图1所示,该系统包括终端10和服务器侧20,终端10与服务器侧20可以通过有线网络或无线网络进行连接。
其中,终端10可以运行目标应用11,目标应用11为基于组件化开发模式进行开发的应用,可以为网页应用或客户端应用等。终端10可以为手机、平板电脑、可穿戴设备或计算机等。
其中,服务器侧20可以包括一个或多个服务器,用于为目标应用11提供自动化埋点服务。服务器侧20可以基于存储的用户触发事件与目标应用11中组件的事件响应函数的映射规则,在目标应用11的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到目标应用11的目标代码,然后将目标应用11的目标代码发送给终端10,由终端10基于目标代码运行目标应用11。
另外,服务器侧20还可以生成目标应用11的埋点配置规则,将埋点配置规则发送给终端11,该埋点配置规则用于指示目标应用11中的组件与上报内容之间的对应关系。
终端10在接收到服务器侧20下发的目标代码以及埋点配置规则之后,可以基于目标代码运行目标应用11。而且,在基于目标代码运行目标应用11的过程中,当基于目标应用11检测到用户触发事件时,可以通过目标应用11调用数据上报函数的调用接口,然后通过该调用接口,调用数据上报函数,通过该数据上报函数,基于已存储的埋点配置规则,确定目标应用中响应用户触发事件的目标组件对应的上报内容,基于上报内容进行数据上报。
作为一个示例,请参考图2,服务器侧20可以包括开发平台21、存储服务器22、配置平台23和存储服务器24。其中,开发平台21为埋点技术人员对目标应用11进行埋点所使用的平台。存储服务器22用于存储目标应用11中所有组件之间的组件依赖关系。配置平台23为获取目标应用11的埋点配置规则的平台。存储服务器24用于存储目标应用11的埋点配置规则。
开发平台21,用于根据埋点技术人员的操作,基于存储的用户触发事件与目标应用11中组件的事件响应函数的映射规则,对目标应用11的源代码进行预编译,以在目标应用11的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到目标应用11的目标代码,将目标应用11的目标代码下发给终端10。
另外,开发平台21,还用于对目标应用11的源代码或目标代码进行静态扫描,得到目标应用11中所有组件之间的组件依赖关系,将该组件依赖关系存储在存储服务器22中。
配置平台23,用于从存储服务器22中获取组件依赖关系,基于该组件依赖关系构建目标应用的组件结构树,基于该组件结构树确定需要上报用户行为数据的至少一个指定组件,以及确定至少一个指定组件分别对应的上报内容,基于该至少一个指定组件以及对应的上报内容,生成埋点配置规则,将埋点配置规则存储在存储服务器24中,通过存储服务器24向终端10动态下发目标应用11的埋点配置规则。
示例的,配置平台23可以显示构建的组件结构树,由技术人员基于显示的组件结构树,从中选取需要上报用户行为数据的至少一个指定组件,以及设置每个指定组件对应的上报内容。
终端10在接收到目标应用11的目标代码以及埋点配置规则之后,可以基于目标代码运行目标应用11。另外,在终端10基于目标代码运行目标应用11的过程中,当基于目标应用11检测到用户触发事件时,可以从已存储的埋点配置规则中匹配出响应该用户触发事件的目标组件对应的上报内容,然后基于该上报内容进行数据上报。
图3是本申请实施例提供的一种数据获取方法的流程图,该方法应用于图1或图2所示的数据获取系统中,如图3所示,该方法包括如下步骤:
步骤301:服务器侧基于存储的用户触发事件与目标应用中组件的事件响应函数的映射规则,在目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到目标应用的目标代码。
其中,目标应用是基于组件化开发方式进行开发得到。目标应用包括多个组件,这多个组件可以包括页面组件、业务组件、基础组件或功能组件等。用户触发事件由用户行为触发,比如由用户对目标应用的指定操作触发。
其中,该映射规则用于指示多种不同的用户触发事件与目标应用中各个组件的事件响应函数的映射规则,也即是,用于指示不同用户行为触发的用户触发事件分别由哪些组件的事件响应函数来响应。进一步地,该映射规则还可以指示用户触发事件与组件的生命周期和事件响应函数的映射规则。其中,组件的生命周期用于指示组件在用户行为下运行的时长。其中,源代码中存在对应事件响应函数的位置是指源代码中存在映射规则包括的与用户触发事件对应的事件响应函数的位置。
需要说明的是,本申请实施例中,通过根据该映射规则,在目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,即可使得目标应用在基于该用户触发事件,执行源代码中与该用户触发事件对应的事件响应函数时,可以触发调用该事件响应函数对应位置处的调用接口,并基于该调用接口调用数据上报函数,从而能够在对用户触发事件进行响应时,及时调用数据上报函数进行数据上报。
其中,该调用接口用于调用数据上报函数。数据上报函数用于触发基于埋点配置规则,确定目标应用中响应当前用户触发事件的目标组件对应的上报内容,基于上报内容进行数据上报。其中,埋点配置规则用于指示目标应用中的组件与上报内容之间的对应关系。
作为一个示例,服务器侧可以基于用户触发事件与目标应用中组件的事件响应函数的映射规则,对目标应用的源代码进行预编译,以在目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到目标应用的目标代码。
作为一个示例,服务器侧包括用于对目标应用的源代码进行预编译的预编译服务器,请参考图4,该预编译服务器包括预编译模块40,预编译服务器可以通过预编译模块40对目标应用的源代码进行预编译。预编译模块40中集成有用户触发事件与目标应用中组件的事件响应函数的映射规则41,预编译模块40以该映射规则41作为依据进行预编译处理。如图4所示,可以将目标应用的源代码作为该预编译模块40的输入,由该预编译模块基于该映射规则41,对目标应用的源代码进行预编译,得到目标代码。
需要说明的是,由于预编译模块中集成的用户触发事件与组件的事件响应函数之间的映射规则不受框架限制,因此,预编译模块中可集成多种前端框架的映射规则,以完成对利用不同框架编写的项目源代码的数据上报函数插入步骤。由此可知,本申请实施例提供的自动化埋点方案本身不受框架限制,基于组件化开发模式的项目都可以使用该方案进行自动化埋点。
步骤302:服务器侧将目标应用的目标代码发送给终端,以便终端基于目标代码运行目标应用。
服务器侧可以基于终端对目标应用的下载请求或更新请求,将目标应用的目标代码发送给终端;也可以在合适的推送时机,将目标应用的目标代码主动发送给终端,本申请实施例对此不做限定。
作为一个示例,服务器侧可以对目标代码进行打包,得到打包文件,然后将该打包文件发送给终端。该打包文件能够运行在终端中,也即是,终端可以基于该打包文件运行目标应用。
步骤303:服务器侧获取埋点配置规则,埋点配置规则用于指示目标应用中的组件与上报内容之间的对应关系。
其中,该埋点配置规则为埋点的配置信息,用于为不同组件的埋点配置不同的上报内容。也即是,该埋点配置规则可以指示目标应用中的多个组件与上报内容之间的对应关系。
在一种可能的实现方式中,可以为需要上报用户行为数据的组件设置对应的上报内容,相应地,该埋点配置规则可以用于指示目标应用中需要上报用户行为数据的至少一个指定组件与各个指定组件分别对应的上报内容。
比如,可以由埋点技术人员从目标应用的组件中选择需要上报用户行为数据的组件,并为选择的组件设置具体的上报内容。
作为一个示例,获取埋点配置规则的操作可以包括如下步骤:
1)获取目标应用中所有组件之间的组件依赖关系。
作为一个示例,可以对目标应用的代码进行静态分析,来获取目标应用中所有组件之间的组件依赖关系。其中,该代码可以为目标应用的源代码或目标代码。该组件依赖关系用于组装埋点配置规则。
进一步地,还可以对目标应用的代码进行静态分析,得到目标应用的页面模板,该页面模板用于生成目标应用的页面预览图。
需要说明的是,该组件依赖关系和页面模板对外暴露为脚本,可集成在目标应用的代码中。
2)基于该组件依赖关系,构建目标应用的组件结构树。
其中,该组件结构树是基于目标应用中的所有组件按照组件依赖关系构成。该组件结构树包括按照该组件依赖关系构建的多个节点,不同的节点对应不同的组件。
3)从组件结构树中确定需要上报用户行为数据的至少一个指定组件,以及确定至少一个指定组件分别对应的上报内容。
作为一个示例,需要上报用户行为数据的至少一个指定组件,以及确定至少一个指定组件分别对应的上报内容可以由埋点技术人员设置得到。
比如,可以显示组件结构树,若基于显示的组件结构树接收到组件选择指令,则将组件选择指令选择的组件,确定为指定组件,然后获取针对指定组件设置的上报内容,将获取的上报内容作为指定组件对应的上报内容。
也即是,可以将组件结构树展示给埋点技术人员,由埋点技术人员从组件结构树中选择需要上报用户行为数据的指定组件,并为选择的指定组件设置对应的上报内容。
另外,还可以基于目标应用的页面模板,显示目标应用的页面预览图,若基于目标应用的页面预览图接收到组件选择指令,则将组件选择指令选择的组件,确定为指定组件。
也即是,还可以基于目标应用的页面模板,将目标应用的页面预览图展示给埋点技术人员,由埋点技术人员基于页面预览图直观地选择需要上报用户行为数据的指定组件,并为选择的指定组件设置对应的上报内容。
4)基于至少一个指定组件以及对应的上报内容,生成埋点配置规则。
进一步地,还可以基于该至少一个指定组件在组件结构树中的节点位置以及对应的上报内容,生成埋点配置规则。该埋点配置规则用于指示该至少一个指定组件在组件结构树中的节点位置以及对应的上报内容。
步骤304:服务器侧将埋点配置规则发送给终端。
也即是,服务器侧可以将生成的埋点配置规则下发给终端,以便终端基于该埋点配置规则确定目标应用在运行过程中应该上报的上报内容。
步骤305:终端基于目标应用的目标代码运行目标应用。
终端可以从服务器侧获取目标应用的目标代码,然后基于目标应用的目标代码运行目标应用。比如,从服务器侧下载目标应用的目标代码,或者接收服务器侧推送的目标应用的目标代码。
另外,终端还可以接收服务器侧发送的埋点配置规则,以便在基于目标代码运行目标应用的过程中,基于埋点配置规则进行数据上报。
步骤306:终端在运行目标应用的过程中,当基于目标应用检测到用户触发事件时,通过目标应用调用数据上报函数的调用接口。
由于目标代码中预先插入有数据上报函数的调用接口,因此,在基于目标代码运行所述目标应用的过程中,当基于目标应用检测到用户触发事件时,即可执行目标代码中该用户触发事件对应的事件响应函数,并触发调用该用户触发事件对应的事件响应函数处的调用接口。
步骤307:终端通过调用接口,调用数据上报函数。
步骤308:终端通过该数据上报函数,基于已存储的埋点配置规则,确定目标应用中响应该用户触发事件的目标组件对应的上报内容,基于该上报内容进行数据上报。
也即是,可以先确定出响应该用户触发事件的目标组件,然后基于埋点配置规则,匹配出该目标组件对应的上报内容,再基于该上报内容进行数据采集,并对采集的数据进行上报。
由于埋点配置规则中存储有目标应用中的组件与上报内容之间的对应关系,因此,确定出响应该用户触发事件的目标组件之后,即可从埋点配置规则中匹配目标组件对应的上报内容,若针对目标组件能够匹配到对应的上报内容,即可基于目标组件对应的上报内容进行数据上报,若针对目标组件无法匹配到对应的上报内容,则可以结束处理,不进行数据上报。
作为一个示例,基于已存储的埋点配置规则,确定目标应用中响应所述用户触发事件的目标组件对应的上报内容的操作包括:确定目标组件在组件结构树中的节点位置,根据目标组件在组件结构树中的节点位置,通过埋点配置规则,确定目标组件对应的上报内容。
在一种实现方式中,目标组件在组件结构树中的节点位置可以用目标组件在组件结构树中的对应节点到组件结构树的根节点之间的路径来表示。也即是,可以先确定目标组件在组件结构树中的对应节点到组件结构树的根节点之间的路径,然后根据该路径,通过埋点配置规则,确定目标组件对应的上报内容。
请参考图5,图5是本申请实施例提供的一种数据上报函数的处理流程图,如图5所示,若基于目标应用检测到用户触发事件,则可以通过目标应用调用数据上报函数的调用接口,进而调用数据上报函数,然后通过数据上报函数执行如下步骤:1,确定响应该用户触发事件的目标组件在组件结构树中的对应节点到组件结构树的根节点之间的路径;2,基于该路径,从埋点配置规则匹配目标组件对应的上报内容;3,判断是否匹配到目标组件对应的上报内容;4,若匹配到目标组件对应的上报内容,则基于该上报内容基于数据采集,然后基于采集的数据执行数据上报动作;5,若未匹配到目标组件对应的上报内容,则结束处理。
本申请实施例中,可以预先根据用户触发事件与目标应用中各组件的事件响应函数之间的映射规则,在目标应用的源代码中自动插入数据上报函数的调用接口,这样,在目标应用运行过程中,当检测到用户触发事件时,即可自动触发数据上报函数的调用,通过调用的数据上报函数,基于埋点配置规则,确定响应用户触发事件的目标组件对应的上报内容,并基于该上报内容进行数据上报。如此,可以实现根据目标应用的组件化开发模式,对目标应用进行自动化埋点,提高了埋点效率。而且,当埋点的配置信息发生改变时,只需获取新的埋点配置规则即可实现对配置信息的改变,而无需对目标应用进行重新埋点和重新发版,从而有效减少了对应用稳定性以及获取上报数据的及时性的影响。
另外,本申请实施例提供的数据获取方法实现了可自动在业务代码中插入埋点调用的功能,避免了手动埋点拉低人效,同时该方法不受限于项目本身所使用的框架,基于组件化开发模式的项目都可以采用此方案进行埋点工作。另外,本申请实施例提供的数据获取方法还实现了一套可以灵活配置埋点规则的方法,无需重新发版即可实时线上修改埋点收集的范围,如此提升了埋点的灵活性,将业务代码与埋点代码解耦,避免了因埋点代码变更导致的线上业务代码不稳定的问题,也避免了手动埋点依赖重新发版,发版周期较长时可能会拉长数据有效性的验证周期,导致产品侧无法及时获取到上报数据的问题。
图6是本申请实施例提供的一种数据获取装置的结构框图,该装置可以集成于终端中,如图6所示,该装置包括:
第一调用模块601,用于当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口,所述调用接口是根据用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则在所述目标应用的源代码中预先插入得到;
第二调用模块602,用于通过所述调用接口,调用所述数据上报函数;
上报模块603,用于通过所述数据上报函数,基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系
可选地,所述装置还包括:
获取模块,用于从服务器获取所述目标应用的目标代码,所述目标代码是由所述服务器基于用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入所述调用接口后得到;
所述第一调用模块601用于:
在基于所述目标代码运行所述目标应用的过程中,当基于所述目标应用检测到用户触发事件时,调用所述目标代码中所述用户触发事件对应的事件响应函数处的所述调用接口。
可选地,所述上报模块603用于:
第一确定单元,用于确定所述目标组件在组件结构树中的节点位置,所述组件结构树是基于所述目标应用中的所有组件按照组件依赖关系构成;
第二确定单元,用于根据所述目标组件在组件结构树中的节点位置,通过所述埋点配置规则,确定所述目标组件对应的上报内容,所述埋点配置规则用于指示至少一个指定组件在所述组件结构树中的节点位置以及对应的上报内容,所述至少一个指定组件为所述目标应用中需要上报用户行为数据的组件。
可选地,所述第一确定单元用于:
确定所述目标组件在所述组件结构树中的对应节点到所述组件结构树的根节点之间的路径;
基于所述路径,确定所述目标组件在所述组件结构树中的节点位置。
可选地,所述装置还包括:
接收模块,用于接收服务器发送的所述埋点配置规则,所述埋点配置规则是由所述服务器基于所述目标应用中需要上报用户行为数据的组件和对应的上报内容生成的。
本申请实施例中,可以预先根据用户触发事件与目标应用中各组件的事件响应函数之间的映射规则,在目标应用的源代码中自动插入数据上报函数的调用接口,这样,在目标应用运行过程中,当检测到用户触发事件时,即可自动触发数据上报函数的调用,通过调用的数据上报函数,基于埋点配置规则,确定响应用户触发事件的目标组件对应的上报内容,并基于该上报内容进行数据上报。如此,可以实现根据目标应用的组件化开发模式,对目标应用进行自动化埋点,提高了埋点效率。而且,当埋点的配置信息发生改变时,只需获取新的埋点配置规则即可实现对配置信息的改变,而无需对目标应用进行重新埋点和重新发版,从而有效减少了对应用稳定性以及获取上报数据的及时性的影响。
图7是本申请实施例提供的另一种数据获取装置的结构框图,该装置可以集成于服务器侧,如图7所示,该装置包括:
插入模块701,用于基于存储的用户触发事件与目标应用中组件的事件响应函数的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到所述目标应用的目标代码;
其中,所述调用接口用于调用所述数据上报函数,所述数据上报函数用于触发基于埋点配置规则,确定所述目标应用中响应当前用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
发送模块702,用于将所述目标应用的目标代码发送给终端,由所述终端基于所述目标代码运行所述目标应用。
可选地,所述装置包括:
获取模块,用于获取所述目标应用的埋点配置规则,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
所述发送模块,还用于将所述埋点配置规则发送给所述终端。
可选地,所述获取模块用于:
获取所述目标应用中所有组件之间的组件依赖关系;
基于所述组件依赖关系,构建所述目标应用的组件结构树;
从所述组件结构树中确定需要上报用户行为数据的至少一个指定组件,以及确定所述至少一个指定组件分别对应的上报内容;
基于所述至少一个指定组件以及对应的上报内容,生成所述埋点配置规则。
可选地,所述获取模块用于:
显示所述组件结构树;
若基于显示的所述组件结构树接收到组件选择指令,则将所述组件选择指令选择的组件,确定为所述指定组件;
获取针对所述指定组件设置的上报内容,将获取的上报内容作为所述指定组件对应的上报内容。
可选地,所述获取模块还用于:
对所述目标应用的代码进行静态扫描,得到所述目标应用的页面模板;
基于所述目标应用的页面模板,显示所述目标应用的页面预览图;
若基于所述目标应用的页面预览图接收到组件选择指令,则将所述组件选择指令选择的组件,确定为所述指定组件。
本申请实施例中,可以预先根据用户触发事件与目标应用中各组件的事件响应函数之间的映射规则,在目标应用的源代码中自动插入数据上报函数的调用接口,这样,在目标应用运行过程中,当检测到用户触发事件时,即可自动触发数据上报函数的调用,通过调用的数据上报函数,基于埋点配置规则,确定响应用户触发事件的目标组件对应的上报内容,并基于该上报内容进行数据上报。如此,可以实现根据目标应用的组件化开发模式,对目标应用进行自动化埋点,提高了埋点效率。而且,当埋点的配置信息发生改变时,只需获取新的埋点配置规则即可实现对配置信息的改变,而无需对目标应用进行重新埋点和重新发版,从而有效减少了对应用稳定性以及获取上报数据的及时性的影响。
需要说明的是:上述实施例提供的数据获取装置在获取数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据获取装置与数据获取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8是本申请实施例提供的一种终端800的结构框图。该终端800可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端800还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中方法实施例提供的数据获取方法。
在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、触摸显示屏805、摄像头806、音频电路807、定位组件808和电源809中的至少一种。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置终端800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在再一些实施例中,显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
定位组件808用于定位终端800的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件808可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。
加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制触摸显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3D动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器813可以设置在终端800的侧边框和/或触摸显示屏805的下层。当压力传感器813设置在终端800的侧边框时,可以检测用户对终端800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在触摸显示屏805的下层时,由处理器801根据用户对触摸显示屏805的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器814用于采集用户的指纹,由处理器801根据指纹传感器814采集到的指纹识别用户的身份,或者,由指纹传感器814根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器814可以被设置终端800的正面、背面或侧面。当终端800上设置有物理按键或厂商Logo时,指纹传感器814可以与物理按键或厂商Logo集成在一起。
光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制触摸显示屏805的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏805的显示亮度;当环境光强度较低时,调低触摸显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。
接近传感器816,也称距离传感器,通常设置在终端800的前面板。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端800的正面之间的距离逐渐变小时,由处理器801控制触摸显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制触摸显示屏805从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图8中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图9是本申请实施例提供的一种服务器900的结构框图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central ProcessingUnits,CPU)901和一个或一个以上的存储器902,其中,所述存储器902中存储有至少一条指令,所述至少一条指令由所述处理器901加载并执行以实现上述各个方法实施例提供的数据获取方法。当然,该服务器900还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器900还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性的实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述数据获取方法。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述数据获取方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种数据获取方法,其特征在于,所述方法包括:
当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口,所述调用接口是根据用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则在所述目标应用的源代码中预先插入得到;
通过所述调用接口,调用所述数据上报函数;
通过所述数据上报函数,基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系。
2.根据权利要求1所述的方法,其特征在于,所述当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口之前,还包括:
从服务器获取所述目标应用的目标代码,所述目标代码是由所述服务器基于用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入所述调用接口后得到;
所述当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口,包括:
在基于所述目标代码运行所述目标应用的过程中,当基于所述目标应用检测到用户触发事件时,调用所述目标代码中所述用户触发事件对应的事件响应函数处的所述调用接口。
3.根据权利要求1所述的方法,其特征在于,所述基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,包括:
确定所述目标组件在组件结构树中的节点位置,所述组件结构树是基于所述目标应用中的所有组件按照组件依赖关系构成;
根据所述目标组件在组件结构树中的节点位置,通过所述埋点配置规则,确定所述目标组件对应的上报内容,所述埋点配置规则用于指示至少一个指定组件在所述组件结构树中的节点位置以及对应的上报内容,所述至少一个指定组件为所述目标应用中需要上报用户行为数据的组件。
4.根据权利要求3所述的方法,其特征在于,所述确定所述目标组件在组件结构树中的节点位置,包括:
确定所述目标组件在所述组件结构树中的对应节点到所述组件结构树的根节点之间的路径;
基于所述路径,确定所述目标组件在所述组件结构树中的节点位置。
5.根据权利要求1-4任一所述的方法,其特征在于,所述基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容之前,还包括:
接收服务器发送的所述埋点配置规则,所述埋点配置规则是由所述服务器基于所述目标应用中需要上报用户行为数据的组件和对应的上报内容生成的。
6.一种数据获取方法,其特征在于,所述方法包括:
基于存储的用户触发事件与目标应用中组件的事件响应函数的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到所述目标应用的目标代码;
其中,所述调用接口用于调用所述数据上报函数,所述数据上报函数用于触发基于埋点配置规则,确定所述目标应用中响应当前用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
将所述目标应用的目标代码发送给终端,由所述终端基于所述目标代码运行所述目标应用。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述目标应用中所有组件之间的组件依赖关系;
基于所述组件依赖关系,构建所述目标应用的组件结构树;
从所述组件结构树中确定需要上报用户行为数据的至少一个指定组件,以及确定所述至少一个指定组件分别对应的上报内容;
基于所述至少一个指定组件以及对应的上报内容,生成所述埋点配置规则;
将所述埋点配置规则发送给所述终端。
8.根据权利要求7所述的方法,其特征在于,所述从所述组件结构树中确定需要上报用户行为数据的至少一个指定组件,以及确定所述至少一个指定组件分别对应的上报内容,包括:
显示所述组件结构树;
若基于显示的所述组件结构树接收到组件选择指令,则将所述组件选择指令选择的组件,确定为所述指定组件;
获取针对所述指定组件设置的上报内容,将获取的上报内容作为所述指定组件对应的上报内容。
9.根据权利要求8所述的方法,其特征在于,所述获取针对所述指定组件设置的上报内容之前,还包括:
对所述目标应用的代码进行静态扫描,得到所述目标应用的页面模板;
基于所述目标应用的页面模板,显示所述目标应用的页面预览图;
若基于所述目标应用的页面预览图接收到组件选择指令,则将所述组件选择指令选择的组件,确定为所述指定组件。
10.一种数据获取装置,其特征在于,所述装置包括:
第一调用模块,用于当基于目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口,所述调用接口是根据用户触发事件与所述目标应用中组件的事件响应函数之间的映射规则在所述目标应用的源代码中预先插入得到;
第二调用模块,用于通过所述调用接口,调用所述数据上报函数;
上报模块,用于通过所述数据上报函数,基于已存储的埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系。
11.一种数据获取装置,其特征在于,所述装置包括:
插入模块,用于基于存储的用户触发事件与目标应用中组件的事件响应函数的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到所述目标应用的目标代码;
其中,所述调用接口用于调用所述数据上报函数,所述数据上报函数用于触发基于埋点配置规则,确定所述目标应用中响应当前用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
发送模块,用于将所述目标应用的目标代码发送给终端,由所述终端基于所述目标代码运行所述目标应用。
12.一种数据获取系统,其特征在于,所述系统包括终端和服务器侧;
所述服务器侧,用于基于存储的用户触发事件与目标应用中组件的事件响应函数的映射规则,在所述目标应用的源代码中存在对应事件响应函数的位置插入数据上报函数的调用接口,得到所述目标应用的目标代码,将所述目标应用的目标代码发送给所述终端;
所述服务器侧,还用于获取所述目标应用的埋点配置规则,将所述埋点配置规则发送给所述终端,所述埋点配置规则用于指示所述目标应用中的组件与上报内容之间的对应关系;
所述终端,用于接收所述服务器侧发送的所述目标应用的目标代码和所述埋点配置规则,在基于所述目标代码运行所述目标应用的过程中,当基于所述目标应用检测到用户触发事件时,通过所述目标应用调用数据上报函数的调用接口;通过所述调用接口,调用所述数据上报函数;通过所述数据上报函数,基于所述埋点配置规则,确定所述目标应用中响应所述用户触发事件的目标组件对应的上报内容,基于所述上报内容进行数据上报。
13.一种终端,其特征在于,所述终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-5所述的任一项方法的步骤。
14.一种服务器,其特征在于,所述服务器包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求6-9所述的任一项方法的步骤。
15.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-5或6-9所述的任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010519655.5A CN111737100A (zh) | 2020-06-09 | 2020-06-09 | 数据获取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010519655.5A CN111737100A (zh) | 2020-06-09 | 2020-06-09 | 数据获取方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111737100A true CN111737100A (zh) | 2020-10-02 |
Family
ID=72650077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010519655.5A Withdrawn CN111737100A (zh) | 2020-06-09 | 2020-06-09 | 数据获取方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737100A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965877A (zh) * | 2021-03-11 | 2021-06-15 | 南京伟思医疗科技股份有限公司 | 一种基于数据库配置的Qt桌面埋点系统、方法和装置 |
CN113190458A (zh) * | 2021-05-24 | 2021-07-30 | 北京映客芝士网络科技有限公司 | 自动埋点数据分析的方法、装置、计算机设备和存储介质 |
CN113419936A (zh) * | 2021-06-22 | 2021-09-21 | 康键信息技术(深圳)有限公司 | 动态埋点方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121501A1 (zh) * | 2016-12-29 | 2018-07-05 | 北京国双科技有限公司 | 网站访客行为监测方法及装置 |
CN110099101A (zh) * | 2019-04-01 | 2019-08-06 | 厦门美柚信息科技有限公司 | 一种埋点动态设置的方法、系统、设备及其存储介质 |
CN110633205A (zh) * | 2019-06-20 | 2019-12-31 | 北京无限光场科技有限公司 | 一种埋点事件的检测方法、装置、终端设备及介质 |
CN110647438A (zh) * | 2019-08-13 | 2020-01-03 | 平安科技(深圳)有限公司 | 事件监控方法、装置、计算机设备和存储介质 |
CN110674022A (zh) * | 2019-09-27 | 2020-01-10 | 北京三快在线科技有限公司 | 行为数据获取方法、装置及存储介质 |
CN110908881A (zh) * | 2019-11-06 | 2020-03-24 | 北京奇艺世纪科技有限公司 | 埋点数据的发送方法、装置、电子设备及计算机可读存储介质 |
CN111241444A (zh) * | 2020-01-09 | 2020-06-05 | 深圳壹账通智能科技有限公司 | 网页埋点代码添加方法、装置、计算机设备及存储介质 |
-
2020
- 2020-06-09 CN CN202010519655.5A patent/CN111737100A/zh not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121501A1 (zh) * | 2016-12-29 | 2018-07-05 | 北京国双科技有限公司 | 网站访客行为监测方法及装置 |
CN110099101A (zh) * | 2019-04-01 | 2019-08-06 | 厦门美柚信息科技有限公司 | 一种埋点动态设置的方法、系统、设备及其存储介质 |
CN110633205A (zh) * | 2019-06-20 | 2019-12-31 | 北京无限光场科技有限公司 | 一种埋点事件的检测方法、装置、终端设备及介质 |
CN110647438A (zh) * | 2019-08-13 | 2020-01-03 | 平安科技(深圳)有限公司 | 事件监控方法、装置、计算机设备和存储介质 |
CN110674022A (zh) * | 2019-09-27 | 2020-01-10 | 北京三快在线科技有限公司 | 行为数据获取方法、装置及存储介质 |
CN110908881A (zh) * | 2019-11-06 | 2020-03-24 | 北京奇艺世纪科技有限公司 | 埋点数据的发送方法、装置、电子设备及计算机可读存储介质 |
CN111241444A (zh) * | 2020-01-09 | 2020-06-05 | 深圳壹账通智能科技有限公司 | 网页埋点代码添加方法、装置、计算机设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965877A (zh) * | 2021-03-11 | 2021-06-15 | 南京伟思医疗科技股份有限公司 | 一种基于数据库配置的Qt桌面埋点系统、方法和装置 |
CN113190458A (zh) * | 2021-05-24 | 2021-07-30 | 北京映客芝士网络科技有限公司 | 自动埋点数据分析的方法、装置、计算机设备和存储介质 |
CN113419936A (zh) * | 2021-06-22 | 2021-09-21 | 康键信息技术(深圳)有限公司 | 动态埋点方法、装置、设备及存储介质 |
CN113419936B (zh) * | 2021-06-22 | 2023-10-31 | 康键信息技术(深圳)有限公司 | 动态埋点方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885533B (zh) | 管理组件代码的方法及装置 | |
CN110674022B (zh) | 行为数据获取方法、装置及存储介质 | |
CN110837378B (zh) | 软件开发工具包sdk功能的调用方法及装置 | |
CN111338910B (zh) | 日志数据处理、显示方法、装置、设备及存储介质 | |
CN111752666A (zh) | 窗口显示方法、装置和终端 | |
CN111737100A (zh) | 数据获取方法、装置、设备及存储介质 | |
CN111949680A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN111459466B (zh) | 代码生成方法、装置、设备及存储介质 | |
CN111897525A (zh) | 大数据处理方法及系统 | |
CN112230907A (zh) | 程序生成方法、装置、终端及存储介质 | |
CN109634872B (zh) | 应用测试方法、装置、终端及存储介质 | |
CN111666076A (zh) | 图层添加方法、装置、终端及存储介质 | |
CN113467663B (zh) | 界面配置方法、装置、计算机设备及介质 | |
CN115562529A (zh) | 可视化埋点方法、装置、终端及存储介质 | |
CN112230910A (zh) | 嵌入型程序的页面生成方法、装置、设备及存储介质 | |
CN114911478A (zh) | 页面创建方法、装置、电子设备及存储介质 | |
CN111294320B (zh) | 数据转换的方法和装置 | |
CN112783533A (zh) | 版本信息更新方法、装置、终端及存储介质 | |
CN113268234A (zh) | 页面生成方法、装置、终端和存储介质 | |
CN113051015A (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN113076452A (zh) | 应用分类的方法、装置、设备及计算机可读存储介质 | |
CN113392120A (zh) | 获取SQLite的执行信息的方法及装置 | |
CN112000576A (zh) | 代码数据的检测方法、装置、设备及存储介质 | |
CN112148499A (zh) | 数据上报方法、装置、计算机设备及介质 | |
CN112860261A (zh) | 静态代码检查方法、装置、计算机设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201002 |
|
WW01 | Invention patent application withdrawn after publication |