CN107423048A - 数据收集的方法、装置、介质和计算设备 - Google Patents
数据收集的方法、装置、介质和计算设备 Download PDFInfo
- Publication number
- CN107423048A CN107423048A CN201710245125.4A CN201710245125A CN107423048A CN 107423048 A CN107423048 A CN 107423048A CN 201710245125 A CN201710245125 A CN 201710245125A CN 107423048 A CN107423048 A CN 107423048A
- Authority
- CN
- China
- Prior art keywords
- data collection
- user behavior
- page
- event
- present
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的实施方式提供了一种数据收集的方法、装置、介质和计算设备。该数据收集的方法,包括:获取数据收集策略;根据所述数据收集策略,对操作系统的系统方法进行Hook;基于Hook后的系统方法收集页面上的用户行为事件。本发明的技术方案可以降低开发人员的工作量和数据收集成本,同时能够避免手动埋点易出错的问题。
Description
技术领域
本发明的实施方式涉及通信及计算机技术领域,更具体地,本发明的实施方式涉及数据收集的方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,为了采集网站中的用户行为数据,通常都是采用事先埋点的方案。通俗来讲,埋点是一段编写好的程序代码,主要用于收集网页上的用户访问和点击数据。
发明内容
但是,目前在进行网页埋点时,通常都需要开发人员手动埋点,而手动埋点的工程量极大,耗时费力,并且手动埋点易出错,这样不仅影响了数据的收集,而且会导致数据分析结果的不准确。
为此,非常需要一种改进的数据收集方案,以降低开发人员的工作量和数据收集成本,同时避免手动埋点易出错的问题。
在本上下文中,本发明的实施方式期望提供一种数据收集的方法、装置、介质和计算设备。
在本发明实施方式的第一方面中,提供了一种数据收集的方法,包括:获取数据收集策略;根据所述数据收集策略,对操作系统的系统方法进行Hook;基于Hook后的系统方法收集页面上的用户行为事件。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第一系统时,所述方法还包括:通过块代码添加对所述系统方法的Hook。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第二系统时,根据所述数据收集策略,对操作系统的系统方法进行Hook的步骤,包括:根据所述数据收集策略,确定需要监听的用户行为事件;通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
在本发明的一些实施方式中,基于前述方案,在所述页面的viewTree生成之后,通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第二系统时,根据所述数据收集策略,对操作系统的系统方法进行Hook的步骤,包括:根据所述数据收集策略,在所述系统方法中查找需要监听的用户行为事件所对应的类,以及所述类中对应的方法;修改所述方法中的字节码。
在本发明的一些实施方式中,基于前述方案,在生成安装包之前,修改所述方法中的字节码。
在本发明的一些实施方式中,基于前述方案,还包括:根据所述数据收集策略,确定KVC配置;基于所述KVC配置,匹配目标页面元素;收集与所述目标页面元素相关联的业务数据。
在本发明的一些实施方式中,基于前述方案,基于所述KVC配置,匹配目标页面元素的步骤,包括:根据所述KVC配置,匹配收集到的用户行为事件所对应的以下至少两个关联信息,以确定是否匹配到所述目标页面元素:所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、页面元素的indexPath、页面元素的viewPath。
在本发明的一些实施方式中,基于前述方案,在满足以下匹配条件时,确定匹配到所述目标页面元素:
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的indexPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配。
在本发明的一些实施方式中,基于前述方案,所述页面中的页面元素的xPath包括viewPath和depthPath,所述viewPath为所述页面元素的元素名称的路径,所述depthPath为所述页面元素所在层级中同类元素的顺序标识。
在本发明的一些实施方式中,基于前述方案,还包括:在新增fragment页面的情况下,通过所述fragment页面的类名替换所述fragment页面所对应的页面元素节点。
在本发明的一些实施方式中,基于前述方案,所述数据收集策略包括:对整体页面的浏览量事件以及用户的交互行为事件进行全量收集、对页面中元素的浏览量事件按照配置的需求进行收集、对与用户的交互行为事件相关联的业务数据按照配置的需求进行收集。
在本发明的一些实施方式中,基于前述方案,还包括:检测用户在页面上选择的指定页面元素;获取收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据;展示收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据。
在本发明实施方式的第二方面中,提供了一种介质,其上存储有程序,该程序被处理器执行时实现如上述实施方式中第一方面所述的方法。
在本发明实施方式的第三方面中,提供了一种数据收集的装置,包括:第一获取单元,用于获取数据收集策略;处理单元,用于根据所述数据收集策略,对操作系统的系统方法进行Hook;收集单元,用于基于Hook后的系统方法收集页面上的用户行为事件。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第一系统时,所述处理单元还用于:通过块代码添加对所述系统方法的Hook。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第二系统时,所述处理单元配置为:根据所述数据收集策略,确定需要监听的用户行为事件;通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
在本发明的一些实施方式中,基于前述方案,所述处理单元配置为:在所述页面的viewTree生成之后,通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第二系统时,所述处理单元配置为:根据所述数据收集策略,在所述系统方法中查找需要监听的用户行为事件所对应的类,以及所述类中对应的方法;修改所述方法中的字节码。
在本发明的一些实施方式中,基于前述方案,所述处理单元配置为:在生成安装包之前,修改所述方法中的字节码。
在本发明的一些实施方式中,基于前述方案,还包括:确定单元,用于根据所述数据收集策略,确定KVC配置;匹配单元,用于基于所述KVC配置,匹配目标页面元素;所述收集单元还用于,收集与所述目标页面元素相关联的业务数据。
在本发明的一些实施方式中,基于前述方案,所述匹配单元配置为:根据所述KVC配置,匹配收集到的用户行为事件所对应的以下至少两个关联信息,以确定是否匹配到所述目标页面元素:所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、页面元素的indexPath、页面元素的viewPath。
在本发明的一些实施方式中,基于前述方案,在满足以下匹配条件时,确定匹配到所述目标页面元素:
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的indexPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配。
在本发明的一些实施方式中,基于前述方案,所述页面中的页面元素的xPath包括viewPath和depthPath,所述viewPath为所述页面元素的元素名称的路径,所述depthPath为所述页面元素所在层级中同类元素的顺序标识。
在本发明的一些实施方式中,基于前述方案,还包括:替换单元,用于在新增fragment页面的情况下,通过所述fragment页面的类名替换所述fragment页面所对应的页面元素节点。
在本发明的一些实施方式中,基于前述方案,所述数据收集策略包括:对整体页面的浏览量事件以及用户的交互行为事件进行全量收集、对页面中元素的浏览量事件按照配置的需求进行收集、对与用户的交互行为事件相关联的业务数据按照配置的需求进行收集。
在本发明的一些实施方式中,基于前述方案,还包括:检测单元,用于检测用户在页面上选择的指定页面元素;第二获取单元,用于获取收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据;展示单元,用于展示收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据。
在本发明实施方式的第四方面中,提供了一种计算设备,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如上述实施方式中第一方面所述的方法。
根据本发明实施方式的数据收集的方法和装置,通过根据数据收集策略对操作系统的系统方法进行Hook,以基于Hook后的系统方法收集页面上的用户行为事件,使得能够实现无埋点的数据收集,相比于手动埋点的方案,本发明实施方式的数据收集方法和装置能够有效降低开发人员的工作量,并且能够避免手动埋点易出错的问题。
在本发明的一些实施方式中,由于页面元素的xPath包括viewPath和depthPath,且该depthPath定义为页面元素所在层级中同类元素的顺序标识,可以防止不同类元素的动态变化而造成页面元素不能唯一定位的问题。而在新增fragment页面的情况下,通过该fragment页面的类名替换该fragment页面所对应的页面元素节点,也可以避免页面元素路径不唯一而导致不能唯一定位的问题。
在本发明的一些实施方式中,通过配置数据收集策略为对整体页面的浏览量事件以及用户的交互行为事件进行全量收集、对页面中元素的浏览量事件按照配置的需求进行收集、对与用户的交互行为事件相关联的业务数据按照配置的需求进行收集,使得能够在保证收集到更为实用的数据的前提下,减少收集到的数据在上传时的流量。
在本发明的一些实施方式中,通过检测用户在页面上选择的指定页面元素,以获取并展示收集到的与该指定页面元素相对应的用户行为事件和/或与该指定页面元素相关联的业务数据,使得能够通过可视化的界面来选择并查看收集到的数据,极大地方便了相关人员(运营人员、用研人员、产品人员等)对数据收集结果的查看。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性示出了根据本发明的第一个实施方式的数据收集的方法的流程图;
图2示意性示出了根据本发明的实施方式的通过动态代理替换技术对系统方法进行Hook的流程图;
图3示意性示出了根据本发明的实施方式的生成Android系统的安装包的流程图;
图4示意性示出了根据本发明的实施方式的通过静态插桩技术对系统方法进行Hook的流程图;
图5示意性示出了根据本发明的第二个实施方式的数据收集的方法的流程图;
图6示意性示出了根据本发明的实施方式的基于KVC配置匹配目标页面元素的流程图;
图7示意性示出了相关技术中在viewTree中的view发生变化时,其深度值的变化示意图;
图8示意性示出了根据本发明的实施方式的展示数据收集结果的流程图;
图9示意性示出了根据本发明的实施方式的一种系统架构图;
图10示意性示出了根据本发明的实施方式的数据收集的装置的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种数据收集的方法、装置、介质和计算设备。
在本文中,需要理解的是,所涉及的术语“Hook”是可以将目标进程的某一个函数替换成一个自定义函数执行的技术,利用Hook技术可以达到修改目标进程的某个函数的执行逻辑的功能。通俗来讲,Hook是通过截取函数调用来改变或增加系统方法的实现行为的技术。
术语“操作系统”是管理和控制计算机硬件与软件资源的计算机程序,在本发明的实施方式中,操作系统可以是IOS、Android等移动操作系统。
术语“viewTree”是通过树形结构来展示UI(User Interface,用户界面)上的view对象。以IOS操作系统为例,viewTree的根节点就是UIWindow,枝干节点由UIViewController及UIView组成,叶节点是由UIView组成。其中,由viewTree中的一个view到根节点之间的每个节点的名称与深度(层次)共同组成的信息构成了此view的xPath。
术语“KVC”即为Key-value coding(键值编码),其可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值,而不需要调用明确的存取方法。KVC运用了一个isa-swizzling技术,isa-swizzling就是类型混合指针机制,KVC主要通过isa-swizzling来实现其内部查找定位的,isa指针就是is a kind of的意思,指向维护分发表的对象的类,该分发表实际上包含了指向实现类中的方法的指针和其它数据。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,目前在采集网站中的用户行为数据时,一般都是通过事先埋点的方案,但是在进行网页埋点时,通常都需要开发人员手动埋点,而手动埋点的工程量极大,耗时费力,并且手动埋点易出错,这样不仅影响了数据的收集,而且会导致数据分析结果的不准确。
为此,在本发明的实施方式提供了一种改进的数据采集方案,可以降低开发人员的工作量和数据收集成本,同时避免手动埋点易出错的问题。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
需要注意的是,下述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
场景一:在需要收集页面上的用户行为数据时,开发人员无需事先进行网页埋点,而是可以根据实际的收集需求配置数据收集策略,进而能够根据数据收集策略对操作系统的系统方法进行Hook,以实现无埋点的用户行为数据的收集。
场景二:当需要查看数据收集结果时,数据查看方可以直接在可视化的界面上选择指定页面元素,进而系统能够获取并呈现出与该指定页面元素相关的数据,方便了数据查看方的操作。
示例性方法
下面结合上述的应用场景,参考图1至图9来描述根据本发明示例性实施方式的数据收集的方法。
图1示意性示出了根据本发明的第一个实施方式的数据收集的方法的流程图。
参照图1,根据本发明的第一个实施方式的数据收集的方法,包括:
步骤S12,获取数据收集策略。
在本发明的实施方式中,可以获取用户实时配置的数据收集策略,或者也可以获取配置文件中已经配置好的数据收集策略。
根据本发明的示例性实施例,数据收集策略包括:对整体页面的浏览量事件以及用户的交互行为事件进行全量收集、对页面中元素的浏览量事件按照配置的需求进行收集、对与用户的交互行为事件相关联的业务数据按照配置的需求进行收集。
需要说明的是:交互行为事件包括诸如点击(控件点击、列表cell点击、手势点击、手势长按等)、页面切换、页面滑动等行为事件。业务数据是指从后台获取并展示到页面上的文字或图片数据。
可见,本发明的实施方式中并未采取所有数据都全量收集的策略,而是仅针对整体页面的浏览量事件(即PV事件,PV即为Page View)和用户的交互行为事件进行全量收集。对于页面中元素的浏览量事件则采取按需求收集的策略,并且对于交互行为事件可以采取按配置的需求进行业务数据的粘附收集。通过本发明实施方式中的数据收集策略可以方便地对业务数据进行动态收集。
步骤S14,根据所述数据收集策略,对操作系统的系统方法进行Hook。
在本发明的实施方式中,对操作系统的系统方法进行Hook即为通过函数来修改或替换系统方法的实现行为,以通过Hook后的系统方法来截获用户行为事件。由于操作系统的不同,对系统方法进行Hook的方案也是存在区别的,以下针对两类不同的系统来分别说明:
操作系统为第一系统:
第一系统的代表即为IOS系统,该类系统已经定义了实现Hook的方法,因此可以直接调用相应的方法来实现对系统方法的Hook。比如对于IOS系统,可以通过IOS MethodSwizzing技术,利用Objective-C语言的runtime环境来Hook系统方法,以完成用户行为事件的收集。
同时,对于第一系统,可以通过块代码(usingBlock)机制添加对所述系统方法的Hook。并且可以通过referProtocol方法解决类所遵守的协议方法Hook。
操作系统为第二系统:
第二系统的代表即为Android系统,针对第二系统,本发明的实施方式提供了两种对系统方法进行Hook的方案,具体如下:
方案1:
根据所述数据收集策略,确定需要监听的用户行为事件;通过反射的方式替换所述系统方法中用于监听用户行为事件的事件侦听器。
需要说明的是,反射是一种计算机处理方式,是程序可以访问、检测和修改它本身状态或行为的一种能力。
在本发明的实施方式中,当页面的viewTree生成之后,再通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
方案1即为动态代理替换技术,具体流程如图2所示:在Activity组件启动或层次结构改变导致视图结构发生变化之后,遍历及替换系统方法中的事件侦听器,以实现对系统方法的Hook。比如检测是否替换了系统方法中的onclick侦听器,若未替换,则进行替换;若已替换了onclick侦听器,则检测是否替换了系统方法中的onlistitem侦听器,若未替换,则进行替换;若已替换了onlistitem侦听器,则检测是否替换了系统方法中的onHierarchyChange侦听器,若未替换,则进行替换;若已替换,则继续遍历检测系统方法中的其它事件侦听器。需要说明的是,本发明实施方式中在遍历检测系统方法中的事件侦听器时,检测的顺序并不限于图2中所示的顺序,对各个事件侦听器的检测顺序可以根据实际情况进行调整。
方案2:
根据所述数据收集策略,在系统方法中查找需要监听的用户行为事件所对应的类,以及所述类中对应的方法;修改所述方法中的字节码。
在本发明的示例性实施例中,可以在生成安装包之前,修改所述方法中的字节码,这样修改后的字节码就可以被打包生成在安装包里。
方案2即为静态插桩技术,以Android系统为例,在Android编译工具链的支持下,当编译阶段完成后,在系统方法内自动注入数据收集代码,以完成数据的收集,这种方案收集数据全、无反射、效率高。
具体地,如图3所示为生成Android系统的安装包的流程示意图。在通过静态插桩技术来Hook系统方法时,需要确定插桩入口,具体为图3中所示的输入类文件环节和输出类文件环节,在编译器(如javac编译器)编译之后,并在生成dex文件之前对类文件进行字节码扫描,并按照一定规则(该规则是为了找到需要修改字节码的方法)进行过滤及修改就可以了,这样修改过后的字节码就会在后续的dex打包环节被打到安装包(即Apk)中。其中,在图3中所示的字节码操作环节来进行字节码扫描,并过滤出哪些类的class文件需要进行字节码修改,同时对过滤出的类的class文件进行字节码修改操作。最后修改过字节码的class文件将连同资源文件一起打包至Apk中,得到最终可以在Android平台运行的APP。具体过程参照图4,在读入class文件数据之后,读出该类实现的接口,进而判断是否包含相应的类(图4中以类“android/view/View$OnClickListener”为例进行说明,本发明的实施方式不限于此),在确定包含该类时,逐个扫描该类中的方法(图4中以方法名为“OnClick”、方法描述符为“(Android/view/View;)V”为例进行说明,本发明的实施方式不限于此),以找到相应的方法,进而修改该方法中的字节码。
需要说明的是,上述对系统方法进行Hook的方案可以基于AOP(Aspect OrientedProgramming,面向切面编程)技术来实现。
继续参照图1,所述的数据收集的方法还包括:
步骤S16,基于Hook后的系统方法收集页面上的用户行为事件。
在收集用户行为事件的基础上,本发明的实施方式还可以收集用户行为事件所针对的目标页面元素的业务数据。具体地,如图5所示,根据本发明的第二个实施方式的数据收集的方法,包括:
步骤S52,根据数据收集策略,确定KVC配置。
在本发明的实施方式中,KVC配置可以包含所针对的页面、目标页面元素的xPath及key值。
步骤S54,基于所述KVC配置,匹配目标页面元素。
根据本发明的示例性实施例,步骤S54具体包括:根据所述KVC配置,匹配收集到的用户行为事件所对应的以下至少两个关联信息,以确定是否匹配到所述目标页面元素:所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、页面元素的indexPath、页面元素的viewPath。需要说明的是,在本发明的实施方式中,页面元素的xPath包括viewPath和depthPath,viewPath表示页面元素的元素名称的路径,depthPath表示页面元素的层次(深度)信息的路径,其中,depthPath包含了indexPath,indexPath用于表示depthPath的具体值。
在本发明的一些实施方式中,基于前述方案,在满足以下匹配条件时,确定匹配到所述目标页面元素:
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的indexPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配。
在本发明的一个具体实施方式中,步骤S54的具体匹配流程如图6所示,在图6所示的匹配流程中,当取出一个KVC配置之后,先进行事件类型(即viewEvent)的匹配,若事件类型不匹配,则结束匹配流程。若事件类型匹配,则依次进行页面元素(即view对象)、indexPath和viewPath的匹配,当匹配成功时(具体地,在事件类型、页面元素、indexPath相匹配时;或在事件类型、页面元素、viewPath相匹配时;或在事件类型、viewPath相匹配时,确定匹配成功),获取KVC取值,即可获得需要的业务数据。
步骤S56,收集与所述目标页面元素相关联的业务数据。
同时,为了解决在收集用户行为事件和/或业务数据的过程中,页面元素的唯一定位问题,本发明提出了如下两种方式:
方式1:
在本发明的实施方式中,所述页面中的页面元素的xPath包括viewPath和depthPath,所述viewPath为所述页面元素的元素名称的路径,所述depthPath为所述页面元素所在层级中同类元素的顺序标识。
在方式1中,本发明将页面元素的xPath定义为viewPath和depthPath的拼接。同时,本发明按照Class分类、取同类元素顺序ID来作为depthPath,有效避免了不同类的页面元素动态布局插入导致页面元素定位不唯一的问题。
具体来说,viewTree有时候会根据用户的操作有所变动。如图7所示,假设一个UIView中有三个子view,先后加入的顺序是:label、button1、button2,在采用本发明的方法之前,这3个子view的深度值依次是:0、1、2。这时若进行了相应操作(比如用户点击了某一个控件),label从父view中被移除,此时UIView只有2个子view:button1、button2,并且深度值变为了:0、1。可见,由于其中一个子view被移除,导致其它类中的子view的深度值发生了变化。因此,在本发明的实施方式中,为了在新增/移除某一view时,尽量减少对已有view的深度值造成影响,调整了对页面元素的深度值的计算方式:即采用当前view在其父view的所有同类型的子view中的index值。继续参照图7所示的例子,最初label、button1、button2的深度值依次是:0、0、1,按照本发明实施方式的技术方案,在label被移除后,button1、button2的深度依次为:0、1。可见,在采用本发明实施方式的技术方案之后,label的移除并未对button1、button2的深度值造成影响,这种调整后的计算方式在一定程度上增强了viewPath的抗干扰性。
方式2:
在本发明的实施方式中,在新增fragment页面的情况下,通过所述fragment页面的类名替换所述fragment页面所对应的页面元素节点。
需要说明的是,方式2的方案尤其适用于Android平台,具体地,在Android平台,针对fragment页面的动态增加问题,采用fragment类名(或别名)替代fragment对应的view节点(即页面元素)的方式可以有效解决fragment页面元素路径不唯一的问题。
此外,为了便于用户方便地查看数据收集的结果,本发明提出了如图8中所示的方法,包括:
步骤S802,检测用户在页面上选择的指定页面元素。
需要说明的是,步骤S802中所述的页面与数据收集时所针对的页面可以是同一页面。用户在页面上可以通过圈选的方式来选择页面元素,在用户圈选之后,可以通过相应的正则表达式来确定用户选择的是哪一个页面元素。
步骤S804,获取收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据。
步骤S806,展示收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据。
基于上述方案,本发明的实施方式提供的一个具体架构如图9所示,其中,用户可以通过圈选SDK(Software Development Kit,软件开发工具包)来进行KVC配置,并且能够进行页面配置、截图或按钮元素的选择等操作。需要说明的是,本发明实施方式中的圈选SDK是用于提供用户进行可视化操作的软件开发工具包。用户通过圈选SDK进行相关操作后,圈选SDK将相关信息发送至数据配置服务器,数据配置服务器可以将KVC配置下发给数据SDK,由数据SDK进行数据的收集,并上报至数据收集服务器。需要说明的是,本发明实施方式中的数据SDK是用于数据收集的软件开发工具包。进而可以拉取数据收集服务器和数据配置服务器中的相关数据进行分析和统计,并展示分析和统计的结果。其中,数据SDK可以通过protocolbuffer格式来上传收集到的数据,数据收集服务器可以是Kafka。当然,本发明实施方式的系统架构并不限于图9所示的方式。
本发明实施方式的上述技术方案至少能够实现如下的技术效果:
1、至少支持在IOS和Android两个平台上通过无埋点的方式对用户行为数据进行收集和上报。并且本发明实施方式中的数据收集策略及上报机制能够以消耗用户最小流量的代价获得最全的用户行为数据。相比传统的手动埋点和半自动埋点的方式,成本更小,数据呈现更快。
2、通过采用KVC的方案,可以在大数据平台下发KVC配置到终端,从而在用户产生交互的时候收集业务数据,这样能够帮助大数据平台将用户交互行为和业务数据进行联动分析,有助于更好的了解和熟悉用户秉性,产生更全面的用户画像,指导产品更好的设计需求满足用户体验,帮助运营以更实用更经济的方式拉动用户增长。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,对本发明示例性实施方式的介质进行说明。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种介质,其上存储有程序代码,当所述程序代码被设备的处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据收集的方法中的步骤。
具体地,所述设备的处理器执行所述程序代码时用于实现如下步骤:获取数据收集策略;根据所述数据收集策略,对操作系统的系统方法进行Hook;基于Hook后的系统方法收集页面上的用户行为事件。
在本发明的一些实施方式中,在所述操作系统为第一系统时,所述设备的处理器执行所述程序代码时还用于实现如下步骤:通过块代码添加对所述系统方法的Hook。
在本发明的一些实施方式中,在所述操作系统为第二系统时,所述设备的处理器执行所述程序代码时还用于实现如下步骤:根据所述数据收集策略,确定需要监听的用户行为事件;通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
在本发明的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:在所述页面的viewTree生成之后,通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
在本发明的一些实施方式中,在所述操作系统为第二系统时,所述设备的处理器执行所述程序代码时还用于实现如下步骤:根据所述数据收集策略,在所述系统方法中查找需要监听的用户行为事件所对应的类,以及所述类中对应的方法;修改所述方法中的字节码。
在本发明的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:在生成安装包之前,修改所述方法中的字节码。
在本发明的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:根据所述数据收集策略,确定KVC配置;基于所述KVC配置,匹配目标页面元素;收集与所述目标页面元素相关联的业务数据。
在本发明的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:根据所述KVC配置,匹配收集到的用户行为事件所对应的以下至少两个关联信息,以确定是否匹配到所述目标页面元素:所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、页面元素的indexPath、页面元素的viewPath。
在本发明的一些实施方式中,基于前述方案,在满足以下匹配条件时,确定匹配到所述目标页面元素:
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的indexPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配。
在本发明的一些实施方式中,基于前述方案,所述页面中的页面元素的xPath包括viewPath和depthPath,所述viewPath为所述页面元素的元素名称的路径,所述depthPath为所述页面元素所在层级中同类元素的顺序标识。
在本发明的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:在新增fragment页面的情况下,通过所述fragment页面的类名替换所述fragment页面所对应的页面元素节点。
在本发明的一些实施方式中,基于前述方案,所述数据收集策略包括:对整体页面的浏览量事件以及用户的交互行为事件进行全量收集、对页面中元素的浏览量事件按照配置的需求进行收集、对与用户的交互行为事件相关联的业务数据按照配置的需求进行收集。
在本发明的一些实施方式中,所述设备的处理器执行所述程序代码时还用于实现如下步骤:检测用户在页面上选择的指定页面元素;获取收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据;展示收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据。
需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性装置
在介绍了本发明示例性实施方式的介质之后,接下来,参考图10对本发明示例性实施方式的数据收集的装置进行说明。
图10示意性示出了根据本发明的实施方式的数据收集的装置的框图。
参照图10,根据本发明的实施方式的数据收集的装置1000,包括:第一获取单元1002、处理单元1004和收集单元1006。
具体地,第一获取单元1002用于获取数据收集策略;处理单元1004用于根据所述数据收集策略,对操作系统的系统方法进行Hook;收集单元1006用于基于Hook后的系统方法收集页面上的用户行为事件。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第一系统时,所述处理单元1004还用于:通过块代码添加对所述系统方法的Hook。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第二系统时,所述处理单元1004配置为:根据所述数据收集策略,确定需要监听的用户行为事件;通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
在本发明的一些实施方式中,基于前述方案,所述处理单元1004配置为:在所述页面的viewTree生成之后,通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
在本发明的一些实施方式中,基于前述方案,在所述操作系统为第二系统时,所述处理单元1004配置为:根据所述数据收集策略,在所述系统方法中查找需要监听的用户行为事件所对应的类,以及所述类中对应的方法;修改所述方法中的字节码。
在本发明的一些实施方式中,基于前述方案,所述处理单元1004配置为:在生成安装包之前,修改所述方法中的字节码。
在本发明的一些实施方式中,基于前述方案,还包括:确定单元1008,用于根据所述数据收集策略,确定KVC配置;匹配单元1010,用于基于所述KVC配置,匹配目标页面元素;所述收集单元1006还用于,收集与所述目标页面元素相关联的业务数据。
在本发明的一些实施方式中,基于前述方案,所述匹配单元1010配置为:根据所述KVC配置,匹配收集到的用户行为事件所对应的以下至少两个关联信息,以确定是否匹配到所述目标页面元素:所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、页面元素的indexPath、页面元素的viewPath。
在本发明的一些实施方式中,基于前述方案,在满足以下匹配条件时,确定匹配到所述目标页面元素:
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的indexPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配;或
所述用户行为事件对应的事件类型、所述页面元素的viewPath与所述KVC配置所包含的信息相匹配。
在本发明的一些实施方式中,基于前述方案,所述页面中的页面元素的xPath包括viewPath和depthPath,所述viewPath为所述页面元素的元素名称的路径,所述depthPath为所述页面元素所在层级中同类元素的顺序标识。
在本发明的一些实施方式中,基于前述方案,还包括:替换单元1012,用于在新增fragment页面的情况下,通过所述fragment页面的类名替换所述fragment页面所对应的页面元素节点。
在本发明的一些实施方式中,基于前述方案,所述数据收集策略包括:对整体页面的浏览量事件以及用户的交互行为事件进行全量收集、对页面中元素的浏览量事件按照配置的需求进行收集、对与用户的交互行为事件相关联的业务数据按照配置的需求进行收集。
在本发明的一些实施方式中,基于前述方案,还包括:检测单元1014,用于检测用户在页面上选择的指定页面元素;第二获取单元1016,用于获取收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据;展示单元1018,用于展示收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据。
示例性计算设备
在介绍了本发明示例性实施方式的方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的计算设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明实施方式的计算设备可以至少包括至少一个处理器、以及至少一个存储器。其中,所述存储器存储有可执行指令,当所述可执行指令被所述处理器调用时,使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据收集的方法中的步骤。例如,所述处理器可以执行如图1中所示的步骤S12,获取数据收集策略;步骤S14,根据所述数据收集策略,对操作系统的系统方法进行Hook;步骤S16,基于Hook后的系统方法收集页面上的用户行为事件。又如,所述处理器也可以执行如图2、图4至图6、以及图8中任一图所示的步骤。
应当注意,尽管在上文详细描述中提及了数据收集的装置的若干单元或子单元,但是这种划分仅仅是示例性的,并非是强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或单元的特征和功能可以在一个模块或单元中具体化。反之,上文描述的一个模块或单元的特征和功能可以进一步划分为由多个模块或单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (10)
1.一种数据收集的方法,包括:
获取数据收集策略;
根据所述数据收集策略,对操作系统的系统方法进行Hook;
基于Hook后的系统方法收集页面上的用户行为事件。
2.根据权利要求1所述的方法,其中,在所述操作系统为第一系统时,所述方法还包括:通过块代码添加对所述系统方法的Hook。
3.根据权利要求1所述的方法,其中,在所述操作系统为第二系统时,根据所述数据收集策略,对操作系统的系统方法进行Hook的步骤,包括:
根据所述数据收集策略,确定需要监听的用户行为事件;
通过反射的方式替换所述系统方法中用于监听所述用户行为事件的事件侦听器。
4.根据权利要求1所述的方法,其中,在所述操作系统为第二系统时,根据所述数据收集策略,对操作系统的系统方法进行Hook的步骤,包括:
根据所述数据收集策略,在所述系统方法中查找需要监听的用户行为事件所对应的类,以及所述类中对应的方法;
修改所述方法中的字节码。
5.根据权利要求1所述的方法,还包括:
根据所述数据收集策略,确定KVC配置;
基于所述KVC配置,匹配目标页面元素;
收集与所述目标页面元素相关联的业务数据。
6.根据权利要求5所述的方法,其中,基于所述KVC配置,匹配目标页面元素的步骤,包括:
根据所述KVC配置,匹配收集到的用户行为事件所对应的以下至少两个关联信息,以确定是否匹配到所述目标页面元素:
所述用户行为事件对应的事件类型、所述用户行为事件所针对的页面元素、页面元素的indexPath、页面元素的viewPath。
7.根据权利要求1至6中任一项所述的方法,还包括:
检测用户在页面上选择的指定页面元素;
获取收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据;
展示收集到的与所述指定页面元素相对应的用户行为事件和/或与所述指定页面元素相关联的业务数据。
8.一种介质,其上存储有程序,该程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
9.一种数据收集的装置,包括:
第一获取单元,用于获取数据收集策略;
处理单元,用于根据所述数据收集策略,对操作系统的系统方法进行Hook;
收集单元,用于基于Hook后的系统方法收集页面上的用户行为事件。
10.一种计算设备,包括:处理器和存储器,所述存储器存储有可执行指令,所述处理器用于调用所述存储器存储的可执行指令执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710245125.4A CN107423048B (zh) | 2017-04-14 | 2017-04-14 | 数据收集的方法、装置、介质和计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710245125.4A CN107423048B (zh) | 2017-04-14 | 2017-04-14 | 数据收集的方法、装置、介质和计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107423048A true CN107423048A (zh) | 2017-12-01 |
CN107423048B CN107423048B (zh) | 2020-08-07 |
Family
ID=60423469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710245125.4A Active CN107423048B (zh) | 2017-04-14 | 2017-04-14 | 数据收集的方法、装置、介质和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107423048B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108286A (zh) * | 2018-01-03 | 2018-06-01 | 上海众人网络安全技术有限公司 | 数据收集方法和装置、服务器、存储介质 |
CN108228421A (zh) * | 2017-12-26 | 2018-06-29 | 东软集团股份有限公司 | 数据监测方法、装置、计算机及存储介质 |
CN108536507A (zh) * | 2018-03-22 | 2018-09-14 | 上海艺赛旗软件股份有限公司 | 一种图形应用文本化识别方法及系统 |
CN108551411A (zh) * | 2018-04-28 | 2018-09-18 | 努比亚技术有限公司 | 数据采集方法、移动终端及计算机可读存储介质 |
CN108595178A (zh) * | 2018-05-04 | 2018-09-28 | 武汉极意网络科技有限公司 | 一种基于hook的数据采集方法、装置及设备 |
CN108804081A (zh) * | 2018-05-04 | 2018-11-13 | 武汉极意网络科技有限公司 | 一种Fragment中控件识别方法及系统 |
CN109828750A (zh) * | 2019-01-09 | 2019-05-31 | 西藏纳旺网络技术有限公司 | 自动配置数据埋点的方法、装置、电子设备及存储介质 |
CN110020332A (zh) * | 2017-07-25 | 2019-07-16 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN110109700A (zh) * | 2019-05-08 | 2019-08-09 | 吉旗(成都)科技有限公司 | 一种针对iOS App无埋点的数据统计方法及装置 |
CN110263070A (zh) * | 2019-05-30 | 2019-09-20 | 北京创鑫旅程网络技术有限公司 | 事件上报方法及装置 |
CN110674017A (zh) * | 2018-07-03 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 埋点方法、装置及存储介质 |
CN111338885A (zh) * | 2018-12-19 | 2020-06-26 | 千寻位置网络有限公司 | App数据的动态收集、统计方法及装置、数据服务中心 |
CN111382039A (zh) * | 2018-12-28 | 2020-07-07 | 北京微播视界科技有限公司 | 上报用户行为事件的方法、装置、电子设备及存储介质 |
CN111382038A (zh) * | 2018-12-28 | 2020-07-07 | 北京微播视界科技有限公司 | 上报业务数据的方法、装置、电子设备及存储介质 |
CN111552521A (zh) * | 2020-04-26 | 2020-08-18 | 深圳乐信软件技术有限公司 | 应用数据上报方法、装置、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202142053U (zh) * | 2011-05-06 | 2012-02-08 | 广州励丰文化科技股份有限公司 | 基于可编程器件的编码器操作识别处理装置 |
CN103246661A (zh) * | 2012-02-07 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 可视化用户行为收集系统及其方法 |
CN103488793A (zh) * | 2013-10-09 | 2014-01-01 | 韩金倡 | 一种基于信息检索的用户行为监控方法 |
US20160378577A1 (en) * | 2015-04-03 | 2016-12-29 | Oracle International Corporation | Method and system for implementing an operating system hook in a log analytics system |
CN106325945A (zh) * | 2016-08-26 | 2017-01-11 | 北京北信源软件股份有限公司 | 利用视窗操作系统的ie浏览器进行网络数据采集方法 |
-
2017
- 2017-04-14 CN CN201710245125.4A patent/CN107423048B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202142053U (zh) * | 2011-05-06 | 2012-02-08 | 广州励丰文化科技股份有限公司 | 基于可编程器件的编码器操作识别处理装置 |
CN103246661A (zh) * | 2012-02-07 | 2013-08-14 | 阿里巴巴集团控股有限公司 | 可视化用户行为收集系统及其方法 |
CN103488793A (zh) * | 2013-10-09 | 2014-01-01 | 韩金倡 | 一种基于信息检索的用户行为监控方法 |
US20160378577A1 (en) * | 2015-04-03 | 2016-12-29 | Oracle International Corporation | Method and system for implementing an operating system hook in a log analytics system |
CN106325945A (zh) * | 2016-08-26 | 2017-01-11 | 北京北信源软件股份有限公司 | 利用视窗操作系统的ie浏览器进行网络数据采集方法 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020332A (zh) * | 2017-07-25 | 2019-07-16 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN110020332B (zh) * | 2017-07-25 | 2021-06-04 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN108228421A (zh) * | 2017-12-26 | 2018-06-29 | 东软集团股份有限公司 | 数据监测方法、装置、计算机及存储介质 |
CN108108286A (zh) * | 2018-01-03 | 2018-06-01 | 上海众人网络安全技术有限公司 | 数据收集方法和装置、服务器、存储介质 |
CN108536507A (zh) * | 2018-03-22 | 2018-09-14 | 上海艺赛旗软件股份有限公司 | 一种图形应用文本化识别方法及系统 |
CN108551411A (zh) * | 2018-04-28 | 2018-09-18 | 努比亚技术有限公司 | 数据采集方法、移动终端及计算机可读存储介质 |
CN108804081A (zh) * | 2018-05-04 | 2018-11-13 | 武汉极意网络科技有限公司 | 一种Fragment中控件识别方法及系统 |
CN108595178A (zh) * | 2018-05-04 | 2018-09-28 | 武汉极意网络科技有限公司 | 一种基于hook的数据采集方法、装置及设备 |
CN108595178B (zh) * | 2018-05-04 | 2021-10-15 | 武汉极意网络科技有限公司 | 一种基于hook的数据采集方法、装置及设备 |
CN110674017B (zh) * | 2018-07-03 | 2023-04-28 | 百度在线网络技术(北京)有限公司 | 埋点方法、装置及存储介质 |
CN110674017A (zh) * | 2018-07-03 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 埋点方法、装置及存储介质 |
CN111338885A (zh) * | 2018-12-19 | 2020-06-26 | 千寻位置网络有限公司 | App数据的动态收集、统计方法及装置、数据服务中心 |
CN111382038A (zh) * | 2018-12-28 | 2020-07-07 | 北京微播视界科技有限公司 | 上报业务数据的方法、装置、电子设备及存储介质 |
CN111382039A (zh) * | 2018-12-28 | 2020-07-07 | 北京微播视界科技有限公司 | 上报用户行为事件的方法、装置、电子设备及存储介质 |
CN111382038B (zh) * | 2018-12-28 | 2022-01-04 | 北京微播视界科技有限公司 | 上报业务数据的方法、装置、电子设备及存储介质 |
CN109828750A (zh) * | 2019-01-09 | 2019-05-31 | 西藏纳旺网络技术有限公司 | 自动配置数据埋点的方法、装置、电子设备及存储介质 |
CN109828750B (zh) * | 2019-01-09 | 2022-07-19 | 西藏纳旺网络技术有限公司 | 自动配置数据埋点的方法、装置、电子设备及存储介质 |
CN110109700A (zh) * | 2019-05-08 | 2019-08-09 | 吉旗(成都)科技有限公司 | 一种针对iOS App无埋点的数据统计方法及装置 |
CN110263070B (zh) * | 2019-05-30 | 2021-10-08 | 北京创鑫旅程网络技术有限公司 | 事件上报方法及装置 |
CN110263070A (zh) * | 2019-05-30 | 2019-09-20 | 北京创鑫旅程网络技术有限公司 | 事件上报方法及装置 |
CN111552521A (zh) * | 2020-04-26 | 2020-08-18 | 深圳乐信软件技术有限公司 | 应用数据上报方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107423048B (zh) | 2020-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107423048A (zh) | 数据收集的方法、装置、介质和计算设备 | |
CN107895286B (zh) | 理赔金额确定方法及装置、存储介质和电子设备 | |
CN110210227B (zh) | 风险检测方法、装置、设备和存储介质 | |
Scanniello et al. | Clustering support for static concept location in source code | |
Kondo et al. | Code cloning in smart contracts: a case study on verified contracts from the ethereum blockchain platform | |
AU2016216684B2 (en) | Flow analysis instrumentation | |
CN109948345A (zh) | 一种智能合约漏洞检测的方法、系统 | |
Qin et al. | Testmig: Migrating gui test cases from ios to android | |
Asadi et al. | A heuristic-based approach to identify concepts in execution traces | |
Hunt et al. | Java performance | |
US11256712B2 (en) | Rapid design, development, and reuse of blockchain environment and smart contracts | |
CN106471476A (zh) | 用于对经优化代码的编辑并继续以及增强的经优化调试的技术 | |
CN104407980A (zh) | 移动应用自动化测试装置和方法 | |
Biswas et al. | Boa meets python: A boa dataset of data science software in python language | |
CN110287002A (zh) | 一种以太坊虚拟机缺陷检测方法及系统 | |
Pascarella et al. | Self-reported activities of android developers | |
Zhang et al. | BDA: practical dependence analysis for binary executables by unbiased whole-program path sampling and per-path abstract interpretation | |
Ren et al. | Making smart contract development more secure and easier | |
US11573790B2 (en) | Generation of knowledge graphs based on repositories of code | |
Zhan et al. | A systematic assessment on Android third-party library detection tools | |
US20130007722A1 (en) | Method, system and program storage device that provide for automatic programming language grammar partitioning | |
Ren et al. | Scstudio: a secure and efficient integrated development environment for smart contracts | |
CN109816038A (zh) | 一种物联网固件程序分类方法及其装置 | |
Romero et al. | Integration of DevOps practices on a noise monitor system with CircleCI and Terraform | |
US20160306731A1 (en) | Modeling memory use of applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |