CN105117243A - 一种获取应用程序的启动时间的方法和装置 - Google Patents
一种获取应用程序的启动时间的方法和装置 Download PDFInfo
- Publication number
- CN105117243A CN105117243A CN201510461314.6A CN201510461314A CN105117243A CN 105117243 A CN105117243 A CN 105117243A CN 201510461314 A CN201510461314 A CN 201510461314A CN 105117243 A CN105117243 A CN 105117243A
- Authority
- CN
- China
- Prior art keywords
- class
- same name
- operating system
- startup
- destination application
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 231
- 238000004088 simulation Methods 0.000 claims description 49
- 238000013459 approach Methods 0.000 claims description 38
- 238000012360 testing method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 15
- 239000002253 acid Substances 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种获取应用程序的启动时间的方法和装置,其中的方法具体包括:通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;在获取操作系统的启动等待方法后,启动目标应用程序;依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。本发明实施例能够扩展获取应用程序所需的应用环境。
Description
技术领域
本发明涉及测试技术领域,特别是涉及一种获取应用程序的启动时间的方法和一种获取应用程序的启动时间的装置。
背景技术
随着应用程序的数量和种类的不断增多,应用程序的启动速度已经成为用户,特别是移动终端的用户,选择应用程序的重要标准之一。
现有一种获取应用程序的启动时间的过程可以为,在移动终端通过数据线连接PC(个人计算机,PersonalComputer)的情况下,在该PC上运行的安卓调试工具上通过adb(安卓调试桥,AndroidDebugBridge)shellam(活动管理,ActivityManager)命令获取应用程序的启动时间。
虽然上述过程能够比较精准地获取应用程序的启动时间,但是,上述安卓调试工具通常仅仅能够在PC环境中运行,而在移动终端的环境中可能无法运行,因此上述过程具有应用环境受限的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的获取应用程序的启动时间的方法和相应的获取应用程序的启动时间的装置。
依据本发明的一个方面,提供了一种获取应用程序的启动时间的方法,包括:
通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;
在获取操作系统的启动等待方法后,启动目标应用程序;
依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。
可选地,所述系统类包括:系统接口类,则所述通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述系统接口类同名的模拟类,获取所述系统接口类的实例;
通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
可选地,所述系统类包括:系统原生类,则所述通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述系统原生类同名的模拟类,获取所述原生类中系统接口类的实例;
通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
可选地,所述系统方法包括:启动等待方法,则所述通过调用与系统类同名的类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述启动等待方法同名的模拟方法,获取操作系统的启动等待方法。
可选地,所述依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间的步骤,包括:
通过反射调用所述启动等待方法,获得所述启动等待方法的本次启动的等待结果参数的返回值;其中,所述反射调用的参数包括:系统接口类的实例和所述本次启动的等待结果参数;
将所述返回值确定为所述目标应用程序的启动时间。
可选地,所述启动目标应用程序的步骤,包括:
获取所述目标应用程序的包名和类名;
依据所述目标应用程序的包名和类名,启动所述目标应用程序。
根据本发明的另一方面,提供了一种获取应用程序的启动时间的装置,包括:
获取模块,用于通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;
程序启动模块,用于在获取操作系统的启动等待方法后,启动目标应用程序;及
确定模块,用于依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。
可选地,所述系统类包括:系统接口类,则所述获取模块,包括:
第一获取子模块,用于通过调用与所述系统接口类同名的模拟类,获取所述系统接口类的实例;及
第二获取子模块,用于通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
可选地,所述系统类包括:系统原生类,则所述获取模块,包括:
第三获取子模块,用于通过调用与所述系统原生类同名的模拟类,获取所述原生类中系统接口类的实例;
第四获取子模块,用于通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
可选地,所述系统方法包括:启动等待方法,则所述获取模块,包括:
第五获取子模块,用于通过调用与所述启动等待方法同名的模拟方法,获取操作系统的启动等待方法。
可选地,所述确定模块,包括:
返回值获取子模块,用于通过反射调用所述启动等待方法,获得所述启动等待方法的本次启动的等待结果参数的返回值;其中,所述反射调用的参数包括:系统接口类的实例和所述本次启动的等待结果参数;及
启动时间确定子模块,用于将所述返回值确定为所述目标应用程序的启动时间。
可选地,所述程序启动模块,包括:
第六获取子模块,用于获取所述目标应用程序的包名和类名;及
启动子模块,用于依据所述目标应用程序的包名和类名,启动所述目标应用程序。
根据本发明的获取应用程序的启动时间的方法和装置,可以依据启动等待方法的返回值,确定所述目标应用程序的启动时间;由于本发明实施例可以利用操作系统的启动等待方法获取该操作系统中目标应用程序的启动时间,故本发明实施例可以在目标应用程序的操作系统环境中运行,例如,目标应用程序的操作系统环境为手机的安卓操作系统,则本发明实施例的上述步骤流程也可以在手机的安卓操作系统中运行,因此,相对于现有方案仅仅能够在PC上运行,本发明实施例能够扩展获取应用程序所需的应用环境。
另外,本发明实施例的上述步骤流程可以应用于不同于上述目标应用程序的测试应用程序中,这使得可以通过该测试应用程序的UI快速启动上述目标应用程序并快速获取上述目标应用程序的启动时间,因此,相对于现有方案在借助于数据线的情况下在PC上通过安卓调试工具获取应用程序的启动时间,本发明实施例还能够提高上述目标应用程序的启动时间的获取速度。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种获取应用程序的启动时间的方法实施例的步骤流程图;以及
图2示出了根据本发明一个实施例的一种获取应用程序的启动时间的装置实施例的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种获取应用程序的启动时间的方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101、通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;
本发明实施例可以应用于具有测试功能的测试应用程序中,从而可以实现该测试应用程序开启目标应用程序并获取该目标应用程序的启动时间;其中,该测试应用程序的运行环境可以与该目标应用程序的运行环境可以相同,例如,该测试应用程序和该目标应用程序可以同运行于移动终端的操作系统中,因此,相对于现有方案仅仅能够在PC上运行,本发明实施例能够扩展获取应用程序的应用环境。
在实际应用中,该测试应用程序可以预先创建与系统类同名的模拟类或者与系统方法同名的模拟方法。在具体实现中,上述模拟类和上述模拟方法可以为空的类和方法,其返回值可以为空,或者,可以没有返回值,本发明实施例对上述模拟类和上述模拟方法中的具体内容不加以限制。
另外,该测试应用程序可以在UI(用户界面,UserInterface)上提供相应的控件,当接收到针对该控件的触发操作时,可以执行本发明实施例的步骤流程,以实现应用程序的启动时间的快速获取。可以理解,本发明实施例对于相应步骤流程的具体触发条件不加以限制。
本发明实施例中,操作系统可用于表示移动终端等终端设备的操作系统,其可以为安卓、Windows等类型,本发明实施例主要以安卓操作系统为例进行说明,其他类型的操作系统相互参照即可。
操作系统的启动等待方法可用于表示操作系统提供的、获取一个应用程序从启动到加载完成的等待时间的API(应用程序编程接口,ApplicationProgramInterface),该操作系统的启动等待方法通常为未公开的方法。本发明实施例可以在测试应用程序中模拟未公开的系统类或系统方法,这样,在调用与该系统类同名的模拟类或者与该系统方法同名的模拟方法时,可以调用到烧制到移动终端中的系统类或者系统方法。
本发明实施例中,可以利用Java反射技术,通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法。其中,Java反射技术允许程序在运行时透过反射API(应用程序编程接口,ApplicationProgrammingInterface)取得任何一个已知名称的class(类)对象的内部信息,容许程序在运行时加载、探知、使用编译期间完全未知的class,也即,在调用与系统类同名的模拟类或者与系统方法同名的模拟方法时,可以加载该模拟类或者模拟方法对应的class对象。上述内部信息具体可以包括:方法(methods)、作用域(fields)和构造函数(constructor)等,本发明实施例则可以通过调用上述模拟类或者模拟方法,获取操作系统的启动等待方法。
本发明实施例在调用上述模拟类或者模拟方法时,操作系统将会调用并运行与上述模拟类或者模拟方法同名的真实类或者真实方法,从而可以获取运行过程中的真实类或者真实方法对应class对象的内部信息,该内部信息中就可以包括操作系统的启动等待方法。
本发明实施例可以提供通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的如下技术方案:
技术方案A1
技术方案A1中,所述系统类具体可以包括:系统接口类,则所述通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,具体可以包括:
步骤S11、通过调用与所述系统接口类同名的模拟类,获取所述系统接口类的实例;
步骤S12、通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
例如,在安卓系统中,所述系统接口类可以为IActivityManager,则可以通过反射调用IActivityManager的实例,获取IActivityManager的实例中的所有方法,并从所有方法中查找得到所述启动等待方法。其中,在调用与IActivityManager同名的模拟类时,操作系统将会调用并运行真实的IActivityManager,从而可以获取运行过程中真实的IActivityManager实例对应class对象的内部信息,该内部信息中就可以包括操作系统的启动等待方法。
技术方案A2
技术方案A2中,所述系统类具体可以包括:系统原生类,则所述通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,具体可以包括:
步骤S21、通过调用与所述系统原生类同名的模拟类,获取所述原生类中系统接口类的实例;
步骤S22、通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
例如,在安卓系统中,所述系统原生类可以为ActivityManagerNative,则可以通过调用与其同名的模拟类,获取其所有派生类的实例,并从所有派生类的实例中查找得到IActivityManager的实例,从而可以通过反射调用IActivityManager的实例获取其中的启动等待方法。其中,在调用与ActivityManagerNative同名的模拟类时,操作系统将会调用并运行真实的ActivityManagerNative,从而可以获取运行过程中真实的ActivityManagerNative实例对应class对象的内部信息,该内部信息中就可以包括IActivityManager的实例;进一步,可以通过反射调用IActivityManager的实例,获取IActivityManager的实例的内部信息,该内部信息中就可以包括操作系统的启动等待方法。
技术方案A3
技术方案A3中,所述系统方法具体可以包括:启动等待方法,则所述通过调用与系统类同名的类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,具体可以包括:
步骤S31、通过调用与所述启动等待方法同名的模拟方法,获取操作系统的启动等待方法。
相对于技术方案A1和技术方案A2通过反射调用上述启动等待方法所属的系统类的实例来获取上述启动等待方法,技术方案A3可以预先创建于上述启动等待方法同名的模拟方法,并在该模拟方法中定义对应的参数和参数顺序,从而可以通过调用该模拟方法,获取对应的启动等待方法。其中,在调用与启动等待方法同名的模拟方法时,操作系统将会调用并运行真实的启动等待方法,从而可以获取运行过程中真实的启动等待方法实例对应class对象的内部信息。
以上对通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的技术方案进行了详细介绍,可以理解,本领域技术人员可以根据实际需要,采用上述技术方案中的任一或者组合,或者,还可以根据实际需要采用通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的其他技术方案,本发明实施例对于通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的具体技术方案不加以限制。
步骤102、在获取操作系统的启动等待方法后,启动目标应用程序;
上述目标应用程序可以为与上述测试应用程序处于相同运行环境的被测试应用程序,因此,本发明实施例可以适用于通过上述测试应用程序的控件启动上述目标程序,从而可以获得上述目标应用程序的时间。
在本发明的一种可选实施例中,所述启动目标应用程序的步骤,具体可以包括:
步骤S41、获取所述目标应用程序的包名和类名;
步骤S42、依据所述目标应用程序的包名和类名,启动所述目标应用程序。
在本发明的一种应用示例中,可以依据所述目标应用程序的包名和类名,构造一个意图(intent),并在该意图中指定欲要对所述目标应用程序的包名和类名进行的启动动作,这样,可以通过执行该意图来实现所述目标应用程序的启动。
可以理解,本领域技术人员可以根据实际需要采用启动所述目标应用程序的任意技术方案,本发明实施例对启动所述目标应用程序的具体技术方案不加以限制。
步骤103、依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。
在本发明的一种应用示例中,上述启动等待方法的本次启动的等待结果参数可以携带有本次启动的时间,因此,可以通过本次启动的等待结果参数的返回值得到所述目标应用程序的启动时间。
在本发明的一种可选实施例中,考虑到上述启动等待方法的本次启动的等待结果参数的不公开和隐藏特性,可以通过反射调用来获取其具体的值,具体地,上述依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间的步骤,具体可以包括:
步骤S51、通过反射调用所述启动等待方法,获得所述启动等待方法的本次启动的等待结果参数的返回值;其中,所述反射调用的参数具体可以包括:系统接口类的实例和所述本次启动的等待结果参数;
步骤S52、将所述返回值确定为所述目标应用程序的启动时间。
可以理解,上述只是作为可选实施例,本发明实施例对于依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间的具体实现过程不加以限制。
综上,本发明实施例在获取操作系统的启动等待方法后,启动目标应用程序,并依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间;由于本发明实施例可以利用操作系统的启动等待方法获取该操作系统中目标应用程序的启动时间,故本发明实施例可以在目标应用程序的操作系统环境中运行,例如,目标应用程序的操作系统环境为手机的安卓操作系统,则本发明实施例的上述步骤流程也可以在手机的安卓操作系统中运行,因此,相对于现有方案仅仅能够在PC上运行,本发明实施例能够扩展获取应用程序所需的应用环境。
另外,本发明实施例的上述步骤流程可以应用于不同于上述目标应用程序的测试应用程序中,这使得可以通过该测试应用程序的UI快速启动上述目标应用程序并快速获取上述目标应用程序的启动时间,因此,相对于现有方案在借助于数据线的情况下在PC上通过安卓调试工具获取应用程序的启动时间,本发明实施例还能够提高上述目标应用程序的启动时间的获取速度。
在本发明的一种应用场景中,测试应用程序可以控制微信APP(应用程序,Application)、微博APP等目标应用程序的启动,并获取这些目标应用程序的启动时间,从而可以依据这些目标应用程序的启动时间对这些目标应用程序的性能进行优化,或者,还可以依据这些目标应用程序的启动时间可以对整个操作系统的性能进行优化,例如,可以依据这些目标应用程序的启动时间确定哪些目标应用程序的启动拖慢了整个操作系统的开机速度,从而可以对确定的目标应用程序进行自启管理,例如,禁止自启等等。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图2,示出了根据本发明一个实施例的一种获取应用程序的启动时间的装置实施例的结构框图,具体可以包括如下模块:
获取模块201,用于通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;
程序启动模块202,用于在获取操作系统的启动等待方法后,启动目标应用程序;及
确定模块203,用于依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。
在本发明的一种可选实施例中,所述系统类具体可以包括:系统接口类,则所述获取模块201,具体可以包括:
第一获取子模块,用于通过调用与所述系统接口类同名的模拟类,获取所述系统接口类的实例;及
第二获取子模块,用于通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
在本发明的另一种可选实施例中,所述系统类具体可以包括:系统原生类,则所述获取模块201,具体可以包括:
第三获取子模块,用于通过调用与所述系统原生类同名的模拟类,获取所述原生类中系统接口类的实例;
第四获取子模块,用于通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
在本发明的再一种可选实施例中,所述系统方法具体可以包括:启动等待方法,则所述获取模块201,具体可以包括:
第五获取子模块,用于通过调用与所述启动等待方法同名的模拟方法,获取操作系统的启动等待方法。
在本发明的一种可选实施例中,所述确定模块203,具体可以包括:
返回值获取子模块,用于通过反射调用所述启动等待方法,获得所述启动等待方法的本次启动的等待结果参数的返回值;其中,所述反射调用的参数包括:系统接口类的实例和所述本次启动的等待结果参数;及
启动时间确定子模块,用于将所述返回值确定为所述目标应用程序的启动时间。
在本发明的另一种可选实施例中,所述程序启动模块202,具体可以包括:
第六获取子模块,用于获取所述目标应用程序的包名和类名;及
启动子模块,用于依据所述目标应用程序的包名和类名,启动所述目标应用程序。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
由于本发明实施例可以利用操作系统的启动等待方法获取该操作系统中目标应用程序的启动时间,故本发明实施例可以在目标应用程序的操作系统环境中运行,例如,目标应用程序的操作系统环境为手机的安卓操作系统,则本发明实施例也可以在手机的安卓操作系统中运行,因此,相对于现有方案仅仅能够在PC上运行,本发明实施例能够扩展获取应用程序所需的应用环境。
另外,本发明实施例可以应用于不同于上述目标应用程序的测试应用程序中,这使得可以通过该测试应用程序的UI快速启动上述目标应用程序并快速获取上述目标应用程序的启动时间,因此,相对于现有方案在借助于数据线的情况下在PC上通过安卓调试工具获取应用程序的启动时间,本发明实施例还能够提高上述目标应用程序的启动时间的获取速度。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的获取应用程序的启动时间的方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种获取应用程序的启动时间的方法,包括:
通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;
在获取操作系统的启动等待方法后,启动目标应用程序;
依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。
A2、如A1所述的方法,所述系统类包括:系统接口类,则所述通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述系统接口类同名的模拟类,获取所述系统接口类的实例;
通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
A3、如A1所述的方法,所述系统类包括:系统原生类,则所述通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述系统原生类同名的模拟类,获取所述原生类中系统接口类的实例;
通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
A4、如A1所述的方法,所述系统方法包括:启动等待方法,则所述通过调用与系统类同名的类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述启动等待方法同名的模拟方法,获取操作系统的启动等待方法。
A5、如A1至A4中任一所述的方法,所述依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间的步骤,包括:
通过反射调用所述启动等待方法,获得所述启动等待方法的本次启动的等待结果参数的返回值;其中,所述反射调用的参数包括:系统接口类的实例和所述本次启动的等待结果参数;
将所述返回值确定为所述目标应用程序的启动时间。
A6、如A1至A4中任一所述的方法,所述启动目标应用程序的步骤,包括:
获取所述目标应用程序的包名和类名;
依据所述目标应用程序的包名和类名,启动所述目标应用程序。
本发明还公开了B7、一种获取应用程序的启动时间的装置,包括:
获取模块,用于通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;
程序启动模块,用于在获取操作系统的启动等待方法后,启动目标应用程序;及
确定模块,用于依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。
B8、如B7所述的方法,所述系统类包括:系统接口类,则所述获取模块,包括:
第一获取子模块,用于通过调用与所述系统接口类同名的模拟类,获取所述系统接口类的实例;及
第二获取子模块,用于通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
B9、如B7所述的装置,所述系统类包括:系统原生类,则所述获取模块,包括:
第三获取子模块,用于通过调用与所述系统原生类同名的模拟类,获取所述原生类中系统接口类的实例;
第四获取子模块,用于通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
B10、如B7所述的装置,所述系统方法包括:启动等待方法,则所述获取模块,包括:
第五获取子模块,用于通过调用与所述启动等待方法同名的模拟方法,获取操作系统的启动等待方法。
B11、如B7至B10中任一所述的装置,所述确定模块,包括:
返回值获取子模块,用于通过反射调用所述启动等待方法,获得所述启动等待方法的本次启动的等待结果参数的返回值;其中,所述反射调用的参数包括:系统接口类的实例和所述本次启动的等待结果参数;及
启动时间确定子模块,用于将所述返回值确定为所述目标应用程序的启动时间。
B12、如B7至B10中任一所述的装置,所述程序启动模块,包括:
第六获取子模块,用于获取所述目标应用程序的包名和类名;及
启动子模块,用于依据所述目标应用程序的包名和类名,启动所述目标应用程序。
Claims (10)
1.一种获取应用程序的启动时间的方法,包括:
通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;
在获取操作系统的启动等待方法后,启动目标应用程序;
依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。
2.如权利要求1所述的方法,其特征在于,所述系统类包括:系统接口类,则所述通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述系统接口类同名的模拟类,获取所述系统接口类的实例;
通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
3.如权利要求1所述的方法,其特征在于,所述系统类包括:系统原生类,则所述通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述系统原生类同名的模拟类,获取所述原生类中系统接口类的实例;
通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
4.如权利要求1所述的方法,其特征在于,所述系统方法包括:启动等待方法,则所述通过调用与系统类同名的类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法的步骤,包括:
通过调用与所述启动等待方法同名的模拟方法,获取操作系统的启动等待方法。
5.如权利要求1至4中任一所述的方法,其特征在于,所述依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间的步骤,包括:
通过反射调用所述启动等待方法,获得所述启动等待方法的本次启动的等待结果参数的返回值;其中,所述反射调用的参数包括:系统接口类的实例和所述本次启动的等待结果参数;
将所述返回值确定为所述目标应用程序的启动时间。
6.如权利要求1至4中任一所述的方法,其特征在于,所述启动目标应用程序的步骤,包括:
获取所述目标应用程序的包名和类名;
依据所述目标应用程序的包名和类名,启动所述目标应用程序。
7.一种获取应用程序的启动时间的装置,包括:
获取模块,用于通过调用与系统类同名的模拟类或者与系统方法同名的模拟方法,获取操作系统的启动等待方法;
程序启动模块,用于在获取操作系统的启动等待方法后,启动目标应用程序;及
确定模块,用于依据所述启动等待方法的返回值,确定所述目标应用程序的启动时间。
8.如权利要求7所述的方法,其特征在于,所述系统类包括:系统接口类,则所述获取模块,包括:
第一获取子模块,用于通过调用与所述系统接口类同名的模拟类,获取所述系统接口类的实例;及
第二获取子模块,用于通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
9.如权利要求7所述的装置,其特征在于,所述系统类包括:系统原生类,则所述获取模块,包括:
第三获取子模块,用于通过调用与所述系统原生类同名的模拟类,获取所述原生类中系统接口类的实例;
第四获取子模块,用于通过反射调用所述系统接口类的实例,获取操作系统的所述系统接口类中的启动等待方法。
10.如权利要求7所述的装置,其特征在于,所述系统方法包括:启动等待方法,则所述获取模块,包括:
第五获取子模块,用于通过调用与所述启动等待方法同名的模拟方法,获取操作系统的启动等待方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510461314.6A CN105117243B (zh) | 2015-07-30 | 2015-07-30 | 一种获取应用程序的启动时间的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510461314.6A CN105117243B (zh) | 2015-07-30 | 2015-07-30 | 一种获取应用程序的启动时间的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117243A true CN105117243A (zh) | 2015-12-02 |
CN105117243B CN105117243B (zh) | 2018-07-24 |
Family
ID=54665245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510461314.6A Active CN105117243B (zh) | 2015-07-30 | 2015-07-30 | 一种获取应用程序的启动时间的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117243B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198687A (zh) * | 2018-11-19 | 2020-05-26 | 成都鼎桥通信技术有限公司 | 一种安卓系统应用程序的编译方法 |
CN113703878A (zh) * | 2021-10-29 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 组件的启动方法和装置、存储介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218446A1 (en) * | 2005-03-23 | 2006-09-28 | Microsoft Corporation | Method and apparatus for executing unit tests in application host environment |
CN104424092A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 页面加载时长测试方法及装置 |
-
2015
- 2015-07-30 CN CN201510461314.6A patent/CN105117243B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218446A1 (en) * | 2005-03-23 | 2006-09-28 | Microsoft Corporation | Method and apparatus for executing unit tests in application host environment |
CN104424092A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 页面加载时长测试方法及装置 |
Non-Patent Citations (2)
Title |
---|
YUTOU58NIAN: "Android获取App启动时间", 《HTTP://BLOG.CSDN.NET/YUTOU58NIAN/ARTICLE/DETAILS/21176139》 * |
布迪 克尼亚万: "《Java编程指南》", 30 June 2015, 机械工业出版社 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198687A (zh) * | 2018-11-19 | 2020-05-26 | 成都鼎桥通信技术有限公司 | 一种安卓系统应用程序的编译方法 |
CN113703878A (zh) * | 2021-10-29 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 组件的启动方法和装置、存储介质及电子设备 |
CN113703878B (zh) * | 2021-10-29 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 组件的启动方法和装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105117243B (zh) | 2018-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027722B (zh) | 在编译和部署中动态更新应用 | |
CN107992307B (zh) | 一种函数编译方法及装置 | |
CN107451474B (zh) | 用于终端的软件漏洞修复方法和装置 | |
CN109032825B (zh) | 一种故障注入方法、装置及设备 | |
CN110335041B (zh) | 智能合约调用的一致性检测方法、装置、设备及存储介质 | |
US9965257B2 (en) | Automatic configuration of project system from project capabilities | |
CN105426310A (zh) | 一种检测目标进程的性能的方法和装置 | |
US10296311B2 (en) | Finding uninitialized variables outside the local scope | |
CN107015841B (zh) | 一种程序编译的预处理方法及程序编译设备 | |
CN105573915A (zh) | 一种基于代码覆盖率的测试方法和装置 | |
CN104036019A (zh) | 网页链接的开启方法及装置 | |
CN105589805A (zh) | 一种代码覆盖率报告的生成方法和装置 | |
CN104731622B (zh) | 一种应用程序的加载方法、装置和移动终端 | |
CN103559447B (zh) | 一种基于病毒样本特征的检测方法、检测装置及检测系统 | |
JP6142705B2 (ja) | オブジェクト指向言語のための記号テストドライバの反復生成 | |
CN104134039A (zh) | 病毒查杀方法、客户端、服务器以及病毒查杀系统 | |
CN110673837B (zh) | 代码修复方法及装置、电子设备、计算机可读存储介质 | |
KR102118236B1 (ko) | 컨트랙트에 대한 운영 체제 지원 기법 | |
US10846206B2 (en) | Adaptive software testing | |
CN109284222B (zh) | 软件单元、数据处理系统中的项目测试方法、装置及设备 | |
CN114840427A (zh) | 一种代码测试、测试用例生成的方法及装置 | |
CN102446253B (zh) | 一种网页木马检测方法及系统 | |
CN105117243A (zh) | 一种获取应用程序的启动时间的方法和装置 | |
CN114490103A (zh) | 一种操作系统接口调用方法、装置以及电子设备 | |
US9710360B2 (en) | Optimizing error parsing in an integrated development environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220721 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |