采集应用程序性能数据的方法、装置及终端设备与流程

文档序号:17262822发布日期:2019-03-30 09:47阅读:133来源:国知局
采集应用程序性能数据的方法、装置及终端设备与流程

本公开涉及应用程序开发技术领域,尤其涉及一种采集应用程序性能数据的方法、装置及终端设备。



背景技术:

应用程序开发人员在开发应用程序时,制作应用程序安装包,将所制作的安装包发布至线上平台,用户从线上平台上下载应用程序安装包,在终端设备上安装所下载的应用程序安装包后即可在终端设备上使用该应用程序。

应用程序的性能是影响应用程序下载量的关键因素,如果一个应用程序的性能非常差,会导致该应用程序在发布平台上的排名受很大的影响,那么下载安装该应用程序的用户数量也会较性能好的应用程序少。因此应用程序开发人员会花大量时间与精力在应用程序性能优化上。在对应用程序的性能进行优化时,需熟知应用程序的各项性能数据才能对应用程序的性能进行有效优化,如应用程序的崩溃率、卡顿、界面绘制频率、fps、网络使用情况、cpu使用情况等因素的性能数据。目前,需要专门设置性能优化的开发人员手动采集应用程序的各项性能数据,不仅耗时长且需要消耗大量的人力资源。

可见,目前迫切需要本领域技术人员提供一种快速便捷地采集应用程序性能数据的方法。



技术实现要素:

为克服相关技术中存在的问题,本公开提供了一种采集应用程序性能数据的方法、装置及终端设备。

根据本公开实施例的第一方面,提供了一种采集应用程序性能数据的方法,其中,所述方法包括:下载并安装目标应用程序的安装包,其中,所述安装包在编译期被注入性能监控代码;在运行所述目标应用程序的过程中,调用所述性能监控代码分别采集所述目标应用程序中的各待监控对象的性能数据;将采集到的所述各待监控对象的性能数据上报至服务器。

可选地,所述在运行所述目标应用程序的过程中,调用所述性能监控代码分别采集所述目标应用程序中的各待监控对象的性能数据,包括:在运行所述目标应用程序的过程中,当启动第一待监控对象时,调用所述第一监控对象下注入的性能监控代码段;其中,所述性能监控代码中包含多个关键词和性能监控代码段,每个关键词对应一个待监控对象;通过所述性能监控代码段对所述第一监控对象本次运行所产生的性能数据进行采集,其中,所述性能数据包括:运行所花费的时间、所耗费的网络流量信息、所占用的内存资源信息中的至少之一。

可选地,所述性能监控代码通过如下方式注入到所述目标应用程序的安装包中:依据面向切面编程方式在所述目标应用程序的功能代码动态编辑期,注入所述性能监控代码;其中,所述性能监控代码中包含多个关键词和性能监控代码段;分别在所述功能代码中查找各所述关键词匹配的待监控对象对应的功能代码段;分别在各所述功能代码段下插入所述性能监控代码段,生成所述目标应用程序的安装包。

可选地,所述待监控对象为所述目标应用程序中的模块、组件或者线程。

根据本公开实施例的第二方面,提供一种采集应用程序性能数据的装置,其中,所述装置包括:安装模块,被配置为下载并安装目标应用程序的安装包,其中,所述安装包在编译期被注入性能监控代码;采集模块,被配置为在运行所述目标应用程序的过程中,调用所述性能监控代码分别采集所述目标应用程序中的各待监控对象的性能数据;上报模块,被配置为将采集到的所述各待监控对象的性能数据上报至服务器。

可选地,所述采集模块包括:调用子模块,被配置为在运行所述目标应用程序的过程中,当启动第一待监控对象时,调用所述第一监控对象下注入的性能监控代码段;其中,所述性能监控代码中包含多个关键词和性能监控代码段,每个关键词对应一个待监控对象;采集子模块,用于通过所述性能监控代码段对所述第一监控对象本次运行所产生的性能数据进行采集,其中,所述性能数据包括:运行所花费的时间、所耗费的网络流量信息、所占用的内存资源信息中的至少之一。

可选地,所述性能监控代码通过如下方式注入到所述目标应用程序的安装包中:依据面向切面编程方式在所述目标应用程序的功能代码动态编辑期,注入所述性能监控代码;其中,所述性能监控代码中包含多个关键词和性能监控代码段;分别在所述功能代码中查找各所述关键词匹配的待监控对象对应的功能代码段;分别在各所述功能代码段下插入所述性能监控代码段,生成所述目标应用程序的安装包。

可选地,所述待监控对象为所述目标应用程序中的模块、组件或者线程。

根据本公开实施例的第三方面,提供一种终端设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述任一种采集应用程序性能数据的方法。

根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端设备的处理器执行时,使得终端设备执行上述任一种采集应用程序性能数据的方法。

根据本公开实施例的第五方面,提供根据一种计算机程序产品,当所述计算机程序产品中的指令由移动终端的处理器执行时,使得终端设备执行上述任一种采集应用程序性能数据的方法。

本公开的实施例提供的技术方案可以包括以下有益效果:

本公开的实施例提供的采集应用程序性能数据的方案,在应用程序运行过程中,调用应用程序中预先注入的性能监控代码,分别对该应用程序中的各待检测对象进行性能监控采集性能数据并上报至服务器,无需开发人员人工搜集应用程序中各监控对象的性能数据,能够节省大量的人力资源和搜集性能数据所耗时间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种采集应用程序性能数据的方法的步骤流程图;

图2是根据一示例性实施例示出的一种采集应用程序性能数据的方法的步骤流程图;

图3是根据一示例性实施例示出的一种采集应用程序性能数据的装置的框图;

图4是根据一示例性实施例示出的一种终端设备的结构框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种采集应用程序性能数据的方法的流程图,如图1所示的采集应用程序性能数据的方法用于终端设备中,包括以下步骤:

步骤101:下载并安装目标应用程序的安装包。

其中,目标应用程序的安装包在编译期被注入性能监控代码。性能监控代码可包含多个关键词和性能监控代码段。每个关键词对应一个待监控对象,性能监控代码段可分别被注入各待监控对象的代码入口中,分别用于采集各待监控对象的性能数据。在实际应用过程中,若应用程序开发人员无采集目标应用程序的性能数据的需求,则无需向目标应用程序的安装包中注入性能监控代码。性能监控代码可适用于不同应用程序,针对不同的应用程序将性能监控代码中的关键词以及待监控性能数据的具体参数进行适应性调整即可。

在向目标应用程序的安装包中注入性能监控代码时,可在安装包编译器借助aop(aspectorientedprogramming,面向切面编程)技术实现。aop技术是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。aop是软件开发中的一个热点,也是spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用aop可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

步骤102:在运行目标应用程序的过程中,调用性能监控代码分别采集目标应用程序中的各待监控对象的性能数据。

目标应用程序运行过程中,当某一待监控对象运行时,性能监控代码中的性能监控代码段则被调用,性能监控代码段对待监控对象在运行过程中产生的性能数据进行采集。

性能数据包含的具体参数可以由应用程序开发人员根据实际需求进行设置,本公开实施例中对此不做具体限制。

待监控对象可以为目标应用程序中的模块、组件或者线程。对于待监控对象的具体设置,可以由目标应用程序开发人员根据实际需求进行设置,本公开实施例中对此不做具体限制。

步骤103:将采集到的各待监控对象的性能数据上报至服务器。

终端设备通过目标应用程序中注入的性能监控代码采集到的各待监控对象的性能数据上报至服务器,目标应用程序开发人员有针对性的从服务器上获取目标应用程序的各待监控对象的性能数据即可进一步对其性能进行分析优化,无需手动采集性能数据。

本示例性实施例示出的采集应用程序性能数据的方法,在应用程序运行过程中,调用应用程序中预先注入的性能监控代码,分别对该应用程序中的各待检测对象进行性能监控采集性能数据并上报至服务器,无需开发人员人工搜集应用程序中各监控对象的性能数据,能够节省大量的人力资源和搜集性能数据所耗时间。

图2是根据一示例性实施例示出的一种获取应用程序性能数据的方法的流程图,如图2所示的获取应用程序性能数据的方法用于终端设备中,包括以下步骤。

步骤201:下载并安装目标应用程序的安装包。

其中,目标应用程序的安装包在编译期被注入性能监控代码。性能监控代码由目标应用程序开发人员依据待监控对象以及待采集性能数据的参数编码得到。其中,性能监控代码中包含多个关键词和性能监控代码段,每个关键词对应一个待监控对象。

性能监控代码具有良好的普适性,其可通过微调整应用于其他各应用程序的性能数据采集中。在进行为调整时,相应应用程序开发人员依据所开发应用程序中待监控对象适应性调整性能监控代码中的关键词,依据所要采集的性能数据的具体参数调整性能监控代码段即可,应用程序开发人员无需针对各应用程序分别从头开发性能监控代码段,能够节省开发人力资源和开发所耗时长。

性能监控代码可通过如下方式注入到目标应用程序的安装包中:首先,依据aop方式在目标应用程序的功能代码动态编辑期,注入监控代码;其次,分别在功能代码中查找各关键词匹配的待监控对象对应的功能代码段;最后,分别在各功能代码段下插入性能监控代码段,生成目标应用程序的安装包。

本公开实施例注入性能监控代码的主要的思路是在java编译期使用aspectj的wave表达式的方式,而该表达式可以是任意android四大组件也可以是一个小小的界面展示widget。通过wave表达式的方式,我们可以在任何一个类或任何一个句柄上,做相对应的代码注入工作。基于该方式可依据性能监控代码中的各关键词,从目标应用程序的功能代码中确定各待监控对象对应的功能代码段作为代码注入的句柄,在确定的各句柄下注入性能监控代码段,从而完成性能监控代码的注入。

步骤202:在运行目标应用程序的过程中,当启动第一待监控对象时,调用第一监控对象下注入的性能监控代码段。

其中,性能监控代码中包含多个关键词和性能监控代码段,每个关键词对应一个待监控对象。待监控对象可以为目标应用程序中的模块、组件或者线程。

步骤203:通过性能监控代码段对第一监控对象本次运行所产生的性能数据进行采集。

其中,性能数据包括:运行所花费的时间、所耗费的网络流量信息、所占用的内存资源信息中的至少之一。

步骤204:将采集到的各待监控对象的性能数据上报至服务器。

终端设备通过目标应用程序中注入的性能监控代码采集到的各待监控对象的性能数据上报至服务器,目标应用程序开发人员有针对性的从服务器上获取目标应用程序的各待监控对象的性能数据即可进一步对其性能进行分析优化,无需手动采集性能数据。本示例性实施例示出的采集应用程序性能数据的方法,在应用程序运行过程中,调用应用程序中预先注入的性能监控代码,分别对该应用程序中的各待检测对象进行性能监控采集性能数据并上报至服务器,无需开发人员人工搜集应用程序中各监控对象的性能数据,能够节省大量的人力资源和搜集性能数据所耗时间。此外,本公开实施例中通过aop技术向目标应用程序的安装包中注入性能监控代码,能够自动依据性能监控代码中的关键词在目标应用程序的功能代码中搜索各待监控对象对应的功能代码段并向其中插入性能监控代码段,能够提升性能监控代码注入的效率及耦合度能够避免目标应用程序的原功能逻辑被打乱。

图3是根据一示例性实施例示出的一种采集应用程序性能数据的装置的框图,参照图3该装置包括:安装模块301、采集模块302以及上报模块303。

安装模块301,被配置为下载并安装目标应用程序的安装包,其中,所述安装包在编译期被注入性能监控代码;

采集模块302,被配置为在运行所述目标应用程序的过程中,调用所述性能监控代码分别采集所述目标应用程序中的各待监控对象的性能数据;

上报模块303,被配置为将采集到的所述各待监控对象的性能数据上报至服务器。

可选地,所述采集模块302可以包括:调用子模块3021,被配置为在运行所述目标应用程序的过程中,当启动第一待监控对象时,调用所述第一监控对象下注入的性能监控代码段;其中,所述性能监控代码中包含多个关键词和性能监控代码段,每个关键词对应一个待监控对象;采集子模块3022,用于通过所述性能监控代码段对所述第一监控对象本次运行所产生的性能数据进行采集,其中,所述性能数据包括:运行所花费的时间、所耗费的网络流量信息、所占用的内存资源信息中的至少之一。

可选地,所述性能监控代码通过如下方式注入到所述目标应用程序的安装包中:依据面向切面编程方式在所述目标应用程序的功能代码动态编辑期,注入所述性能监控代码;其中,所述性能监控代码中包含多个关键词和性能监控代码段;分别在所述功能代码中查找各所述关键词匹配的待监控对象对应的功能代码段;分别在各所述功能代码段下插入所述性能监控代码段,生成所述目标应用程序的安装包。

可选地,所述待监控对象为所述目标应用程序中的模块、组件或者线程

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图4是根据一示例性实施例示出的一种终端设备600的框图。例如,终端设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图4,终端设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(i/o)的接口612,传感器组件614,以及通信组件616。

处理组件602通常控制终端设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理部件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。

存储器604被配置为存储各种类型的数据以支持在终端设备600的操作。这些数据的示例包括用于在终端设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电源组件606为终端设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为终端设备600生成、管理和分配电力相关联的组件。

多媒体组件608包括在终端设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当终端设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(mic),当终端设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。

i/o接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件614包括一个或多个传感器,用于为终端设备600提供各个方面的状态评估。例如,传感器组件614可以检测到终端设备600的打开/关闭状态,组件的相对定位,例如所述组件为终端设备600的显示器和小键盘,传感器组件614还可以检测终端设备600或终端设备600一个组件的位置改变,用户与终端设备600接触的存在或不存在,终端设备600方位或加速/减速和终端设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件616被配置为便于终端设备600和其他设备之间有线或无线方式的通信。终端设备600可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件616还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,终端设备600可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图1至图2中所示的采集应用程序性能数据的方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由终端设备600的处理器620执行以完成上述图1至图2中所示的采集应用程序性能数据的方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,当所述计算机程序产品中的指令由终端设备600的处理器620执行时,使得终端设备600完成上述图1至图2中所示的采集应用程序性能数据的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1