CN107291586B - 一种应用程序的分析方法和装置 - Google Patents

一种应用程序的分析方法和装置 Download PDF

Info

Publication number
CN107291586B
CN107291586B CN201610203095.6A CN201610203095A CN107291586B CN 107291586 B CN107291586 B CN 107291586B CN 201610203095 A CN201610203095 A CN 201610203095A CN 107291586 B CN107291586 B CN 107291586B
Authority
CN
China
Prior art keywords
function
application program
software
hardware
running
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
Application number
CN201610203095.6A
Other languages
English (en)
Other versions
CN107291586A (zh
Inventor
王映理
吴进发
黄石柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201610203095.6A priority Critical patent/CN107291586B/zh
Publication of CN107291586A publication Critical patent/CN107291586A/zh
Application granted granted Critical
Publication of CN107291586B publication Critical patent/CN107291586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption

Abstract

本发明公开了一种应用程序的分析方法和装置,用于通过移动终端本身进行应用程序的分析,提高应用程序分析的效率。本发明实施例提供一种应用程序的分析方法,包括:从移动终端中确定用户需要监控的应用程序;获取所述应用程序在所述移动终端中运行时调用的软件和硬件的配置信息;当所述应用程序在所述移动终端中启动时,根据所述软件和硬件的配置信息监控所述应用程序中配置的函数调用所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况;根据所述函数对所述软件和硬件的调用情况、所述软件和硬件根据所述函数运行的运行情况,对所述应用程序进行分析。

Description

一种应用程序的分析方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用程序的分析方法和装置。
背景技术
目前,移动终端是移动互联网的重要入口,移动终端中安装的应用程序也五花八门,种类日益繁多。因此对于用户而言,有需要对移动终端中各类应用程序进行监控的需求,以对这些应用程序进行管理。例如,移动终端的电池电量是有限的,需要对在移动终端中运行的应用程序的耗电情况进行跟踪分析。
目前的一种实施场景中,在针对移动终端中应用程序的运行监控时,需要将移动终端实时连接计算机,将移动终端的运行状态保存成文件,然后再由人工对移动终端中的应用程序进行分析。由于目前的一种实施场景中需要实时存储文件,操作过程复杂,不能直接在移动终端上直接查看分析结果,导致对应用程序的分析效率很低。并且目前的一种实施场景中在实时存储文件之后,还需要依靠人工去分析代码逻辑,并需要进行大量的测试后才能发现问题,耗时耗人工,效率低下。
发明内容
本发明实施例提供了一种应用程序的分析方法和装置,用于通过移动终端本身进行应用程序的分析,提高应用程序分析的效率。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种应用程序的分析方法,包括:
从移动终端中确定用户需要监控的应用程序;
获取所述应用程序在所述移动终端中运行时调用的软件和硬件的配置信息;
当所述应用程序在所述移动终端中启动时,根据所述软件和硬件的配置信息监控所述应用程序中配置的函数调用所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况;
根据所述函数对所述软件和硬件的调用情况、所述软件和硬件根据所述函数运行的运行情况,对所述应用程序进行分析。
第二方面,本发明实施例还提供一种应用程序的分析装置,包括:
程序确定模块,用于从移动终端中确定用户需要监控的应用程序;
配置获取模块,用于获取所述应用程序在所述移动终端中运行时调用的软件和硬件的配置信息;
函数监控模块,用于当所述应用程序在所述移动终端中启动时,根据所述软件和硬件的配置信息监控所述应用程序中配置的函数调用所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况;
分析模块,用于根据所述函数对所述软件和硬件的调用情况、所述软件和硬件根据所述函数运行的运行情况,对所述应用程序进行分析。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,首先从移动终端中确定用户需要监控的应用程序,然后获取应用程序在移动终端中运行时调用的软件和硬件的配置信息,当应用程序在移动终端中启动时,根据软件和硬件的配置信息监控应用程序中配置的函数调用软件和硬件的调用情况以及软件和硬件根据该函数运行的运行情况,根据函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况,对应用程序进行分析。本发明实施例中通过移动终端自身就可以完成应用程序的分析,并且本发明实施例中可以对应用程序中配置的函数进行监控,实现从函数层次上的监控,获取到调用情况和运行情况也是针对应用程序中底层配置的函数,因此可以更精细的分析应用程序,缩短应用程序分析的时间,提高应用程序分析的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用程序的分析方法的流程方框示意图;
图2为本发明实施例提供的应用程序的分析方法用于应用程序的耗电定位分析的应用流程示意图;
图3为本发明实施例提供的移动终端中正在运行的进程的实现场景示意图;
图4为本发明实施例提供的移动终端中代码文件的存储方式示意图;
图5-a为本发明实施例提供的对移动终端中应用程序进行耗电分析的一种分析结果示意图;
图5-b为本发明实施例提供的对移动终端中应用程序进行耗电分析的另一种分析结果示意图;
图5-c为本发明实施例提供的对移动终端中应用程序进行耗电分析的另一种分析结果示意图;
图6-a为本发明实施例提供的一种应用程序的分析装置的组成结构示意图;
图6-b为本发明实施例提供的一种函数监控模块的组成结构示意图;
图7为本发明实施例提供的应用程序的分析方法应用于终端的组成结构示意图。
具体实施方式
本发明实施例提供了一种应用程序的分析方法和装置,用于通过移动终端本身进行应用程序的分析,提高应用程序分析的效率。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
本发明应用程序的分析方法的一个实施例,具体可以应用于移动终端中应用程序的自动分析过程中,请参阅图1所示,本发明一个实施例提供的应用程序的分析方法,可以包括如下步骤:
101、从移动终端中确定用户需要监控的应用程序。
在本发明实施例中,移动终端由用户操作,用户可以确定在移动终端中哪个或者哪些应用程序需要进行监控,例如用户操作移动终端,用户点击选取需要监控的应用程序,因此可以根据用户的操作行为确定在移动终端中安装的哪个应用程序需要进行监控。
102、获取应用程序在移动终端中运行时调用的软件和硬件的配置信息。
在确定移动终端中需要监控的应用程序之后,根据该应用程序的程序配置要求获取该应用程序在运行时需要调用移动终端中的哪些软件和硬件,对于移动终端中安装的不同应用程序,在该应用程序运行时需要调用不同的终端软件和硬件配置。其中,本发明实施例中软件和硬件的配置信息可以指的是移动终端中软件和硬件的详细配置、调用方式、存储路径等信息,对于移动终端中的不同软件以及硬件,其对应的配置信息可以具体配置。
在本发明的一些实施例中,步骤102中获取到的软件和硬件的配置信息,具体可以包括如下信息中的至少一种:中央处理器(英文全称:Central Processing Unit,英文简称:CPU)的配置、全球定位系统(英文全称:Global Positioning System,英文简称:GPS)的配置、无线局域网(英文全称:Wireless Fidelity,英文简称:WiFi)的配置、唤醒锁屏(英文全称:wakelock)程序的配置、感应器(英文全称:sensor)的配置、多媒体扫描程序的配置、蓝牙的配置。例如,一个即时通讯工具的应用程序在运行时需要调用移动终端中的CPU、WiFi,还可能调用移动终端中的GPS。又如,跑步健身的应用程序在运行时需要调用移动终端中的CPU、重力感应器。可以理解的是,在本发明实施例中,对于需要监控的应用程序的不同,此处可以获取到移动终端中的软件和硬件的配置信息也是不同的,可以结合具体的应用场景来确定应用程序需要调用的终端软件和硬件,进而获取到这些终端软件和硬件的配置信息。
在本发明的一些实施例中,步骤102根据软件和硬件的配置信息监控应用程序中配置的函数调用软件和硬件的调用情况以及软件和硬件根据函数运行的运行情况,具体可以包括如下步骤:
A1、确定应用程序中配置的需要执行的函数;
A2、通过重配置应用程序运行的虚拟机的方式修改需要执行的函数的调用指针;
A3、根据修改后的调用指针在函数开始执行之前启动对函数的监控,并且监控函数从开始执行直至执行结束的整个执行过程中对软件和硬件的调用情况以及软件和硬件根据函数运行的运行情况。
其中,首先确定出需要监控应用程序中配置的哪个函数,例如可以根据应用程序中配置所有函数的调用先后顺序来确定,也可以根据预先配置的代码区域范围来确定需要监控的函数。确定需要监控的函数之后,该函数的执行方式以及调用的具体软件和硬件都可以确定下来,接下来对应用程序运行的虚拟机进行重新配置,修改需要执行的函数的调用指针,将该调用指针指向监控流程的触发,根据修改后的调用指针在函数开始执行之前启动对函数的监控,并且监控函数从开始执行直至执行结束的整个执行过程中对软件和硬件的调用情况以及软件和硬件根据函数运行的运行情况。例如,可以对应用程序运行的java虚拟机进行重配置,在函数开始执行之前先将调用指针指向监控启动,在监控启动之后,开始按照函数的配置要求调用具体的软件和硬件,软件和硬件被调用之后软件和硬件根据函数的配置要求运行,此时函数的整个执行过程都需要被监控,以备后续步骤中对应用程序配置的函数进行分析。
在本发明的另一些实施例中,步骤102根据软件和硬件的配置信息监控应用程序中配置的函数调用软件和硬件的调用情况以及软件和硬件根据函数运行的运行情况,具体可以包括如下步骤:
B1、在函数执行时,记录函数调用的软件和硬件的类型,函数运行的堆栈、函数开始执行的时间和执行结束的时间,并计算软件和硬件根据函数运行的运行时间和函数的运行总次数。
上述实现方式对监控的具体实现流程进行详细说明,例如在函数从开始执行直至执行结束的整个执行过程中,记录函数调用的软件和硬件的类型,比如该函数调用了移动终端中的哪个软件以及哪个软件,并且还可以记录下函数运行的堆栈,例如,记录堆栈是调用系统的printstack方法来获得,每个函数都有唯一的堆栈,运行堆栈可以帮助用户定位到具体的代码行。在函数执行时还可以记录函数的开始执行的时间和执行结束的时间,通过这两个时间的差值,可以确定软件和硬件根据函数运行的运行时间,通过函数的多个开始执行的时间的统计,可以累加出函数的运行总次数。可以理解的是,在对应用程序需要进行不同功能的分析场景中,需要监控的具体调用情况和运行请情况也可以相应变化,具体此处不作为对本发明实施例的限定。
103、当应用程序在移动终端中启动时,根据软件和硬件的配置信息监控应用程序中配置的函数调用软件和硬件的调用情况以及软件和硬件根据函数运行的运行情况。
在本发明实施例中,通过前述步骤获取到需要监控的应用程序调用的软件和硬件之后,还需要获取到这些软件和硬件的配置信息。接下来就可以对应用程序进行监控,本发明实施例中解析应用程序可以得到该应用程序配置的函数,应用程序在运行时最后都需要由具体的函数调用来执行,本发明实施例中可以在函数层面上对应用程序进行监控,当应用程序在移动终端中启动时,根据软件和硬件的配置信息对应用程序中的函数进行监控,监控应用程序中配置的函数调用软件和硬件的调用情况以及软件和硬件根据函数运行的运行情况。其中,需要监控应用程序中的哪个函数或者哪些函数可以根据具体的应用场景来确定,举例说明如下,一种可行的实现方式是可以监控应用程序中的所有函数,即对应用程序中配置的每个函数,都监控每个函数调用的软件和硬件以及这些软件和硬件根据每个函数的运行情况。另一种可行的实现方式是可以结合具体的函数配置算法来确定需要监控应用程序中的哪些函数,例如为了减少监控带来的开销只监控应用程序中配置的所有函数中一半的函数,可以按照如下方式来确定选取的一半函数,对于应用程序中每隔一个函数就监控一个函数。另一种可行的实现方式是可以按照应用程序中代码行的保存位置,或者按照应用程序中函数的功能分类来确定需要监控的具体函数。需要说明的是,本发明实施例中是对应用程序中底层的函数层面进行监控,对函数调用的具体软件和硬件进行监控,对函数的监控不影响到函数本身的执行,因为监控函数调用的软件和硬件运行情况都是在移动终端的内存中直接进行的,不需要保存为单独的文件。
需要说明的是,本发明实施例中,步骤103中在应用程序启动时就开始监控该应用程序,从而对应用程序的整个运行过程都可以做到全面实时监控,在监控应用程序中配置的函数时,这些函数对软件和硬件的调用情况以及这些软件和硬件的运行情况都可以实时生成,其中函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况可以根据具体的应用场景进行具体举例说明,详见后续实施例中对移动终端中调用情况和运行情况的举例说明。
104、根据函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况,对应用程序进行分析。
在本发明实施例中,通过步骤103对应用程序中配置的函数进行监控之后,可以得到函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况,通过步骤103中对应用程序中函数的监控可以进行应用程序的分析,其中函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况中记载有应用程序中函数的具体执行过程,结合对软件和硬件的具体对比标准可以定位出应用程序中存在异常问题的具体函数。步骤104中根据上述调用情况和运行情况对应用程序的分析可以有多种实现方式,但是通过对应用程序中函数层级的分析,便于及时准确发现应用程序中存在的问题,从而应用程序开发人员就可以对应用程序进行后续完善。本发明实施例中对函数层面的监控可以准确定位到应用程序中的具体代码,适用于应用程序开发人员对应用程序的分析过程,降低应用程序开发人员定位问题的难度。
在本发明的一些实施例中,在步骤B1执行的实现场景中,步骤104中根据函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况,对应用程序进行分析,具体可以包括如下步骤:
C1、根据函数运行的运行时间和函数的运行总次数分析出应用程序中存在异常情况的函数,并分析应用程序中存在异常情况的函数对应的堆栈。
其中,获取到函数运行的运行时间和函数的运行总次数之后,根据函数运行的运行时间和函数的运行总次数分析出应用程序中哪个函数存在异常情况。例如,异常情况可以根据函数的不同类型指定对应的对比标准,判断应用程序中函数的运行时间和运行总次数是否会超过预先配置的对比标准,对于超对对比标准的函数,可以确定该函数是应用程序中存在异常情况的函数,由前述步骤B1的说明可知,记录有函数运行的堆栈,则对于存在异常情况的函数,可以分析该函数对应的堆栈,由堆栈可以直接定位出存在异常情况的代码行。需要说明的是,应用程序中函数存在异常情况可以指的是函数的耗电情况存在异常,或者函数的执行会产生恶意后果,例如偷取用户的终端流量或者盗取用户的账户信息等。
进一步的,在本发明的另一些实施例中,步骤C1根据函数运行的运行时间和函数的运行总次数分析出应用程序中存在异常情况的函数,并分析应用程序中存在异常情况的函数对应的堆栈,具体可以包括如下步骤:
C11、计算应用程序从移动终端的前台系统切换到移动终端的后台系统直至应用程序从后台系统切换回前台系统之间的程序静默周期;
C12、若在程序静默周期内移动终端中有函数执行,确定应用程序中在程序静默周期内执行的函数存在异常情况,并分析存在异常情况的函数对应的堆栈。
其中,以应用程序在移动终端的前台系统和后台系统的切换为例来判断存在异常情况的函数,先记录下应用程序从移动终端的前台系统切换到移动终端的后台系统的第一时间点t1,此时应用程序从退到了移动终端的后台系统,此时应用程序在后台系统保留,不应该会有太多的消耗系统资源的行为,当该应用程序切回到前台系统时再记录下当前的第二时间点t2,则通过第二时间点和第一时间点之间的时间差就可以计算出应用程序在后台停留的时间段,即该应用程序的程序静默周期为(t1、t2),由于本发明实施例中是对应用程序中函数的运行进行监控的,因此可以判断应用程序中哪个函数在该程序静默周期(t1、t2)之间执行了,在程序静默周期(t1、t2)之间执行的函数就可以认为是在应用程序退出到后台系统时执行的异常函数,该异常函数对应的堆栈可以用于分析该异常函数的异常行为,应用程序开发人员可以对该异常函数进行调试分析。
在本发明的一些实施例中,本发明实施例提供的应用程序的分析方法还可以将移动终端实时连接计算机,实时分析移动终端中的CPU、GPS、WiFi等运行时调用的函数。例如可以将用户用移动终端连接计算机,由安装在计算机中的终端监控工具进行分析。例如,在计算机中安装Dalvik虚拟机调试监控服务(英文全称:Dalvik Debug Monitor Service,英文简称:DDMS)工具,用户操作DDMS工具,DDMS会按照用户的要求向移动终端发送命令,然后DDMS工具开始记录CPU、GPS、WiFi等运行时调用的函数,实时获取移动终端的运行状态所需要运行的函数,然后再根据函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况,对应用程序进行分析,详见前述实施例的内容说明,此处不再赘述。
通过以上实施例对本发明实施例的描述可知,首先从移动终端中确定用户需要监控的应用程序,然后获取应用程序在移动终端中运行时调用的软件和硬件的配置信息,当应用程序在移动终端中启动时,根据软件和硬件的配置信息监控应用程序中配置的函数调用软件和硬件的调用情况以及软件和硬件根据该函数运行的运行情况,根据函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况,对应用程序进行分析。本发明实施例中通过移动终端自身就可以完成应用程序的分析,并且本发明实施例中可以对应用程序中配置的函数进行监控,实现从函数层次上的监控,获取到调用情况和运行情况也是针对应用程序中底层配置的函数,因此可以更精细的分析应用程序,缩短应用程序分析的时间,提高应用程序分析的效率。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。接下来以本发明实施例提供的应用程序的分析方法应用于程序的耗电自动分析中为例,本发明实施例能够抓取应用程序的状态信息,并能根据策略,自动分析出程序耗电的问题,并给出对应程序代码的运行地址,方便应用程序开发人员定位问题。本发明实施例能够在不影响用户使用的情况下获取目标程序的耗电原因,定位到具体代码,便于开发人员重新优化该耗电问题。
本发明实施例提供的应用程序的分析方法可以通过在移动终端侧实现的监控模块来完成,这个监控模块能够通过修改虚拟机达到监控第三方应用程序运行流程的作用。通过获取移动终端中软件和硬件的运行及调用将调用分类:CPU调用,唤醒系统调用,GPS使用,WiFi扫描,多媒体扫描,蓝牙扫描等。根据各个分类,对比标准,标准是根据平时用户数据和工作经验而来,比如唤醒系统是灭屏后仍然唤醒状态达到5分钟,认为是超出标准。对超出标准的项目预警提示,开发人员根据超标的项目可以观察运行的调用关系,从而能够很轻松的定位异常问题代码实现位置。
请参阅如图2所示,图2为本发明实施例提供的应用程序的分析方法用于应用程序的耗电定位分析的应用流程示意图,主要可以包括如下流程:
1:用户指定需要监控的应用程序。
首先可以列出移动终端中所有正在运行的进程,请参阅如图3所示,图3为本发明实施例提供的移动终端中正在运行的进程的实现场景示意图,用户勾选需要监控的应用程序,监控结束后进行展示,可以知道所有类型调用总的运行次数和时间。
举例说明如下,某个应用程序的部分代码如下:
Figure BDA0000956955750000101
Figure BDA0000956955750000111
在上述的应用程序的代码中,确定需要hook的目标类和需要hook的目标函数。例如需要监控的函数如下:android.hardware.LegacySensorManager、registerLegacyListener、unregisterLegacyListener。
接下来确定需要应用程序调用的软件和硬件分类,目前分了CPU,GPS、WiFi等类别。
2:通过ptrace将监控模块的动态库(英文名称:so)注入给第三方应用程序。
3:启动Bridge去加载监控模块。
4:监控模块获取需要监控的CPU、GPS、WiFi等配置。
5:读取监控模块的配置。
6:监控模块对CPU、GPS、WiFi等进行监控开始。
其中,移动终端中安装的所有应用程序最后运行都需要由函数调用来执行,因此可以在最底层的函数调用地方进行劫持,由之前的直接调用函数A()变成了,现在的先执行before()再执行A(),最后执行after()。在before的地方记录开始时间和运行调用堆栈,在结束的时候记录完成时间,当用户需要查看监控结果的时候就是把这些数据整理并展示。
监控第三方应用程序的实现方式举例说明如下:通过ptrace技术,可以将自己的动态库注入到第三方应用程序中,使动态库运行在第三方应用程序的进程里,然后通过动态库拉起bridge jar包,在bridge里面会读取需要监控的配置,然后按照配置修改第三方应用程序运行的java虚拟机,改变第三方程序函数的调用指针,将指针指向了bridge里面的方法,从而达到了监控函数运行的目的。其中,bridge中的钩取(英文名称:hook)操作流程包括:原函数调用->指针被bridge修改->调用了bridge的方法,即执行如下操作流程:1.beforeHook,2.原函数调用,3.afterHook。在beforcehook记录原函数调用开始时间和调用堆栈(例如可以通过打印stack),在afterhook记录结束时间,这两个时间之间的差值可以确定原函数调用的总耗时。
7:任何上述配置的应用程序运行都会被记录运行时间以及运行调用关系。
8:用户需要获取监控结果。
9:将监控数据打包,存储在本地目录。
10:通知监控模块获取数据。
11:根据CPU、GPS等类别进行展示。
其中,展示各类别的运行情况之后,可以分析出哪些函数存在异常情况。例如,异常运行被定义为在程序后台运行时候的操作,因为程序都在后台运行,理论上不应该有太多的操作消耗系统资源,从而导致不应该的耗电。用户不能感知的应用程序运行导致不必要的耗电,这种不必要的操作被认为是异常。例如,有个程序自己开了一个后台程序,但是用户并不知道,这个程序就被认定是异常的。但是用户主动打开了一个导航软件,但是这是用户需要的,因此就不是异常的应用程序。又如,当程序退到后台的时候记录当前时间A,在从后台到前台的时候再记录一个时间B,根据原函数调用的开始时间,发现该时间在(A,B)区间内,被认定为可疑的耗电,需要用户通过堆栈进行分析。
举例说明如下,CPU是通过扫描目标程序来知道的,请参阅如图4所示,图4为本发明实施例提供的移动终端中代码文件的存储方式示意图,android里面的代码文件是存储在应用程序里面,解压应用程序里面有一个dex文件,dex文件是所有class文件的压缩文件,通过android提供的方法可以读取dex里面的所有class,然后根据所有的class可以遍历出所有的class对应的函数,从而将这些函数全部hook。
接下来对本发明实施例中CPU、GPS、WiFi、sensor、wakelock的时间及次数计算进行举例说明。CPU跟其他的不一样,其他的都一样算法。例如,CPU算法中,由于前面说明任何一个被hook了的函数都变成了before()->目标函数->after(),那么CPU运行时间就是所有after减去before的时间,就是目标函数的运行时间次数就是目标函数的运行次数总和。由于除CPU外都计算方式一样,接下来以对sensor的计算为例,需要知道sensor的开启时间,所以根据上面的配置需要hook registerLegacyListener(开始启用sensor),unregisterLegacyListener(结束启用sensor),就是before()->registerLegacyListener->after(),before()->unregisterLegacyListener->after()。这个时间相当于(unregisterLegacyListener的before)减去(registerLegacyListener的before)从而知道该应用程序开启了多久的sensor,次数就是一个开关的周期。
12:针对在后台运行的情况进行特别标注。
13:观看运行异常情况。
首先请参阅如图5-a所示,图5-a为本发明实施例提供的对移动终端中应用程序进行耗电分析(英文名称:power diagnosis)的一种分析结果示意图,以cpu、sensor,wakelock、gps、wifiscan、mediascan这六个类型的分析为例,分别计算出每个软件和硬件的运行时间(英文名称:totaltime)和运行总次数(英文名称:totalcount),进一步的,对图5-a中的sensor类型进一步的打开,请参阅如图5-b所示,图5-b为本发明实施例提供的对移动终端中应用程序进行耗电分析的另一种分析结果示意图,详细展示了多个sensorid的运行时间和运行总次数。分析监控结果之后,可以得到相应的分析结果,如图5-c所示,图5-c为本发明实施例提供的对移动终端中应用程序进行耗电分析的另一种分析结果示意图,定位出有异常情况的函数。
14:对程序进行优化。
15:重复以上过程。
本发明实施例可以通过便于开发者定位问题的监控模块来实现,所以面向的对象偏向于软件开发者或者测试人员。利用该监控模块发现问题,定位问题,方便解决问题。在基于linux系统的移动设备上,因为运行在linux的程序的运行单位是“进程”,可以通过ptrace的方式将监控模块的代码逻辑注入到目标进程的maps表里面,从而在目标进程里面执行了监控模块的代码,相当于hook操作了。利用这种hook,把需要监控的函数状态,包括CPU、sensor、wakelock等都统计起来(包括运行时间,运行次数,函数调用堆栈),当用户需要查看的时候把这些数据发送给需要查看的应用程序,给用户展示。从而能够大大降低开发人员定位问题难度,能够缩短定位问题的时间,能够及时暴露问题,并且从代码层次上来展示。对应用程序的性能影响不大,因为没有在运行的时候存文件,并且在虚拟机层面上工作。
不限定的是,本发明的前述举例是以定位耗电问题进行举例说明,但是本发明实施例不仅仅可以定位耗电问题,也可以定位类似防止第三方恶意软件破坏程序逻辑,因为本发明提供的方法能够监控目标进程,发现有非法的函数调用则报警,达到防止恶意破坏的目的。例如,用户调试应用程序时,有的程序不知道什么原因运行出错了,按照本发明确定应用程序出错时候的状况,函数的调用流程,从而可以分析出问题的原因。还可以分析没有源代码的应用程序的工作逻辑。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图6-a所示,本发明实施例提供的一种应用程序的分析装置600,可以包括:程序确定模块601、配置获取模块602、函数监控模块603、分析模块604,其中,
程序确定模块601,用于从移动终端中确定用户需要监控的应用程序;
配置获取模块602,用于获取所述应用程序在所述移动终端中运行时调用的软件和硬件的配置信息;
函数监控模块603,用于当所述应用程序在所述移动终端中启动时,根据所述软件和硬件的配置信息监控所述应用程序中配置的函数调用所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况;
分析模块604,用于根据所述函数对所述软件和硬件的调用情况、所述软件和硬件根据所述函数运行的运行情况,对所述应用程序进行分析。
在本发明的一些实施例中,请参阅如图6-b所示,所述函数监控模块603,包括:
函数确定子模块6031,用于确定所述应用程序中配置的需要执行的函数;
指针修改子模块6032,用于通过重配置所述应用程序运行的虚拟机的方式修改所述需要执行的函数的调用指针;
监控执行子模块6033,用于根据修改后的所述调用指针在所述函数开始执行之前启动对所述函数的监控,并且监控所述函数从开始执行直至执行结束的整个执行过程中对所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况。
在本发明的一些实施例中,所述函数监控模块603,具体用于在所述函数执行时,记录所述函数调用的所述软件和硬件的类型,所述函数运行的堆栈、所述函数开始执行的时间和执行结束的时间,并计算所述软件和硬件根据所述函数运行的运行时间和所述函数的运行总次数。
在本发明的一些实施例中,所述分析模块604,具体用于根据所述函数运行的运行时间和所述函数的运行总次数分析出所述应用程序中存在异常情况的函数,并分析所述应用程序中存在异常情况的函数对应的堆栈。
在本发明的一些实施例中,所述分析模块604,具体用于计算所述应用程序从所述移动终端的前台系统切换到所述移动终端的后台系统直至所述应用程序从所述后台系统切换回所述前台系统之间的程序静默周期;若在所述程序静默周期内所述移动终端中有函数执行,确定所述应用程序中在所述程序静默周期内执行的函数存在异常情况,并分析存在异常情况的函数对应的堆栈。
在本发明的一些实施例中,所述软件和硬件的配置信息,包括如下信息中的至少一种:中央处理器CPU的配置、全球定位系统GPS的配置、无线局域网WiFi的配置、唤醒锁屏wakelock程序的配置、感应器sensor的配置、多媒体扫描程序的配置、蓝牙的配置。
通过以上实施例对本发明实施例的描述可知,首先从移动终端中确定用户需要监控的应用程序,然后获取应用程序在移动终端中运行时调用的软件和硬件的配置信息,当应用程序在移动终端中启动时,根据软件和硬件的配置信息监控应用程序中配置的函数调用软件和硬件的调用情况以及软件和硬件根据该函数运行的运行情况,根据函数对软件和硬件的调用情况、软件和硬件根据函数运行的运行情况,对应用程序进行分析。本发明实施例中通过移动终端自身就可以完成应用程序的分析,并且本发明实施例中可以对应用程序中配置的函数进行监控,实现从函数层次上的监控,获取到调用情况和运行情况也是针对应用程序中底层配置的函数,因此可以更精细的分析应用程序,缩短应用程序分析的时间,提高应用程序分析的效率。
本发明实施例还提供了另一种终端,如图7所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point ofSales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图7示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图7,手机包括:射频(Radio Frequency,RF)电路77、存储器720、输入单元730、显示单元740、传感器750、音频电路760、无线保真(wireless fidelity,WiFi)模块770、处理器780、以及电源790等部件。本领域技术人员可以理解,图7中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图7对手机的各个构成部件进行具体的介绍:
RF电路77可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器780处理;另外,将设计上行的数据发送给基站。通常,RF电路77包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路77还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器720可用于存储软件程序以及模块,处理器780通过运行存储在存储器720的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器720可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器720可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元730可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元730可包括触控面板731以及其他输入设备732。触控面板731,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板731上或在触控面板731附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板731可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器780,并能接收处理器780发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板731。除了触控面板731,输入单元730还可以包括其他输入设备732。具体地,其他输入设备732可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元740可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元740可包括显示面板741,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板741。进一步的,触控面板731可覆盖显示面板741,当触控面板731检测到在其上或附近的触摸操作后,传送给处理器780以确定触摸事件的类型,随后处理器780根据触摸事件的类型在显示面板741上提供相应的视觉输出。虽然在图7中,触控面板731与显示面板741是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板731与显示面板741集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器750,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板741的亮度,接近传感器可在手机移动到耳边时,关闭显示面板741和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路760、扬声器761,传声器762可提供用户与手机之间的音频接口。音频电路760可将接收到的音频数据转换后的电信号,传输到扬声器761,由扬声器761转换为声音信号输出;另一方面,传声器762将收集的声音信号转换为电信号,由音频电路760接收后转换为音频数据,再将音频数据输出处理器780处理后,经RF电路77以发送给比如另一手机,或者将音频数据输出至存储器720以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块770可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块770,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器780是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器720内的软件程序和/或模块,以及调用存储在存储器720内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器780可包括一个或多个处理单元;优选的,处理器780可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器780中。
手机还包括给各个部件供电的电源790(比如电池),优选的,电源可以通过电源管理系统与处理器780逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器780还具有控制执行以上由终端执行的应用程序的分析方法流程。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对目前的一种实施场景做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (12)

1.一种应用程序的分析方法,其特征在于,所述方法应用于移动终端,包括:
从移动终端中确定用户需要监控的应用程序;
获取所述应用程序在所述移动终端中运行时调用的软件和硬件的配置信息;
当所述应用程序在所述移动终端中启动时,根据所述软件和硬件的配置信息对应用程序中的函数进行监控,监控所述应用程序中配置的函数调用所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况;
判断所述函数对所述软件和硬件的调用情况、所述软件和硬件根据所述函数运行的运行情况中的所述函数运行的运行时间和所述函数的运行总次数是否超过预先配置的对比标准,将超对对比标准的函数,确定为应用程序中存在异常情况的函数,并分析所述应用程序中存在异常情况的函数对应的堆栈,由所述堆栈定位出存在异常情况的代码行。
2.根据权利要求1所述的方法,其特征在于,所述根据所述软件和硬件的配置信息监控所述应用程序中配置的函数调用所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况,包括:
确定所述应用程序中配置的需要执行的函数;
通过重配置所述应用程序运行的虚拟机的方式修改所述需要执行的函数的调用指针;
根据修改后的所述调用指针在所述函数开始执行之前启动对所述函数的监控,并且监控所述函数从开始执行直至执行结束的整个执行过程中对所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况。
3.根据权利要求1所述的方法,其特征在于,所述根据所述软件和硬件的配置信息监控所述应用程序中配置的函数调用所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况,包括:
在所述函数执行时,记录所述函数调用的所述软件和硬件的类型,所述函数运行的堆栈、所述函数开始执行的时间和执行结束的时间,并计算所述软件和硬件根据所述函数运行的运行时间和所述函数的运行总次数。
4.根据权利要求1所述的方法,其特征在于,所述判断所述函数对所述软件和硬件的调用情况、所述软件和硬件根据所述函数运行的运行情况中的所述函数运行的运行时间和所述函数的运行总次数是否超过预先配置的对比标准,将超对对比标准的函数,确定为应用程序中存在异常情况的函数,并分析所述应用程序中存在异常情况的函数对应的堆栈,包括:
计算所述应用程序从所述移动终端的前台系统切换到所述移动终端的后台系统直至所述应用程序从所述后台系统切换回所述前台系统之间的程序静默周期;
若在所述程序静默周期内所述移动终端中有函数执行,确定所述应用程序中在所述程序静默周期内执行的函数存在异常情况,并分析存在异常情况的函数对应的堆栈。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述软件和硬件的配置信息,包括如下信息中的至少一种:中央处理器CPU的配置、全球定位系统GPS的配置、无线局域网WiFi的配置、唤醒锁屏wakelock程序的配置、感应器sensor的配置、多媒体扫描程序的配置、蓝牙的配置。
6.一种应用程序的分析装置,其特征在于,所述装置应用于移动终端,包括:
程序确定模块,用于从移动终端中确定用户需要监控的应用程序;
配置获取模块,用于获取所述应用程序在所述移动终端中运行时调用的软件和硬件的配置信息;
函数监控模块,用于当所述应用程序在所述移动终端中启动时,根据所述软件和硬件的配置信息对应用程序中的函数进行监控,监控所述应用程序中配置的函数调用所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况;
分析模块,用于判断所述函数对所述软件和硬件的调用情况、所述软件和硬件根据所述函数运行的运行情况中的所述函数运行的运行时间和所述函数的运行总次数是否超过预先配置的对比标准,将超对对比标准的函数,确定为应用程序中存在异常情况的函数,并分析所述应用程序中存在异常情况的函数对应的堆栈,由所述堆栈定位出存在异常情况的代码行。
7.根据权利要求6所述的装置,其特征在于,所述函数监控模块,包括:
函数确定子模块,用于确定所述应用程序中配置的需要执行的函数;
指针修改子模块,用于通过重配置所述应用程序运行的虚拟机的方式修改所述需要执行的函数的调用指针;
监控执行子模块,用于根据修改后的所述调用指针在所述函数开始执行之前启动对所述函数的监控,并且监控所述函数从开始执行直至执行结束的整个执行过程中对所述软件和硬件的调用情况以及所述软件和硬件根据所述函数运行的运行情况。
8.根据权利要求6所述的装置,其特征在于,所述函数监控模块,具体用于在所述函数执行时,记录所述函数调用的所述软件和硬件的类型,所述函数运行的堆栈、所述函数开始执行的时间和执行结束的时间,并计算所述软件和硬件根据所述函数运行的运行时间和所述函数的运行总次数。
9.根据权利要求6所述的装置,其特征在于,所述分析模块,具体用于计算所述应用程序从所述移动终端的前台系统切换到所述移动终端的后台系统直至所述应用程序从所述后台系统切换回所述前台系统之间的程序静默周期;若在所述程序静默周期内所述移动终端中有函数执行,确定所述应用程序中在所述程序静默周期内执行的函数存在异常情况,并分析存在异常情况的函数对应的堆栈。
10.根据权利要求6至9中任意一项所述的装置,其特征在于,所述软件和硬件的配置信息,包括如下信息中的至少一种:中央处理器CPU的配置、全球定位系统GPS的配置、无线局域网WiFi的配置、唤醒锁屏wakelock程序的配置、感应器sensor的配置、多媒体扫描程序的配置、蓝牙的配置。
11.一种移动终端,其特征在于,包括:存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器中存储的计算机程序;
所述计算机程序用于执行权利要求1-5任一项所述的应用程序的分析方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1-5任一项所述的应用程序的分析方法。
CN201610203095.6A 2016-04-01 2016-04-01 一种应用程序的分析方法和装置 Active CN107291586B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610203095.6A CN107291586B (zh) 2016-04-01 2016-04-01 一种应用程序的分析方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610203095.6A CN107291586B (zh) 2016-04-01 2016-04-01 一种应用程序的分析方法和装置

Publications (2)

Publication Number Publication Date
CN107291586A CN107291586A (zh) 2017-10-24
CN107291586B true CN107291586B (zh) 2021-04-27

Family

ID=60087518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610203095.6A Active CN107291586B (zh) 2016-04-01 2016-04-01 一种应用程序的分析方法和装置

Country Status (1)

Country Link
CN (1) CN107291586B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832190B (zh) * 2017-10-31 2020-09-22 维沃移动通信有限公司 一种耗电异常的诊断方法、移动终端和存储介质
CN110297744A (zh) * 2018-03-23 2019-10-01 优信拍(北京)信息科技有限公司 一种app应用统计时间设置方法及统计方法
CN108595309A (zh) * 2018-05-16 2018-09-28 云南大学 基于wakelock的高能耗软件评估方法
CN109189478B (zh) * 2018-08-27 2020-12-29 中国科学院计算技术研究所 针对应用程序的反馈优化方法
JP6724960B2 (ja) * 2018-09-14 2020-07-15 株式会社安川電機 リソース監視システム、リソース監視方法、及びプログラム
CN109284217B (zh) * 2018-09-28 2023-01-10 平安科技(深圳)有限公司 应用程序异常处理方法、装置、电子设备及存储介质
CN109922141A (zh) * 2019-02-21 2019-06-21 北京宝兰德软件股份有限公司 Java应用服务器中活动请求列表的实时获取方法及装置
CN113032209A (zh) * 2021-03-09 2021-06-25 北京百度网讯科技有限公司 运行监控方法、装置、服务器及介质
CN113110965A (zh) * 2021-03-12 2021-07-13 北京健康之家科技有限公司 异常信息的监控方法及装置、计算机存储介质、终端
CN113094228A (zh) * 2021-03-19 2021-07-09 联想(北京)有限公司 任务监控方法及装置、设备、存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309790A (zh) * 2013-07-04 2013-09-18 福建伊时代信息科技股份有限公司 移动终端监控方法和装置
CN103902890A (zh) * 2012-12-24 2014-07-02 珠海市君天电子科技有限公司 一种Android程序行为的监控方法及监控系统
CN104268055A (zh) * 2014-09-01 2015-01-07 腾讯科技(深圳)有限公司 一种程序异常的监控方法和装置
CN104794059A (zh) * 2015-05-08 2015-07-22 北京理工大学 一种基于函数调用记录的缺陷定位方法及装置
CN104809397A (zh) * 2015-05-12 2015-07-29 上海斐讯数据通信技术有限公司 一种基于动态监控的Android恶意软件的检测方法及系统
CN105095741A (zh) * 2014-05-13 2015-11-25 北京奇虎测腾科技有限公司 一种应用程序的行为监测方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015191394A1 (en) * 2014-06-09 2015-12-17 Northrop Grumman Systems Corporation System and method for real-time detection of anomalies in database usage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902890A (zh) * 2012-12-24 2014-07-02 珠海市君天电子科技有限公司 一种Android程序行为的监控方法及监控系统
CN103309790A (zh) * 2013-07-04 2013-09-18 福建伊时代信息科技股份有限公司 移动终端监控方法和装置
CN105095741A (zh) * 2014-05-13 2015-11-25 北京奇虎测腾科技有限公司 一种应用程序的行为监测方法和系统
CN104268055A (zh) * 2014-09-01 2015-01-07 腾讯科技(深圳)有限公司 一种程序异常的监控方法和装置
CN104794059A (zh) * 2015-05-08 2015-07-22 北京理工大学 一种基于函数调用记录的缺陷定位方法及装置
CN104809397A (zh) * 2015-05-12 2015-07-29 上海斐讯数据通信技术有限公司 一种基于动态监控的Android恶意软件的检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
动态注入技术;hncscwc;《https://my.oschina.net/hncscwc/blog/638648》;20160316;第1-2页 *

Also Published As

Publication number Publication date
CN107291586A (zh) 2017-10-24

Similar Documents

Publication Publication Date Title
CN107291586B (zh) 一种应用程序的分析方法和装置
CN108415739B (zh) 一种动态链接库函数的钩挂方法、装置和存储介质
CN106850978B (zh) 一种应用程序控制方法及相关设备
CN107608861B (zh) 散热控制方法及装置
CN107329901B (zh) 数据包抓取方法、终端、服务器和存储介质
CN108021224B (zh) 屏幕点亮方法及装置
US10657347B2 (en) Method for capturing fingerprint and associated products
CN112148579B (zh) 一种用户界面的测试方法和装置
WO2015078342A1 (en) Method for acquiring memory information, and terminal
CN108073495B (zh) 应用程序崩溃原因的定位方法及装置
CN106294108B (zh) 应用程序测试方法及装置
CN110968508B (zh) 一种小程序的加载时间确定方法、装置、终端及存储介质
CN109714476B (zh) 数据处理方法、装置、移动终端及存储介质
CN110046497B (zh) 一种函数挂钩实现方法、装置和存储介质
CN107734618B (zh) 应用程序关闭方法、装置、存储介质和电子设备
CN110413497B (zh) 异常监控方法、装置、终端设备及计算机可读存储介质
CN112749074A (zh) 一种测试用例推荐方法以及装置
CN107872367B (zh) 黑屏检测方法、移动终端及计算机可读存储介质
CN107832191B (zh) 黑屏检测方法、移动终端及计算机可读存储介质
CN107832131B (zh) 应用程序关闭方法、装置、存储介质和电子设备
CN106709330B (zh) 记录文件执行行为的方法及装置
US11150913B2 (en) Method, device, and terminal for accelerating startup of application
CN112415367A (zh) 驱动芯片异常侦测方法、装置、电子设备及可读存储介质
CN108076200B (zh) 移动终端重启定位方法、移动终端及计算机可读存储介质
CN107122204B (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