CN107423093A - 控制方法及装置、计算机装置和计算机可读存储介质 - Google Patents
控制方法及装置、计算机装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN107423093A CN107423093A CN201710602580.5A CN201710602580A CN107423093A CN 107423093 A CN107423093 A CN 107423093A CN 201710602580 A CN201710602580 A CN 201710602580A CN 107423093 A CN107423093 A CN 107423093A
- Authority
- CN
- China
- Prior art keywords
- function
- file
- methods described
- virtual machine
- mark
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Abstract
本发明公开了一种控制方法及装置、计算机装置和计算机可读存储介质。在本发明中,通过在将虚拟机字节码文件编译为本地机器码文件时,判断虚拟机字节码文件中是否包含调用数据文件的方法函数,若虚拟机字节码文件中包含调用数据文件的方法函数,则在本地机器码文件中,保存方法函数在虚拟机字节码文件中的标识。由于数据文件是与固件以及设备有关的文件,而方法函数在虚拟机字节码文件中的标识是与数据文件无关的。因此,通过本发明,可以使得本地机器码文件具备固件独立性和设备独立性。
Description
技术领域
本发明属于终端技术领域,尤其涉及一种控制方法及装置、计算机装置和计算机可读存储介质。
背景技术
目前,安卓系统的终端在固件升级后首次开机时或者安装应用程序时,会有一段较长的优化应用程序的过程,该过程我们称为dex2oat编译优化。在dex2oat编译优化的过程中,会将dex文件编译为oat文件,并在编译oat文件的过程中调用方法函数。
但是,现有技术在编译oat文件时,需要通过偏移量跳转至调用boot.art文件的方法函数,而偏移量是需要结合boot.art文件才有效的一个数据。然而,在每个版本的固件当中或者不同的终端设备中,boot.art文件都是不一样的。例如,在当前设备的boot.art文件中,该偏移量可能对应的是println方法函数,但是在别的设备的boot.art文件中,该偏移量可能对应的是close方法函数。由此导致oat文件在调用方法函数时依赖于boot.art文件,使oat文件不具备固件独立性,同时也导致oat文件不具备设备独立性。
因此,现有的oat文件存在不具备固件独立性和设备独立性的问题。
发明内容
本发明提供一种控制方法及装置、计算机装置和计算机可读存储介质,旨在解决现有的oat文件不具备固件独立性和设备独立性的问题。
本发明第一方面提供一种控制方法,其包括:
在将虚拟机字节码文件编译为本地机器码文件时,判断所述虚拟机字节码文件中是否包含调用数据文件的方法函数;
若所述虚拟机字节码文件中包含调用数据文件的方法函数,则在所述本地机器码文件中,保存所述方法函数在所述虚拟机字节码文件中的标识。
在较优的一实施例中,所述控制方法在保存所述方法函数在所述虚拟机字节码文件中的标识之后还包括:
在终端固件升级后首次开机时或者安装应用程序时加载运行所述本地机器码文件,并在加载运行所述本地机器码文件的过程中,通过所述标识调用所述方法函数。
在较优的一实施例中,所述通过所述标识调用所述方法函数包括:
通过所述标识利用地址查找函数获取所述方法函数的索引地址;
通过所述索引地址调用所述方法函数。
在较优的一实施例中,在所述本地机器码文件中,将所述方法函数的调用信息设置为所述地址查找函数的参数。
在较优的一实施例中,所述将所述方法函数的调用信息设置为所述地址查找函数的参数包括:
将所述标识设置为所述地址查找函数的第一个参数;
将所述方法函数所属的类的对象设置为所述地址查找函数的第二个参数;
将所述方法函数的参数的句柄设置为所述地址查找函数的第三个参数。
本发明第二方面提供一种控制装置,其包括:
判断模块,用于在将虚拟机字节码文件编译为本地机器码文件时,判断所述虚拟机字节码文件中是否包含调用数据文件的方法函数;
标识保存模块,用于若所述虚拟机字节码文件中包含调用数据文件的方法函数,则在所述本地机器码文件中,保存所述方法函数在所述虚拟机字节码文件中的标识。
在较优的一实施例中,所述控制装置还包括:
加载运行模块,用于在终端固件升级后首次开机时或者安装应用程序时加载运行所述本地机器码文件,并在加载运行所述本地机器码文件的过程中,通过所述标识调用所述方法函数。
在较优的一实施例中,所述标志保存模块包括:
索引地址获取单元,用于通过所述标识利用地址查找函数获取所述方法函数的索引地址;
方法函数调用单元,用于通过所述索引地址调用所述方法函数。
本发明第三方面提供一种计算机装置,计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述任一实施例所述方法的步骤。
本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一实施例所述方法的步骤。
在本发明中,通过在将虚拟机字节码文件编译为本地机器码文件时,判断虚拟机字节码文件中是否包含调用数据文件的方法函数,若虚拟机字节码文件中包含调用数据文件的方法函数,则在本地机器码文件中,保存方法函数在虚拟机字节码文件中的标识。由于数据文件是与固件以及设备有关的文件,而方法函数在虚拟机字节码文件中的标识是与数据文件无关的。因此,通过本发明中的控制方法,可以使得本地机器码文件具备固件独立性和设备独立性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的控制方法的实现流程图;
图2是本发明实施例提供的控制方法的另一实现流程图;
图3是本发明实施例提供的控制方法中步骤S30的一种实现流程图;
图4是本发明实施例提供的控制方法中步骤S30的另一种实现流程图;
图5是本发明实施例提供的控制方法中步骤S303的实现流程图;
图6是本发明实施例提供的控制装置1的功能模块图;
图7是本发明实施例提供的控制装置1的另一功能模块图;
图8是本发明实施例提供的控制装置1中加载运行模块30的结构框图;
图9是本发明实施例提供的控制装置1中加载运行模块30的另一结构框图;
图10是本发明实施例提供的控制装置1中参数设置模块303的结构框图;
图11是本发明实施例提供的计算机装置11的结构示意图。
主要元件符号说明
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明实施例提供的控制方法的实现流程,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
优选地,本发明中的控制方法可以应用在一个或多个终端中,终端可以是任何一种可与用户进行人机交互的电子产品,其可以包括但不限于:安装有Android或类似操作系统的平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
如图1所示,一种控制方法,该控制方法包括:
步骤S10,在将虚拟机字节码文件编译为本地机器码文件时,判断虚拟机字节码文件中是否包含调用数据文件的方法函数。
在较优的一实施例中,虚拟机字节码文件为dex文件,本地机器码文件为oat文件,数据文件为boot.art文件。
Dex文件是Dalvik VM executes(Dalvik虚拟机可执行)文件的简称,是安卓Dalvik虚拟机的可执行程序。Dalvik是谷歌公司自己设计的用于安卓平台的虚拟机,dex格式是专为Dalvik虚拟机设计的一种压缩格式。另外,在安卓5.0之前的版本中使用的是Dalvik虚拟机,而从安卓5.0开始,采用的是ART(Android runtime)虚拟机,而ART虚拟机是兼容Dalvik虚拟机的,也就是说ART虚拟机也是可以运行dex文件的。
安卓系统的终端在安装应用程序时,会使用dex2oat编译工具对dex文件进行编译优化,并在编译优化后生成oat文件。Oat文件是一种安卓私有的ELF格式的文件,它不仅包含有从dex文件翻译而来的本地机器指令,还包含有原来的dex文件的内容,这就使得无需重新编译原有的APK就可以让它正常的在ART虚拟机中运行。boot.art文件是包含了加载好的类(class)信息和一些事先创建好的对象,而oat文件的主要内容是本地机器代码,boot.art文件和oat文件两者之间是相互引用的,两者要结合起来才构成ART的事先编译构成的环境。
因此,在对应用程序进行dex2oat编译优化的过程中,会将dex文件编译为oat文件。在编译优化时,需要判断dex文件中是否包含调用boot.art文件的方法函数。该方法函数是汇编语言中的方法函数,如println方法函数或者close方法函数,也可以是汇编语言中的其它的方法函数,此处不做特别限制。在较优的一实施例中,该方法函数是println方法函数。另外,本发明实施例中的dex2oat编译规则可以与原生的dex2oat编译规则混合使用。
步骤S20,若虚拟机字节码文件中包含调用数据文件的方法函数,则在本地机器码文件中,保存方法函数在虚拟机字节码文件中的标识。
若通过上述步骤S10判断出上述dex文件中包含了调用boot.art文件的方法函数,则在oat文件中,保存该方法函数在dex文件中的标识。例如,当该方法函数是println方法函数时,则在oat文件中,保存println方法函数在dex文件中的标识;当该方法函数是close方法函数时,则在oat文件中,保存close方法函数在dex文件中的标识。该标识可以是该方法函数的索引地址(也可称为索引号)、方法号、该方法函数的名称、类标识、返回值号或者参数号等信息。在较优的一实施例中,该标识为该方法函数的索引地址。由于方法函数的标识是和固件中boot.art文件无关的信息,因此,在判断出dex文件中包含了调用boot.art文件的方法函数时,在oat文件中保存该方法函数在dex文件中的标识,可以使得oat文件独立于boot.art文件,以使oat文件具备固件独立性。
另外,在较优的一实施例中,控制方法还可以包括步骤:若虚拟机字节码文件中不包含调用数据文件的方法函数,则不执行任何操作。在执行判断虚拟机字节码文件中是否包含调用数据文件的方法函数的步骤时,若在虚拟机字节码文件中不包含调用数据文件的方法,则不执行任何操作。
在本发明实施例中,通过在将虚拟机字节码文件编译为本地机器码文件时,判断虚拟机字节码文件中是否包含调用数据文件的方法函数,若虚拟机字节码文件中包含调用数据文件的方法函数,则在本地机器码文件中,保存方法函数在虚拟机字节码文件中的标识。由于数据文件是与固件以及设备有关的文件,而方法函数在虚拟机字节码文件中的标识是与数据文件无关的。因此,通过本发明中的控制方法,可以使得本地机器码文件具备固件独立性和设备独立性。
在较优的一实施例中,上述控制方法也可以应用在服务器上。鉴于本发明实施例中的控制方法可以使得oat文件具备固件独立性和设备独立性,因此在较优的一实施例中,该控制方法也可以应用在服务器上,即编译优化并生成oat文件的过程也可以在服务器上执行。当终端用户需要下载安装一款应用程序时,可以同时下载APK(安卓安装包)文件和oat文件,如此便可以在终端安装应用程序时省却应用程序的dex2oat编译优化过程,大大提升固件升级后首次开机速度和安装应用程序的速度,同时也不降低应用程序执行的性能。
图2示出了本发明实施例提供的控制方法的另一实现流程,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
如图2所示,在上述图1所示的基础上,该控制方法在步骤S20之后还包括:
步骤S30,在终端固件升级后首次开机时或者安装应用程序时加载运行本地机器码文件,并在加载运行本地机器码文件的过程中,通过标识调用方法函数。
安卓系统的终端在固件升级后首次开机时或者安装应用程序时,会有一段较长的优化应用程序的过程,该过程我们称为dex2oat编译优化。应用程序在经过dex2oat编译优化后会生成相应的oat文件。有了oat文件,应用程序就可以运行于AOT模式,只有在AOT模式下,应用程序才能达到最佳的使用性能和最低的功耗水平。但是,现有的终端在固件升级后首次开机时,会将之前生成的旧oat文件全部删除,重新生成新的oat文件,导致终端固件升级后首次开机时dex2oat编译优化时间占比大,开机耗时较长。例如,一款采用联发科HelioX25芯片的智能手机,经测试实验,在进行固件升级后首次开机时,其开机时间长达12.5分钟,其中dex2oat编译优化的过程就长达12分钟之久。期间,安装微信的总时间为43秒,而dex2oat编译优化的过程长达40秒。dex2oat编译优化的时间占比非常大,超过了90%。可见,现有的终端存在固件升级后首次开机时速度较慢的问题。
为了解决上述问题,小米、华为、魅族以及欧珀等智能手机厂商目前均采用延迟优化的技术方案。延迟优化是将dex2oat编译优化的过程延迟到终端首次开机之后的其他时间段执行,而对于未执行dex2oat编译优化的应用程序,则以一种低性能的模式运行,该模式称为解析模式。鉴于解析模式已被各智能手机厂商大规模采用,谷歌公司在安卓7.0系统中针对该解析模式又进行了优化,发布了该解析模式的增强版JIT模式。但应用程序运行在解析模式或者JIT模式时,仍会在一定程度上造成终端的卡顿,并且严重增加终端的耗电量,大大降低用户体验。
而应用于终端的本发明中的控制方法去掉了删除旧的oat文件的过程,并且也省掉了重新生成所有oat文件的过程,而是在终端固件升级后首次开机时或者安装应用程序时,直接采用旧有的oat文件。但是,由于旧有的oat文件是与固件有关的文件,在固件升级后直接使用旧有的oat文件,会产生各种随机错误,甚至是使系统崩溃。因此,在固件升级之前需要将oat文件独立化,使得oat文件独立于固件。由于方法函数的标识是和固件中boot.art文件无关的信息,在oat文件中,保存方法函数在dex文件中的标识,即可使得oat文件独立于固件。
本发明实施例中的控制方法在固件升级之前保存了方法函数在dex文件中的标识,可以使得终端在固件升级后首次开机时或者安装应用程序时,直接使用旧有的oat文件,而省略掉删除旧有的oat文件并重新生成oat文件的过程。因此,在步骤S30中,在终端固件升级后首次开机时或者安装应用程序时加载运行oat文件,并在加载运行oat文件的过程中,通过标识去调用方法函数。因此,本发明实施例中的控制方法可以大大提高终端固件升级后首次开机时或者安装应用程序的速度。另外,本发明实施例中的控制方法可以使应用程序依然运行于AOT模式,达到最佳的使用性能和最低的功耗水平,从而在避免了终端卡顿的同时,也降低了终端的耗电量,进而大大提高用户体验。
图3示出了本发明实施例提供的控制方法中步骤S30的实现流程,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
如图3所示,步骤S30中通过标识调用方法函数包括:
步骤S301,通过标识利用地址查找函数获取方法函数的索引地址。在步骤S301中,可以通过方法函数的标识利用地址查找函数获取到该方法函数的索引地址。该地址查找函数是专门用来查找该方法函数的索引地址的函数,可以命名为lookup_func。
步骤S302,通过索引地址调用方法函数。在通过步骤S301获取到该方法函数的索引地址之后,再通过该索引地址去调用该方法函数。
图4示出了本发明实施例提供的控制方法中步骤S30的另一实现流程,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
如图4所示,在上述图3所示的基础上,步骤S30中通过标识调用方法函数在步骤S301之前还包括:
步骤S303,在本地机器码文件中,将方法函数的调用信息设置为地址查找函数的参数。
鉴于该该方法函数可能是如println方法函数一样有参数的方法函数,也可能是像close方法函数一样没有参数的方法函数。当该方法函数是像close方法函数一样的没有参数的方法函数时,便无需设置该地址查找函数的参数;但是,当该方法函数是像println方法函数一样的有参数的方法函数时,其在步骤S301通过标识调用该方法函数之前还包括步骤S303,在oat文件中,将该方法函数的调用信息设置为上述地址查找函数的参数。
图5示出了本发明实施例提供的控制方法中步骤S303的实现流程,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
如图5所示,步骤S303,在本地机器码文件中,将方法函数的调用信息设置为地址查找函数的参数包括:
步骤S3031,将标识设置为地址查找函数的第一个参数。例如,当该方法函数是println方法函数时,在步骤S3031中,将println方法函数的标识设置为该地址查找函数的第一个参数。
步骤S3032,将方法函数所属的类的对象设置为地址查找函数的第二个参数。例如,当该方法函数是println方法函数时,在步骤S3032中,将println方法函数所属的类(即system.out)的对象设置为该地址查找函数的第二个参数。
步骤S3033,将方法函数的参数的句柄设置为地址查找函数的第三个参数。例如,当该方法函数是println方法函数时,将println方法函数的参数(例如,println方法函数的参数是字符串)的句柄设置为地址查找函数的第三个参数。
另外,在本发明实施例中,该地址查找函数的参数的个数可以是本发明实施例中的三个参数,也可以根据实际需要,设置为其他个数个参数,此处并不做特别的限制。
在本发明实施例中,通过设置地址查找函数的参数,并通过标识利用地址查找函数获取方法函数的索引地址,进而通过该索引地址调用该方法函数。由于方法函数在虚拟机字节码文件中的标识是与数据文件无关的。因此,通过本发明中的控制方法,可以使得本地机器码文件具备固件独立性和设备独立性。
图6是本发明实施例提供的控制装置的功能模块图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图6,该控制装置1所包括的各个模块用于执行图1对应实施例中的各个步骤,具体请参阅图1以及图1对应实施例中的相关描述,此处不再赘述。本发明实施例中,该控制装置1包括判断模块10和标识保存模块20。
判断模块10,用于在将虚拟机字节码文件编译为本地机器码文件时,判断虚拟机字节码文件中是否包含调用数据文件的方法函数。
标识保存模块20,用于若虚拟机字节码文件中包含调用数据文件的方法函数,则在本地机器码文件中,保存方法函数在虚拟机字节码文件中的标识。
图7示出了本发明实施例提供的控制装置的另一功能模块图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图7,该控制装置1所包括的各个模块用于执行图2对应实施例中的各个步骤,具体请参阅图2以及图2对应实施例中的相关描述,此处不再赘述。如图7所示,在上述图6所示的基础上,该控制装置1还包括加载运行模块30。
加载运行模块30,用于在在终端固件升级后首次开机时或者安装应用程序时加载运行本地机器码文件,并在加载运行本地机器码文件的过程中,通过标识调用方法函数。
图8示出了本发明实施例提供的控制装置1中加载运行模块30的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图8,该加载运行模块30所包括的各个单元用于执行图3对应实施例中的各个步骤,具体请参阅图3以及图3对应实施例中的相关描述,此处不再赘述。如图8所示,该加载运行模块30包括索引地址获取单元301和方法函数调用单元302。
索引地址获取单元301,用于通过标识利用地址查找函数获取方法函数的索引地址。
方法函数调用单元302,用于通过索引地址调用方法函数。
图9示出了本发明实施例提供的控制装置1中加载运行模块30的另一结构框图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图9,该加载运行模块30所包括的各个单元用于执行图4对应实施例中的各个步骤,具体请参阅图4以及图4对应实施例中的相关描述,此处不再赘述。如图9所示,在上述图8所示的基础上,该加载运行模块30还包括参数设置单元303。
参数设置单元303,用于在本地机器码文件中,将方法函数的调用信息设置为地址查找函数的参数。
图10是本发明实施例提供的控制装置1中参数设置单元303的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
参考图10,该参数设置单元303所包括的各个子单元用于执行图5对应实施例中的各个步骤,具体请参阅图5以及图5对应实施例中的相关描述,此处不再赘述。如图10所示,该参数设置单元303包括第一参数设置子单元3031、第二参数设置子单元30032以及第三参数设置子单元3033。
第一参数设置子单元3031,用于将将标识设置为地址查找函数的第一个参数。
第二参数设置子单元3032,用于将方法函数所属的类的对象设置为地址查找函数的第二个参数。
第三参数设置子单元3033,用于将方法函数的参数的句柄设置为地址查找函数的第三个参数。
图11是本发明实施例提供的实现控制方法的较佳实施例的计算机装置11的结构示意图。所述计算机装置11是安装有安卓系统或者类似操作系统的设备,如平板电脑、智能手机以及智能可穿戴设备等。
所述计算机装置11包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(InternetProtocol Television,IPTV)、智能穿戴式设备等。计算机装置11所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
如图11所示,计算机装置11包括存储器2、处理器3及输入输出设备4。
存储器2用于存储控制方法的程序和各种数据,并在计算机装置11运行过程中实现高速、自动地完成程序或数据的存取。存储器2可以是计算机装置11的外部存储设备和/或内部存储设备。进一步地,存储器2可以是集成电路中没有实物形式的具有存储功能的电路,如RAM(Random-Access Memory,随机存取存储设备)、FIFO(First In First Out,)等,或者,存储器2也可以是具有实物形式的存储设备,如内存条、TF卡(Trans-flash Card)等等。
处理器3可以是中央处理器(CPU,Central Processing Unit)。CPU是一块超大规模的集成电路,是计算机装置11的运算核心(Core)和控制核心(Control Unit)。处理器3可执行计算机装置11的操作系统以及安装的各类应用程序、程序代码等,例如控制装置1。
输入输出设备4主要用于实现计算机装置11的输入输出功能,比如收发输入的数字或字符信息,或显示由用户输入的信息或提供给用户的信息以及计算机装置11的各种菜单。
所述计算机装置11集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个模块或装置也可以由一个模块或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种控制方法,其特征在于,所述控制方法包括:
在将虚拟机字节码文件编译为本地机器码文件时,判断所述虚拟机字节码文件中是否包含调用数据文件的方法函数;
若所述虚拟机字节码文件中包含调用数据文件的方法函数,则在所述本地机器码文件中,保存所述方法函数在所述虚拟机字节码文件中的标识。
2.如权利要求1所述的控制方法,其特征在于,所述控制方法在保存所述方法函数在所述虚拟机字节码文件中的标识之后还包括:
在终端固件升级后首次开机时或者安装应用程序时加载运行所述本地机器码文件,并在加载运行所述本地机器码文件的过程中,通过所述标识调用所述方法函数。
3.如权利要求2所述的控制方法,其特征在于,所述通过所述标识调用所述方法函数包括:
通过所述标识利用地址查找函数获取所述方法函数的索引地址;
通过所述索引地址调用所述方法函数。
4.如权利要求3所述的控制方法,其特征在于,在所述本地机器码文件中,将所述方法函数的调用信息设置为所述地址查找函数的参数。
5.如权利要求4所述的控制方法,其特征在于,所述将所述方法函数的调用信息设置为所述地址查找函数的参数包括:
将所述标识设置为所述地址查找函数的第一个参数;
将所述方法函数所属的类的对象设置为所述地址查找函数的第二个参数;
将所述方法函数的参数的句柄设置为所述地址查找函数的第三个参数。
6.一种控制装置,其特征在于,所述控制装置包括:
判断模块,用于在将虚拟机字节码文件编译为本地机器码文件时,判断所述虚拟机字节码文件中是否包含调用数据文件的方法函数;
标识保存模块,用于若所述虚拟机字节码文件中包含调用数据文件的方法函数,则在所述本地机器码文件中,保存所述方法函数在所述虚拟机字节码文件中的标识。
7.如权利要求6所述的控制装置,其特征在于,所述控制装置还包括:
加载运行模块,用于在终端固件升级后首次开机时或者安装应用程序时加载运行所述本地机器码文件,并在加载运行所述本地机器码文件的过程中,通过所述标识调用所述方法函数。
8.如权利要求7所述的控制装置,其特征在于,所述加载运行模块包括:
索引地址获取单元,用于通过所述标识利用地址查找函数获取所述方法函数的索引地址;
方法函数调用单元,用于通过所述索引地址调用所述方法函数。
9.一种计算机装置,其特征在于,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-5中任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-5中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710602580.5A CN107423093B (zh) | 2017-07-21 | 2017-07-21 | 控制方法及装置、计算机装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710602580.5A CN107423093B (zh) | 2017-07-21 | 2017-07-21 | 控制方法及装置、计算机装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107423093A true CN107423093A (zh) | 2017-12-01 |
CN107423093B CN107423093B (zh) | 2020-09-15 |
Family
ID=60431035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710602580.5A Active CN107423093B (zh) | 2017-07-21 | 2017-07-21 | 控制方法及装置、计算机装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107423093B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240766A (zh) * | 2020-01-22 | 2020-06-05 | 北京字节跳动网络技术有限公司 | 应用启动方法、装置、电子设备及计算机可读存储介质 |
CN112114889A (zh) * | 2019-06-19 | 2020-12-22 | Oppo广东移动通信有限公司 | 信息处理方法和装置、及存储介质 |
CN112445487A (zh) * | 2019-09-02 | 2021-03-05 | 深圳Tcl新技术有限公司 | 一种dex优化方法、系统、智能终端及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120191855A1 (en) * | 2009-08-25 | 2012-07-26 | Vizibility, Inc. | Systems and method of identifying and managing abusive requests |
CN105468410A (zh) * | 2015-11-24 | 2016-04-06 | 小米科技有限责任公司 | 系统升级方法及装置 |
CN106066686A (zh) * | 2016-05-31 | 2016-11-02 | 广东欧珀移动通信有限公司 | 一种信息处理方法及终端设备 |
CN106502703A (zh) * | 2016-10-27 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种函数调用方法和装置 |
CN106528255A (zh) * | 2016-12-19 | 2017-03-22 | 北京小米移动软件有限公司 | 类加载方法及装置 |
CN106775644A (zh) * | 2016-11-23 | 2017-05-31 | 北京小米移动软件有限公司 | 文件运行方法及设备 |
-
2017
- 2017-07-21 CN CN201710602580.5A patent/CN107423093B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120191855A1 (en) * | 2009-08-25 | 2012-07-26 | Vizibility, Inc. | Systems and method of identifying and managing abusive requests |
CN105468410A (zh) * | 2015-11-24 | 2016-04-06 | 小米科技有限责任公司 | 系统升级方法及装置 |
CN106066686A (zh) * | 2016-05-31 | 2016-11-02 | 广东欧珀移动通信有限公司 | 一种信息处理方法及终端设备 |
CN106502703A (zh) * | 2016-10-27 | 2017-03-15 | 腾讯科技(深圳)有限公司 | 一种函数调用方法和装置 |
CN106775644A (zh) * | 2016-11-23 | 2017-05-31 | 北京小米移动软件有限公司 | 文件运行方法及设备 |
CN106528255A (zh) * | 2016-12-19 | 2017-03-22 | 北京小米移动软件有限公司 | 类加载方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112114889A (zh) * | 2019-06-19 | 2020-12-22 | Oppo广东移动通信有限公司 | 信息处理方法和装置、及存储介质 |
CN112114889B (zh) * | 2019-06-19 | 2024-03-01 | Oppo广东移动通信有限公司 | 信息处理方法和装置、及存储介质 |
CN112445487A (zh) * | 2019-09-02 | 2021-03-05 | 深圳Tcl新技术有限公司 | 一种dex优化方法、系统、智能终端及存储介质 |
CN111240766A (zh) * | 2020-01-22 | 2020-06-05 | 北京字节跳动网络技术有限公司 | 应用启动方法、装置、电子设备及计算机可读存储介质 |
CN111240766B (zh) * | 2020-01-22 | 2023-12-29 | 抖音视界有限公司 | 应用启动方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107423093B (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103797436B (zh) | 用于计算装置的动态电力优化 | |
US9098309B2 (en) | Power consumption optimized translation of object code partitioned for hardware component based on identified operations | |
CN107436762B (zh) | 一种寄存器代码文件生成方法、装置和电子设备 | |
CN110325968A (zh) | 分布式计算系统中的系统升级管理 | |
US20120030653A1 (en) | Assumption-based compilation | |
US20200167139A1 (en) | Dynamic generation of cpu instructions and use of the cpu instructions in generated code for a softcore processor | |
CN110990019B (zh) | 一种Java类分析方法、装置、存储介质及电子设备 | |
CN111880807A (zh) | 深度学习编译方法、装置、设备及存储介质 | |
CN107423093A (zh) | 控制方法及装置、计算机装置和计算机可读存储介质 | |
CN110609689A (zh) | 一种应用的安装运行方法及装置 | |
CN107145359A (zh) | 一种bmc修改bios选项的优化方法 | |
CN103443763A (zh) | 包含对重写虚拟函数的调用的支持的isa桥接 | |
CN112732321A (zh) | 一种固件修改方法、装置、计算机可读存储介质和设备 | |
CN111768183A (zh) | 一种执行智能合约的方法、区块链节点和存储介质 | |
KR20110100070A (ko) | 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법 | |
CN110275706A (zh) | 程序发布和加载方法、装置、计算机系统及可读存储介质 | |
CN104731600A (zh) | 一种将安卓系统服务插件化的实现方法 | |
CN112214266A (zh) | 欺骗调用链安卓脱壳方法、装置、存储介质及计算机设备 | |
CN107315632A (zh) | 一种双调合并排序方法及系统 | |
CN109885396A (zh) | 一种游戏应用中的字符串构建方法和装置 | |
CN115480800A (zh) | 一种业务数据加工处理方法、电子设备和介质 | |
CN109697076A (zh) | 一种应用软件资源的动态更新方法、装置及设备 | |
CN103645925B (zh) | 在移动终端操作系统中运行页面应用的方法及装置 | |
CN112799724A (zh) | 一种稳定控制装置策略表解析计算方法及装置 | |
CN113419735B (zh) | 插件优化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |