CN112817782B - 一种数据采集上报方法、装置、电子设备和存储介质 - Google Patents
一种数据采集上报方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112817782B CN112817782B CN202110194153.4A CN202110194153A CN112817782B CN 112817782 B CN112817782 B CN 112817782B CN 202110194153 A CN202110194153 A CN 202110194153A CN 112817782 B CN112817782 B CN 112817782B
- Authority
- CN
- China
- Prior art keywords
- behavior event
- attribute data
- data
- preset
- event
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请实施例公开了一种数据采集上报方法、装置、电子设备和存储介质;本申请实施例接收应用程序中行为事件的触发指令;根据触发指令,确定所述行为事件对应的钩子函数;基于所述钩子函数调用数据采集模块采集行为事件的属性数据;基于行为事件的属性数据,对行为事件进行标识,得到行为事件标识信息;当预设标识集合中存在所述行为事件标识信息时,将所述行为事件的属性数据进行上报,其中,所述预设标识集合包括和所述行为事件标识信息相匹配的预设上报事件的标识信息,从而降低了网络传输的负载。
Description
技术领域
本申请涉及通讯技术领域,具体涉及一种数据采集上报方法、装置、电子设备和存储介质。
背景技术
目前,大数据产业飞速发展,在应用程序的使用过程中会产生大量的数据,通过对数据进行采集上报,并基于采集上报的数据进行分析,是大数据产业中科学性数据分析的基础。
在现有技术中,可以采用无埋点方案对数据进行采集上报。其中,无埋点可以指开发人员集成采集软件开发工具包(Software Development Kit,SDK)后,SDK便可以直接开始捕捉和检测应用程序里所有事件的数据,并全部上报。但是,现有技术中的无埋点方案采集应用程序里所有事件的数据,这会造成采集的数据量巨大,给网络传输带来较大的负载。
发明内容
本申请涉及通讯技术领域,具体涉及一种数据采集上报方法、装置、电子设备和存储介质。
本申请实施例提供一种数据采集上报方法,包括:
接收应用程序中行为事件的触发指令;
根据所述触发指令,确定所述行为事件对应的钩子函数;
基于所述钩子函数调用数据采集模块采集所述行为事件的属性数据;
基于所述行为事件的属性数据,对所述行为事件进行标识,得到行为事件标识信息;
当预设标识集合中存在所述行为事件标识信息时,将所述行为事件的属性数据进行上报,其中,所述预设标识集合包括和所述行为事件标识信息相匹配的预设上报事件标识信息。
相应的,本申请实施例还提供了一种数据采集上报装置,包括:
接收单元,用于接收应用程序中行为事件的触发指令;
确定单元,用于根据所述触发指令,确定所述行为事件对应的钩子函数;
调用单元,用于基于所述钩子函数调用数据采集模块采集所述行为事件的属性数据;
标识单元,用于基于所述行为事件的属性数据,对所述行为事件进行标识,得到行为事件标识信息;
上报单元,用于当预设标识集合中存在所述行为事件标识信息时,将所述行为事件的属性数据进行上报,其中,所述预设标识集合包括和所述行为事件标识信息相匹配的预设上报事件标识信息。
在一实施例中,所述调用单元包括:
解析子单元,用于解析所述钩子函数,得到所述数据采集模块的地址信息;
调用子单元,用于基于所述地址信息,调用所述数据采集模块采集所述行为事件的属性数据。
在一实施例中,所述调用子单元可以用于:
获取所述数据采集模块中的数据采集参数;
基于所述数据采集参数确定所述行为事件中属性数据的数据采集点;
在所述数据采集点采集所述行为事件的属性数据。
在一实施例中,所述标识单元包括:
识别子单元,用于对所述属性数据进行识别,得到至少一个类别的属性数据;
确定子单元,用于基于所述属性数据的类别,确定所述属性数据对应的标识规则;
标识处理子单元,用于利用所述标识规则对所述至少一个类别的属性数据进行标识处理,得到所述属性数据对应的行为事件标识信息。
在一实施例中,所述标识处理子单元可以用于:
基于所述标识规则对所述至少一个类别的属性数据进行组合,得到组合后的属性数据;
基于所述标识规则对所述组合后的属性数据进行拼接,得到所述属性数据对应的行为事件标识信息。
在一实施例中,所述数据采集上报装置,还包括:
更新检测单元,用于当所述应用程序启动时,对所述预设标识集合进行更新检测;
更新单元,用于当检测到所述预设标识集合未更新时,对所述预设标识集合进行更新。
在一实施例中,所述更新检测单元可以用于:
当所述应用程序启动时,对所述预设标识集合进行识别,得到所述预设标识集合的版本参数;
将所述预设标识集合的版本参数和预设版本参数进行对比,得到对比结果;
根据对比结果确定所述预设标识集合是否已更新。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面的各种可选方式中提供的方法。
本申请实施例还提供了一种网络设备,包括存储器和处理器;所述存储器存储有多条指令,所述处理器加载所述存储器内的指令,以执行本发明实施例提供的任一种数据采集上报方法中的步骤。
相应的,本申请实施例还提供一种计算机可读存储介质,所述存储介质存储有指令,所述指令被处理器执行时实现本申请实施例任一提供的数据采集上报方法。
本申请实施例接收应用程序中行为事件的触发指令,根据触发指令确定行为事件对应的钩子函数,然后基于钩子函数调用数据采集模块采集行为事件的属性数据;接下来,基于行为事件的属性数据,对行为事件进行标识,得到行为事件的标识信息;当预设标识集合中存在行为事件标识信息时,将行为事件的属性数据进行上报,其中,预设标识集合包括和行为事件标识信息相匹配的预设上报事件标识信息。本申请实施例通过利用钩子函数,可以调用数据采集模块采集行为事件的属性数据,在采集到行为事件的是属性数据后,还可以根据行为事件标识信息对采集到的数据进行筛选过滤,从而在上报采集到的数据时,降低了网络传输的负载。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的数据采集上报方法的场景示意图;
图1b是本申请实施例提供的数据采集上报方法的流程图;
图2是本申请实施例提供的数据采集上报方法的另一流程图;
图3a是本申请实施例提供的数据采集上报装置的结构示意图;
图3b是本申请实施例提供的数据采集上报装置的另一结构示意图;
图4是本申请实施例提供的终端的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据采集上报方法、装置、电子设备和存储介质。具体地,本申请实施例提供了一种数据采集上报装置,该数据采集上报装置可以集成在计算机设备中,该计算机设备可以包括终端以及服务器等中的至少一个。其中,终端可以为智能手机、平板电脑、笔记本电脑或者个人电脑(Personal Computer,PC)、智能穿戴设备等等。服务器可以为多个异构系统之间的互通服务器或者内容交互系统的后台服务器,还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务的云服务器等等。
例如,如图1a所述,数据采集上报装置可以集成在终端或服务器等计算机设备上,计算机设备可以接收应用程序中行为事件的触发指令,然后根据触发指令,确定所述行为事件对应的钩子函数;接下来,基于钩子函数调用数据采集模块采集行为事件的属性数据;基于行为事件的属性数据,对行为事件进行标识,得到行为事件标识信息;当预设标识集合中存在行为事件标识信息时,将行为事件的属性数据进行上报,其中,预设标识集合包括和行为事件标识信息相匹配的预设上报事件的标识信息。
以下分别进行详细说明,需要说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
本申请实施例将从数据采集上报装置的角度进行描述,该数据采集上报装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。
如图1b所述,提供了一种数据采集上报方法,具体流程包括:
101、接收应用程序中行为事件的触发指令。
其中,应用程序包括完成某项或多项特定功能的计算机程序,它运行在交互模式,可以和应用程序的使用对象进行交互,具有可视的显示界面。例如,应用程序可以包括各种终端上的应用软件。例如,应用程序可以包括各种手机软件(Application,APP)、平板电脑应用软件、笔记本电脑上的应用软件、个人计算机(PC,Personal Computer)上的应用软件,等等。
其中,事件可以包括使用对象在应用程序上的所有反馈,即使用对象使用应用程序时,应用程序的反馈都可以统称为事件。其中,事件可以分为多种类型。例如,事件可以包括点击、语音控制、滑动、加载、浏览等类型的事件。
其中,使用对象可以包括使用应用程序的对象。例如,使用对象可以包括使用应用程序的用户、使用应用程序的机器等等。
在一实施例中,行为事件可以包括事件的子集,即,行为事件可以是事件中的部分事件。例如,当事件包括点击、语音控制、滑动、加载、浏览这些类型的事件时,行为事件可以包括点击和加载这两个类型的事件。又例如,当事件包括点击、语音控制、滑动、加载、浏览这些类型的事件时,行为事件可以包括点击、滑动和浏览这三个类型的事件等等。
其中,点击事件可以包括作用于应用程序的各种点击事件。例如,点击事件可以包括点击应用程序、点击应用程序上的某个控件等等。
其中,语音控制事件可以包括利用语音控制应用程序的各种事件。例如,语音控制事件可以包括利用语音开启应用程序,或者利用语音执行应用程序中的某些功能等等。
其中,滑动事件可以包括作用于应用程序上的页面的各种滑动事件。例如,滑动事件可以包括滑动应用程序上的页面,使得应用程序上的页面进行切换;又例如,滑动事件可以包括滑动应用程序上的控件,从而实现某种功能等等。
其中,加载事件可以包括应用程序上的页面加载过程。例如,加载事件可以包括当启动应用程序时,加载出应用程序的启动页面的过程;又例如,加载事件可以包括当启动应用程序中的某个功能时,加载出该功能对应的功能页面的过程等等。
其中,浏览事件可以包括应用程序上的页面浏览过程。例如,浏览事件可以包括使用对象在应用程序的浏览过程;又例如,浏览事件可以包括使用对象在应用程序中的某个页面上的浏览过程等等。
其中,指令可以包括指挥应用程序执行功能的指示和命令。
在一实施例中,指令可以是计算机指令,也可以是汇编指令等等。
例如,当指令是计算机指令时,该指令可以是一串二进制数码,比如“11001010”。其中,该二进制数码的一部分可以是操作码,而另一部分可以是地址码。操作码可以指明该指令要完成的功能或性质,而地址码可以指明操作对象的内容或存储单元地址等。例如,指令“11001010”的前半部分“1100”可以是操作码,指明该指令要完成的功能或性质。而触发指令“11001010”的后半部分“1010”可以是地址码,指明操作对象的内容或存储单元地址等。
又例如,当指令是汇编指令时,该指令可以包括助记符和操作对象。其中,助记符可以指明该指令要完成的功能或性质,而操作对象可以指明该指令所针对的对象。
在一实施例中,实现应用程序中的某项或多项特定功能可以由对应的指令进行控制,而应用程序完成某项或多项特定功能所需要的资源或产生的资源可以是数据。
例如,假设应用程序中包括发送消息的功能,当用户点击发送消息控件时,便会产生开始发送消息指令,与此同时,伴随着这条指令产生的还有发送消息这个过程中产生的其它指令和数据,而这些数据可以包括用户所要发送的消息内容、发送时间、发送目的地等。
又例如,假设应用程序中包括点赞功能,当用户点赞时,便会生成点赞指令,与此同时,伴随着这条指令产生的还有点赞这个过程产生的其它指令和数据,等等。
其中,触发指令可以包括触发应用程序开始执行某个功能的指示和命令。例如,当用户点击发送消息控件时,所产生的开始发送消息指令便可以是触发指令,等等。又例如,当用户在应用程序上点赞时,生成的点赞指令便可以是触发指令,等等。
在一实施例中,不同的行为事件可以对应不同的触发指令。
例如,点击事件包括点击应用程序上的发送控件和点击应用程序上的删除控件。当点击应用程序上的发送控件时,对应发送触发指令;当点击应用程序上的删除控件时,对应删除触发指令,等等。
又例如,浏览事件包括浏览页面A和浏览页面B。当开始浏览页面A时,对应浏览页面A触发指令;当开始浏览页面B时,对应浏览页面B触发指令,等等。
在一实施例中,当使用对象触发应用程序中的某个功能时,便可以根据该功能接收到对应的触发指令。
例如,当用户点击应用程序中的发送控件时,可以接收一个发送触发指令;又例如,当用户点击应用程序中的删除控件时,可以接收一个删除触发指令,等等。
又例如,当用户开始浏览页面A时,可以接收到一个浏览页面A触发指令;当用户开始浏览页面B时,可以接收到一个浏览页面B触发指令,等等。
而在接收应用程序中行为事件的触发指令后,便可以根据触发指令的指示执行后续的步骤。
102、根据触发指令,确定行为事件对应的钩子函数。
其中,钩子函数包括当行为事件被触发时,可以调用应用程序的数据采集模块进行数据采集操作的函数。
其中,该数据采集模块可以包括可以实现数据采集功能的元素。其中,该元素可以包括函数、变量、类等等。
在一实施例中,该数据采集模块可以是应用程序的外接模块。而外接模块可以指应用程序一般在执行功能的过程中,是不会执行到外接模块对应的功能。但是,当触发到外接模块对应的触发因子后,应用程序除了可以执行其本身具有的功能之外,还可以执行外接模块对应的功能。
例如,应用程序中包括收发消息功能、观看视频功能和浏览页面的功能。一般情况下,应用程序在执行功能时,只能执行收发消息功能、观看视频功能和浏览页面的功能。但是,当应用程序还包括外接模块,例如数据采集模块时,应用程序便可以在原功能的基础上,还具备了数据采集的功能。
一般情况下,应用程序可以是利用各种编写好的库来实现一种或多种功能的应用。其中,应用程序中的每种功能都可以由一个或多个库来实现。
例如,应用程序中收发消息的功能可以由一个或多个收发消息库来实现。又例如,应用程序中播放视频的功能可以由一个或多个视频播放库来实现。
其中,该库中包括各种实现应用程序中的某种功能的元素,这个元素共同作用,实现应用程序中的某种功能。其中,这些元素可以包括函数、变量、类等等。
当应用程序执行其功能时,一般情况下,应用程序会时常调用库中的函数、类、变量等元素实现功能。但是有些库中的函数却要求应用程序先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数可以是钩子函数。当钩子函数被触发后,便可以基于钩子函数调用应用程序的外接模块执行其它功能。
例如,应用程序中包括收发消息功能、观看视频功能和浏览页面的功能,每个功能都对应一个或者多个库来。但是,如果需要采集应用程序中的数据,并基于这些数据对应用程序的性能进行分析时,便可以在应用程序的库中添加钩子函数,并将钩子函数和数据采集模块进行关联,从而可以利用钩子函数调用数据采集模块采集应用程序中的属性数据。
利用钩子函数将数据采集模块和应用程序进行关联,可以在应用程序原有功能的基础上添加数据采集的功能。而当不需要采集应用程序中的数据时,可以将钩子函数和数据采集模块解除关联。通过钩子函数,可以根据需要调整应用程序添加或去除数据采集功能,从而提高了数据采集的灵活性。
在一实施例中,钩子函数可以自定义,也可以直接使用现有的函数。
例如,钩子函数可以使用class_addMethod、class_replaceMethod、method_exchangelmplementations等现有函数,等等。其中,函数class_addMethod、class_replaceMethod、method_exchangelmplementations都可以给类添加一个新方法和该方法的具体实现方式。
其中,钩子函数可以组合使用,也可以单独使用。
在一实施例中,钩子函数包括多个参数,可以通过对钩子函数参数的设置,从而设置钩子函数对应的行为事件、钩子函数对应的外接模块、钩子函数触发的条件等等。因此可以通过对钩子函数的参数进行设置,从而将行为事件、钩子函数和数据采集模块建立关联。
例如,钩子函数class_addMethod中的参数可以包括class_addMethod(Classcls,SEL name,IMP imp,const char*types),其中,参数“Class cls”可以包括将要添加的模块,参数“SEL name”可以包括将要添加的模块的名称,参数“IMP imp”可以包括将要添加的模块的地址,参数“const char*types”可以包括将要添加的模块的返回值和参数,等等。
同理,其它钩子函数,例如class_replaceMethod、method_exchangelmplementations等也有对应的参数可以进行设置。
在一实施例中,由于行为事件的类型有多种,每种事件对应的钩子函数可以不同,因此在接收到应用程序中行为事件的触发指令后,可以根据触发指令,确定行为事件对应的钩子函数。
具体地,当触发指令是计算机指令时,可以根据计算机指令的操作码和地址码确定行为事件对应的钩子函数。
例如,行为事件包括点击事件和加载事件,其中,点击事件包括点击发送控件和点击删除控件,加载事件包括加载页面A和加载页面B。其中,点击发送控件对应的触发指令可以是“00111110”,点击删除控件对应的触发指令可以是“00110010”,加载页面A对应的触发指令可以是“00110011”,加载页面B对应的触发指令可以是“00111010”。其中,这些触发指令的前4位可以是操作码,指明其作用是确定钩子函数,并利用钩子函数调用数据采集模块采集行为事件的属性数据。而这些触发指令的后4位可以是地址码,指明该触发指令对应的钩子函数。因此,在接收到应用程序中行为事件的触发指令后,便可以根据该触发指令,确定行为事件对应的钩子函数。
又例如,当触发指令是汇编指令时,同理,也可以根据指令中的助记符和操作对象确定行为事件对应的钩子函数。
103、基于钩子函数调用数据采集模块采集行为事件的属性数据。
其中,该数据采集模块可以包括可以实现数据采集功能的元素块。其中,该元素可以包括函数、变量、类等等。
在一实施例中,该数据采集模块可以是应用程序的外接模块。而外接模块可以指应用程序一般在执行功能的过程中,是不会执行到外接模块对应的功能。但是,当触发到外接模块对应的触发因子后,应用程序除了可以执行其本身具有的功能之外,还可以执行外接模块对应的功能。
其中,属性数据可以包括描述行为事件维度的数据。例如,当行为事件是点击事件时,属性数据可以包括在什么时间、什么使用对象、点击了哪个按钮等等。又例如,当行为事件是浏览事件时,属性数据可以包括在什么时间、什么使用对象、浏览了哪个页面、浏览时长等等。
在一实施例中,由于钩子函数包括多个参数,因此可以通过对钩子函数的参数进行设置,将行为事件、钩子函数和数据采集模块建立关联。因此,当基于钩子函数调用数据采集模块采集行为事件的属性数据时,可以对钩子函数进行解析,得到数据采集模块的地址信息,并根据该地址信息调用数据采集模块采集行为事件的属性数据。具体地,步骤“基于钩子函数调用数据采集模块采集行为事件的属性数据”,包括:
解析钩子函数,得到数据采集模块的地址信息;
基于地址信息,调用数据采集模块采集行为事件的属性数据。
其中,地址信息包括存储有数据采集模块的地址的信息。其中,该地址信息可以是指针变量、数组或一串二进制数码等等。地址信息的呈现形式可以根据钩子函数中参数的设置信息进行确定。例如,当钩子函数中地址信息需要被设置成指针变量的形式时,该地址信息可以是一个指针变量。又例如,当钩子函数中地址信息需要被设置成二进制数码的形式时,该地址信息可以是二进制数码,等等。
例如,当地址信息是指针变量时,便可以通过解析钩子函数得到数据采集模块对应的指针变量,并且根据该指针变量调用数据采集模块。
又例如,当地址信息是一串二进制数码时,可以通过解析钩子函数得到数据采集模块对应的二进制数码,该二进制数码即是数据采集模块的存储地址。接下来,便可以根据该二进制数码调用数据采集模块。
在一实施例中,在调用数据模块后,便可以开始利用数据模块采集行为事件的属性数据。其中,利用数据模块采集行为事件的属性数据时,可以采集行为事件所有的属性数据,也可以利用数据采集采集行为事件部分的属性数据。因此,可以在数据采集模块中提前设置好数据采集参数。当在利用数据采集模块采集数据时,可以获取数据采集模块中的数据采集参数,并基于数据采集参数确定行为事件中的数据采集点,然后在数据采集点处采集行为事件的属性数据。具体地,步骤“基于地址信息,调用数据采集模块采集行为事件的属性数据”,包括:
获取数据采集模块中的数据采集参数;
基于数据采集参数确定行为事件中属性数据的数据采集点;
在数据采集点采集行为事件的属性数据。
其中,数据采集参数可以包括数据采集模块采集数据时所要依据的参数。该数据采集参数可以指明数据采集模块采集的位置、采集的方式等等。例如,该数据采集参数可以指明数据采集模块是采集全部数据,还是采集部分数据。当采集部分数据时,从数据的哪里开始采集,哪里结束采集,等等。
该数据采集参数的呈现形式也可以有多种,例如,该数据采集参数可以是数字、字母、数组等等,此处并无限制。
其中,数据采集点可以包括数据采集模块在采集行为事件的属性数据时的采集位置。其中,该数据采集点可以是一个定位符。
例如,当想利用数据采集模块采集行为事件的全部属性数据时,便可以将数据采集点设置在属性数据的开头处和结尾处。又例如,当想利用数据采集模块采集行为事件的部分属性数据时,便可以在数据采集点设置在所要采集的属性数据的开头处和结尾处。
其中,数据采集模块中的数据采集参数和数据采集点是映射的关系,即通过数据采集参数可以确定行为事件中属性数据的数据采集点。
在开始利用数据采集模块采集行为事件的属性数据时,便可以先获取数据采集模块中的数据采集参数。例如,可以通过识别数据采集模块中的数据采集参数从而获取到数据采集模块中的数据采集参数。又例如,还可以基于地址信息调用数据采集模块时候就直接获取数据采集模块中的数据采集参数。
在获取到数据采集参数后便可以基于数据采集参数确定行为事件中属性数据的数据采集点。例如,数据采集参数中包括数据采集模块采集的位置,其中,该数据采集的位置和属性数据中的数据采集点是对应的,因此可以根据该数据采集位置确定数据采集模块在属性数据中的数据采集点。
在确定了行为事件中属性数据的数据采集点后,数据采集模块便可以在数据采集点处采集行为事件的属性数据。
在一实施例中,由于钩子函数、数据采集模块和行为事件之间是互相关联、互相映射的关系。即,通过行为事件可以确定钩子函数,通过钩子函数可以确定行为事件的数据采集模块,然后可以利用数据采集模块采集行为数据的属性数据。因此,也可以按照这种互相关联、互相映射的关系创建钩子函数。具体地,在步骤“解析钩子函数,得到数据采集模块的地址信息”之前,还包括:
获取数据采集模块的地址信息;
将钩子函数中调用对象的地址设置为地址信息;
基于地址信息建立钩子函数和行为事件之间的关联关系。
其中,调用对象可以包括钩子函数所要调用的对象。例如,在本实施例中,钩子函数的调用对象是数据采集模块。又例如,当要在应用程序上添加其他功能,可以将钩子函数的调用对象设置为其他功能。
在解析钩子函数,得到数据采集模块的地址信息之前,可以获取数据采集模块的地址信息。其中,数据采集模块的地址信息可以是预先设置好的,因此,在创建钩子函数时,可以直接获取数据采集模块的地址信息。
在获取到数据采集模块的地址信息后,可以将钩子函数中调用对象的地址设置为地址信息。其中,钩子函数中调用对象的地址可以是钩子函数中的其中一个参数。例如,对于钩子函数class_addMethod而言,调用对象的地址对应钩子函数class_addMethod中的IMP imp参数,因此可以将IMP imp设置为地址信息。
将钩子函数中调用对象的地址设置为地址信息后,便建立了钩子函数和调用对象之间的关系。然后,可以基于地址信息构建钩子函数和行为事件之间的关联关系,从而使得当行为事件触发时,便可以通过钩子函数调用数据采集模块采集行为事件的属性数据。
104、基于行为事件的属性数据,对行为事件进行标识,得到行为事件标识信息。
其中,行为事件标识信息可以包括行为事件的记号,即通过该行为事件标识信息可以确认该行为事件标识信息对应的行为事件。
在一实施例中,行为事件标识信息可以有多种形式。例如,行为事件标识信息可以英文字母、数字、自定义字符等等。
例如,行为事件包括点击发送控件、点击删除控件、浏览页面A和浏览页面B。其中,点击发送控件对应的行为事件标识信息可以是“abcdef”,点击删除控件对应的行为事件标识信息可以是“bcdefg”,浏览页面A对应的行为事件标识信息可以是“cdefgh”,浏览页面B对应的行为事件标识信息可以是“defghi”。
又例如,点击发送控件对应的行为事件标识信息可以是“a1”,点击删除控件对应的行为事件标识信息可以是“a2”,浏览页面A对应的行为事件标识信息可以是“b1”,浏览页面B对应的行为事件标识信息可以是“b2”,等等。
行为事件对应的行为事件标识信息可以根据需要自行设置,但是行为事件之间的行为事件标识信息不可以重复。
在一实施例中,由于行为事件的属性数据可以有多种,因此在基于行为事件的属性数据,对行为事件进行标识时,可以先对属性数据进行识别,得到至少一个类别的属性数据,然后根据属性数据的类别确定其对应的标识规则,然后基于该标识规则对至少一个类别的属性数据进行标识处理。具体地,步骤“基于行为事件的属性数据,对行为事件进行标识,得到行为事件标识信息”,包括:
对所述属性数据进行识别,得到至少一个类别的属性数据;
基于所述属性数据的类别,确定所述属性数据对应的标识规则;
利用所述标识规则对所述至少一个类别的属性数据进行标识处理,得到所述属性数据对应的事件标识信息。
其中,标识规则可以包括在对行为事件标识时所要遵循的规则。例如,标识规则可以包括对行为事件进行标识时所要遵循的标识顺序、标识方式等等。
其中,标识规则可以包括信息摘要4算法(Message-Digest algorithm 4,MD4)、信息摘要5算法(Message-Digest algorithm 5,MD5)、安全散列算法(Secure HashAlgorithm,SHA)和RACE原始完整性校验消息摘要(RACE Integrity PrimitivesEvaluation Message Digest,RIPEMD)算法,等等。其中,SHA算法又包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等算法。
在一实施例中,属性数据可以包括多个类型的属性数据。例如,属性数据中可以包括属性名称和属性参数等等。其中,属性名称可以包括行为事件产生的数据名称,属性参数可以包括该行为事件所产生的各种参数。其中,属性名称和属性名称是互相对应的。
例如,点击发送控件所产生的属性数据可以包括点击了什么控件、点击时间,等等。其中,属性名称可以包括点击发送控件和点击时间,其中,属性参数可以包括点击发送控件对应的参数和点击时间对应的参数。例如,点击发送控件对应的参数可以包括发送控件对应的指令、接口数据等等,点击时间对应的参数可以包括“2020.10.10,20:30”等等。
又例如,浏览页面A所产生的属性数据可以包括什么时候浏览页面A,浏览页面A上的什么内容,浏览的时间长短等等。其中,属性名称可以包括浏览页面A的时间点,浏览内容和浏览页面A的时间时长。其中,浏览页面A的时间点对应的属性参数可以是“2020.10.10,20:30”,浏览内容对应的属性参数可以是文字、图片、动画等形成的数据,浏览的时间长短对应的属性参数可以是“2020.10.10,20:30-20:40”或“10min”或“600s”。
因此,在对行为事件进行标识时,可以先对属性数据进行识别,从而得到至少一个类别的属性数据。然后基于属性数据的类别,确定属性数据对应的标识规则。
例如,当属性数据包括一种类型的属性数据时,可以采用较简单的标识规则对属性数据进行标识处理,从而得到属性数据对应的事件标识信息。
又例如,当属性数据包括多种类型的属性数据时,可以采用比较复杂的标识规则对属性数据进行标识处理,从而得到属性数据对应的事件标识信息。
在确定了标识规则后,就可以利用标识规则对属性数据进行标识处理,从而得到属性数据对应的事件标识信息。
在一实施例中,对属性数据进行标识处理时,可以对至少一个类别的属性数据进行排序,得到排序后的属性数据,然后基于标识规则对排序后的属性数据进行拼接,从而得到属性数据对应的行为事件标识信息。具体地,步骤“利用所述标识规则对所述至少一个类别的属性数据进行标识处理,得到所述属性数据对应的事件标识信息”,可以包括:
基于所述标识规则对所述至少一个类别的属性数据进行分组,得到分组后的属性数据;
基于所述标识规则对所述分组后的属性数据进行拼接,得到所述属性数据对应的行为事件标识信息。
例如,点击发送控件所产生的属性数据可以包括点击了什么控件、点击时间,等等。其中,属性名称可以包括点击发送控件和点击时间,其中,属性参数可以包括点击发送控件对应的参数和点击时间对应的参数。例如,点击发送控件对应的参数可以包括发送控件对应的指令、接口数据等等,点击时间对应的参数可以包括“2020.10.10,25:30”
例如,行为事件点击发送控件所产生的属性数据包括属性名称和属性参数。其中,属性名称包括点击发送控件和点击时间,属性参数包括点击发送控件对应的参数和点击时间对应的参数。
在对点击发送控件进行标识时,可以先对属性名称和属性参数进行分组,然后基于标识规则对分组后的属性名称和属性参数进行拼接,从而得到属性数据对应的行为事件标识信息。
例如,标识规则中规定对属性数据进行分组时,可以将属性名称分为一组,将属性参数分为一组。例如,将点击发送控件和点击时间分为一组,将点击发送控件对应的参数和点击时间对应的参数分为一组。
在对属性数据进行分组后,便可以基于标识规则对分组后的属性数据进行拼接,得到属性数据对应的行为事件的标识信息。其中,拼接指的是将分组后
例如,当利用MD5算法进行拼接时,可以将属性名称和属性参数利用哈希函数映射成对应的字符串,然后将属性名称和属性参数以及MD5算法对应的密钥拼接成一串字符串。
例如,在对点击发送控件进行标识时,可以将属性名称“点击发送控件”利用哈希函数映射为“1”。同理,可以将点击发送控件对应的参数利用哈希函数映射成“abcdef”;将属性名称“点击时间”利用哈希函数映射成“2”;将点击时间对应的参数利用哈希函数映射成“efgdk”。其中,密钥可以是“888”。最后,可以将属性名称和属性参数以及MD5算法对应的密钥拼接成一串字符串。其中,拼接时,可以按照属性数据分组情况对属性数据进行拼接。
例如,可以将属性名称和属性参数分别拼接后再凭借再一起。比如,将“abcdef”和“efgdk”拼接成“abcdefefgdk”。然后将“1”和“2”拼接成“12”。最后,将属性名称和属性参数以及MD5算法对应的密钥拼接成“12abcdefefgdk888”。
又例如,可以将属性名称和属性参数对应拼接在一起。例如,“点击发送控件”对应点击时间对应的参数,因此将“1”和“abcdef”拼接在一起,得到“1abcdef”。同理将“2”和“efgdk”拼接在一起,得到“2efgdk”。最后将属性名称和属性参数以及MD5算法对应的密钥拼接成“1abcdef2efgdk888”,等等。
105、当预设标识集合中存在行为事件标识信息时,将行为事件的属性数据进行上报,其中,预设标识集合包括和行为事件标识信息相匹配的预设上报事件的标识信息。
在得到行为事件标识信息后,可以根据行为事件标识信息判断是否将行为事件的属性数据进行上报。具体地,当预设标识集合中存在行为事件标识信息时,可以将行为事件的属性数据进行上报。
其中,预设上报事件可以包括需要采集属性数据的,并将采集的属性数据进行上报的行为事件。例如,当需要采集点击事件、加载事件和浏览事件的属性数据,并将这些行为事件的属性数据进行上报时,预设上报事件可以包括点击事件、加载事件和浏览事件。
其中,预设标识集合可以包括预设上报事件和预设上报事件的标识信息。例如,预设上报事件包括点击事件、加载事件和浏览事件,预设标识集合可以包括上报事件、加载事件和浏览事件的标识信息。
其中,预设上报事件的标识信息可以包括预设上报事件的记号,即通过该标识信息可以确认该标识信息对应的预设上报事件。其中,预设上报事件的标识信息可以有多种形式。例如,预设上报事件的标识信息可以英文字母、数字、自定义字符等等。
例如,预设上报事件包括点击发送控件、点击删除控件、浏览页面A和浏览页面B。其中,点击发送控件对应的标识信息可以是“abcdef”,点击删除控件对应的标识信息可以是“bcdefg”,浏览页面A对应的标识信息可以是“cdefgh”,浏览页面B对应的标识信息可以是“defghi”。
在一实施例中,可以只有当行为事件标识信息和上报事件的预设标识信息相匹配时,才将行为事件的属性数据进行上报。
例如,点击发送控件的行为事件标识信息是“abcdef”,可以将该行为事件标识信息“abcdef”和预设标识集合中预设上报事件标识信息进行匹配。由于预算标识集合中有和“abcdef”相匹配的预设上报事件标识信息,所以会将点击发送控件的属性数据进行上报。
又例如,点击接收控件的行为事件标识信息是“bcdefh”,由于预设标识集合中没有和点击接收控件的行为事件标识信息相匹配的预设上报事件标识信息,因此便不会将采集到的点击接收控件的属性数据进行上报。
在一实施例中,该预设标识集合可以预先下载在应用程序中,当在判断采集到行为事件的属性数据是否进行上报时,便可以将行为事件的行为事件标识信息和预设标识集合中的预设上报事件的标识信息进行匹配。当相匹配时,便将行为事件的属性数据进行上报,当不相匹配时,便不将行为事件的属性数据进行上报。
在一实施例中,可以将预设标识集合预先下载在应用程序中,当后期需要采集行为事件的属性数据可能有变化时,可以对预设标识集合进行更新检测,当检测到预设标识集合未更新时,可以对预设标识集合进行更新。具体地,该方法还包括:
当应用程序启动时,对所述预设标识集合进行更新检测;
当检测到所述预设标识集合未更新时,对所述预设标识集合进行更新。
例如,可以在每次应用程序启动时,便dui预设标识集合进行更新检测。当检测到预设标识集合未更新时,便可以对预设标识集合进行更新。
其中,在对预设标识集合进行更新检测时,可以先对预设标识集合进行识别,得到预设标识集合的版本参数,然后将预设标识集合的版本参数和预设版本参数进行对比,并根据对比结果确定预设上报事件的标识信息是否已更新。具体地,步骤“当应用程序启动时,对预设标识集合进行更新检测”,包括:
当应用程序启动时,对所预设标识集合进行识别,得到所述预设标识集合的版本参数;
将所述预设标识集合的版本参数和预设版本参数进行对比,得到对比结果;
根据对比结果确定所述预设版本参数是否已更新。
其中,版本参数可以包括预设标识集合版本的标识参数,通过该版本参数可以判断预设标识集合是否需要更新。其中,该版本参数可以自定义设置。例如,当预设标识集合是第一个版本时,版本参数可以设置为“version1”,也可以设置为“v1”或“111”等等。同理,当预设标识集合是第N个版本时,版本参数可以设置为“versionN”、“vN”或“11N”等等,在此处并没有做限定。
而预设版本参数是预先设置好的版本参数。该预设版本参数可以自定义设置。其中,该预设版本参数是版本参数的参数对象,因此该预设版本参数的设置参数应该和版本参数对应。例如,当版本参数设置成“versionN”的形式时,预设版本参数也可以设置成“versionN”的形式。同理,当版本参数设置成“11N”的形式时,预设版本参数也可以设置成“11N”的形式,等等。
在一实施例中,当启动应用程序时,除了判断是否需要对预设标识集合进行更新之外,还可自动更新预设版本参数。因此,当需要更新预设标识集合时,可以先对预设版本参数进行更新。当启动应用程序时,便可以更新预设版本参数,并根据更新后的预设版本参数更新预设标识集合。
在一实施例中,当应用程序启动时,可以对预设标识集合进行识别,从而得到预设标识集合的版本参数。例如,当应用程序启动时,通过对预设标识集合进行识别,可以得到预设标识集合的版本参数为“version 7”,等等。
在得到预设标识集合的版本参数后,可以将预设标识集合的版本参数和预设版本参数进行对比,并根据对比结果确定预设版本参数是否已更新。例如,当预设标识集合的版本参数小于预设版本参数时,预设标识集合未更新;当预设标识集合的版本参数大于或等于预设版本参数时,预设标识集合已更新,等等。
例如,预设标识集合的版本参数为“version 7”,而预设版本参数是“version8”,由于预设标识集合的版本参数小于预设版本参数,因此预设版本参数需要更新。
又例如,预设标识集合的版本参数为“version 7”,而预设版本参数是“version7”,由于预设标识集合的版本参数等于预设版本参数,因此预设版本参数不需要更新。
当检测到所述预设标识集合未更新时,便可以对所述预设标识集合进行更新。例如,可以下载新的预设标识集合到应用程序中,然后将原有的预设标识集合更新为新的预设标识集合。
本申请实施例接收应用程序中行为事件的触发指令,根据触发指令确定行为事件对应的钩子函数,然后基于钩子函数调用数据采集模块采集行为事件的属性数据;接下来,基于行为事件的属性数据,对行为事件进行标识,得到行为事件的标识信息;当预设标识集合中存在行为事件标识信息时,将行为事件的属性数据进行上报,其中,预设标识集合包括和行为事件标识信息相匹配的预设上报事件标识信息。本申请实施例首先不会对应用程序上的所有事件都进行数据的采集,只会对行为事件才会采集数据。其次,在采集到行为事件的属性数据后,根据属性数据生成行为事件的行为事件标识信息,并将行为事件标识信息和预设标识集合中的预设上报事件标识信息进行匹配。只有当预设标识集合包括和行为事件标识信息相匹配的预设上报事件标识信息时,才将行为事件的属性数据进行上报,从而对采集到的数据进行筛选过滤,降低了上报数据时的网络传输负载。
根据上面实施例所描述的方法,以下将举例作进一步详细说明。
本申请实施例将以数据采集上报装置集成在终端上为例来介绍本申请实施例方法。
如图2所示,一种数据采集上报方法,具体流程如下:
201、终端接收应用程序中行为事件的触发指令。
例如,当用户点击应用程序中的发送控件时,终端可以接收一个发送触发指令;又例如,当用户点击应用程序中的删除控件时,终端可以接收一个删除触发指令,等等。
又例如,当用户开始浏览页面A时,终端可以接收到一个浏览页面A触发指令;当用户开始浏览页面B时,终端可以接收到一个浏览页面B触发指令,等等。
202、终端根据触发指令,确定行为事件对应的钩子函数。
例如,点击发送控件对应的触发指令可以是“00111110”,点击删除控件对应的触发指令可以是“00110010”,加载页面A对应的触发指令可以是“00110011”,加载页面B对应的触发指令可以是“00111010”。
其中,这些触发指令的前4位可以是操作码,指明其作用是确定钩子函数,并利用钩子函数调用数据采集模块采集行为事件的属性数据。而这些触发指令的后4位可以是地址码,指明该触发指令对应的钩子函数。例如,“1110”对应钩子函数class_addMethod,“0010”对应钩子函数class_replaceMethod,“0011”对应钩子函数method_exchangelmplementations,“1010”对应钩子函数class_addMethod和class_replaceMethod的结合使用,等等。
因此,在终端接收到应用程序中行为事件的触发指令后,便可以根据该触发指令,确定行为事件对应的钩子函数。
203、终端基于钩子函数调用数据采集模块采集行为事件的属性数据。
例如,当基于钩子函数调用数据采集模块采集行为事件的属性数据时,可以对钩子函数进行解析,得到数据采集模块的地址信息,并根据该地址信息调用数据采集模块采集行为事件的属性数据。
例如,当地址信息是指针变量时,便可以通过解析钩子函数得到数据采集模块对应的指针变量,并且根据该指针变量调用数据采集模块。
在调用数据模块后,便可以开始利用数据模块采集行为事件的属性数据。
例如,当在利用数据采集模块采集数据时,可以获取数据采集模块中的数据采集参数,并基于数据采集参数确定行为事件中的数据采集点,然后在数据采集点处采集行为事件的属性数据。
204、终端基于行为事件的属性数据,对行为事件进行标识,得到行为事件标识信息。
其中,标识规则可以包括MD4算法、MD5算法、SHA算法、RIPEMD算法,等等。其中,SHA算法又包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等算法。
例如,终端在对行为事件进行标识时,可以先对属性数据进行识别,从而得到至少一个类别的属性数据。然后基于属性数据的类别,确定属性数据对应的标识规则。
例如,当属性数据包括一种类型的属性数据时,终端可以采用较简单的标识规则对属性数据进行标识处理,从而得到属性数据对应的事件标识信息。
又例如,当属性数据包括多种类型的属性数据时,终端可以采用比较复杂的标识规则对属性数据进行标识处理,从而得到属性数据对应的事件标识信息。
在确定了标识规则后,终端就可以利用标识规则对属性数据进行标识处理,从而得到属性数据对应的事件标识信息。
例如,点击发送控件所产生的属性数据可以包括点击了什么控件、点击时间,等等。其中,属性名称可以包括点击发送控件和点击时间,其中,属性参数可以包括点击发送控件对应的参数和点击时间对应的参数。例如,点击发送控件对应的参数可以包括发送控件对应的指令、接口数据等等,点击时间对应的参数可以包括“2020.10.10,25:30”
在对点击发送控件进行标识时,可以先对属性名称和属性参数进行分组,然后基于标识规则对分组后的属性名称和属性参数进行拼接,从而得到属性数据对应的行为事件标识信息。
例如,标识规则中规定对属性数据进行分组时,可以将属性名称分为一组,将属性参数分为一组。例如,将点击发送控件和点击时间分为一组,将点击发送控件对应的参数和点击时间对应的参数分为一组。
在对点击发送控件进行标识时,可以将属性名称“点击发送控件”利用哈希函数映射为“1”。同理,可以将点击发送控件对应的参数利用哈希函数映射成“abcdef”;将属性名称“点击时间”利用哈希函数映射成“2”;将点击时间对应的参数利用哈希函数映射成“efgdk”。其中,密钥可以是“888”。
可以将属性名称和属性参数对应拼接在一起。例如,“点击发送控件”对应点击时间对应的参数,因此将“1”和“abcdef”拼接在一起,得到“1abcdef”。同理将“2”和“efgdk”拼接在一起,得到“2efgdk”。最后将属性名称和属性参数以及MD5算法对应的密钥拼接成“1abcdef2efgdk888”,等等。
205、终端将行为事件标识信息和预设标识集合中预设上报事件标识信息进行匹配。
其中,预设标识集合可以包括预设上报事件和预设上报事件的标识信息。例如,预设上报事件包括点击事件、加载事件和浏览事件,预设标识集合可以包括上报事件、加载事件和浏览事件的标识信息。
在一实施例中,预设标识集合可以以表格的形式存储在终端中,例如,如
表1所示。
表1:预设标识集合
在得到行为事件标识信息后,终端可以将行为事件标识信息和预设标识集合中预设上报事件标识信息进行匹配。
例如,点击发送控件的行为事件标识信息是“abcdef”,终端可以将该行为事件标识信息“abcdef”和预设标识集合中预设上报事件标识信息进行匹配。即将“abcdef”和“abcdef”“123456”“123abc”相匹配。
206、当行为事件标识信息和预设上报事件标识信息相匹配时,终端将行为事件的属性数据进行上报。
其中,当行为事件标识信息和预设上报事件标识信息相匹配时,终端将行为事件的属性数据进行上报。
例如,点击发送控件的行为事件标识信息是“abcdef”在预设标识集合中有相匹配的预设上报事件标识信息,因此终端会将点击发送控件的属性数据进行上报。
其中,当行为事件标识信息和预设上报事件标识信息相匹配时,终端则不会将行为事件的属性数据进行上报。
其中,将行为事件的属性数据进行上报时,可以将预上报的行为事件的属性数据暂时存储在预设标识集合中,然后周期性地将存储有行为事件属性数据的预设标识集合进行上报。例如,预设标识集合中的属性数据可以存储行为事件的属性数据,而其他可以存储行为事件的附带信息。然后可以每个一天、每隔一周或者每隔一个月将存储有行为事件属性数据的预设标识集合进行上报。
在一实施例中,还可以启动应用程序中检测是否有预设标识集合。当应用程序中有预设标识集合时,可以检测预设标识集合是否需要更新。
例如,当启动应用程序时,可以对应用程序的属性文件进行检测,并根据检测结果判断应用程序中是否有预设标识集合。其中,应用程序的属性文件包括表示应用程序各种属性的文件。例如,应用程序的属性文件包括应用程序的版本信息、发表日期、预设标识集合等等。因此,在启动应用程序时,可以对应用程序的属性文件进行检测,当属性文件中包括预设标识集合时,说明应用程序中有预设标识集合。当应用程序中没有预设标识集合时,可以下载预设标识集合。然后,当应用程序中有预设标识集合时,可以检测预设标识集合是否需要更新。
本申请实施例终端接收应用程序中行为事件的触发指令,根据触发指令确定行为事件对应的钩子函数,然后终端基于钩子函数调用数据采集模块采集行为事件的属性数据;接下来,终端基于行为事件的属性数据,对行为事件进行标识,得到行为事件的标识信息;终端将行为事件标识信息和预设标识集合中预设上报事件标识信息进行匹配;最后,当行为事件标识信息和预设上报事件标识信息相匹配时,终端将行为事件的属性数据进行上报。本申请实施例通过利用钩子函数,可以调用数据采集模块采集行为事件的属性数据,在采集到行为事件的是属性数据后,还可以根据行为事件标识信息对采集到的数据进行筛选过滤,从而在上报采集到的数据时,降低了网络传输的负载。
为了更好地实施本申请实施例提供的数据采集上报方法,在一实施例中还提供了一种数据采集上报装置,该数据采集上报装置可以集成于终端或服务器中。其中名词的含义与上述图像生成方法中相同,具体实现细节可以参考方法实施例中的说明。
在一实施例中,提供了一种数据采集上报装置,该数据采集上报装置具体可以集成在终端中,如图3a所示,该图像生成装置包括:接收单元301、确定单元302、调用单元303、标识单元304、上报单元305,具体如下:
接收单元301,用于接收应用程序中行为事件的触发指令;
确定单元302,用于根据所述触发指令,确定所述行为事件对应的钩子函数;
调用单元303,用于基于所述钩子函数调用数据采集模块采集所述行为事件的属性数据;
标识单元304,用于基于所述行为事件的属性数据,对所述行为事件进行标识,得到行为事件标识信息;
上报单元305,用于当预设标识集合中存在所述行为事件标识信息时,将所述行为事件的属性数据进行上报,其中,所述预设标识集合包括和所述行为事件标识信息相匹配的预设上报事件标识信息。
在一实施例中,如图3b所示,调用单元303可以包括:
解析子单元3031,用于解析所述钩子函数,得到所述数据采集模块的地址信息;
调用子单元3032,用于基于所述地址信息,调用所述数据采集模块采集所述行为事件的属性数据。
在一实施例中,如图3b所示,标识单元304可以包括:
识别子单元3041,用于对所述属性数据进行识别,得到至少一个类别的属性数据;
确定子单元3042,用于基于所述属性数据的类别,确定所述属性数据对应的标识规则;
标识处理子单元3043,用于利用所述标识规则对所述至少一个类别的属性数据进行标识处理,得到所述属性数据对应的行为事件标识信息。
本申请实施例通过利用接收单元301接收应用程序中行为事件的触发指令,确定单元302根据触发指令确定行为事件对应的钩子函数,然后调用单元303基于钩子函数调用数据采集模块采集行为事件的属性数据;接下来,标识单元304基于行为事件的属性数据,对行为事件进行标识,得到行为事件的标识信息;当预设标识集合中存在行为事件标识信息时,上报单元305将行为事件的属性数据进行上报,其中,预设标识集合包括和行为事件标识信息相匹配的预设上报事件标识信息,降低了网络传输的负载。
本申请实施例还提供一种计算机设备,该计算机设备可以包括终端或服务器,比如,计算机设备可以作为图像生成终端,该终端可以为手机、平板电脑等等;又比如计算机设备可以为服务器,如图像生成服务器等。如图4所示,其示出了本申请实施例所涉及的终端的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行计算机设备的各种功能和处理数据。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
计算机设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下
接收应用程序中行为事件的触发指令;
根据所述触发指令,确定所述行为事件对应的钩子函数;
基于所述钩子函数调用数据采集模块采集所述行为事件的属性数据;
基于所述行为事件的属性数据,对所述行为事件进行标识,得到行为事件标识信息;
当预设标识集合中存在所述行为事件标识信息时,将所述行为事件的属性数据进行上报,其中,所述预设标识集合包括和所述行为事件标识信息相匹配的预设上报事件标识信息。
以上对本申请实施例所提供的一种数据采集上报方法、装置、电子设备和存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (8)
1.一种数据采集上报方法,其特征在于,包括:
接收应用程序中行为事件的触发指令;
根据所述触发指令,确定所述行为事件对应的钩子函数;
基于所述钩子函数调用数据采集模块采集所述行为事件的属性数据;
对所述属性数据进行识别,得到至少一个类别的属性数据;
基于所述属性数据的类别,确定所述属性数据对应的标识规则;
基于所述标识规则对所述至少一个类别的属性数据进行组合,得到组合后的属性数据;
基于所述标识规则对所述组合后的属性数据进行拼接,得到所述属性数据对应的行为事件标识信息;
当预设标识集合中存在所述行为事件标识信息时,将所述行为事件的属性数据进行上报,其中,所述预设标识集合包括和所述行为事件标识信息相匹配的预设上报事件标识信息。
2.如权利要求1所述的数据采集上报方法,其特征在于,所述基于所述钩子函数调用数据采集模块采集所述行为事件的属性数据,包括:
解析所述钩子函数,得到所述数据采集模块的地址信息;
基于所述地址信息,调用所述数据采集模块采集所述行为事件的属性数据。
3.如权利要求2所述的数据采集上报方法,其特征在于,所述调用所述数据采集模块采集所述行为事件的属性数据,包括:
获取所述数据采集模块中的数据采集参数;
基于所述数据采集参数确定所述行为事件中属性数据的数据采集点;
在所述数据采集点采集所述行为事件的属性数据。
4.如权利要求1所述的数据采集上报方法,其特征在于,所述方法还包括:
当所述应用程序启动时,对所述预设标识集合进行更新检测;
当检测到所述预设标识集合未更新时,对所述预设标识集合进行更新。
5.如权利要求4所述的数据采集上报方法,其特征在于,所述当应用程序启动时,对所述预设标识集合进行更新检测,包括:
当所述应用程序启动时,对所述预设标识集合进行识别,得到所述预设标识集合的版本参数;
将所述预设标识集合的版本参数和预设版本参数进行对比,得到对比结果;
根据对比结果确定所述预设标识集合是否已更新。
6.一种数据采集上报装置,其特征在于,包括:
接收单元,用于接收应用程序中行为事件的触发指令;
确定单元,用于根据所述触发指令,确定所述行为事件对应的钩子函数;
调用单元,用于基于所述钩子函数调用数据采集模块采集所述行为事件的属性数据;
标识单元,用于对所述属性数据进行识别,得到至少一个类别的属性数据;基于所述属性数据的类别,确定所述属性数据对应的标识规则;基于所述标识规则对所述至少一个类别的属性数据进行组合,得到组合后的属性数据;基于所述标识规则对所述组合后的属性数据进行拼接,得到所述属性数据对应的行为事件标识信息;
上报单元,用于当预设标识集合中存在所述行为事件标识信息时,将所述行为事件的属性数据进行上报,其中,所述预设标识集合包括和所述行为事件标识信息相匹配的预设上报事件标识信息。
7.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有应用程序,所述处理器用于运行所述存储器内的应用程序,以执行权利要求1至5任一项所述的数据采集上报方法中的操作。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至5任一项所述的数据采集上报方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110194153.4A CN112817782B (zh) | 2021-02-20 | 2021-02-20 | 一种数据采集上报方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110194153.4A CN112817782B (zh) | 2021-02-20 | 2021-02-20 | 一种数据采集上报方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817782A CN112817782A (zh) | 2021-05-18 |
CN112817782B true CN112817782B (zh) | 2023-10-13 |
Family
ID=75864401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110194153.4A Active CN112817782B (zh) | 2021-02-20 | 2021-02-20 | 一种数据采集上报方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817782B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114064330B (zh) * | 2022-01-12 | 2022-05-13 | 广东睿江云计算股份有限公司 | 基于OpenVidu的钩子回调广播转发方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017101606A1 (zh) * | 2015-12-15 | 2017-06-22 | 北京奇虎科技有限公司 | 一种数据采集分析系统和方法 |
CN109558561A (zh) * | 2018-12-04 | 2019-04-02 | 深圳创维数字技术有限公司 | 一种用户行为路径采集方法、装置、设备及介质 |
CN111382038A (zh) * | 2018-12-28 | 2020-07-07 | 北京微播视界科技有限公司 | 上报业务数据的方法、装置、电子设备及存储介质 |
-
2021
- 2021-02-20 CN CN202110194153.4A patent/CN112817782B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017101606A1 (zh) * | 2015-12-15 | 2017-06-22 | 北京奇虎科技有限公司 | 一种数据采集分析系统和方法 |
CN109558561A (zh) * | 2018-12-04 | 2019-04-02 | 深圳创维数字技术有限公司 | 一种用户行为路径采集方法、装置、设备及介质 |
CN111382038A (zh) * | 2018-12-28 | 2020-07-07 | 北京微播视界科技有限公司 | 上报业务数据的方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112817782A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110362968B (zh) | 信息检测方法、装置及服务器 | |
CN111538659A (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
CN114238948A (zh) | 一种应用程序检测方法、装置、电子设备及存储介质 | |
CN111400170A (zh) | 一种数据权限测试方法及装置 | |
CN103617055B (zh) | 一种在浏览器中启动应用程序的方法、装置和浏览器 | |
CN112817782B (zh) | 一种数据采集上报方法、装置、电子设备和存储介质 | |
CN111158654A (zh) | 算法调用方法、装置、服务器及存储介质 | |
CN114327375A (zh) | 一种检测java代码依赖关系的方法、工具以及计算机设备 | |
CN109783159A (zh) | 基于配置信息的应用启动方法和装置 | |
CN114064712A (zh) | 数据访问方法、装置、电子设备及计算机可读存储介质 | |
CN113268232B (zh) | 一种页面皮肤生成方法、装置和计算机可读存储介质 | |
CN112100226A (zh) | 一种数据查询方法及计算机可读存储介质 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
CN114816389B (zh) | 一种基于元模型的管理系统搭建方法、装置、设备及介质 | |
CN110048940A (zh) | 即时通信消息的发送方法、装置、服务器及可读存储介质 | |
CN114564206A (zh) | 一种数据非空校验方法、装置、设备及可读存储介质 | |
CN114756362A (zh) | 资源配额管理方法及系统、智能终端、存储介质 | |
CN114860295A (zh) | 资源文件更新方法、装置、设备及可读存储介质 | |
CN114968960A (zh) | 日志处理方法、装置、计算机设备及存储介质 | |
CN116263717A (zh) | 基于事件的订单业务处理方法及装置 | |
CN114327709A (zh) | 一种控制页面生成方法、装置、智能设备及存储介质 | |
CN110287397B (zh) | 基于屏保的内容搜索方法、装置及电子设备 | |
CN114546793A (zh) | 一种日志生成方法、装置和计算机可读存储介质 | |
CN115033147A (zh) | 信息处理方法、装置、设备以及存储介质 | |
CN112948264A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40048355 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |