CN111309402B - 数据监测及针对应用程序的处理方法、装置及设备 - Google Patents
数据监测及针对应用程序的处理方法、装置及设备 Download PDFInfo
- Publication number
- CN111309402B CN111309402B CN201811508237.5A CN201811508237A CN111309402B CN 111309402 B CN111309402 B CN 111309402B CN 201811508237 A CN201811508237 A CN 201811508237A CN 111309402 B CN111309402 B CN 111309402B
- Authority
- CN
- China
- Prior art keywords
- class
- data
- agent
- preset
- application program
- 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
Images
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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种数据监测方法,包括:获取针对应用程序调用的预设类的第一加载指令;获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;按照所述第二加载指令,缓存所述代理类的类数据;根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。降低了应用程序中既使用代理程序的通用组件进行数据监测,又调用开发包的代码实现数据监测,可能导致类冲突的风险。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种数据监测方法、装置、电子设备及存储设备。本申请同时涉及针对应用程序的处理方法及装置。
背景技术
随着互联网的应用越来越多,数据监测对于各行业都非常重要,例如,数据监测是维护网站及应用程序的可用性的重要手段。数据监测技术也称为埋点,是指针对特定事件或者数据进行监测的技术。现有的数据监测技术,一般通过代理程序(Agent)提供的通用组件进行数据监测,或者,通过监测工具提供的开发包(以下简称开发包,即SoftwareDevelopment Kit,英文缩写为SDK)来实现监测代码进行数据监测。但是,如果同时使用代理程序的通用组件以及调用开发包的代码实现数据监测,由于同为实现数据监测功能,因此容易出现在代理程序中和开发包中包含相同类的风险,从而导致类冲突。因此,如何降低同时使用代理程序的通用组件以及调用开发包的代码实现数据监测带来的类冲突风险是需要解决的问题。
发明内容
本申请提供一种数据监测方法,以降低应用程序中既使用代理程序的通用组件进行数据监测,又调用开发包的代码实现数据监测,可能导致类冲突的风险。
本申请提供一种数据监测方法,包括:
获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类的类数据;
根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
可选的,所述根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象,包括:
根据所述第一加载指令,获取所述预设类的类名和所述缓存的代理类的类名;
如果所述缓存的代理类的类名与所述预设类的类名相同,则使用所述缓存的代理类的类数据,生成所述预设类的类对象。
可选的,所述使用所述预设类的类对象提供的功能,对所述待监测数据进行监测,包括:使用所述预设类的类对象提供的功能,监测由所述应用程序处理的业务逻辑的数据,或者,监测所述应用程序的运行时信息。
可选的,所述代理程序包含用于对所述待监测数据进行监测的通用监测类;所述预设类的类名与所述通用监测类的类名相同;所述使用所述预设类的类对象提供的功能,对所述待监测数据进行监测,包括:通过所述通用监测类的功能对所述待监测数据进行监测。
可选的,所述预设类,为不包含业务功能实现代码的空实现类。
可选的,所述代理程序,还包括功能类,所述功能类包含用于提供预定功能的实现代码;所述代理类用于关联所述开发包的空实现类和所述代理程序的功能类;
所述根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象,包括:
根据所述第一加载指令,获取到所述空实现类的类名;
根据所述空实现类的类名,确定缓存的代理类的类数据;
根据所述代理类的类数据,关联到所述功能类,生成用于提供预定功能的类对象;
将所述提供预定功能的类对象,作为所述预设类的类对象。
可选的,所述按照所述第二加载指令,缓存所述代理类的类数据,包括:
按照所述第二加载指令,利用Java虚拟机字节码管理机制缓存所述代理类的类数据。
可选的,所述方法还包括:接收针对所述应用程序的启动指令;
所述获取针对代理程序的第二加载指令,包括:
根据所述启动指令确定所述代理程序的加载路径;
按照所述加载路径生成所述第二加载指令。
可选的,所述获取针对代理程序的第二加载指令,包括:在所述应用程序运行过程中,接收用于加载所述代理程序的第二加载指令;
所述按照所述第二加载指令,缓存所述代理类的类数据,包括:
根据第二加载指令,加载所述代理程序,缓存所述代理程序的代理类的类数据。
本申请还提供一种数据监测装置,包括:
第一加载指令获取单元,用于获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
第二加载指令确定单元,用于获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
缓存单元,用于按照所述第二加载指令,缓存所述代理类的类数据;
类对象生成单元,用于根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
监测单元,用于使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
本申请还提供一种电子设备,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类的类数据;
根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
本申请还提供一种存储设备,存储有指令,所述指令能够被处理器加载并执行以下步骤:
获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类的类数据;
根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
本申请还提供一种针对应用程序的处理方法,包括:
获取针对应用程序调用的预设类的第一加载指令;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类;
根据所述第一加载指令,获取缓存的代理类的信息,使用所述缓存的代理类的信息,生成所述预设类的类对象;
使用所述类对象,获得所述应用程序的业务功能。
本申请还提供一种针对应用程序的处理方法,包括:
接收针对开发包的导入触发;其中,所述开发包包含空实现类,所述空实现类为不包含业务功能实现代码的类;
接收针对代理程序的导入触发;其中,所述代理程序包含功能类,所述功能类包含预定功能实现代码;
根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序。
可选的,所述代理程序,还包括:用于关联所述开发包和所述代理程序的代理类,其中,所述代理类的类名与所述空实现类的类名相同;
所述根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序,包括:
接收调用所述空实现类的触发;
通过与所述空实现类的类名相同的代理类,关联到所述功能类,生成用于提供业务功能的应用程序。
本申请还提供一种针对应用程序的处理装置,包括:
开发包导入单元,用于接收针对开发包的导入触发;其中,所述开发包包含空实现类,所述空实现类为不包含业务功能实现代码的类;
代理程序导入单元,用于接收针对代理程序的导入触发;其中,所述代理程序包含功能类,所述功能类包含预定功能实现代码;
应用程序生成单元,用于根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序。
与现有技术相比,本申请具有以下优点:
本申请提供的数据监测方法,通过缓存代理程序提供的被应用程序调用的代理类的类数据,使用缓存的代理类的类数据,为应用程序调用的开发包的预设类生成类对象,通过预设类的类对象提供的功能进行数据监测,避免了调用开发包的预设类和代理程序的代理类存在冲突的风险,从而解决了同时使用代理程序的通用组件以及调用开发包的代码实现数据监测可能带来的类冲突问题。进一步的,开发包的预设类为空实现类,从而在应用程序中引入开发包时不需要引入全量包,提升了应用程序的性能。
附图说明
图1是本申请第一实施例提供的数据监测方法的处理流程图;
图2是本申请第二实施例提供的数据监测装置示意图;
图3是本申请提供的电子设备示意图;
图4是本申请第五实施例提供的针对应用程序的处理方法的处理流程图;
图5是本申请第六实施例提供的针对应用程序的处理方法的处理流程图;
图6是本申请第七实施例提供的针对应用程序的处理装置示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种数据监测方法、装置、电子设备及存储设备。本申请同时涉及针对应用程序的处理方法及装置。在下面的实施例中逐一进行详细说明。
本申请第一实施例提供一种数据监测方法。
为了便于理解,首先对应用程序中的数据监测的概念及场景进行解释。
所谓数据监测,是指针对应用程序的业务数据以及应用程序的执行活动进行数据采集及处理。实际应用中,常通过在应用程序的具体的类和方法中进行监测点的埋设而实现数据监测,因此数据监测技术也称为“埋点”。数据监测的实际应用场景丰富,例如,用于采集应用程序中的事件或数据,或者在应用程序中进行故障注入,或者,用于对应用程序进行限流降级。所谓故障注入指在应用程序的业务中注入故障,目的是进行破坏性测试。所谓限流降级指为防止高并发访问可能使得资源耗尽导致服务不可用,从而对访问的流量进行限制,即采取措施上游访问进行屏蔽,确保下游业务处理能力。目前,可以通过代理程序(Agent)提供的通用组件进行通用数据监测,也可以通过在应用程序中调用开发包提供的类和方法生成的监测代码进行专有数据监测。
为了使得应用程序提供准确的监测功能,根据本申请至少一个实施例,提供一种数据监测方法,通过缓存代理程序的代理类的类数据,使用所述代理类的类数据生成应用程序中调用的预设类的类对象,针对应用程序中的待监测数据进行数据监测。如果应用程序既可以使用代理程序的通用数据监测功能,又能够使用根据开发包生成的专有数据监测功能,则可以降低由于代理程序的通用数据监测功能和使用开发包生成的专有数据监测功能在应用程序中共存而可能出现类冲突的风险,使得应用程序提供准确的数据监测功能。
由于Java作为适合于网络应用程序开发的编程语言,广泛的应用于互联网行业的应用程序,因此下述以Java应用程序为例对所述数据监测方法进行说明。需要说明的是,所述数据监测方法,不局限于Java应用程序,也适用于其他计算机语言的应用程序的数据监测。
Java应用程序以字节码运行于JVM(Java Virtual Machine,即Java虚拟机)上。JVM运行于操作系统之上,提供Java应用程序的运行环境,加载Java应用程序的类,构造对应的类对象,类对象被JVM使用,从而执行Java应用程序的功能。本申请实施例提供的数据监测方法,可以部署于JVM,由JVM执行所述方法。
在Java应用程序运行环境中对应的代理程序为Java代理程序(Java Agent),Java代理程序对Java应用程序进行监测和协助。例如,Java代理程序提供用于在Java应用程序运行中进行通用数据监测的通用组件;Java代理程序能够在Java应用程序中埋设监测和修改点,通过这些监测和修改点,可以对Java应用程序进行数据监测,或者在Java应用程序运行中动态修改Java应用程序的类。对应Java应用程序的监测工具的开发包(Java SDK),提供被Java应用程序调用的类和方法,Java应用程序调用开发包的类和方法实现预定程序功能,包括实现专有监测功能。
以下结合图1对本申请实施例提供的一种数据监测方法进行说明。
图1所示的数据监测方法,包括:步骤S101至步骤S105。
步骤S101,获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据。
所述待监测数据至少包含下述任一数据:应用程序处理的业务数据、应用程序运行过程中产生的中间数据、表征应用程序的运行情况的运行数据。
所述预设类是被应用程序调用的由开发包提供类定义的具体的类。
本步骤是获取针对所述预设类的第一加载指令,以备后续步骤中将所述预设类装载到JVM中。
例如,在生成Java应用程序时引入开发包,使用开发包的预设类按照预定规则生成Java应用程序代码;当应用程序启动后,JVM按照针对各个类的加载指令将应用程序的类的字节码装载到内存中,生成JVM可以使用的描述类结构的元信息对象,通过元信息对象获取类的结构信息,例如构造函数、属性、方法等,调用类对象的功能。
再如,应用程序调用开发包中的类和方法往某个地址发送POST请求,具体包括:开发包中封装http请求的类,该http请求类中封装了HttpClient.post方法,则在生成应用程序时引入开发包,使用所述http及该类的HttpClient.post方法生成应用程序包括的往请某个地址发送POST请求的代码;在应用程序运行时调用到预设类为所述http请求类,则获取针对所述预设类的第一加载指令,后续根据所述第一加载指令将http请求类装载到内存中。
步骤S102,获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类。
所述第二加载指令包括针对代理程序的加载指令。所述代理程序,包括功能类和代理类,所述功能类包含用于提供预定功能的实现代码,即功能类为按照应用程序对代理程序的业务需求提供的类,例如实现故障注入和限流降级的具体代码构成的核心业务类。所谓代理类,为用于关联所述开发包或应用程序与所述代理程序的类,例如,所述代理类可以用于关联所述开发包的预设类和所述代理程序的功能类。
本申请实施例提供的一个具体实施方式中,可以在应用程序启动时利用Java字节码管理机制加载代理程序,例如,利用Java Instrumentation机制。包括在接收到启动应用程序的命令中指定代理程序,例如通过使用javaagent参数指定Java代理程序的路径,JVM在加载应用程序的过程中调用应用程序的主函数(main函数)之前调用代理程序的预执行函数(premain函数。在执行代理程序时还包括调用代理程序提供的类和方法。第二加载指令至少包括下述任一指令:加载预执行函数的指令、加载代理程序提供的类和方法的指令。具体的,包括下述处理:
接收针对所述应用程序的启动指令;
所述获取针对代理程序的第二加载指令,包括:
根据所述启动指令确定所述代理程序的加载路径;
按照所述加载路径生成所述第二加载指令。
本申请实施例提供的另一个具体实施方式中,可以在应用程序运行过程中利用Java字节码管理机制加载代理程序。包括在JVM运行应用程序过程中,接收启动代理程序的命令,将代理程序挂载到JVM。例如,将代理程序的agentmain函数挂载到JVM,通过agentmain函数执行代理程序的类和方法。具体的,包括为:在所述应用程序运行过程中,接收用于加载所述代理程序的第二加载指令。
步骤S103,按照所述第二加载指令,缓存所述代理类的类数据。
本步骤是按照所述第二加载指令,缓存所述代理类的类数据,具体包括:
按照所述第二加载指令,利用Java虚拟机字节码管理机制缓存所述代理类的类数据。
本申请实施例中,可以在所述应用程序运行过程中,接收用于加载所述代理程序的第二加载指令;根据第二加载指令,加载所述代理程序,缓存所述代理程序的代理类的类数据。
步骤S104,根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象。
所述类对象,是指将类数据装载到内存生成的可以直接被使用的对象组件。例如,JVM根据加载指令查找并导入Java应用程序或者Java代理程序的字节码形的类数据,将类数据装载到内存,并在JVM中生成描述所述类数据的类结构的元信息对象,通过该元信息对象可以使用所述类数据;JVM对加载到内存中的类数据合并到JVM运行环境中,校验所述类数据的正确性、转换解析和初始化,生成可以被JVM直接使用的Java对象组件,即为类对象,其中,转换解析为将符号引用转换为直接引用,即解析为通过内存地址引用。
优选的,通过下述处理生成所述预设类的类对象:
根据所述第一加载指令,获取所述预设类的类名和所述缓存的代理类的类名;
如果所述缓存的代理类的类名与所述预设类的类名相同,则使用所述缓存的代理类的类数据,生成所述预设类的类对象。
本申请实施例中,所述预设类,为不包含业务功能实现代码的空实现类。所述根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象,包括:
根据所述第一加载指令,获取到所述空实现类的类名;
根据所述空实现类的类名,确定缓存的代理类的类数据;
根据所述代理类的类数据,关联到所述功能类,生成用于提供预定功能的类对象;
将所述提供预定功能的类对象,作为所述预设类的类对象。
应用程序引入开发包,使用开发包提供的类和方法实现预定功能,对于开发包提供的一些预设类不包括具体实现代码,而只是提供类的定义,在应用程序运行过程中加载到该预设类时,再具体查找到对应的包含具体实现的类数据,能够减少在应用程序中国引入的代码量,提高效率。
步骤S105,使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
优选的,所述应用程序中调用开发包提供的预设类,实现对待检测数据进行监测的功能。具体的,包括:使用所述预设类的类对象提供的功能,监测由所述应用程序处理的业务逻辑的数据,或者,监测所述应用程序的运行时信息。
本申请实施例的一个具体实施方式中,所述代理程序包含用于对所述待监测数据进行监测的通用监测类;所述预设类的类名与所述通用监测类的类名相同;所述使用所述预设类的类对象提供的功能,对所述待监测数据进行监测,包括:通过所述通用监测类的功能对所述待监测数据进行监测。
另外,实际应用中,通过代理程序提供的具有通用监测功能的通用组件进行通用数据监测的功能,可以与使用开发包提供的类和方法实现的专有数据监测功能在应用程序中共存。这种情形下,所述预设类的类名为不同于通用组件对应的监测类的其他类名。
与本申请第一实施例相对应,本申请第二实施例还提供了一种数据监测装置。参照图2,其示出了根据本申请第二实施例提供的一种数据监测装置示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见方法实施例的对应说明即可。
本申请第二实施例提供一种数据监测装置,包括:
第一加载指令获取单元201,用于获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
第二加载指令确定单元202,用于获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
缓存单元203,用于按照所述第二加载指令,缓存所述代理类的类数据;
类对象生成单元204,用于根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
监测单元205,用于使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
其中,所述类对象生成单元204,具体用于:
根据所述第一加载指令,获取所述预设类的类名和所述缓存的代理类的类名;
如果所述缓存的代理类的类名与所述预设类的类名相同,则使用所述缓存的代理类的类数据,生成所述预设类的类对象。
其中,所述监测单元205,具体用于:使用所述预设类的类对象提供的功能,监测由所述应用程序处理的业务逻辑的数据,或者,监测所述应用程序的运行时信息。
其中,所述代理程序包含用于对所述待监测数据进行监测的通用监测类;所述预设类的类名与所述通用监测类的类名相同;所述监测单元205,具体用于:通过所述通用监测类的功能对所述待监测数据进行监测。
其中,所述预设类,为不包含业务功能实现代码的空实现类。
其中,所述预设类,由开发包提供类定义。
其中,所述代理程序,还包括功能类,所述功能类包含用于提供预定功能的实现代码;所述代理类用于关联所述开发包的空实现类和所述代理程序的功能类;
所述类对象生成单元204,具体用于:
根据所述第一加载指令,获取到所述空实现类的类名;
根据所述空实现类的类名,确定缓存的代理类的类数据;
根据所述代理类的类数据,关联到所述功能类,生成用于提供预定功能的类对象;
将所述提供预定功能的类对象,作为所述预设类的类对象。
其中,所述缓存单元203,具体用于:按照所述第二加载指令,利用Java虚拟机字节码管理机制缓存所述代理类的类数据。
其中,所述装置,还包括启动单元,所述启动单元用于:接收针对所述应用程序的启动指令;相应的,所述第二加载指令确定单元202,具体用于:
根据所述启动指令确定所述代理程序的加载路径;
按照所述加载路径生成所述第二加载指令。
其中,所述第二加载指令确定单元202,具体用于:在所述应用程序运行过程中,接收用于加载所述代理程序的第二加载指令;相应的,所述缓存单元203具体用于:根据第二加载指令,加载所述代理程序,缓存所述代理程序的代理类的类数据。
以上述实施例为基础,本申请第三实施例还提供了一种用于实现所述数据监测方法的电子设备,参照图3,其示出了本实施例提供的一种电子设备的示意图。本申请第三实施例提供的所述电子设备描述得比较简单,相关的部分请参见上述实施例的对应说明即可。
本申请第三实施例提供一种电子设备,包括:
存储器301,以及处理器302;
所述存储器301用于存储计算机可执行指令,所述处理器302用于执行所述计算机可执行指令:
获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类的类数据;
根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
可选的,所述处理器302还用于执行下述计算机可执行指令:根据所述第一加载指令,获取所述预设类的类名和所述缓存的代理类的类名;
如果所述缓存的代理类的类名与所述预设类的类名相同,则使用所述缓存的代理类的类数据,生成所述预设类的类对象。
可选的,所述处理器302还用于执行下述计算机可执行指令:
使用所述预设类的类对象提供的功能,监测由所述应用程序处理的业务逻辑的数据,或者,监测所述应用程序的运行时信息。
可选的,所述代理程序包含用于对所述待监测数据进行监测的通用监测类;所述预设类的类名与所述通用监测类的类名相同;所述处理器302还用于执行下述计算机可执行指令:通过所述通用监测类的功能对所述待监测数据进行监测。
可选的,所述预设类,为不包含业务功能实现代码的空实现类。
可选的,所述预设类由开发包提供类定义。
可选的,所述代理程序,还包括功能类,所述功能类包含用于提供预定功能的实现代码;所述代理类用于关联所述开发包的空实现类和所述代理程序的功能类;所述处理器302还用于执行下述计算机可执行指令:
根据所述第一加载指令,获取到所述空实现类的类名;
根据所述空实现类的类名,确定缓存的代理类的类数据;
根据所述代理类的类数据,关联到所述功能类,生成用于提供预定功能的类对象;
将所述提供预定功能的类对象,作为所述预设类的类对象。
可选的,所述处理器302还用于执行下述计算机可执行指令:按照所述第二加载指令,利用Java虚拟机字节码管理机制缓存所述代理类的类数据。
可选的,所述处理器302还用于执行下述计算机可执行指令:
接收针对所述应用程序的启动指令;
根据所述启动指令确定所述代理程序的加载路径;
按照所述加载路径生成所述第二加载指令。
可选的,所述处理器302还用于执行下述计算机可执行指令:在所述应用程序运行过程中,接收用于加载所述代理程序的第二加载指令;
根据第二加载指令,加载所述代理程序,缓存所述代理程序的代理类的类数据。
本申请第四实施例还提供一种用于所述数据监测方法的存储设备,其描述得比较简单,相关的部分请参见上述实施例的对应说明即可。
本申请第四实施例提供一种存储设备,存储有指令,所述指令能够被处理器加载并执行以下步骤:
获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类的类数据;
根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
以上述实施例为基础,本申请第五实施例提供一种针对应用程序的处理方法,请参考图4,图4示出了所述针对应用程序的处理方法的处理流程图。第五实施例描述得比较简单,相关的部分请参见上述实施例的对应说明即可。
实际应用中,常通过在应用程序的具体的类和方法中进行监测点和修改点的埋设来实现对应用程序的类进行动态修改或数据监测。在代理程序提供的通用组件中预设修改点称为通用修改点,在使用开发包提供的类和方法实现的应用程序中预设修改点称为专有修改点,通用修改点和专有修改点在应用程序运行过程中可以共存。例如,代理程序提供通用的http请求类,应用程序调用http请求类的POST方法发送POST请求,如果需要在发送POST请求时注入返回500错误码,则可以在代理程序的http请求类的POST方法处增加通用修改点,返回500错误码。再如,应用程序调用了开发包的类实现了下单功能,如果需要在调用下单时注入库存不足的异常,则可以在应用程序调用库存的方法处增加专有修改点,返回库存不足的值。
为了使得应用程序的类进行动态修改或提供准确的监测功能,根据本申请至少一个实施例,提供一种针对应用程序的处理方法,通过缓存代理程序的代理类的类数据,使用所述代理类的类数据生成应用程序中调用的预设类的类对象,使用该类对象获得应用程序提供的业务功能,从而完成应用程序的类的动态修改。
由于Java作为适合于网络应用程序开发的编程语言,广泛的应用于互联网行业的应用程序,因此下述以Java应用程序为例对所述针对应用程序的处理方法进行说明。需要说明的是,所述方法,不局限于Java应用程序,也适用于其他计算机语言的应用程序的处理。
Java应用程序以字节码运行于JVM(Java Virtual Machine,即Java虚拟机)上。JVM运行于操作系统之上,提供Java应用程序的运行环境,加载Java应用程序的类,构造对应的类对象,类对象被JVM使用,从而执行Java应用程序的功能。本申请实施例提供的针对应用程序的处理方法,可以部署于JVM,由JVM执行所述方法。
在Java应用程序运行环境中对应的代理程序为Java代理程序(Java Agent),Java代理程序对Java应用程序进行监测和协助。例如,Java代理程序能够在Java应用程序中埋设通用的监测和修改点,通过这些监测和修改点,可以对Java应用程序进行数据监测,或者在Java应用程序运行中动态修改Java应用程序的类。对应Java应用程序的监测工具的开发包(Java SDK),提供被Java应用程序调用的类和方法,Java应用程序调用开发包的类和方法实现预定程序功能。
第五实施例所示的针对应用程序的处理方法,包括:步骤S401至S405。
步骤S401,获取针对应用程序调用的预设类的第一加载指令。
所述预设类是被应用程序调用的由开发包提供的具体的类,例如,由开发包提供类定义。
本步骤是获取针对所述预设类的第一加载指令,以备后续步骤中将所述预设类装载到JVM中。
例如,在生成Java应用程序时引入开发包,使用开发包的预设类按照预定规则生成Java应用程序代码;当应用程序启动后,JVM按照针对各个类的加载指令将应用程序的类的字节码装载到内存中,生成JVM可以使用的描述类结构的元信息对象,通过元信息对象获取类的结构信息,例如构造函数、属性、方法等,调用类对象的功能。
再如,应用程序调用开发包中的类和方法往某个地址发送POST请求,具体包括:开发包中封装http请求的类,该http请求类中封装了HttpClient.post方法,则在生成应用程序时引入开发包,使用所述http及该类的HttpClient.post方法生成应用程序包括的往请某个地址发送POST请求的代码;在应用程序运行时调用到预设类为所述http请求类,则获取针对所述预设类的第一加载指令,后续根据所述第一加载指令将http请求类装载到内存中。
步骤S402,获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类。
所述第二加载指令包括针对代理程序的加载指令。
所述代理程序,包括功能类和代理类,所述功能类包含用于提供预定功能的实现代码,即功能类为按照应用程序对代理程序的业务需求提供的类,例如实现故障注入和限流降级的具体代码构成的核心业务类。所谓代理类,为用于关联所述开发包或应用程序与所述代理程序的类,例如,所述代理类可以用于关联所述开发包的预设类和所述代理程序的功能类。
本申请实施例提供的一个具体实施方式中,可以在应用程序启动时利用Java字节码管理机制加载代理程序,例如,利用Java Instrumentation机制。包括在接收到启动应用程序的命令中指定代理程序,例如通过使用javaagent参数指定Java代理程序的路径,JVM在加载应用程序的过程中调用应用程序的主函数(main函数)之前调用代理程序的预执行函数(premain函数。在执行代理程序时还包括调用代理程序提供的类和方法。第二加载指令至少包括下述任一指令:加载预执行函数的指令、加载代理程序提供的类和方法的指令。具体的,包括下述处理:
接收针对所述应用程序的启动指令;
所述获取针对代理程序的第二加载指令,包括:
根据所述启动指令确定所述代理程序的加载路径;
按照所述加载路径生成所述第二加载指令。
本申请实施例提供的另一个具体实施方式中,可以在应用程序运行过程中利用Java字节码管理机制加载代理程序。包括在JVM运行应用程序过程中,接收启动代理程序的命令,将代理程序挂载到JVM。例如,将代理程序的agentmain函数挂载到JVM,通过agentmain函数执行代理程序的类和方法。具体的,包括为:在所述应用程序运行过程中,接收用于加载所述代理程序的第二加载指令。
步骤S403,按照所述第二加载指令,缓存所述代理类。
本步骤是按照所述第二加载指令,缓存所述代理类的类数据,具体包括:
按照所述第二加载指令,利用Java虚拟机字节码管理机制缓存所述代理类的类数据。
本申请实施例中,可以在所述应用程序运行过程中,接收用于加载所述代理程序的第二加载指令;根据第二加载指令,加载所述代理程序,缓存所述代理程序的代理类的类数据。
步骤S404,根据所述第一加载指令,获取缓存的代理类的信息,使用所述缓存的代理类的信息,生成所述预设类的类对象。
所述类对象,是指将类数据装载到内存生成的可以直接被使用的对象组件。例如,JVM根据加载指令查找并导入Java应用程序或者Java代理程序的字节码形的类数据,将类数据装载到内存,并在JVM中生成描述所述类数据的类结构的元信息对象,通过该元信息对象可以使用所述类数据;JVM对加载到内存中的类数据合并到JVM运行环境中,校验所述类数据的正确性、转换解析和初始化,生成可以被JVM直接使用的Java对象组件,即为类对象,其中,转换解析为将符号引用转换为直接引用,即解析为通过内存地址引用。
优选的,通过下述处理生成所述预设类的类对象:
根据所述第一加载指令,获取所述预设类的类名和所述缓存的代理类的类名;
如果所述缓存的代理类的类名与所述预设类的类名相同,则使用所述缓存的代理类的类数据,生成所述预设类的类对象。
本申请实施例中,所述预设类,为不包含业务功能实现代码的空实现类。所述根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象,包括:
根据所述第一加载指令,获取到所述空实现类的类名;
根据所述空实现类的类名,确定缓存的代理类的类数据;
根据所述代理类的类数据,关联到所述功能类,生成用于提供预定功能的类对象;
将所述提供预定功能的类对象,作为所述预设类的类对象。
应用程序引入开发包,使用开发包提供的类和方法实现预定功能,对于开发包提供的一些预设类不包括具体实现代码,而只是提供类的定义,在应用程序运行过程中加载到该预设类时,再具体查找到对应的包含具体实现的类数据,能够减少在应用程序中国引入的代码量,提高效率。
步骤S405,使用所述类对象,获得所述应用程序的业务功能。
使用缓存的代理类的类数据生成与所述代理类的类名相同的类的类对象,可以避免类名相同导致的类冲突的问题。
以上述实施例为基础,本申请第六实施例提供另一种针对应用程序的处理方法,请参考图5,图5示出了所述针对应用程序的处理方法的处理流程图。第六实施例描述得比较简单,相关的部分请参见上述实施例的对应说明即可。
实际应用中,常通过在应用程序的具体的类和方法中进行监测点和修改点的埋设来实现对应用程序的类进行动态修改或数据监测。在代理程序提供的通用组件中预设修改点或监测点称为通用埋点,在使用开发包提供的类和方法实现的应用程序中预设修改点称为专有埋点,通用埋点和专有埋点,在应用程序运行过程中存在共存场景。为了使得所述共存场景下,能够应用程序的类进行准确的动态修改或提供准确的监测功能,根据本申请至少一个实施例,提供一种针对应用程序的处理方法,由开发包包括空实现类,由代理程序包括预定功能实现代码的功能类,根据开发包的空实现类和代理程序的功能类,生成用于提供业务功能的应用程序,避免出现类冲突的问题。
由于Java作为适合于网络应用程序开发的编程语言,广泛的应用于互联网行业的应用程序,因此下述以Java应用程序为例对所述针对应用程序的处理方法进行说明。需要说明的是,所述方法,不局限于Java应用程序,也适用于其他计算机语言的应用程序的处理。
本申请实施例提供的针对应用程序的处理方法,可以部署于Java应用程序开发端。
第六实施例所示的针对应用程序的处理方法,包括:步骤S501至S503。
S501,接收针对开发包的导入触发;其中,所述开发包包含空实现类,所述空实现类为不包含业务功能实现代码的类。
本申请实施例中,将所述开发包导入应用程序中,使用所述开发包提供的方法和类按照预定规则生成所述应用程序。其中,对于开发包提供的一些预设类不包括具体实现代码,而只提供类的定义,在应用程序运行过程中加载到该预设类时,再具体查找到对应的包含具体实现的类数据,能够减少在应用程序中国引入的代码量,提高效率。
S502,接收针对代理程序的导入触发;其中,所述代理程序包含功能类,所述功能类包含预定功能实现代码。
所述功能类包含用于提供预定功能的实现代码,即功能类为按照应用程序对代理程序的业务需求提供的类,例如实现故障注入和限流降级的具体代码构成的核心业务类。
本申请实施例中,所述代理程序,还包括代理类。所述代理类,为用于关联所述开发包或应用程序与所述代理程序的类,优选的,所述代理类用于关联所述开发包的空实现类和所述代理程序的功能类。
S503,根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序。
本申请实施例中,所述代理类的类名与所述空实现类的类名相同,即通过相同类名将应用程序调用的开发包的类与代理程序的功能类关联起来,从而可以避免开发包提供的类可能与代理程序的类存在冲突的风险。具体的,所述根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序,包括:
接收调用所述空实现类的触发;
通过与所述空实现类的类名相同的代理类,关联到所述功能类,生成用于提供业务功能的应用程序。
与第六实施例相对应,本申请第七实施例提供一种针对应用程序的处理装置,请参考图6,图6示出了所述针对应用程序的处理装置示意图。第七实施例描述得比较简单,相关的部分请参见上述实施例的对应说明即可。
第七实施例所示的针对应用程序的处理装置,包括:
开发包导入单元601,用于接收针对开发包的导入触发;其中,所述开发包包含空实现类,所述空实现类为不包含业务功能实现代码的类;
代理程序导入单元602,用于接收针对代理程序的导入触发;其中,所述代理程序包含功能类,所述功能类包含预定功能实现代码;
应用程序生成单元603,用于根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序。
可选的,所述代理程序,还包括:用于关联所述开发包和所述代理程序的代理类,其中,所述代理类的类名与所述空实现类的类名相同;
所述应用程序生成单元603,具体用于:
接收调用所述空实现类的触发;
通过与所述空实现类的类名相同的代理类,关联到所述功能类,生成用于提供业务功能的应用程序。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (15)
1.一种数据监测方法,其特征在于,包括:
获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类的类数据;
根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象,包括:
根据所述第一加载指令,获取所述预设类的类名和所述缓存的代理类的类名;
如果所述缓存的代理类的类名与所述预设类的类名相同,则使用所述缓存的代理类的类数据,生成所述预设类的类对象。
3.根据权利要求2所述的方法,其特征在于,所述使用所述预设类的类对象提供的功能,对所述待监测数据进行监测,包括:
使用所述预设类的类对象提供的功能,监测由所述应用程序处理的业务逻辑的数据,或者,监测所述应用程序的运行时信息。
4.根据权利要求2所述的方法,其特征在于,所述代理程序包含用于对所述待监测数据进行监测的通用监测类;所述预设类的类名与所述通用监测类的类名相同;所述使用所述预设类的类对象提供的功能,对所述待监测数据进行监测,包括:通过所述通用监测类的功能对所述待监测数据进行监测。
5.根据权利要求1所述的方法,其特征在于,所述预设类,为不包含业务功能实现代码的空实现类。
6.根据权利要求5所述的方法,其特征在于,所述代理程序,还包括功能类,所述功能类包含用于提供预定功能的实现代码;所述代理类用于关联开发包的空实现类和所述代理程序的功能类;
所述根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象,包括:
根据所述第一加载指令,获取到所述空实现类的类名;
根据所述空实现类的类名,确定缓存的代理类的类数据;
根据所述代理类的类数据,关联到所述功能类,生成用于提供预定功能的类对象;
将所述提供预定功能的类对象,作为所述预设类的类对象。
7.根据权利要求1所述的方法,其特征在于,所述按照所述第二加载指令,缓存所述代理类的类数据,包括:
按照所述第二加载指令,利用Java虚拟机字节码管理机制缓存所述代理类的类数据。
8.根据权利要求7所述的方法,其特征在于,还包括:
接收针对所述应用程序的启动指令;
所述获取针对代理程序的第二加载指令,包括:
根据所述启动指令确定所述代理程序的加载路径;
按照所述加载路径生成所述第二加载指令。
9.根据权利要求1所述的方法,其特征在于,所述获取针对代理程序的第二加载指令,包括:在所述应用程序运行过程中,接收用于加载所述代理程序的第二加载指令;
所述按照所述第二加载指令,缓存所述代理类的类数据,包括:
根据第二加载指令,加载所述代理程序,缓存所述代理程序的代理类的类数据。
10.一种数据监测装置,其特征在于,包括:
第一加载指令获取单元,用于获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
第二加载指令确定单元,用于获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
缓存单元,用于按照所述第二加载指令,缓存所述代理类的类数据;
类对象生成单元,用于根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
监测单元,用于使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
11.一种电子设备,其特征在于,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类的类数据;
根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
12.一种存储设备,其特征在于,存储有指令,所述指令能够被处理器加载并执行以下步骤:
获取针对应用程序调用的预设类的第一加载指令;其中,所述应用程序用于提供待监测数据;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类的类数据;
根据所述第一加载指令,使用缓存的代理类的类数据,生成所述预设类的类对象;
使用所述预设类的类对象提供的功能,对所述待监测数据进行监测。
13.一种针对应用程序的处理方法,其特征在于,包括:
获取针对应用程序调用的预设类的第一加载指令;
获取针对代理程序的第二加载指令;其中,所述代理程序包含被所述应用程序调用的代理类;
按照所述第二加载指令,缓存所述代理类;
根据所述第一加载指令,获取缓存的代理类的信息,使用所述缓存的代理类的信息,生成所述预设类的类对象;
使用所述类对象,获得所述应用程序的业务功能。
14.一种针对应用程序的处理方法,其特征在于,包括:
接收针对开发包的导入触发;其中,所述开发包包含空实现类,所述空实现类为不包含业务功能实现代码的类;
接收针对代理程序的导入触发;其中,所述代理程序包含功能类以及用于关联所述开发包和所述代理程序的代理类,所述功能类包含预定功能实现代码,所述代理类的类名与所述空实现类的类名相同;
根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序;
其中,所述根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序,包括:接收调用所述空实现类的触发;通过与所述空实现类的类名相同的代理类,关联到所述功能类,生成用于提供业务功能的应用程序。
15.一种针对应用程序的处理装置,其特征在于,包括:
开发包导入单元,用于接收针对开发包的导入触发;其中,所述开发包包含空实现类,所述空实现类为不包含业务功能实现代码的类;
代理程序导入单元,用于接收针对代理程序的导入触发;其中,所述代理程序包含功能类以及用于关联所述开发包和所述代理程序的代理类,所述功能类包含预定功能实现代码,所述代理类的类名与所述空实现类的类名相同;
应用程序生成单元,用于根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序;
其中,所述根据所述开发包的空实现类和所述代理程序的功能类,生成用于提供业务功能的应用程序,包括:接收调用所述空实现类的触发;通过与所述空实现类的类名相同的代理类,关联到所述功能类,生成用于提供业务功能的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811508237.5A CN111309402B (zh) | 2018-12-11 | 2018-12-11 | 数据监测及针对应用程序的处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811508237.5A CN111309402B (zh) | 2018-12-11 | 2018-12-11 | 数据监测及针对应用程序的处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111309402A CN111309402A (zh) | 2020-06-19 |
CN111309402B true CN111309402B (zh) | 2023-06-27 |
Family
ID=71154347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811508237.5A Active CN111309402B (zh) | 2018-12-11 | 2018-12-11 | 数据监测及针对应用程序的处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309402B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113315748B (zh) * | 2021-03-18 | 2023-04-18 | 阿里巴巴新加坡控股有限公司 | 通信方法及装置 |
CN112995339B (zh) * | 2021-04-16 | 2021-08-03 | 湖南联智科技股份有限公司 | 一种基于动态字节码技术自动适配传感器数据解析方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831043A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 应用程序监控方法和装置 |
CN104303156A (zh) * | 2012-05-14 | 2015-01-21 | 高通股份有限公司 | 监测移动多处理器平台中的行为特征 |
CN105630463A (zh) * | 2014-10-28 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 用于检测jar包冲突的方法及装置 |
CN107577820A (zh) * | 2017-09-30 | 2018-01-12 | 中国联合网络通信集团有限公司 | 数据处理的方法、设备及系统 |
CN108701040A (zh) * | 2016-02-09 | 2018-10-23 | 英特尔公司 | 用户级别线程暂停的方法、设备、和指令 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9742559B2 (en) * | 2013-01-22 | 2017-08-22 | Qualcomm Incorporated | Inter-module authentication for securing application execution integrity within a computing device |
US9721092B2 (en) * | 2014-03-27 | 2017-08-01 | International Busines Machines Corporation | Monitoring an application in a process virtual machine |
-
2018
- 2018-12-11 CN CN201811508237.5A patent/CN111309402B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831043A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 应用程序监控方法和装置 |
CN104303156A (zh) * | 2012-05-14 | 2015-01-21 | 高通股份有限公司 | 监测移动多处理器平台中的行为特征 |
CN105630463A (zh) * | 2014-10-28 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 用于检测jar包冲突的方法及装置 |
CN108701040A (zh) * | 2016-02-09 | 2018-10-23 | 英特尔公司 | 用户级别线程暂停的方法、设备、和指令 |
CN107577820A (zh) * | 2017-09-30 | 2018-01-12 | 中国联合网络通信集团有限公司 | 数据处理的方法、设备及系统 |
Non-Patent Citations (2)
Title |
---|
田立勤,林闯.报文分类技术的研究及其应用.计算机研究与发展.2003,(第06期),全文. * |
蒋煦 ; 张慧翔 ; 慕德俊 ; .一种动态监测安卓应用程序的方法.西北工业大学学报.2016,(第06期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111309402A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8458681B1 (en) | Method and system for optimizing the object code of a program | |
CN110704037B (zh) | 一种规则引擎实现方法及装置 | |
US7275239B2 (en) | Run-time wait tracing using byte code insertion | |
US8112388B2 (en) | Dependency processing of computer files | |
US9767007B2 (en) | Efficient method data recording | |
US8522213B2 (en) | Debugger and debugging methods using breakpoints conditioned on the static identity of data | |
US8429632B1 (en) | Method and system for debugging merged functions within a program | |
US8364691B2 (en) | Dynamic query-based debug point mapper | |
CN111309402B (zh) | 数据监测及针对应用程序的处理方法、装置及设备 | |
CN107977260B (zh) | 任务提交方法及装置 | |
CN111309432B (zh) | 一种故障演练方法、装置及系统 | |
CN114253587A (zh) | 应用程序更新方法、装置、电子设备及可读存储介质 | |
CN112445706A (zh) | 程序异常代码获取方法、装置、电子设备以及存储介质 | |
US9639381B2 (en) | Sharing applications in a java virtual machine | |
US20210036944A1 (en) | Ranking service implementations for a service interface | |
US8856763B2 (en) | Compiler optimization based on collectivity analysis | |
US9064042B2 (en) | Instrumenting computer program code by merging template and target code methods | |
CN107301097B (zh) | 一种调用java对象、java对象的引用地址信息的存储方法及装置 | |
CN115705294B (zh) | 用于获取函数调用信息的方法、装置、电子设备和介质 | |
US12072983B2 (en) | Language-independent application monitoring through aspect-oriented programming | |
CN112650502A (zh) | 批处理任务处理方法、装置、计算机设备和存储介质 | |
CN116820959A (zh) | 一种在线调试方法及装置 | |
He et al. | A Container-Usage-Pattern-Based Context Debloating Approach for Object-Sensitive Pointer Analysis | |
CN111399927A (zh) | 应用共享Class文件的方法及装置、计算设备 | |
CN114594978A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |