CN112114889B - 信息处理方法和装置、及存储介质 - Google Patents

信息处理方法和装置、及存储介质 Download PDF

Info

Publication number
CN112114889B
CN112114889B CN201910533883.5A CN201910533883A CN112114889B CN 112114889 B CN112114889 B CN 112114889B CN 201910533883 A CN201910533883 A CN 201910533883A CN 112114889 B CN112114889 B CN 112114889B
Authority
CN
China
Prior art keywords
machine code
application program
starting
function
instruction
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
CN201910533883.5A
Other languages
English (en)
Other versions
CN112114889A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201910533883.5A priority Critical patent/CN112114889B/zh
Publication of CN112114889A publication Critical patent/CN112114889A/zh
Application granted granted Critical
Publication of CN112114889B publication Critical patent/CN112114889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种信息处理方法和装置、及存储介质,该方法包括:当检测到应用程序的第一操作指令时,响应于所述第一操作指令,检测是否存在所述应用程序的操作机器码;所述操作机器码为在所述应用程序的首次执行过程中产生并存储的操作方法对应的机器码;当检测存在所述操作机器码时,控制虚拟机运行所述操作机器码,实现执行所述应用程序。

Description

信息处理方法和装置、及存储介质
技术领域
本申请实施例涉及应用程序的启动优化技术,尤其涉及一种信息处理方法和装置、及存储介质。
背景技术
目前,在用户操作应用程序后,先要加载用户操作对应的字节码,虚拟机利用即时(JIT,Just in time)编译机制,对加载到的字节码进行解释和运行,生成应用程序的操作界面,再将操作界面传输至显示模块上进行显示,实现对用户操作的响应;由于在响应用户操作之前,要对用户操作对应的字节码执行JIT编译操作,而JIT编译操作的耗时较长,增加了应用程序的操作响应时长。
发明内容
本申请提供一种信息处理方法和装置、及存储介质,能够减少应用程序的操作响应时长。
本申请的技术方案是这样实现的:
本申请实施例提供一种信息处理方法,应用于信息处理装置,所述方法包括:
当检测到应用程序的第一操作指令时,响应于所述第一操作指令,检测是否存在所述应用程序的操作机器码;所述操作机器码为在所述应用程序的首次执行过程中产生并存储的操作方法对应的机器码;
当检测存在所述操作机器码时,控制虚拟机运行所述操作机器码,实现执行所述应用程序。
上述方案中,所述第一操作指令包括第一启动指令和第一功能操作指令,所述操作机器码包括至少一个启动机器码和功能机器码,所述第一启动指令对应所述至少一个启动机器码,所述第一功能操作指令对应所述功能机器码。
上述方案中,在所述检测是否存在所述应用程序的操作机器码之后,所述方法还包括:
当检测不存在所述操作机器码时,执行所述应用程序;
基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码。
上述方案中,所述第一操作指令为第一启动指令,所述预设筛选条件包括界面生命周期,所述操作机器码包括至少一个启动机器码;
所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码,包括:
获取从所述第一启动指令对应的检测时刻,到所述应用程序进入所述界面生命周期的当前时刻之间产生的启动配置文件,所述启动配置文件存储有至少一个启动方法对应的至少一个启动字节码;
对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
上述方案中,所述对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码,包括:
控制包管理服务器对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
上述方案中,所述获取从所述第一启动指令对应的检测时刻,到所述应用程序进入所述界面生命周期的当前时刻之间产生的启动配置文件,包括:
从预设字节码文件库中,获取所述应用程序的第i个启动方法对应的启动字节码,i为大于0的整数;
对所述第i个启动方法对应的启动字节码进行即时编译,继续获取所述应用程序的第i+1个启动方法对应的启动字节码,直至所述应用程序进入所述界面生命周期为止;
将获取到的启动字节码保存至预设配置文件中,得到所述启动配置文件。
上述方案中,所述预设筛选条件包括界面生命周期和预设等待时长,所述操作机器码包括功能机器码;
所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码,包括:
以所述应用程序进入所述界面生命周期的当前时刻为开始时刻,进行计时,得到计时时长;
当所述计时时长等于所述预设等待时长时,获取所述计时时长内产生的功能配置文件,所述功能配置文件存储有功能方法对应的功能字节码;
对所述功能配置文件进行运行前编译,得到所述功能机器码。
上述方案中,所述获取所述计时时长内产生的功能配置文件,包括:
在所述计时时长内,接收功能操作指令;
从预设字节码文件库中,获取所述功能操作指令指示的功能方法对应的功能字节码;
将获取到的功能字节码保存至预设配置文件中,得到所述功能配置文件。
上述方案中,所述操作机器码为至少一个启动机器码;
在所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码之后,所述方法还包括:
当检测到所述应用程序的第二启动指令时,响应于所述第二启动指令,运行所述至少一个启动机器码,实现启动所述应用程序,所述第二启动指令是在所述第一启动指令之后的针对所述应用程序的启动指令。
本申请实施例提供一种信息处理装置,所述装置包括:
控制模块,用于当检测到应用程序的第一操作指令时,响应于所述第一操作指令,检测是否存在所述应用程序的操作机器码;所述操作机器码为在所述应用程序的首次执行过程中产生并存储的操作方法对应的机器码;以及当检测存在所述操作机器码时,控制虚拟机运行所述操作机器码,实现执行所述应用程序。
上述方案中,所述第一操作指令包括第一启动指令和第一功能操作指令,所述操作机器码包括至少一个启动机器码和功能机器码,所述第一启动指令对应所述至少一个启动机器码,所述第一功能操作指令对应所述功能机器码。
上述方案中,所述控制模块,还用于在所述检测是否存在所述应用程序的操作机器码之后,当检测不存在所述操作机器码时,执行所述应用程序;以及基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码。
上述方案中,所述第一操作指令为第一启动指令,所述预设筛选条件包括界面生命周期,所述操作机器码包括至少一个启动机器码;所述控制模块包括运行前编译模块;
所述控制模块,具体用于获取从所述第一启动指令对应的检测时刻,到所述应用程序进入所述界面生命周期的当前时刻之间产生的启动配置文件,所述启动配置文件存储有至少一个启动方法对应的至少一个启动字节码;
所述运行前编译模块,用于对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
上述方案中,所述运行前编译模块,具体用于控制包管理服务器对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
上述方案中,所述控制模块,具体用于从预设字节码文件库中,获取所述应用程序的第i个启动方法对应的启动字节码,i为大于0的整数;及对所述第i个启动方法对应的启动字节码进行即时编译,继续获取所述应用程序的第i+1个启动方法对应的启动字节码,直至所述应用程序进入所述界面生命周期为止;以及将获取到的启动字节码保存至预设配置文件中,得到所述启动配置文件。
上述方案中,所述预设筛选条件包括界面生命周期和预设等待时长,所述操作机器码包括功能机器码;
所述控制模块,还用于以所述应用程序进入所述界面生命周期的当前时刻为开始时刻,进行计时,得到计时时长;及当所述计时时长等于所述预设等待时长时,获取所述计时时长内产生的功能配置文件,所述功能配置文件存储有功能方法对应的功能字节码;以及对所述功能配置文件进行运行前编译,得到所述功能机器码。
上述方案中,所述控制模块,具体用于在所述计时时长内,接收功能操作指令;及从预设字节码文件库中,获取所述功能操作指令指示的功能方法对应的功能字节码;以及将获取到的功能字节码保存至预设配置文件中,得到所述功能配置文件。
上述方案中,所述操作机器码为至少一个启动机器码;
所述控制模块,还用于在所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码之后,当检测到所述应用程序的第二启动指令时,响应于所述第二启动指令,运行所述至少一个启动机器码,实现启动所述应用程序,所述第二启动指令是在所述第一启动指令之后的针对所述应用程序的启动指令。
本申请实施例提供一种信息处理装置,所述信息处理装置包括:处理器、存储器以及通信总线,所述存储器通过所述通信总线与所述处理器进行通信,所述存储器存储所述处理器可执行的一个或者多个程序,当所述一个或者多个程序被执行时,所述处理器执行如上述任意一种信息处理方法。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述任意一种信息处理方法。
本申请实施例提供了一种信息处理方法、移动电源和存储介质,所述方法包括:当检测到应用程序的第一操作指令时,响应于所述第一操作指令,检测是否存在所述应用程序的操作机器码;当检测存在所述操作机器码时,控制虚拟机运行所述操作机器码,实现执行所述应用程序。采用上述技术实现方案,由于操作机器码是应用程序的首次执行过程中产生并存储的操作方法对应的机器码,而机器码是可以直接被运行的代码,那么,控制虚拟机直接运行操作机器码,避免了字节码的编译过程,进而提高了应用程序的操作响应时长。
附图说明
图1为本申请实施例提供的一种信息处理装置的结构示意图一;
图2为本申请实施例提供的一种信息处理装置的结构示意图二;
图3为本申请实施例提供的一种信息处理方法的流程图一;
图4为本申请实施例提供的一种信息处理方法的流程图二;
图5为本申请实施例提供的一种应用程序的首次启动过程的分析示意图;
图6为本申请实施例提供的一种应用程序的优化启动过程的分析示意图;
图7为本申请实施例提供的一种信息处理装置的结构示意图三;
图8为本申请实施例提供的一种信息处理装置的结构示意图四。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
下面参见图1,其为实现本申请各个实施例的一种信息处理装置的示意图,该装置1可以包括:显示模块11、输入模块12、控制模块13和后台服务器14;控制模块13从后台服务器14上接收到应用程序的安卓安装包(Apk,Android Package),利用应用程序的Apk完成应用程序的安装,并控制显示模块11上显示应用程序的图标;用户可以通过输入模块12对应用程序的图标进行操作,当用户通过输入模块12选中应用程序的图标时,输入模块12向控制模块13传输启动指令;控制模块13响应于启动指令,启动应用程序,生成应用程序的启动界面,并控制显示模块11显示启动界面,用户可从显示模块11上浏览启动界面。
进一步地,控制模块13生成并控制显示模块11显示启动界面时,表示应用程序的启动阶段(Launch time)结束,控制模块13开始应用程序的运行阶段,即开始进入应用程序的界面生命周期(Activity Resume),在界面生命周期中的应用程序为可交互状态,用户可以通过输入模块12对启动界面上的功能进行操作,当用户通过输入模块12对启动界面上的功能进行操作,输入模块12生成该功能对应的功能操作指令,并传输至控制模块13;控制模块13响应于功能操作指令,从后台服务器14中获取该功能相关的数据,基于相关数据生成该功能对应的功能界面,并控制显示模块11从启动界面跳转至功能界面。
在一些实施例中,终端15包括显示模块11、输入模块12和控制模块13,终端通过网络与后台服务器14进行信息传输;其中,终端可以为包括诸如手机、平板电脑、笔记本电脑、掌上电脑等移动终端,以及诸如台式计算机等固定终端。
示例性地,如图2所示的一种信息处理装置的结构示意图,终端15显示有应用程序的图标16,用户选中图标16时,终端15启动该应用程序,并显示该应用程序的启动界面17;用户对启动界面17上的功能进行操作,终端15从该应用程序的后台服务器14中获取该功能相关的数据,基于该数据生成该功能对应的功能界面,并从启动界面17跳转至功能界面18。
本领域技术人员可以理解,图1和图2中示出的信息处理装置的结构并不构成对信息处理装置的限定,信息处理装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
对于java语言编写的安卓(Android)应用程序,需要使用虚拟机(VM,VirualMachine)解释执行应用程序的源代码,虚拟机包括dalvik和ART(Android runtime);dalvik虚拟机利用JIT编译器,对应用程序的.dex(Dalvik Executable)文件进行即时编译和执行;ART虚拟机在安装应用程序时,利用运行前(AOT,Ahead of Time)编译器,预先对应用程序的.dex文件进行运行前编译,得到.oat文件,ART虚拟机可直接运行.oat文件,然后,在安装应用程序时执行运行前编译的过程,增加了安装时间,并且应用程序包括很多方法(method)的.dex文件,无法从所有方法的.dex文件进行运行前编译,也没有有效的参考依据用于从所有方法的.dex文件中选出执行运行前编译的.dex文件;其中,.dex文件就是字节码,.oat文件就是二进制格式的文件,即机器码。
进一步地,对利用JIT编译器执行应用程序的过程进行分析,以应用程序的启动阶段为例,利用JIT编译器对启动方法的字节码进行编译和执行,实现启动应用程序,通过采用性能分析工具systrace,对应用程序的启动阶段进行trace抓取,得到trace.html文件,从trace.html文件中可以获知,启动阶段的总时长中包括大量的JIT编译操作的时长,也就是说,大量的JIT编译操作导致应用程序的启动时间较长。
可以理解的是,减少应用程序的启动过程中的JIT编译操作,就能够减少应用程序的启动时间,那么,可以对启动过程中使用到的方法对应的.dex文件进行编译,并保存编译得到的.oat文件,在之后的每一次启动过程中直接使用.oat文件,省去了对上述使用到的方法对应的.dex文件进行编译的过程,提高了启动时间。
需要说明的是,本申请实施例可以基于图1或图2所示的信息处理装置所实现,下面基于图1或图2进行信息处理具体实施例的说明。
实施例一
本申请实施例提供了一种信息处理方法,如图3所示,该信息处理方法包括以下步骤:
S301、当检测到应用程序的第一操作指令时,响应于第一操作指令,检测是否存在应用程序的操作机器码;操作机器码为与应用程序的首次执行过程中产生并存储的操作方法对应的机器码;
信息处理装置在用户通过输入模块对应用程序进行操作后,检测到应用程序的第一操作指令,信息处理装置检测是否存在应用程序的操作机器码。
在一些实施例中,第一操作指令包括第一启动指令和第一功能操作指令,操作机器码包括至少一个启动机器码和功能机器码,第一启动指令对应至少一个启动机器码,第一功能操作指令对应功能机器码。
示例性地,在用户通过输入模块对应用程序的图标进行操作后,信息处理装置检测到应用程序的第一启动操作指令时,信息处理装置检测是否存在应用程序的至少一个启动机器码。
示例性地,在用户通过输入模块对应用程序的启动界面上的功能进行操作后,信息处理装置检测到应用程序的第一功能操作指令时,信息处理装置检测是否存在应用程序的功能机器码。
需要说明的是,第一操作指令中的第一不限定操作指令是安装应用程序后的首次操作指令,第一操作指令可能是首次操作指令,也可能是非首次操作指令。
S302、当检测存在操作机器码时,控制虚拟机运行操作机器码,实现执行应用程序。
信息处理装置检测到存在操作机器码时,直接运行操作机器码,以执行应用程序。
在一些实施例中,响应于第一启动指令,信息处理装置检测到存在至少一个启动机器码时,对启动阶段中所有启动方法中的一个启动方法,先从至少一个启动机器码中获取该启动方法对应的启动机器码,当没有获取到该启动方法对应的启动机器码,获取该启动方法对应的启动字节码,对该启动方法对应的启动字节码进行即时编译,得到该启动方法对应的启动字节码;运行该启动方法对应的启动字节码,再对所有启动方法中的下一个启动方法,获取该启动方法对应的启动机器码;直到获取到所有启动方法对应的启动机器码,完成第一启动指令的响应。
在一些实施例中,响应于第一功能操作指令,信息处理装置检测到存在第一功能操作指令所指示的方法对应的功能机器码时,运行该功能机器码,完成第一功能操作指令的响应。
在一些实施例中,如图4所示的一种信息处理方法的流程图二,在步骤S301之后,该信息处理方法还包括以下步骤:
S303、当检测不存在操作机器码时,执行应用程序;
信息处理装置响应于第一启动指令,检测到不存在至少一个启动机器码时,开始启动应用程序;或者,响应于第一功能操作指令,检测到不存在功能机器码时,开始运行应用程序。
在一些实施例中,信息处理装置利用JIT编译器开始启动应用程序;或者,利用JIT编译器开始运行应用程序;其中,JIT编译器可以为能够对字节码进行即时编译和运行的守护进程。
S304、基于预设筛选条件和应用程序的执行过程,获取并保存操作机器码。
信息处理装置在应用程序的执行过程结束后,基于预设筛选条件和应用程序的执行,获取并保存操作机器码。
在一些实施例中,第一操作指令为第一启动指令,预设筛选条件包括界面生命周期,操作机器码包括至少一个启动机器码;信息处理装置获取从第一启动指令对应的检测时刻,到应用程序进入界面生命周期的当前时刻之间产生的启动配置文件,启动配置文件存储有至少一个启动方法对应的至少一个启动字节码;对启动配置文件进行运行前编译,得到至少一个启动机器码。
信息处理装置确定预设筛选条件为界面生命周期时,获取从第一启动指令对应的检测时刻,到应用程序进入界面生命周期的当前时刻之间产生的启动配置文件;再对启动配置文件中的至少一个启动字节码进行运行前编译,得到至少一个启动机器码;其中,第一启动指令对应的检测时刻,到应用程序进入界面生命周期的当前时刻之间的过程,就是应用程序的启动阶段。
在一些实施例中,启动配置文件为存储有至少一个启动字节码的配置文件(Profile),配置文件包括只限应用程序访问的安卓系统目录内的文件。
在一些实施例中,信息处理装置采用dex2oat方法,对启动配置文件中的至少一个启动字节码进行运行前编译,得到至少一个启动机器码。
在一些实施例中,信息处理装置预先创建运行前(AOT,Ahead of Time)编译守护进程,利用AOT编译守护进程,对启动配置文件执行dex2oat操作,得到至少一个启动机器码。
在一些实施例中,信息处理装置控制包管理服务器对启动配置文件进行运行前编译,得到至少一个启动机器码。
信息处理装置通过向包管理服务器(PMS,Package Manager Service)发送指令,控制PMS对启动配置文件执行dex2oat操作,得到至少一个启动机器码。
在一些实施例中,信息处理装置从预设字节码文件库中,获取应用程序的第i个启动方法对应的启动字节码,i为大于0的整数;对第i个启动方法对应的启动字节码进行即时编译,继续获取应用程序的第i+1个启动方法对应的启动字节码,直至应用程序进入界面生命周期为止;将获取到的启动字节码保存至预设配置文件中,得到启动配置文件;其中,预设字节码文件库存储有应用程序的所有方法的字节码。
信息处理装置在启动应用程序之后,当应用程序进入界面生命周期时,完成对应用程序的启动,启动阶段结束,信息处理装置将启动阶段中获取到的所有启动字节码保存至预设配置文件中,得到启动配置文件;其中,预设配置文件就是配置文件。
在一些实施例中,利用JIT编译器,对第i个启动方法对应的启动字节码进行即时编译和运行,完成执行第i个启动方法。
在一些实施例中,由于第i个启动方法和第i+m个启动方法可以一样,m为大于0的整数,获取到的启动字节码中存在重复的启动字节码,同一个启动方法,信息处理装置对获取到的启动字节码进行重复过滤,得到至少一个不重复的启动字节码;将至少一个不重复的启动字节码保存至预设配置文件中,得到启动配置文件。
进一步地,信息处理装置对获取到的启动字节码进行归类和重复次数统计,得到至少一个待启动字节码各自对应的重复次数,至少一个待启动字节码为互不相同的启动字节码;根据重复次数和预设次数阈值,对至少一个待启动字节码中的重复次数大于或等于预设次数阈值的启动字节码,作为高频启动字节码;将高频启动字节码保存至预设配置文件中,得到启动配置文件。
在一些实施例中,第一操作指令为第一启动指令,预设筛选条件包括界面生命周期和预设等待时长,操作机器码包括功能机器码;信息处理装置以应用程序进入界面生命周期的当前时刻为开始时刻,进行计时,得到计时时长;当计时时长等于预设等待时长时,获取计时时长内产生的功能配置文件,功能配置文件存储有功能方法对应的功能字节码;对功能配置文件进行运行前编译,得到功能机器码。
信息处理装置响应于第一启动指令,进入应用程序的启动阶段,直至生成应用程序的启动界面,启动阶段结束,进入应用程序的界面生命周期;信息处理装置控制显示模块显示启动界面,并以当前时刻为开始时刻进行计时,得到计时时长;当计时时长等于预设等待时长时,信息处理装置获取计时时长内产生的功能配置文件;再对功能配置文件中的功能字节码进行编译,得到功能机器码;其中,预设等待时长可以为10秒。
在一些实施例中,信息处理装置采用dex2oat方法,对功能配置文件中的功能字节码进行运行前编译,得到功能机器码。
在一些实施例中,功能配置文件为存储有功能字节码的配置文件,功能配置文件和启动配置文件可以为同一个配置文件。
在一些实施例中,信息处理装置在计时时长内,接收功能操作指令;从预设字节码文件库中,获取功能操作指令指示的功能方法对应的功能字节码;将获取到的功能字节码保存至预设配置文件中,得到功能配置文件。
信息处理装置在进入应用程序的界面生命周期的同时,控制显示模块显示有启动界面,用户可以对启动界面上的功能进行一次操作,信息处理装置接收到对应的功能操作指令;在计时时长内,信息处理装置接收到该功能对应的功能操作指令时,获取功能操作指令指示的功能方法对应的功能字节码,并将获取到的功能字节码保存至预设配置文件中;还利用JIT编译器,对功能字节码进行即时编译和运行,完成执行功能方法。
可以理解的是,由于用户在使用应用程序时往往会重复使用某些功能,并且是在用户看到启动界面后就开始操作这些功能,因此,信息处理装置从进入应用程序的界面生命周期开始,统计计时时长内功能操作指令,功能操作指令对应的功能就是用户使用频率较高的功能,功能操作指令指示的功能方法对应的功能字节码就是运行阶段中的编译频率高的字节码,保存该功能字节码的功能机器码,就能够减少应用程序的功能响应时长。
在一些实施例中,操作机器码包括至少一个启动机器码;在基于预设筛选条件和应用程序的执行过程,获取并保存操作机器码之后,信息处理装置检测到应用程序的第二启动指令时,响应于第二启动指令,运行至少一个启动机器码,实现启动应用程序,第二启动指令是在第一启动指令之后的针对应用程序的启动指令。
信息处理装置检测到第二启动指令时,响应于第二启动指令,控制虚拟机运行至少一个启动机器码,启动应用程序。
在一些实施例中,至少一个启动机器码包括启动阶段中所有启动方法各自对应的启动机器码时,响应于第二启动指令,运行至少一个启动机器码,完成应用程序的启动,生成并显示应用程序的启动界面。
可以理解的是,当至少一个启动机器码包括:应用程序的启动阶段中所有启动方法各自对应的启动机器码时,省去了编译过程,直接运行至少一个启动机器码,完成应用程序的启动,减少了应用程序的启动时间。
在一些实施例中,至少一个启动机器码包括启动阶段中高频启动方法各自对应的启动机器码时,高频启动方法属于启动阶段中所有启动方法;响应于第二启动指令,对所有启动方法中的一个启动方法,先从至少一个启动机器码中获取该启动方法对应的启动机器码,当没有获取到该启动方法对应的启动机器码,获取该启动方法对应的启动字节码,对该启动方法对应的启动字节码进行即时编译,得到该启动方法对应的启动字节码;运行该启动方法对应的启动字节码,再对所有启动方法中的下一个启动方法,获取该启动方法对应的启动机器码;直到获取到所有启动方法对应的启动机器码,完成第二启动指令的响应。
可以理解的是,当至少一个启动机器码包括:应用程序的启动阶段中高频启动方法各自对应的启动机器码时,省去了高频启动方法的字节码编译过程,减少了应用程序的启动时间。
示例性地,以一个购物应用程序的启动阶段为例,首次启动购物应用程序时,利用systrace,对购物应用程序的首次启动阶段进行trace抓取,得到trace1.html文件,通过浏览器打开trace1.html文件,如图5所示,图5中的黑色区域表示JIT编译操作,可以看到,在首次启动阶段中存在大量的JIT编译操作51,第一次启动阶段的耗时为1.027s;其中,实际的trace1.html文件用彩色表示JIT编译操作。
进一步地,在首次启动购物应用程序时,获得购物应用程序在首次启动过程中产生的至少一个启动字节码,并保存;当下一次启动购物应用程序时,利用systrace,对购物应用程序的下一次启动阶段进行trace抓取,得到trace2.html文件,通过浏览器打开trace2.html文件,如图6所示,可以看到,下一次启动阶段中的JIT编译操作61相较于首次启动阶段中的JIT编译操作51,黑色区域减少,即下一次启动阶段中的JIT编译操作61比首次启动阶段的JIT编译操作51少,下一次启动阶段耗时约为960ms,比首次启动阶段的耗时减少了67ms。
可以理解的是,由于操作机器码是应用程序的首次执行过程中产生并存储的操作方法对应的机器码,而机器码是可以直接被运行的代码,那么,信息处理装置控制虚拟机直接运行操作机器码,避免了字节码的编译过程,进而提高了应用程序的操作响应时长。
实施例二
基于实施例一的同一发明构思,进行进一步的说明。
本申请实施例提供了一种信息处理装置,如图7所示,信息处理装置7包括:
控制模块71,用于当检测到应用程序的第一操作指令时,响应于所述第一操作指令,检测是否存在所述应用程序的操作机器码;所述操作机器码为在所述应用程序的首次执行过程中产生并存储的操作方法对应的机器码;以及当检测存在所述操作机器码时,控制虚拟机运行所述操作机器码,实现执行所述应用程序。
在一些实施例中,所述第一操作指令包括第一启动指令和第一功能操作指令,所述操作机器码包括至少一个启动机器码和功能机器码,所述第一启动指令对应所述至少一个启动机器码,所述第一功能操作指令对应所述功能机器码。
在一些实施例中,所述控制模块71,还用于在所述检测是否存在所述应用程序的操作机器码之后,当检测不存在所述操作机器码时,执行所述应用程序;以及基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码。
在一些实施例中,所述第一操作指令为第一启动指令,所述预设筛选条件包括界面生命周期,所述操作机器码包括至少一个启动机器码;所述控制模块包括运行前编译模块72;
所述控制模块71,具体用于获取从所述第一启动指令对应的检测时刻,到所述应用程序进入所述界面生命周期的当前时刻之间产生的启动配置文件,所述启动配置文件存储有至少一个启动方法对应的至少一个启动字节码;
所述运行前编译模块72,用于对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
在一些实施例中,所述运行前编译模块72,具体用于控制包管理服务器对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
在一些实施例中,所述控制模块71,具体用于从预设字节码文件库中,获取所述应用程序的第i个启动方法对应的启动字节码,i为大于0的整数;及对所述第i个启动方法对应的启动字节码进行即时编译,继续获取所述应用程序的第i+1个启动方法对应的启动字节码,直至所述应用程序进入所述界面生命周期为止;以及将获取到的启动字节码保存至预设配置文件中,得到所述启动配置文件。
在一些实施例中,所述第一操作指令为第一启动指令,所述预设筛选条件包括界面生命周期和预设等待时长,所述操作机器码包括功能机器码;
所述控制模块71,还用于以所述应用程序进入所述界面生命周期的当前时刻为开始时刻,进行计时,得到计时时长;及当所述计时时长等于所述预设等待时长时,获取所述计时时长内产生的功能配置文件,所述功能配置文件存储有功能方法对应的功能字节码;以及对所述功能配置文件进行运行前编译,得到所述功能机器码。
在一些实施例中,所述控制模块71,具体用于在所述计时时长内,接收功能操作指令;及从预设字节码文件库中,获取所述功能操作指令指示的功能方法对应的功能字节码;以及将获取到的功能字节码保存至预设配置文件中,得到所述功能配置文件。
在一些实施例中,所述操作机器码为至少一个启动机器码;
所述控制模块71,还用于在所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码之后,当检测到所述应用程序的第二启动指令时,响应于所述第二启动指令,运行所述至少一个启动机器码,实现启动所述应用程序,所述第二启动指令是在所述第一启动指令之后的针对所述应用程序的启动指令。
需要说明的是,在实际应用中,上述控制模块71和运行前编译模块72,可由位于信息处理装置7上的处理器73实现,具体为CPU(Central Processing Unit,中央处理器)、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现。
本申请实施例还提供了一种信息处理装置7,如图8所示,该装置7包括:处理器73、存储器74和通信总线75,存储器74通过通信总线75与处理器73进行通信,存储器74存储处理器73可执行的一个或者多个程序,当一个或者多个程序被执行时,通过处理器73执行如前述实施例所述的任意一种信息处理方法。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器73执行,程序被处理器73执行时实现如实施例一的信息处理方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。

Claims (16)

1.一种信息处理方法,其特征在于,所述方法包括:
当检测到应用程序的第一操作指令时,响应于所述第一操作指令,检测是否存在所述应用程序的操作机器码;所述操作机器码为在所述应用程序的首次执行过程中产生并存储的操作方法对应的机器码;
当检测存在所述操作机器码时,控制虚拟机运行所述操作机器码,实现执行所述应用程序;
当检测不存在所述操作机器码时,执行所述应用程序;
基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码;
其中,所述第一操作指令为第一启动指令,所述预设筛选条件包括界面生命周期,所述操作机器码包括至少一个启动机器码;
所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码,包括:
获取从所述第一启动指令对应的检测时刻,到所述应用程序进入所述界面生命周期的当前时刻之间产生的启动配置文件,所述启动配置文件存储有至少一个启动方法对应的至少一个启动字节码;
对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
2.根据权利要求1所述的方法,其特征在于,所述第一操作指令包括第一启动指令和第一功能操作指令,所述操作机器码包括至少一个启动机器码和功能机器码,所述第一启动指令对应所述至少一个启动机器码,所述第一功能操作指令对应所述功能机器码。
3.根据权利要求1所述的方法,其特征在于,所述对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码,包括:
控制包管理服务器对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
4.根据权利要求1所述的方法,其特征在于,所述获取从所述第一启动指令对应的检测时刻,到所述应用程序进入所述界面生命周期的当前时刻之间产生的启动配置文件,包括:
从预设字节码文件库中,获取所述应用程序的第i个启动方法对应的启动字节码,i为大于0的整数;
对所述第i个启动方法对应的启动字节码进行即时编译,继续获取所述应用程序的第i+1个启动方法对应的启动字节码,直至所述应用程序进入所述界面生命周期为止;
将获取到的启动字节码保存至预设配置文件中,得到所述启动配置文件。
5.根据权利要求1所述的方法,其特征在于,所述预设筛选条件包括界面生命周期和预设等待时长,所述操作机器码包括功能机器码;
所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码,包括:
以所述应用程序进入所述界面生命周期的当前时刻为开始时刻,进行计时,得到计时时长;
当所述计时时长等于所述预设等待时长时,获取所述计时时长内产生的功能配置文件,所述功能配置文件存储有功能方法对应的功能字节码;
对所述功能配置文件进行运行前编译,得到所述功能机器码。
6.根据权利要求5所述的方法,其特征在于,所述获取所述计时时长内产生的功能配置文件,包括:
在所述计时时长内,接收功能操作指令;
从预设字节码文件库中,获取所述功能操作指令指示的功能方法对应的功能字节码;
将获取到的功能字节码保存至预设配置文件中,得到所述功能配置文件。
7.根据权利要求1所述的方法,其特征在于,所述操作机器码为至少一个启动机器码;
在所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码之后,所述方法还包括:
当检测到所述应用程序的第二启动指令时,响应于所述第二启动指令,运行所述至少一个启动机器码,实现启动所述应用程序,所述第二启动指令是在所述第一启动指令之后的针对所述应用程序的启动指令。
8.一种信息处理装置,其特征在于,所述装置包括:
控制模块,用于当检测到应用程序的第一操作指令时,响应于所述第一操作指令,检测是否存在所述应用程序的操作机器码;所述操作机器码为在所述应用程序的首次执行过程中产生并存储的操作方法对应的机器码;以及当检测存在所述操作机器码时,控制虚拟机运行所述操作机器码,实现执行所述应用程序;
所述控制模块,还用于在所述检测是否存在所述应用程序的操作机器码之后,当检测不存在所述操作机器码时,执行所述应用程序;以及基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码;
其中,所述第一操作指令为第一启动指令,所述预设筛选条件包括界面生命周期,所述操作机器码包括至少一个启动机器码;所述控制模块包括运行前编译模块;
所述控制模块,具体用于获取从所述第一启动指令对应的检测时刻,到所述应用程序进入所述界面生命周期的当前时刻之间产生的启动配置文件,所述启动配置文件存储有至少一个启动方法对应的至少一个启动字节码;
所述运行前编译模块,用于对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
9.根据权利要求8所述的装置,其特征在于,所述第一操作指令包括第一启动指令和第一功能操作指令,所述操作机器码包括至少一个启动机器码和功能机器码,所述第一启动指令对应所述至少一个启动机器码,所述第一功能操作指令对应所述功能机器码。
10.根据权利要求8所述的装置,其特征在于,
所述运行前编译模块,具体用于控制包管理服务器对所述启动配置文件进行运行前编译,得到所述至少一个启动机器码。
11.根据权利要求8所述的装置,其特征在于,
所述控制模块,具体用于从预设字节码文件库中,获取所述应用程序的第i个启动方法对应的启动字节码,i为大于0的整数;及对所述第i个启动方法对应的启动字节码进行即时编译,继续获取所述应用程序的第i+1个启动方法对应的启动字节码,直至所述应用程序进入所述界面生命周期为止;以及将获取到的启动字节码保存至预设配置文件中,得到所述启动配置文件。
12.根据权利要求8所述的装置,其特征在于,所述预设筛选条件包括界面生命周期和预设等待时长,所述操作机器码包括功能机器码;
所述控制模块,还用于以所述应用程序进入所述界面生命周期的当前时刻为开始时刻,进行计时,得到计时时长;及当所述计时时长等于所述预设等待时长时,获取所述计时时长内产生的功能配置文件,所述功能配置文件存储有功能方法对应的功能字节码;以及对所述功能配置文件进行运行前编译,得到所述功能机器码。
13.根据权利要求12所述的装置,其特征在于,
所述控制模块,具体用于在所述计时时长内,接收功能操作指令;及从预设字节码文件库中,获取所述功能操作指令指示的功能方法对应的功能字节码;以及将获取到的功能字节码保存至预设配置文件中,得到所述功能配置文件。
14.根据权利要求8所述的装置,其特征在于,所述操作机器码为至少一个启动机器码;
所述控制模块,还用于在所述基于预设筛选条件和所述应用程序的执行过程,获取并保存所述操作机器码之后,当检测到所述应用程序的第二启动指令时,响应于所述第二启动指令,运行所述至少一个启动机器码,实现启动所述应用程序,所述第二启动指令是在第一启动指令之后的针对所述应用程序的启动指令。
15.一种信息处理装置,其特征在于,所述信息处理装置包括:处理器、存储器以及通信总线,所述存储器通过所述通信总线与所述处理器进行通信,所述存储器存储所述处理器可执行的一个或者多个程序,当所述一个或者多个程序被执行时,所述处理器执行如权利要求1-7任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任一项所述的方法。
CN201910533883.5A 2019-06-19 2019-06-19 信息处理方法和装置、及存储介质 Active CN112114889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910533883.5A CN112114889B (zh) 2019-06-19 2019-06-19 信息处理方法和装置、及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910533883.5A CN112114889B (zh) 2019-06-19 2019-06-19 信息处理方法和装置、及存储介质

Publications (2)

Publication Number Publication Date
CN112114889A CN112114889A (zh) 2020-12-22
CN112114889B true CN112114889B (zh) 2024-03-01

Family

ID=73795562

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910533883.5A Active CN112114889B (zh) 2019-06-19 2019-06-19 信息处理方法和装置、及存储介质

Country Status (1)

Country Link
CN (1) CN112114889B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106066686A (zh) * 2016-05-31 2016-11-02 广东欧珀移动通信有限公司 一种信息处理方法及终端设备
CN106997294A (zh) * 2016-01-26 2017-08-01 中兴通讯股份有限公司 odex文件生成方法及装置
CN107423093A (zh) * 2017-07-21 2017-12-01 珠海市魅族科技有限公司 控制方法及装置、计算机装置和计算机可读存储介质
CN109857474A (zh) * 2017-11-30 2019-06-07 华为终端有限公司 启动应用程序的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106997294A (zh) * 2016-01-26 2017-08-01 中兴通讯股份有限公司 odex文件生成方法及装置
CN106066686A (zh) * 2016-05-31 2016-11-02 广东欧珀移动通信有限公司 一种信息处理方法及终端设备
CN107423093A (zh) * 2017-07-21 2017-12-01 珠海市魅族科技有限公司 控制方法及装置、计算机装置和计算机可读存储介质
CN109857474A (zh) * 2017-11-30 2019-06-07 华为终端有限公司 启动应用程序的方法和装置

Also Published As

Publication number Publication date
CN112114889A (zh) 2020-12-22

Similar Documents

Publication Publication Date Title
JP3894698B2 (ja) 資源の消費を最小限にするハイブリッド式ジャストインタイム・コンパイラ
EP2758853B1 (en) Dynamic power optimization for computing devices
US9098309B2 (en) Power consumption optimized translation of object code partitioned for hardware component based on identified operations
US6219832B1 (en) System and method of using annotations to optimize dynamically translated code in the presence of signals
CN106293880B (zh) 在Windows系统上运行Android应用程序的方法及装置
CN101382904B (zh) 一种智能密钥设备实现自动安装的方法和系统
US20060123397A1 (en) Apparatus and method for optimization of virtual machine operation
CN106502717B (zh) 应用程序运行方法及装置
CN103488466A (zh) 用于执行应用程序的方法和装置
CN104598267A (zh) 应用的调起方法及装置
CN112148386A (zh) 一种应用加载方法、装置及计算机可读存储介质
CN104598268A (zh) 应用的处理方法及装置
CN107423093B (zh) 控制方法及装置、计算机装置和计算机可读存储介质
CN112114889B (zh) 信息处理方法和装置、及存储介质
CN113127329B (zh) 脚本调试方法、装置及计算机存储介质
CN112214266A (zh) 欺骗调用链安卓脱壳方法、装置、存储介质及计算机设备
CN109144849B (zh) 一种嵌入式软件调测方法
CN112764796A (zh) 安装包生成系统
CN115509531A (zh) 基于前端技术的微前端实现方法、装置、终端及存储介质
CN101382903B (zh) 智能密钥设备实现自动安装的方法和系统
CN112035178A (zh) 一种应用启动方法、装置和存储介质
CN110362314B (zh) 信息处理方法及装置、计算机可读介质、电子设备
CN112445607B (zh) 一种应用程序执行方法函数的方法及装置
CN115904928A (zh) 一种慢函数监控的插桩方法、装置、设备及存储介质
CN112328238A (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