CN110297744A - 一种app应用统计时间设置方法及统计方法 - Google Patents

一种app应用统计时间设置方法及统计方法 Download PDF

Info

Publication number
CN110297744A
CN110297744A CN201810246812.2A CN201810246812A CN110297744A CN 110297744 A CN110297744 A CN 110297744A CN 201810246812 A CN201810246812 A CN 201810246812A CN 110297744 A CN110297744 A CN 110297744A
Authority
CN
China
Prior art keywords
app application
time
stages
file
app
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.)
Pending
Application number
CN201810246812.2A
Other languages
English (en)
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.)
Best Faith Racket (beijing) Mdt Infotech Ltd
Original Assignee
Best Faith Racket (beijing) Mdt Infotech 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 Best Faith Racket (beijing) Mdt Infotech Ltd filed Critical Best Faith Racket (beijing) Mdt Infotech Ltd
Priority to CN201810246812.2A priority Critical patent/CN110297744A/zh
Publication of CN110297744A publication Critical patent/CN110297744A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种针对APP应用进行时间统计的设置方法、统计方法、统计系统及统计装置。其中设置方法包括,确定APP应用的一个或多个阶段的类文件;在所述一个或多个阶段的类文件的一个或多个目标类文件中注入时间统计代码;将注入时间统计代码的类文件生成可执行文件。通过本发明的方法和系统,实现了对APP应用进行问题定位进而为APP应用的数据优化提供基础的目的。

Description

一种APP应用统计时间设置方法及统计方法
技术领域
本发明涉及计算机技术领域,具体涉及一种APP应用统计时间设置方法及统计方法。
背景技术
目前手机等智能移动终端上一般都安装有大量的APP(Application)应用。厂商或开发人员为了一些特殊目的,例如厂商获得用户对界面的喜好程度、开发人员获得APP应用的启动时间等,而对用户使用APP应用的时间进行统计。现有技术中,对APP应用时间进行统计的方式一般采用的是通过第三方APP应用进行统计或者APP应用开发者在开发项目中直接编写统计代码。
使用第三方APP应用对APP应用的时间进行统计的方式会在智能移动终端中安装第三方APP应用,这在终端中造成内存占用较大的问题,而且对终端的处理能力要较大的要求,这将极大地降低用户使用满意度;而APP应用开发者在项目中编写统计代码来对APP应用的时间进行统计,则需要对源代码进行修改,这对于APP应用开发项目来说,对源代码的修改较大,而且侵入性太强,这样容易对源代码的整体性造成损害,进而导致APP应用出现故障。
上述统计方式,没有实现在保证侵入性弱的情况下对APP应用的各个阶段的时间进行具体统计,也就无法达到准确定位APP应用的问题以提供优化APP应用的优化数据基础的目的。
发明内容
针对现有技术中,无法对APP应用进行问题定位进而无法为APP应用的数据优化提供基础的问题,本发明提出了一种针对APP应用进行时间统计的设置方法和时间统计方法、装置及系统。
一种针对APP应用进行时间统计的设置方法,所述方法包括:
确定APP应用的一个或多个阶段的类文件;
在所述一个或多个阶段的类文件的一个或多个目标类文件中注入时间统计代码;
将注入时间统计代码的类文件生成可执行文件。
进一步地,所述一个或多个阶段包括APP应用开始请求阶段、APP应用发出请求阶段、APP应用DNS解析阶段和APP应用服务器请求响应阶段中的一个或多个。
进一步地,所述一个或多个阶段包括所述APP应用的界面生命周期中的一个或多个生命周期方法。
进一步地,通过遍历的方式或继承方式查找所述目标类文件。
进一步地,在查找过程中,对查找到的压缩文件进行解压,在解压后的文件中查找所述目标类文件。
进一步地,所述时间统计代码能够获取所述一个或多个阶段的起止时间。
进一步地,在所述在目标类文件内的前部或后部注入所述时间统计代码。
一种APP应用时间统计方法,其中所述统计方法包括:
启动所述APP应用;
在APP应用的启动过程中,计算一个或多个阶段的执行时间,
其中,在所述一个或多个阶段的类文件中设有时间统计代码。
一种APP应用时间统计装置,其中所述装置包括:
启动模块,用于启动所述APP应用;
计算模块,用于在APP应用的启动过程中计算一个或多个阶段的执行时间,其中在所述一个或多个阶段的类文件中设有时间统计代码。
一种APP应用时间统计系统,所述系统包括:至少一个处理器以及至少一个存储器;其中,
所述存储器存储执行如上任一所述方法的计算机程序,所述处理器调用所述存储器中的计算机程序以执行如上任一所述的方法。
通过本发明的技术方案,在APP应用的类文件中注入时间统计代码,这种注入方式的侵入性比较低,同时实现了对APP应用的各个阶段的时间进行了统计,由于能够对各个阶段的时间进行统计,也就能够确定执行时间不正常的阶段,因此,实现了方便定位问题和提出优化方案提供数据基础的目的。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例的针对APP应用设置时间统计的基本流程框图;
图2示出了根据本发明实施例的统计APP应用时间的基本流程框图;
图3示出了根据本发明实施例的一种APP应用时间统计装置的结构框图;
图4示出了根据本发明实施例的一种APP应用时间统计系统的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1示出了根据本发明实施例的一种针对APP应用的时间统计设置方法流程框图,如图所示,所述方法包括:
S001:确定APP应用的一个或多个阶段的类文件;
S002:在所述一个或多个阶段的类文件的一个或多个类文件中注入时间统计代码;
S003:将注入时间统计代码的类文件生成可执行文件。
本发明以基于java的安卓(Android)系统中的界面(Activity)为例对APP应用的时间统计设置方法进行示例性说明,但并不限于此。
S001:确定APP应用的一个或多个阶段的类文件。
安卓系统中界面的生命周期一般包括创建、启动、恢复、暂停、停止、消除,与之对应的生命周期方法包括onCreate(创建函数)、onStart(启动函数)、onResume(恢复函数)、onPause(暂停函数)、onStop(停止函数)、onDestory(消除函数)。界面的生命周期消耗时间一般指的是生命周期方法调用前后方法执行的时间。
安卓系统中的界面(Activity)启动主要有三种工作状态:
1、运行状态(Running):该状态下界面任务位于当前任务堆栈的顶部,界面在屏幕前台,对用户可见;
2、暂停状态(Paused):该状态下界面失去焦点,界面被其他透明的界面覆盖,或者被其他界面没有完全覆盖,对用户来说仍然可见;
3、停止状态(Stopped):完全并其他界面覆盖。
基于以上三种工作状态,界面将产生多种事件方法链,例如,进入界面的事件方法链可以为“创建->启动->恢复(onCreate->onStart->onResume)”,返回界面的事件方法链可以为“暂停->停止->消除(onPause->onStop->onDestroy)”等。
界面的绘制有三个方法(onMeasure(测量)、onLayout(位置)、onDraw(绘制))。
因此,界面的绘制结合界面的生命周期的事件方法链可以是:onCreate->ViewonFlinshInflate->onStart->onResume->View onMeasure->View onLayout->ViewonDraw。
上述事件方法链中,onCreate函数执行一些必要的初始化工作。系统调用onCreate函数后,会进入执行的各个时间阶段,例如进入开始请求、发出请求、DNS解析和服务器请求响应等时间阶段。在这些时间阶段的执行文件中可以设置有自己相应的类(.class)文件。
在APP应用开发过程中,利用java语言形成代码文件,在本发明实施例中即可形成.java文件,该.java文件通过编程即可形成类文件,即.class文件。
而在APP应用开发完成后,可以通过查找的方式查找需要注入时间代码的目标类。示例性地,上述查找采用的方式,可以是遍历的方式,即遍历所有的类文件,获取所有的类名(class name),并通过类名来匹配目标类;也可以通过继承关系来匹配目标类。
在查找目标类的过程中,会需要在各种类型的文件中进行查找,例如在源代码、归档文件(例如jar文件(JavaArchive文件))、module文件(工程的模块文件)和aar文件(AndroidArchive,安卓库项目的二进制归档文件)等类型的文件中进行查找。在查找过程中遇到jar文件、module文件和aar文件等压缩的文件时,对查找到的jar文件、module文件和aar文件要首先进行解压,然后在解压的文件中查找目标类文件。
S002:在所述一个或多个阶段的类文件的一个或多个类文件中注入时间统计代码。
查找到目标类文件后,可以在目标类文件中的合适切入点注入时间统计代码来对所述目标类文件所在阶段的执行时间进行统计。
示例性地,例如需要统计界面的生命周期方法的消耗的时间时,查找开始请求阶段对应的类和发出请求阶段对应的类。在查找到开始请求阶段对应的类和发出请求阶段对应的类,也即查找到目标类后,将时间统计代码注入到这两个阶段对应的目标类的代码位置,例如在目标类文件内的前部或目标类的后部。其中,时间统计代码为任何可以对时间进行统计或计算的代码,其获取相关阶段的前后时间点,并根据获取的前后时间点计算相关阶段的执行时间。时间统计代码可以示例性地如下,本发明并不局限于下述统计代码,任何实现时间统计的代码均可适用于本发明:
S003:将注入时间统计代码的类文件生成可执行文件。
将注入时间统计代码的类文件打包编译成编译工具可识别的归档文件,在本发明实施例中即可打包编译成jar文件、module文件和aar文件等类型的文件。
将打包的文件拷贝到编译工具的目标位置进行编译,生成可执行文件,即.dex文件。对于通过解压后注入时间统计代码的文件,再执行压缩,然后进行编译,最后生成可执行文件。
生成可执行文件后,APP应用在启动时,执行上述可执行文件的过程中,调用上述时间统计代码,从而对其所在阶段的起止时间进行统计并通过做差的运算方式获得该阶段实际执行的时间。
对各阶段实际执行的时间进行统计后,将获得各阶段的实际执行时间,对于执行时间异常的阶段可以进行针对性地修改。
如图2示出了根据本发明实施例的一种APP应用时间统计方法,所述方法包括:
S201:启动所述APP应用;
S202:在APP应用的启动过程中,计算一个或多个阶段的执行时间,其中,在所述一个或多个阶段的类文件中注有时间统计代码。
本发明以基于java的安卓(Android)系统中的界面(Activity)为例对APP应用时间统计方法进行示例性说明,但并不限于此。
S201:启动所述APP应用。
通过启动程序,来启动APP应用。
S202:在APP应用的启动过程中,计算一个或多个阶段的执行时间。
APP应用启动过程中,会进入界面的生命周期和界面的绘制流程,通过开始请求、发出请求、DNS解析、服务器请求响应等阶段,加载onCreate(创建函数)、onStart(启动函数)、onResume(恢复函数)、onPause(暂停函数)、onStop(停止函数)或onDestory(消除函数)。对应地,界面会进入运行状态(Running)、暂停状态(Paused)、停止状态(Stopped)。
不失一般性,本发明实施例以统计界面绘制时间为例进行示例性说明。
界面的绘制一般通过onMeasure(测量)、onLayout(位置)、onDraw(绘制)三个方法实现。
不失一般性,假设已经通过上述的设置方法将时间统计代码注入到测量和绘制方法中。则在界面绘制执行的过程中,测量阶段的onMeasure(测量)类文件中的时间统计代码被执行,获得测量阶段的时间数据;在绘制阶段的onDraw(绘制)类文件中的时间代码被执行,获得测量阶段的时间数据。
在获得上述时间数据后,可以将时间数据进行保存,并在一定条件下上传服务器,例如以一定的时间周期上传服务器,或者检测到某些时间数据异常时上传服务器,或者基于服务器的要求而上传服务器。
本发明实施例在需要的一个或多个阶段内注入了时间统计代码,因此在APP应用的启动或使用阶段能够统计各个阶段的时间数据。开发人员或用户可以基于这些时间数据在一定程度上优化APP应用的响应速度,并通过这些不同阶段的的时间数据对APP应用的故障问题进行迅速定位。同时,由于在各个类文件中注入时间统计代码,而没有对APP应用的源代码进行修改,这极大地降低了对源代码的侵入性。
本发明还提供了一种APP应用时间统计装置。如图3所示,该时间统计装置包括启动模块和计算模块,其中所述启动模块用于启动所述APP应用,使得APP应用运行;所述计算模块,用于在APP应用的启动过程中计算一个或多个阶段的执行时间,其中在所述一个或多个阶段的类文件中已经设有时间统计代码,所述计算模块根据所述时间统计代码进行时间统计。
本发明还提供了一种APP应用时间统计系统。如图4所示,所述系统包括:至少一个处理器以及至少一个存储器;其中,所述存储器存储执行如上任一所述方法的计算机程序,所述处理器调用所述存储器中的计算机程序以执行如上任一所述的方法。
需要说明的是,虽然本发明以基于java的安卓(Android)系统为例对APP应用的时间统计进行示例性说明,但并不限于此,苹果公司的IOS系统、塞班Symbian系统、微软系统等均可适用于本发明。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种针对APP应用进行时间统计的设置方法,所述方法包括:
确定APP应用的一个或多个阶段的类文件;
在所述一个或多个阶段的类文件的一个或多个目标类文件中注入时间统计代码;
将注入时间统计代码的类文件生成可执行文件。
2.根据权利要求1所述的设置方法,其中,
所述一个或多个阶段包括APP应用开始请求阶段、APP应用发出请求阶段、APP应用DNS解析阶段和APP应用服务器请求响应阶段中的一个或多个。
3.根据权利要求1所述的设置方法,其中,
所述一个或多个阶段包括所述APP应用的界面生命周期中的一个或多个生命周期方法。
4.根据权利要求1所述的设置方法,其中,
通过遍历的方式或继承方式查找所述目标类文件。
5.根据权利要求4所述的设置方法,其中
在查找过程中,对查找到的压缩文件进行解压,在解压后的文件中查找所述目标类文件。
6.根据权利要求1-3任一所述的设置方法,其中,
所述时间统计代码能够获取所述一个或多个阶段的起止时间。
7.根据权利要求1-3任一所述的设置方法,其中,
在所述在目标类文件内的前部或后部注入所述时间统计代码。
8.一种APP应用时间统计方法,其中所述统计方法包括:
启动所述APP应用;
在APP应用的启动过程中,计算一个或多个阶段的执行时间,
其中,在所述一个或多个阶段的类文件中设有时间统计代码。
9.一种APP应用时间统计装置,其中所述装置包括:
启动模块,用于启动所述APP应用;
计算模块,用于在APP应用的启动过程中计算一个或多个阶段的执行时间,其中在所述一个或多个阶段的类文件中设有时间统计代码。
10.一种APP应用时间统计系统,所述系统包括:至少一个处理器以及至少一个存储器;其中,
所述存储器存储执行权利要求1-7任一所述方法的计算机程序,所述处理器调用所述存储器中的计算机程序以执行权利要求1-7任一所述的方法。
CN201810246812.2A 2018-03-23 2018-03-23 一种app应用统计时间设置方法及统计方法 Pending CN110297744A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810246812.2A CN110297744A (zh) 2018-03-23 2018-03-23 一种app应用统计时间设置方法及统计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810246812.2A CN110297744A (zh) 2018-03-23 2018-03-23 一种app应用统计时间设置方法及统计方法

Publications (1)

Publication Number Publication Date
CN110297744A true CN110297744A (zh) 2019-10-01

Family

ID=68026175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810246812.2A Pending CN110297744A (zh) 2018-03-23 2018-03-23 一种app应用统计时间设置方法及统计方法

Country Status (1)

Country Link
CN (1) CN110297744A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115016866A (zh) * 2022-08-09 2022-09-06 荣耀终端有限公司 应用启动时的数据处理方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142817A (zh) * 2013-05-10 2014-11-12 中国电信股份有限公司 在Java应用中测量用户资源使用量的方法与装置
US20160087868A1 (en) * 2014-09-19 2016-03-24 Splunk Inc. Injecting Custom Classes In Application Code To Facilitate Network Traffic Monitoring
CN107291586A (zh) * 2016-04-01 2017-10-24 腾讯科技(深圳)有限公司 一种应用程序的分析方法和装置
CN107678955A (zh) * 2017-09-22 2018-02-09 郑州云海信息技术有限公司 一种功能接口时延的计算方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104142817A (zh) * 2013-05-10 2014-11-12 中国电信股份有限公司 在Java应用中测量用户资源使用量的方法与装置
US20160087868A1 (en) * 2014-09-19 2016-03-24 Splunk Inc. Injecting Custom Classes In Application Code To Facilitate Network Traffic Monitoring
CN107291586A (zh) * 2016-04-01 2017-10-24 腾讯科技(深圳)有限公司 一种应用程序的分析方法和装置
CN107678955A (zh) * 2017-09-22 2018-02-09 郑州云海信息技术有限公司 一种功能接口时延的计算方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115016866A (zh) * 2022-08-09 2022-09-06 荣耀终端有限公司 应用启动时的数据处理方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN107341098B (zh) 软件性能测试方法、平台、设备及存储介质
CN107077414B (zh) 用于生产调试的诊断工作流程
CN104268055B (zh) 一种程序异常的监控方法和装置
US9483383B2 (en) Injecting faults at select execution points of distributed applications
US20130081001A1 (en) Immediate delay tracker tool
CN106649084A (zh) 函数调用信息的获取方法及装置、测试设备
CN107608609B (zh) 一种事件对象发送方法与装置
CN111177113A (zh) 数据迁移方法、装置、计算机设备和存储介质
CN108446224B (zh) 移动端上应用程序的性能分析方法、存储介质
CN110750437A (zh) 一种设备调试方法、装置、设备及系统
CN112100078A (zh) 一种生成接口测试用例的方法、装置及设备
CN110795162B (zh) 生成容器镜像文件的方法和装置
CN106610845B (zh) 信息管理方法、装置、服务器及系统
US11366704B2 (en) Configurable analytics for microservices performance analysis
CN110297744A (zh) 一种app应用统计时间设置方法及统计方法
CN106919374B (zh) 一种脚本生成方法和装置
CN108170592B (zh) 一种虚拟现实软件性能的远程测试方法及终端
CN109634758A (zh) 基于json文件控制事件和行为的方法及中间件平台
CN104133763A (zh) 程序调试系统及方法
CN112115041A (zh) 应用程序的动态埋点方法、装置、存储介质及计算机设备
CN114328073A (zh) 线程监控方法、装置、设备及存储介质
US11782717B2 (en) Embedded computation instruction performance profiling
CN114115884A (zh) 一种编程服务的管理方法以及相关装置
CN115269431A (zh) 一种接口测试方法、装置、电子设备及存储介质
CN107506299B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20191001