CN110377383B - 一种查看应用软件性能参数的方法、装置及存储介质 - Google Patents
一种查看应用软件性能参数的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110377383B CN110377383B CN201910589349.6A CN201910589349A CN110377383B CN 110377383 B CN110377383 B CN 110377383B CN 201910589349 A CN201910589349 A CN 201910589349A CN 110377383 B CN110377383 B CN 110377383B
- Authority
- CN
- China
- Prior art keywords
- request
- application software
- real
- parameter
- time detection
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- 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/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种查看应用软件性能参数的方法、装置及存储介质,涉及性能参数检测领域,用以解决现有技术中,不能实时查看应用软件的各性能参数的问题。该方法中,通过对应用软件集成SDK插件,在打开应用软件时,SDK插件便对该应用软件的性能参数进行实时检测,并在界面上显示悬浮窗组件;若想查看当前应用软件的各性能参数,则通过点击悬浮窗组件对应用软件的各性能参数进行查看。这样,通过SDK插件,实现了对应用软件的各性能参数的实时查看,且无需通过多个工具对应用软件各性能参数进行检测。
Description
技术领域
本申请涉及性能参数检测领域,尤其涉及一种查看应用软件性能参数的方法、装置及存储介质。
背景技术
目前应用软件对性能参数的监控,是通过第三方应用软件来完成的,且针对不同的性能参数需要通过不同的第三方应用软件。
因此,在现有技术中,并不能实时查看应用软件的各性能参数。
发明内容
本申请实施例提供一种查看应用软件性能参数的方法、装置及存储介质,用以解决现有技术中,不能实时查看应用软件的各性能参数的问题。
第一方面,本申请实施例提供一种查看应用软件性能参数的方法,应用于安卓***客户端,该方法包括:
接收到打开应用软件的请求后,对所述应用软件的性能参数进行实时检测,并在界面上显示处于初始状态的悬浮窗组件;
接收到点击悬浮窗组件的点击请求后,控制所述悬浮窗组件展示所述应用软件的性能参数的操作界面;
若接收到针对任一所述性能参数的展示请求,则将所述性能参数的实时检测结果进行显示。
第二方面,本申请实施例提供一种查看应用软件性能参数的装置,该装置包括:
检测模块,用于接收到打开应用软件的请求后,对所述应用软件的性能参数进行实时检测,并在界面上显示处于初始状态的悬浮窗组件;
展示模块,用于接收到点击悬浮窗组件的点击请求后,控制所述悬浮窗组件展示所述应用软件的性能参数的操作界面;
第一显示模块,用于若接收到针对任一所述性能参数的展示请求,则将所述性能参数的实时检测结果进行显示。
第三方面,本申请另一实施例还提供了一种计算装置,包括至少一个处理器;以及;
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的一种查看应用软件性能参数的方法。
第四方面,本申请另一实施例还提供了一种计算机存储介质,其中,所述计算机存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本申请实施例中的一种查看应用软件性能参数的方法。
本申请实施例提供的一种查看应用软件性能参数的方法、装置及存储介质,通过对应用软件集成SDK(软件开发工具包,Software Development Kit)插件,在打开应用软件时,SDK插件便对该应用软件的性能参数进行实时检测,并在界面上显示悬浮窗组件;若想查看当前应用软件的各性能参数,则通过点击悬浮窗组件对应用软件的各性能参数进行查看。这样,通过SDK插件,实现了对应用软件的各性能参数的实时查看。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中查看应用软件性能参数的流程示意图;
图2为本申请实施例中处于初始状态的悬浮窗组件的示意图一;
图3为本申请实施例中点击悬浮窗组件后的示意图;
图4为本申请实施例中处于初始状态的悬浮窗组件的示意图二;
图5为本申请实施例中查看应用软件性能参数的结构示意图;
图6为根据本申请实施方式的计算装置的结构示意图。
具体实施方式
为了解决现有技术中,不能实时查看应用软件的各性能参数的问题,本申请实施例中提供一种查看应用软件性能参数的方法、装置及存储介质。为了更好的理解本申请实施例提供的技术方案,下面对该方案的基本原理做一下简单说明:
应用软件的性能参数包括网络请求、流量使用、内存使用、CPU(CentralProcessing Unit,中央处理器)使用、卡顿丢帧、应用异常等信息。在现有技术中,通过第三方抓包工具来对网络请求进行检测,通过开发者工具的设置来分辨是否卡顿丢帧,通过第三方应用软件来获取应用软件异常的具体信息,以及通过第三方SDK插件来查看CPU使用、内存使用等信息。
然而,虽然现有技术中可以检测到应用软件的各性能参数,但是由于通过多个工具对应用软件各性能参数的检测,使得想实时查看应用软件各性能参数变得困难。
有鉴于此,本申请实施例中提供了一种查看应用软件性能参数的方法、装置及存储介质,通过对想要查看性能参数的应用软件集成SDK(软件开发工具包,SoftwareDevelopment Kit)插件,在打开应用软件时,SDK插件便对该应用软件的各性能参数进行实时检测,并在界面上显示悬浮窗组件;若想查看当前应用软件的各性能参数,则通过点击悬浮窗组件对应用软件的各性能参数进行查看。这样,通过SDK插件,实现了对应用软件的各性能参数的实时查看,且无需通过多个工具对应用软件各性能参数进行检测。
为便于理解,下面结合附图对本申请提供的技术方案做进一步说明。图1为查看应用软件性能参数的流程示意图,包括以下步骤:
步骤101:接收到打开应用软件的请求后,对所述应用软件的性能参数进行实时检测,并在界面上显示处于初始状态的悬浮窗组件。
在本申请实施例中,为了实现对所述应用软件的性能参数进行实时检测,需要将实时检测的SDK插件集成到该应用软件上,这样,在打开应用软件后,集成在该应用软件上的SDK插件便对该应用软件的各性能参数进行检测,且该SDK插件只检测集成的应用软件的各性能参数,并不检测其他应用软件。
在一个实施例中,SDK插件可分别集成在多个应用软件上。例如:应用软件1和应用软件2均集成有SDK插件;在打开应用软件1时,集成在应用软件1上的SDK插件开始对应用软件1的各性能参数进行检测,不会检测应用软件2的各性能参数;在打开应用软件2时,集成在应用软件2上的SDK插件开始对应用软件2的各性能参数进行检测,不会检测应用软件1的各性能参数。
步骤102:接收到点击悬浮窗组件的点击请求后,控制所述悬浮窗组件展示所述应用软件的性能参数的操作界面。
如图2所示,其为处于初始状态的悬浮窗组件的示意图。其中,处于初始状态的悬浮窗组件处于当前应用软件上方,悬浮显示。且悬浮窗组件可通过设置调节透明度。如图3所示,其为点击悬浮窗组件后的示意图。其中,展开后的悬浮窗组件仍处于应用软件上方,悬浮显示。展开后的悬浮窗组件会显示可查看的性能参数;如:网络请求、流量使用、CPU使用、内存使用、卡顿丢帧和异常列表等,点击相应的性能参数可进行查看。
步骤103:若接收到针对任一所述性能参数的展示请求,则将所述性能参数的实时检测结果进行显示。
这样,通过SDK插件,实现了对应用软件的各性能参数的实时查看,且无需通过多个工具对应用软件各性能参数进行检测。
在本申请实施例中,为了提高用户体验,在处于原始状态的悬浮窗组件上添加一些简要的性能参数信息,具体可实施为步骤A1-A2:
步骤A1:将所述内存使用、所述CPU使用以及所述流量使用的实时检测结果的简要信息显示在处于初始状态的所述悬浮窗组件上。
步骤A2:将所述卡顿丢帧的实时检测结果通过处于初始状态的所述悬浮窗组件的背景色进行显示。
需要说明的是,步骤A1-步骤A2执行顺序不受限。
如图4所示,其为处于初始状态的悬浮窗组件的示意图。其中,内存使用的实时检测结果的简要信息是已用内存占内存总量的百分比,如图所示的内存:57%;CPU使用的实时检测结果的简要信息是已用CPU占CPU总量的百分比如图所示的CPU:29%;流量使用的实时检测结果的简要信息为下载网速和上传网速如图所示的上传速度:10k/s(千字节每秒)和下载速度:200k/s。将已用内存占内存总量的百分比、已用CPU占CPU总量的百分比和下载网速和上传网速显示在悬浮窗组件内。
而在本申请实施例中,通过处于初始状态的所述悬浮窗组件的背景色反应当前的卡顿丢帧情况。例如:将背景色为绿色反映为未丢帧,将背景色为红色反映为丢帧。当然,为了进一步细化是否丢帧卡顿,可以通过多个背景色对卡顿丢帧情况进行说明。例如:将背景色为绿色反映为未丢帧,将背景色为黄色反映为靠近丢帧边界,将背景色为红色反映为丢帧。当然,也可以通过其他背景色对卡顿丢帧情况进行说明,本申请对此不做限定。
这样,用户在没有点击悬浮窗组件的情况时,仍然可以查看当前应用软件的性能参数,提高了用户的体验。
在本申请实施例中,为了实现通过SDK插件在智能终端上显示悬浮窗组件,可通过界面窗口管理器(WindowMananger)下的添加视图(addView)方法来实现。其中,界面窗口管理器可以通过获取安卓***服务(Android WINDOW_SERVICE)得到。
在介绍完如何查看应用软件的性能参数后,下面对如何通过SDK插件对应用软件的性能参数进行检测做进一步的说明。
性能参数包括网络请求、流量使用、内存使用、CPU使用、卡顿丢帧、应用异常等信息,下面分别对各性能参数如何进行检测进行说明。
一、网络请求:
在本申请实施例中,为了实现通过SDK插件实时检测网络请求情况,可通过面向切面编程(AOP)机制确定;具体可实施为步骤B1-步骤B3:
步骤B1:基于面向切面编程AOP机制,确定当前界面的网络请求在调用前后的两个切点。
步骤B2:分别对两个所述切点做切面,得到所述网络请求在调用前的请求参数以及在调用后的返回参数。
步骤B3:将所述请求参数和所述返回参数作为所述网络请求的实时检测结果。
这样,通过AOP机制,实现了对当前应用软件的网络请求情况的实时检测,并通过点击悬浮窗组件中的网络请求进行查看,实现了对网络请求的实时查看。
进一步的,为了可以使研发人员可以对网络请求进行编辑,在本申请实施例中,还可以通过对切点处的请求参数进行拦截实现对网络请求的编辑,下面以调用前的切点为例,具体可实施为步骤C1-步骤C3:
步骤C1:在调用前的所述切点处拦截所述请求参数。
步骤C2:将所述请求参数设置为可编辑状态。
在本申请实施例中,当请求参数为可编辑状态时,研发人员即可对该请求参数进行修改编辑。
步骤C3:接收到编辑完成的完成请求后,分别对两个所述切点做切面,得到所述网络请求在调用前的编辑的请求参数以及在调用后的与所述编辑的请求参数对应的返回参数。
同样的,在调用后的所述切点处拦截所述返回参数,并将在调用后的所述切点处拦截所述返回参数,即可实现对返回参数的编辑;在接收到编辑完成的完成请求后,分别对两个所述切点做切面,得到所述网络请求在调用前的请求参数以及在调用后的编辑的返回参数。
这样,通过对切点出进行拦截,研发人员可以通过SDK插件对网络请求进行编辑,简化了研发人员的操作。
二、流量使用:
在本申请实施例中,为了实现通过SDK插件实时检测流量使用情况,可通过安卓流量统计(Android TrafficStats)类确定;具体可实施为步骤D1-步骤D2:
步骤D1:通过Android TrafficStats类,对当前界面的应用软件进行UID(用户身份证明)定位。
步骤D2:获取定位的所述应用软件的上传流量和/或下载流量作为所述流量使用的实时检测结果。
这样,通过Android TrafficStats类,实现了对当前应用软件的流量使用情况的实时检测,并通过点击悬浮窗组件中的流量使用进行查看,实现了对流量使用的实时查看。
三、内存使用:
在本申请实施例中,为了实现通过SDK插件实时检测内存使用情况,可通过在活动管理器下的获取内存结构信息(ActivityManager.getMemoryInfo(ActivityManager.MemoryInfo))方法确定;具体可实施为步骤E1-步骤E3:
步骤E1:读取用于存储内存信息的***文件中的信息,获取客户端的内存总量。
在一个实施例中,可通过/proc/meminfo路径对***文件进行读取。
步骤E2:通过在活动管理器下的获取内存结构信息方法,获取当前可用内存量。
步骤E3:将所述内存总量和当前可用内存量作为所述内存使用的实时检测结果。
这样,通过ActivityManager.getMemoryInfo(ActivityManager.MemoryInfo)方法,实现了对当前应用软件的内存使用情况的实时检测,并通过点击悬浮窗组件中的内存使用进行查看,实现了对内存使用的实时查看。
四、CPU使用:
在本申请实施例中,为了实现通过SDK插件实时检测CPU使用情况,可通过读取用于存储CPU信息的***文件确定;具体可实施为步骤F1-步骤F2:
步骤F1:读取用于存储CPU信息的***文件中的信息,确定当前CPU的使用情况。
其中,CPU的使用情况可包括当前已用CPU资源,以及CPU总资源。
在一个实施例中,可通过proc/stat路径对***文件进行读取。
步骤F2:将所述当前CPU的使用情况作为所述CPU使用的实时检测结果。
这样,通过对***文件的读取,实现了对当前应用软件的CPU使用情况的实时检测,并通过点击悬浮窗组件中的CPU使用进行查看,实现了对CPU使用的实时查看。
五、卡顿丢帧:
在本申请实施例中,为了实现通过SDK插件实时检测卡顿丢帧情况,可通过在消息处理器下的界面帧刷新的回调(Choreographer.FrameCallback)方法确定;具体可实施为步骤G1-步骤G4:
步骤G1:通过在消息处理器下的界面帧刷新的回调方法,对当前画面进行监控。
步骤G2:当检测到画面刷新时回调,并记录刷新间隔时长。
步骤G3:对所述刷新间隔时长与预设的标准间隔时长进行比较,确定是否卡顿丢帧。
在一个实施例中,预设的标准间隔时长可以是16毫秒。
步骤G4:将所述刷新间隔时长以及是否卡顿丢帧的结果作为所述卡顿丢帧的实时检测结果。
这样,通过Choreographer.FrameCallback方法,实现了对当前应用软件的卡顿丢帧情况的实时检测,并通过点击悬浮窗组件中的卡顿丢帧进行查看,实现了对卡顿丢帧的实时查看。
六、应用异常:
在本申请实施例中,为了实现通过SDK插件实时检测应用异常的情况,可通过异常捕捉机制(UncaughtExceptionHandler)确定;具体可实施为步骤H1-步骤H3:
步骤H1:接收到打开所述应用软件的请求后,对UncaughtExceptionHandler进行初始化。
步骤H2:若检测到所述应用软件出现异常,则通过所述异常捕捉机制获取所述应用软件的日志文件。
其中,应用软件出现异常为应用进程崩溃。
步骤H3:将所述日志文件存储到异常列表中。
在本申请实施例中,当应用软件出现异常时,在应用软件关闭之前,将日志文件存储到异常列表中。
在本申请实施例中,当获取到应用软件的日志文件后,可以将日志文件保存在本地,也可以在保存后上传给服务器端,由服务器端对应用异常进行分析。
这样,通过异常捕捉机制,实现了对应用异常情况的实时检测,并通过点击悬浮窗组件中的异常列表进行查看保存的日志文件,实现了对应用异常的日志文件的实时查看。
基于相同的发明构思,本申请实施例还提供了一种查看应用软件性能参数的装置。如图5所示,该装置包括:
检测模块501,用于接收到打开应用软件的请求后,对所述应用软件的性能参数进行实时检测,并在界面上显示处于初始状态的悬浮窗组件;
展示模块502,用于接收到点击悬浮窗组件的点击请求后,控制所述悬浮窗组件展示所述应用软件的性能参数的操作界面;
第一显示模块503,用于若接收到针对任一所述性能参数的展示请求,则将所述性能参数的实时检测结果进行显示。
进一步的,若所述性能参数为网络请求,则通过以下装置获取网络请求的实时检测结果:
确定切点模块,用于基于面向切面编程AOP机制,确定当前界面的网络请求在调用前后的两个切点;
切面模块,用于分别对两个所述切点做切面,得到所述网络请求在调用前的请求参数以及在调用后的返回参数;
第一结果模块,用于将所述请求参数和所述返回参数作为所述网络请求的实时检测结果。
进一步的,所述装置还包括:
第一拦截模块,用于切面模块分别对两个所述切点做切面,得到所述网络请求在调用前的请求参数以及在调用后的返回参数之前,在调用前的所述切点处拦截所述请求参数;
第一设置模块,用于将所述请求参数设置为可编辑状态;
切面模块用于接收到编辑完成的完成请求后,分别对两个所述切点做切面,得到所述网络请求在调用前的编辑的请求参数以及在调用后的与所述编辑的请求参数对应的返回参数。
进一步的,所述装置还包括:
第二拦截模块,用于切面模块分别对两个所述切点做切面,得到所述网络请求在调用前的请求参数以及在调用后的返回参数之前,在调用后的所述切点处拦截所述返回参数;
第二设置模块,用于将所述返回参数设置为可编辑状态;
切面模块用于接收到编辑完成的完成请求后,分别对两个所述切点做切面,得到所述网络请求在调用前的请求参数以及在调用后的编辑的返回参数。
进一步的,若所述性能参数为流量使用,则通过以下装置获取流量使用的实时检测结果:
定位模块,用于通过安卓流量统计Android TrafficStats类,对当前界面的应用软件进行用户身份证明UID定位;
第二结果模块,用于获取定位的所述应用软件的上传流量和/或下载流量作为所述流量使用的实时检测结果。
进一步的,若所述性能参数为内存使用,则通过以下装置获取内存使用的实时检测结果:
第一读取模块,用于读取用于存储内存信息的***文件中的信息,获取客户端的内存总量;
获取模块,用于通过在活动管理器下的获取内存结构信息方法,获取当前可用内存量;
第三结果模块,用于将所述内存总量和当前可用内存量作为所述内存使用的实时检测结果。
进一步的,若所述性能参数为CPU使用,则通过以下装置获取CPU使用的实时检测结果:
第二读取模块,用于读取用于存储CPU信息的***文件中的信息,确定当前CPU的使用情况;
第四结果模块,用于将所述当前CPU的使用情况作为所述CPU使用的实时检测结果。
进一步的,若所述性能参数为卡顿丢帧,则通过以下装置获取卡顿丢帧的实时检测结果:
监控模块,用于通过在消息处理器下的界面帧刷新的回调方法,对当前画面进行监控;
回调模块,用于当检测到画面刷新时回调,并记录刷新间隔时长;
比较模块,用于对所述刷新间隔时长与预设的标准间隔时长进行比较,确定是否卡顿丢帧;
第五结果模块,用于将所述刷新间隔时长以及是否卡顿丢帧的结果作为所述卡顿丢帧的实时检测结果。
进一步的,所述装置还包括:
初始化模块,用于接收到打开所述应用软件的请求后,对异常捕捉机制UncaughtExceptionHandler进行初始化;
异常模块,用于若检测到所述应用软件出现异常,则通过所述异常捕捉机制获取所述应用软件的日志文件;
存储模块,用于将所述日志文件存储到异常列表中。
进一步的,所述装置还包括:
第二显示模块,用于展示模块接收到点击悬浮窗组件的点击请求后,控制所述悬浮窗组件展示所述应用软件的性能参数的操作界面之前,将所述内存使用、所述CPU使用以及所述流量使用的实时检测结果的简要信息显示在处于初始状态的所述悬浮窗组件上;
第三显示模块,用于将所述卡顿丢帧的实时检测结果通过处于初始状态的所述悬浮窗组件的背景色进行显示。
在介绍了本申请示例性实施方式的查看应用软件性能参数的方法及装置之后,接下来,介绍根据本申请的另一示例性实施方式的计算装置。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为***、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
在一些可能的实施方式中,根据本申请的实施例,计算装置可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的查看应用软件性能参数的方法中的步骤101-步骤103。
下面参照图6来描述根据本申请的这种实施方式的计算装置60。图6显示的计算装置60仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。该计算装置例如可以是手机、平板电脑等。
如图6所示,计算装置60以通用计算装置的形式表现。计算装置60的组件可以包括但不限于:上述至少一个处理器61、上述至少一个存储器62、连接不同***组件(包括存储器62和处理器61)的总线63。
总线63表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、***总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器62可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)621和/或高速缓存存储器622,还可以进一步包括只读存储器(ROM)623。
存储器62还可以包括具有一组(至少一个)程序模块624的程序/实用工具625,这样的程序模块624包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置60也可以与一个或多个外部设备64(例如指向设备等)通信,还可与一个或者多个使得用户能与计算装置60交互的设备通信,和/或与使得该计算装置60能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口65进行。并且,计算装置60还可以通过网络适配器66与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器66通过总线63与用于计算装置60的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置60使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
在一些可能的实施方式中,本申请提供的查看应用软件性能参数的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的查看应用软件性能参数的方法中的步骤,执行如图1中所示的步骤101-步骤103。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请实施方式的查看应用软件性能参数的方法可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种查看应用软件性能参数的方法,其特征在于,应用于安卓***客户端,所述客户端所属的应用软件集成有SDK插件,所述方法包括:
所述SDK插件接收到打开应用软件的请求后,对所述应用软件的性能参数进行实时检测,并在界面上显示处于初始状态的悬浮窗组件,所述性能参数包括网络请求、流量使用、内存使用、CPU使用、卡顿丢帧和应用异常;
接收到点击悬浮窗组件的点击请求后,控制所述悬浮窗组件展示所述应用软件的性能参数的操作界面;
若接收到针对任一所述性能参数的展示请求,则将所述性能参数的实时检测结果进行显示;
若所述性能参数为网络请求,则通过以下方法获取网络请求的实时检测结果:
基于面向切面编程AOP机制,确定当前界面的网络请求在调用前后的两个切点;
在调用前的所述切点处拦截请求参数,将所述请求参数设置为可编辑状态,接收到编辑完成的完成请求后,分别对两个所述切点做切面,得到所述网络请求在调用前的编辑的请求参数以及在调用后的与所述编辑的请求参数对应的返回参数;或者;在调用后的所述切点处拦截所述返回参数,将所述返回参数设置为可编辑状态,接收到编辑完成的完成请求后,分别对两个所述切点做切面,得到所述网络请求在调用前的请求参数以及在调用后的编辑的返回参数;
将所述请求参数和所述返回参数作为所述网络请求的实时检测结果。
2.根据权利要求1所述的方法,其特征在于,若所述性能参数为流量使用,则通过以下方法获取流量使用的实时检测结果:
通过安卓流量统计Android TrafficStats类,对当前界面的应用软件进行用户身份证明UID定位;
获取定位的所述应用软件的上传流量和/或下载流量作为所述流量使用的实时检测结果。
3.根据权利要求1所述的方法,其特征在于,若所述性能参数为内存使用,则通过以下方法获取内存使用的实时检测结果:
读取用于存储内存信息的***文件中的信息,获取客户端的内存总量;
通过在活动管理器下的获取内存结构信息方法,获取当前可用内存量;
将所述内存总量和当前可用内存量作为所述内存使用的实时检测结果。
4.根据权利要求1所述的方法,其特征在于,若所述性能参数为CPU使用,则通过以下方法获取CPU使用的实时检测结果:
读取用于存储CPU信息的***文件中的信息,确定当前CPU的使用情况;
将所述当前CPU的使用情况作为所述CPU使用的实时检测结果。
5.根据权利要求1所述的方法,其特征在于,若所述性能参数为卡顿丢帧,则通过以下方法获取卡顿丢帧的实时检测结果:
通过在消息处理器下的界面帧刷新的回调方法,对当前画面进行监控;
当检测到画面刷新时回调,并记录刷新间隔时长;
对所述刷新间隔时长与预设的标准间隔时长进行比较,确定是否卡顿丢帧;
将所述刷新间隔时长以及是否卡顿丢帧的结果作为所述卡顿丢帧的实时检测结果。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收到打开所述应用软件的请求后,对异常捕捉机制UncaughtExceptionHandler进行初始化;
若检测到所述应用软件出现异常,则通过所述异常捕捉机制获取所述应用软件的日志文件;
将所述日志文件存储到异常列表中。
7.根据权利要求1所述的方法,其特征在于,所述接收到点击悬浮窗组件的点击请求后,控制所述悬浮窗组件展示网络信息的操作界面之前,所述方法还包括:
将所述内存使用、所述CPU使用以及所述流量使用的实时检测结果的简要信息显示在处于初始状态的所述悬浮窗组件上;以及,
将所述卡顿丢帧的实时检测结果通过处于初始状态的所述悬浮窗组件的背景色进行显示。
8.一种查看应用软件性能参数的装置,其特征在于,应用于安卓***客户端,所述客户端所属的应用软件集成有SDK插件,所述装置应用于所述SDK插件,且包括:
检测模块,用于接收到打开应用软件的请求后,对所述应用软件的性能参数进行实时检测,并在界面上显示处于初始状态的悬浮窗组件,所述性能参数包括网络请求、流量使用、内存使用、CPU使用、卡顿丢帧和应用异常的任意组合;
展示模块,用于接收到点击悬浮窗组件的点击请求后,控制所述悬浮窗组件展示所述应用软件的性能参数的操作界面;
第一显示模块,用于若接收到针对任一所述性能参数的展示请求,则将所述性能参数的实时检测结果进行显示;
若所述性能参数为网络请求,则通过以下模块获取网络请求的实时检测结果:
确定切点模块,用于基于面向切面编程AOP机制,确定当前界面的网络请求在调用前后的两个切点;
切面模块,用于在调用前的所述切点处拦截请求参数,将所述请求参数设置为可编辑状态,接收到编辑完成的完成请求后,分别对两个所述切点做切面,得到所述网络请求在调用前的编辑的请求参数以及在调用后的与所述编辑的请求参数对应的返回参数;或者;在调用后的所述切点处拦截所述返回参数,将所述返回参数设置为可编辑状态,接收到编辑完成的完成请求后,分别对两个所述切点做切面,得到所述网络请求在调用前的请求参数以及在调用后的编辑的返回参数;
第一结果模块,用于将所述请求参数和所述返回参数作为所述网络请求的实时检测结果。
9.一种智能终端可读介质,存储有智能终端可执行指令,其特征在于,所述智能终端可执行指令用于执行如权利要求1-7中任一权利要求所述的方法。
10.一种计算装置,其特征在于,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-7中任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910589349.6A CN110377383B (zh) | 2019-07-02 | 2019-07-02 | 一种查看应用软件性能参数的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910589349.6A CN110377383B (zh) | 2019-07-02 | 2019-07-02 | 一种查看应用软件性能参数的方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110377383A CN110377383A (zh) | 2019-10-25 |
CN110377383B true CN110377383B (zh) | 2023-02-03 |
Family
ID=68251584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910589349.6A Active CN110377383B (zh) | 2019-07-02 | 2019-07-02 | 一种查看应用软件性能参数的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110377383B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104854561A (zh) * | 2012-10-16 | 2015-08-19 | 思杰***有限公司 | 用于应用程序管理框架的应用程序封装 |
CN107145489A (zh) * | 2016-03-01 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 一种基于云平台的客户端应用的信息统计方法和装置 |
CN108733334A (zh) * | 2018-03-13 | 2018-11-02 | 广东欧珀移动通信有限公司 | 画质参数调节方法、装置、终端及存储介质 |
CN109522021A (zh) * | 2018-10-30 | 2019-03-26 | 咪咕文化科技有限公司 | 参数回调处理方法、装置、电子设备及存储介质 |
CN109783551A (zh) * | 2019-01-08 | 2019-05-21 | 上海上湖信息技术有限公司 | 数据展示方法及***、可读存储介质 |
CN109814848A (zh) * | 2019-02-21 | 2019-05-28 | 广州卓远虚拟现实科技有限公司 | 一种虚拟现实通用动感引擎 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794224B (zh) * | 2010-02-26 | 2013-11-13 | 中国人民解放军国防科学技术大学 | 一种基于性质规约模式的软件运行时性质监测方法 |
CN106547682A (zh) * | 2015-09-21 | 2017-03-29 | 腾讯科技(深圳)有限公司 | 调测移动应用的方法及装置 |
CN105182883B (zh) * | 2015-10-14 | 2018-01-09 | 青岛天人环境股份有限公司 | 一种基于app的气柜智能控制***安全体检方法 |
CN107273124A (zh) * | 2017-06-12 | 2017-10-20 | 北京奇虎科技有限公司 | 软件运行性能信息的处理方法、装置及*** |
-
2019
- 2019-07-02 CN CN201910589349.6A patent/CN110377383B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104854561A (zh) * | 2012-10-16 | 2015-08-19 | 思杰***有限公司 | 用于应用程序管理框架的应用程序封装 |
CN107145489A (zh) * | 2016-03-01 | 2017-09-08 | 阿里巴巴集团控股有限公司 | 一种基于云平台的客户端应用的信息统计方法和装置 |
CN108733334A (zh) * | 2018-03-13 | 2018-11-02 | 广东欧珀移动通信有限公司 | 画质参数调节方法、装置、终端及存储介质 |
CN109522021A (zh) * | 2018-10-30 | 2019-03-26 | 咪咕文化科技有限公司 | 参数回调处理方法、装置、电子设备及存储介质 |
CN109783551A (zh) * | 2019-01-08 | 2019-05-21 | 上海上湖信息技术有限公司 | 数据展示方法及***、可读存储介质 |
CN109814848A (zh) * | 2019-02-21 | 2019-05-28 | 广州卓远虚拟现实科技有限公司 | 一种虚拟现实通用动感引擎 |
Non-Patent Citations (3)
Title |
---|
"Proof Based Analytical Comparison of Energy Parameters between Android and iOS Platform for Heterogeneous Cloud Based Application";Payal Mittal.etc;《2016 Second International Conference on Computational Intelligence & Communication Technology (CICT)》;20160818;第325-331页 * |
"基于Android的智能医疗监控终端软件的开发";王璐;《中国优秀硕士学位论文全文数据库信息科技辑》;20170215;I138-1996 * |
"基于GIS的农机监控调度***的设计";童维楗等;《电子技术与软件工程》;20171222;第192-193页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110377383A (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108900776B (zh) | 用于确定响应时间的方法和装置 | |
WO2019051948A1 (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN107979506B (zh) | 流量获取和云端展示***、方法、装置及设备 | |
US20180113786A1 (en) | Automatically complete a specific software task using hidden tags | |
US20170262355A1 (en) | Debugging applications | |
WO2021120544A1 (zh) | 用于调试设备的方法及装置 | |
CN113792341A (zh) | 应用程序的隐私合规自动化检测方法、装置、设备及介质 | |
US20180246776A1 (en) | Guided troubleshooting with autofilters | |
CN111193613A (zh) | 一种在客户端应用采集打点信息的方法、装置和*** | |
CN110377383B (zh) | 一种查看应用软件性能参数的方法、装置及存储介质 | |
CN112416734A (zh) | 测试的方法、装置以及存储介质 | |
CN111258893A (zh) | 随机组装交易路径的移动端应用自动化测试装置 | |
EP4160421A1 (en) | Method and apparatus for obtaining browser running data, and storage medium | |
CN104424098A (zh) | 一种应用测试方法及装置 | |
CN115422052A (zh) | 一种车载导航app的测试***及方法 | |
US11200138B1 (en) | Policy-based request tracing using a computer | |
CN110413153B (zh) | 一种防误触方法、装置及存储介质 | |
CN114328090A (zh) | 一种程序监控方法、装置、电子设备及存储介质 | |
CN114036523A (zh) | 一种基于虚拟化技术的漏洞靶场自动化搭建方法和装置 | |
CN110262856B (zh) | 一种应用程序数据采集方法、装置、终端及存储介质 | |
US10169197B2 (en) | Temporary breakpoints during debug process | |
CN113760307A (zh) | 获取应用代码的差异化覆盖率的方法和装置 | |
US10078572B1 (en) | Abnormal timing breakpoints | |
CN110736920A (zh) | 一种基于工程管理测试脚本的卡片测试方法及*** | |
US20240193075A1 (en) | Automate Load Test Scenario Based On Mapping With Real-Time Data Monitoring |
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 |