CN113419735A - 插件优化方法及装置 - Google Patents
插件优化方法及装置 Download PDFInfo
- Publication number
- CN113419735A CN113419735A CN202110598557.XA CN202110598557A CN113419735A CN 113419735 A CN113419735 A CN 113419735A CN 202110598557 A CN202110598557 A CN 202110598557A CN 113419735 A CN113419735 A CN 113419735A
- Authority
- CN
- China
- Prior art keywords
- plug
- application
- optimization
- file
- running
- 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
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种插件优化方法及装置。该方法包括:更新第一应用;删除运行第一应用时加载运行第一插件后,对本次加载运行中提取的第一插件的可执行文件进行编译优化得到的第一插件优化文件;生成运行更新后的第一应用时加载运行第一插件后,对本次加载运行中提取的第一插件的可执行文件进行编译优化得到的第二插件优化文件。采用该方法,更新应用后,可以删除之前生成的任意一个插件的插件优化文件,在运行更新后的应用且需要加载运行该插件时,可以重新生成新的插件优化文件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退现象。
Description
技术领域
本申请涉及终端设备技术领域,尤其涉及一种插件优化方法及装置。
背景技术
为了减小Android应用程序包(android application package,APK)的大小,可以将应用的某些功能模块单独设置为插件APK,运行应用时可以动态加载这些插件APK,根据插件APK加载运行插件,从而可以实现相应的功能。
运行应用时加载运行插件之后,可以对加载运行中提取的插件的可执行文件进行编译优化,得到插件优化文件。之后再次在运行应用的过程中加载运行插件时,可以加载运行插件优化文件。此外,在运行应用的过程中,也可以对应用的可执行文件进行编译优化,得到应用优化文件。之后再次运行应用时,可以运行应用优化文件,可以提高运行速度。
不过,在更新应用之后,运行更新后的应用时,如果需要加载插件,而插件需要反调应用,并且之前运行应用时已经生成该插件的插件优化文件,则会发生闪退的现象。
发明内容
本申请提供了一种插件优化方法及装置,以解决运行更新后的应用时,如果需要加载的插件需要反调应用,且之前运行应用时已经生成该插件的插件优化文件,会发生闪退现象的问题。
第一方面,本申请提供了一种插件优化方法,该方法包括:更新第一应用;删除第一插件优化文件,所述第一插件优化文件为运行所述第一应用时加载运行第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;生成第二插件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件。
本实现方式中,用户设备更新第一应用后,可以删除之前生成的第一插件的第一插件优化文件,然后加载运行第一插件,并且对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。可见,采用该插件优化方法,更新应用后,可以删除之前生成的插件对应的插件优化文件,然后在运行更新后的应用的过程中,需要加载运行该插件时,可以根据更新后的应用加载运行该插件的过程,重新生成该插件的新的插件优化文件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退现象。
一种可能的实现方式中,更新第一应用之前,所述方法还包括:运行所述第一应用时加载运行至少一个第二插件;对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。
本实现方式中,在运行第一应用时,加载运行任意一个第二插件之后,可以对加载运行中提取的该第二插件的可执行文件进行编译优化,得到该第二插件的第三插件优化文件。之后再次运行第一应用的过程中,需要加载运行该第二插件时,可以运行该第二插件的第三插件优化文件,可以提高运行速度,用户体验更好。
一种可能的实现方式中,所述删除第一插件优化文件,包括:运行更新后的第一应用时,如果需要加载运行所述第一插件,删除与所述第一插件相同的第二插件的第三插件优化文件。
本实现方式中,运行更新后的第一应用时,如果需要加载运行第一插件,可以删除与第一插件相同的第二插件的第三插件优化文件,然后生成第二插件优化文件。采用本实现方式的插件优化方法,运行更新后的应用的过程中,需要加载运行插件时,可以针对性地删除该插件对应的之前生成的插件优化文件,系统操作较为简单,效率较高。
一种可能的实现方式中,所述删除第一插件优化文件,包括:删除所有第三插件优化文件。
本实现方式中,更新第一应用之后,可以删除所有第三插件优化文件。所以,采用本实现方式的插件优化方法,在更新应用之后,可以删除应用对应的所有之前生成的插件优化文件,可以确保之后运行更新后的应用的过程中,不会出现闪退现象,运行更加稳定,用户体验更好。
一种可能的实现方式中,所述方法还包括:存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。
本实现方式中,在生成每一个第二插件的第三插件优化文件后,可以存储该第二插件的优化状态信息,用于表征已经生成该第二插件的第三插件优化文件,从而可以为后续运行过程提供参考,以便后续运行更新后的应用的过程中,需要加载运行插件时,可以根据存储的优化状态信息分析是否已经生成了该插件对应的插件优化文件,进而可以确保运行更新后的应用时不会出现闪退现象,使得运行更加稳定,用户体验更好。
一种可能的实现方式中,所述删除第一插件优化文件,包括:运行更新后的第一应用时,如果需要加载运行所述第一插件,确定存储的优化状态信息中是否包括第一优化状态信息,所述第一优化状态信息对应的第二插件与所述第一插件相同;如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件。
本实现方式中,运行更新后的第一应用时,如果需要加载运行第一插件,可以首先确定存储的优化状态信息中是否包括与第一插件对应的第一优化状态信息,如果包括第一优化状态信息,可以删除第一优化状态信息对应的第三插件优化文件。可见,采用本实现方式的插件优化方法,在运行更新后的应用的过程中,需要加载插件时,可以根据存储的优化状态信息确定是否已经生成该插件对应的插件优化文件,并在确定生成的情况下,删除已经生成的该插件对应的插件优化文件,确保运行更新后的应用时不会出现闪退现象,使得运行更加稳定,用户体验更好。
一种可能的实现方式中,运行更新后的第一应用之前,所述方法还包括:删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件;生成第二应用优化文件,所述第二应用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件。
本实现方式中,在更新第一应用之后,运行更新后的第一应用之前,可以删除运行第一应用时生成的第一应用优化文件,重新获得更新第一应用的过程中生成的第二应用优化文件。采用该插件优化方法,更新应用之后,运行更新后的应用之前,可以自动删除该应用之前生成的应用优化文件,重新生成新的应用优化文件,之后运行更新后的应用时,可以运行新的应用优化文件,从而可以提高运行速度,用户体验更好。
一种可能的实现方式中,所述生成第二插件优化文件,包括:根据所述第二应用优化文件,运行更新后的第一应用;加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所述第二插件优化文件。
本实现方式中,在生成第二插件优化文件的过程中,可以根据第二应用优化文件,运行更新后的第一应用,可以提高第一应用的运行速度,用户体验更好。
一种可能的实现方式中,所述方法还包括:根据所述第二应用优化文件,运行更新后的第一应用;根据所述第二插件优化文件,加载运行所述第一插件。
本实现方式中,在运行更新后的第一应用时,可以运行第二应用优化文件,并且在加载运行第一插件时,可以运行第二插件优化文件,运行速度更高,用户体验更好。
第二方面,本申请提供了一种插件优化装置,该装置包括:更新模块,用于更新第一应用;处理模块,用于删除第一插件优化文件,所述第一插件优化文件为运行所述第一应用时加载运行第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;优化模块,用于生成第二插件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件。
本实现方式的装置,更新第一应用后,可以删除之前生成的第一插件的第一插件优化文件,然后加载运行第一插件,并且对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。可见,采用该装置,更新应用后,可以删除之前生成的插件对应的插件优化文件,然后在运行更新后的应用的过程中,需要加载运行该插件时,可以根据更新后的应用加载运行该插件的过程,重新生成该插件的新的插件优化文件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退现象。
一种可能的实现方式中,所述处理模块,还用于运行所述第一应用时加载运行至少一个第二插件;所述优化模块,还用于对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。
本实现方式的装置,在运行第一应用时,加载运行任意一个第二插件之后,可以对加载运行中提取的该第二插件的可执行文件进行编译优化,得到该第二插件的第三插件优化文件。之后再次运行第一应用的过程中,需要加载运行该第二插件时,可以运行该第二插件的第三插件优化文件,可以提高运行速度,用户体验更好。
一种可能的实现方式中,所述处理模块用于删除第一插件优化文件,具体为:所述处理模块,用于运行更新后的第一应用时,如果需要加载运行所述第一插件,删除与所述第一插件相同的第二插件的第三插件优化文件。
本实现方式的装置,运行更新后的第一应用时,如果需要加载运行第一插件,可以删除与第一插件相同的第二插件的第三插件优化文件,然后生成第二插件优化文件。采用本实现方式的装置,运行更新后的应用的过程中,需要加载运行插件时,可以针对性地删除该插件对应的之前生成的插件优化文件,系统操作较为简单,效率较高。
一种可能的实现方式中,所述处理模块用于删除第一插件优化文件,具体为:所述处理模块,用于删除所有第三插件优化文件。
本实现方式的装置,更新第一应用之后,可以删除所有第三插件优化文件。所以,采用本实现方式的装置,在更新应用之后,可以删除应用对应的所有之前生成的插件优化文件,可以确保之后运行更新后的应用的过程中,不会出现闪退现象,运行更加稳定,用户体验更好。
一种可能的实现方式中,所述装置还包括:存储模块,用于存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。
本实现方式的装置,在生成每一个第二插件的第三插件优化文件后,可以存储该第二插件的优化状态信息,用于表征已经生成该第二插件的第三插件优化文件,从而可以为后续运行过程提供参考,以便后续运行更新后的应用的过程中,需要加载运行插件时,可以根据存储的优化状态信息分析是否已经生成了该插件对应的插件优化文件,进而可以确保运行更新后的应用时不会出现闪退现象,使得运行更加稳定,用户体验更好。
一种可能的实现方式中,所述处理模块用于删除第一插件优化文件,具体为:所述处理模块,用于:运行更新后的第一应用时,如果需要加载运行所述第一插件,确定存储的优化状态信息中是否包括第一优化状态信息,所述第一优化状态信息对应的第二插件与所述第一插件相同;如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件。
本实现方式的装置,运行更新后的第一应用时,如果需要加载运行第一插件,可以首先确定存储的优化状态信息中是否包括与第一插件对应的第一优化状态信息,如果包括第一优化状态信息,可以删除第一优化状态信息对应的第三插件优化文件。可见,采用本实现方式的装置,在运行更新后的应用的过程中,需要加载插件时,可以根据存储的优化状态信息确定是否已经生成该插件对应的插件优化文件,并在确定生成的情况下,删除已经生成的该插件对应的插件优化文件,确保运行更新后的应用时不会出现闪退现象,使得运行更加稳定,用户体验更好。
一种可能的实现方式中,所述处理模块,还用于删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件;所述优化模块,还用于生成第二应用优化文件,所述第二应用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件。
本实现方式的装置,在更新第一应用之后,运行更新后的第一应用之前,可以删除运行第一应用时生成的第一应用优化文件,重新获得更新第一应用的过程中生成的第二应用优化文件。采用该装置,更新应用之后,运行更新后的应用之前,可以自动删除该应用之前生成的应用优化文件,重新生成新的应用优化文件,之后运行更新后的应用时,可以运行新的应用优化文件,从而可以提高运行速度,用户体验更好。
一种可能的实现方式中,所述优化模块用于生成第二插件优化文件,具体为:所述优化模块,用于:根据所述第二应用优化文件,运行更新后的第一应用;加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所述第二插件优化文件。
本实现方式的装置,在生成第二插件优化文件的过程中,可以根据第二应用优化文件,运行更新后的第一应用,可以提高第一应用的运行速度,用户体验更好。
一种可能的实现方式中,所述处理模块还用于:根据所述第二应用优化文件,运行更新后的第一应用;根据所述第二插件优化文件,加载运行所述第一插件。
本实现方式的装置,在运行更新后的第一应用时,可以运行第二应用优化文件,并且在加载运行第一插件时,可以运行第二插件优化文件,运行速度更高,用户体验更好。
第三方面,本申请提供了一种通信装置,该通信装置包括处理器,当所述处理器执行存储器中的计算机程序或指令时,如第一方面所述的方法被执行。
第四方面,本申请提供了一种通信装置,该通信装置包括处理器和存储器;所述存储器用于存储计算机程序或指令;所述处理器用于执行所述存储器所存储的计算机程序或指令,以使所述通信装置执行如第一方面所述的方法。
第五方面,本申请提供了一种通信装置,该通信装置包括处理器、存储器和收发器;所述收发器,用于接收信号或者发送信号;所述存储器,用于存储计算机程序或指令;所述处理器,用于从所述存储器调用所述计算机程序或指令执行如第一方面所述的方法。
第六方面,本申请提供了一种计算机存储介质,所述计算机存储介质用于存储计算机程序或指令,当所述计算机程序或指令被执行时,使得第一方面所述的方法被实现。
第七方面,本申请提供了一种包括计算机程序或指令的计算机程序产品,当所述计算机程序或指令被执行时,使得第一方面所述的方法被实现。
为解决运行更新后的应用时,如果需要加载的插件需要反调应用,且之前运行应用时已经生成该插件的插件优化文件,会发生闪退现象的问题,本申请实施例提供了一种插件优化方法及装置。该方法中,用户设备更新第一应用后,可以删除之前生成的第一插件的第一插件优化文件,然后加载运行第一插件,并且对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。可见,采用该插件优化方法,更新应用后,可以删除之前生成的插件对应的插件优化文件,然后在运行更新后的应用的过程中,需要加载运行该插件时,可以根据更新后的应用加载运行该插件的过程,重新生成该插件的新的插件优化文件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退现象。
附图说明
图1为本申请提供的插件优化方法的一种实施方式的流程示意图;
图2为本申请提供的插件优化方法的另一种实施方式的流程示意图;
图3为本申请提供的插件优化方法的另一种实施方式的流程示意图;
图4为本申请提供的插件优化装置的一种实施方式的结构框图。
具体实施方式
下面结合附图,对本申请的技术方案进行描述。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
为了便于理解本申请的技术方案,下面先对本申请涉及的技术术语进行简单介绍。
1、插件化
插件化,又可以称为动态加载,是指在应用程序(application,APP)的运行过程中,可以加载运行插件,从而扩展该应用程序(后续简称为应用)的功能。
插件化具体可以包括以下步骤:首先,操作系统运行应用的过程中,在需要加载插件时,将插件的可执行二进制文件(包括dex、jar或apk等格式的文件)复制到应用中;然后,通过调用类加载器加载可执行二进制文件;之后,按照插件中的程序指令运行。
2、APK
APK是Android应用程序包(android application package,APK)的简称,是Android操作系统使用的一种应用程序包的文件格式。
本申请实施例中提供了两种APK文件,一种为应用程序的APK文件,后续简称为应用APK,另一种为插件的APK文件,后续简称为插件APK。其中,插件APK实际上不是真正的APK文件,只是打包成APK格式的非APK文件,操作系统无法直接运行插件APK,需要通过应用程序加载插件APK,并根据插件APK加载运行插件。
3、dex2oat优化
操作系统在运行应用的过程中,是将应用APK的dex文件加载至内存中,然后解释性执行字节码,此过程较为复杂,用时较长。如果操作系统每次运行应用的过程中,均按照前述方式运行,则效率会很低,用户体验较差。基于此,可以通过dex2oat优化,将应用安装和运行过程中,从应用APK中提取的应用的可执行文件(dex文件)的字节码转化为可以运行的机器码,生成可以直接被本地处理器执行的应用优化文件(odex文件),在后续运行应用时,可以直接运行应用优化文件,从而可以加快应用的运行速度,提高用户的体验。
此外,应用加载运行插件后,还可以将加载运行中从插件APK中提取的插件的可执行文件,通过dex2oat优化,生成插件优化文件,后续应用再次加载运行插件时,可以直接运行插件优化文件,从而可以提高加载运行插件的速度,提高用户体验。
下面结合上述技术术语对本申请提供的技术方案的应用场景进行示例性说明。
为了减小应用APK的大小,或者,为了更好的动态扩展应用的功能,可以将应用的某些功能模块单独设置为插件APK,应用在运行时可以动态加载这些插件APK,根据插件APK加载运行插件,从而可以实现相应的功能。
通常,用户设备根据用户的操作下载应用APK,并且根据应用APK安装应用之后,可以将安装过程中从应用APK中提取的应用的可执行文件进行编译优化,例如,可以对安装过程中从应用APK中提取的应用的可执行文件进行dex2oat优化,生成初始应用优化文件。
然后,用户设备可以根据用户的操作,运行应用。运行应用的过程中,对于应用中与初始应用优化文件对应的功能,可以直接运行初始应用优化文件,无需再从应用APK中提取相应的可执行文件,也无需再解释性执行字节码,可以提高运行速度。并且,对于运行过程中,除初始应用优化文件对应功能之外的新增功能,还可以将新增功能对应的可执行文件进行编译优化,从而更新初始应用优化文件,得到新的应用优化文件。以此类推,用户设备可以根据用户的操作,不断更新应用的应用优化文件,以便下次运行应用时,可以根据更新后的应用优化文件运行应用,从而可以提高应用的运行速度,提高用户的体验。
用户设备在运行应用的过程中,还可以加载插件APK,根据插件APK加载运行插件,从而扩展应用的功能。加载运行插件后,还可以对加载运行过程中从插件APK中提取的插件的可执行文件进行编译优化,例如,可以对加载运行过程中从插件APK中提取的插件的可执行文件进行dex2oat优化,生成初始插件优化文件。之后,再次运行应用,需要加载运行插件时,可以直接运行初始插件优化文件,可以加快加载运行插件的速度,用户体验更好。
不过,当用户设备更新应用后,用户设备会将更新前的应用优化文件删除,重新对本次更新过程中提取的应用的可执行文件进行编译优化,生成新的应用优化文件。而初始插件优化文件由于存储于应用目录下,用户设备不会删除初始插件优化文件,当更新后的应用需要加载运行插件时,更新后的应用还是会运行初始插件优化文件,此过程中,如果插件需要反调应用的话,初始插件优化文件需要获取更新前的应用的程序指令,而应用由于更新,程序指令的存储位置发生变化,插件无法获取到更新前的应用的程序指令,导致更新后的应用无法正常运行,发生闪退。
为了在更新应用之后,运行更新后的应用时可以正常加载运行插件,不会发生闪退现象,本申请提供了一种插件优化方法。
本申请的用户设备可以是诸如手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、个人数字助理(personaldigital assistant,PDA)、可穿戴设备、虚拟现实设备、监控设备、车载设备等电子设备。本申请涉及的电子设备可以搭载或者其它操作系统,本申请对此不进行限制。
下面对本申请提供的插件优化方法的实施例进行说明。
参见图1,图1为本申请提供的插件优化方法的一种实施方式的流程示意图。该插件优化方法的执行主体可以为用户设备,该插件优化方法可以包括以下步骤:
步骤S101、更新第一应用。
其中,第一应用为用户设备根据用户的操作安装的应用。用户设备接收到用户下载第一应用的操作后,可以下载第一应用的应用程序包(下文中可以将第一应用的应用程序包简称为第一应用程序包),然后根据第一应用程序包安装第一应用。例如,用户设备可以从应用市场下载第一应用的应用APK,然后可以根据第一应用的应用APK安装第一应用。
在安装第一应用之后,用户设备可以对安装过程中从第一应用程序包中提取的第一应用的可执行文件进行编译优化,生成第一应用的初始应用优化文件(下文中可以将第一应用的初始应用优化文件简称为第三应用优化文件)。例如,可以对安装过程中从第一应用的应用APK中提取的第一应用的可执行文件进行dex2oat优化,生成第一应用的odex文件,即第三应用优化文件可以为该odex文件。
安装第一应用之后,用户设备可以根据用户的操作,运行第一应用。在运行第一应用的过程中,用户设备可以直接运行第三应用优化文件,对于本次运行第一应用过程中第三应用优化文件对应功能之外的新增功能,用户设备可以对从第一应用程序包中提取的新增功能对应的可执行文件进行编译优化,生成新增功能对应的应用优化文件,从而更新第三应用优化文件为第四应用优化文件,第四应用优化文件包括新增功能对应的应用优化文件和第三应用优化文件。
以此类推,用户设备每次根据用户的操作运行第一应用时,都可以直接运行第一应用对应的当前的应用优化文件,并且,对于当前的应用优化文件对应功能之外的新增功能,用户设备还可以对新增功能对应的可执行文件进行编译优化,从而更新当前的应用优化文件。直至用户设备接收到用户输入的更新第一应用的操作后,将第一应用对应的当前的应用优化文件确定为第一应用优化文件。
此外,运行第一应用的过程中,还可以加载运行插件,本申请中,将第一应用运行过程中加载运行的插件简称为第二插件。第二插件的数量可以为一个或多个。也就是说,运行第一应用的过程中,可以加载运行至少一个第二插件。
运行第一应用的过程中,首次加载运行任意一个第二插件后,用户设备可以对本次加载运行该第二插件过程中,从该第二插件的安装包中提取的该第二插件的可执行文件进行编译优化,生成该第二插件的初始插件优化文件(下文中可以将该第二插件的初始插件优化文件简称为该第二插件的第三插件优化文件)。例如,运行第一应用的过程中,可以根据第二插件的插件APK加载运行第二插件,首次加载运行第二插件后,可以对本次加载运行第二插件过程中,从第二插件的插件APK中提取的第二插件的可执行文件进行dex2oat优化,生成第二插件的odex文件,即第二插件的第三插件优化文件可以为该odex文件。
之后,用户设备每次运行第一应用的过程中,需要加载运行任意一个第二插件时,都可以加载运行该第二插件的第三插件优化文件,无需重新加载该第二插件的可执行文件,可以提高加载运行该第二插件的速度,用户体验更好。
用户设备接收到用户输入的更新第一应用的操作后,可以更新第一应用。更新第一应用后,用户设备可以删除第一应用优化文件,并且对本次更新过程中从用于更新第一应用的应用程序包中提取的第一应用的可执行文件进行编译优化,生成更新后的第一应用的初始优化文件(下文中可以将更新后的第一应用的初始优化文件简称为第二应用优化文件)。
之后,用户设备可以根据用户的操作运行更新后的第一应用,在运行更新后的第一应用时,可以运行第二应用优化文件,可以提高更新后的第一应用的运行速度,用户体验更好。
步骤S102、运行更新后的第一应用时,如果需要加载运行第一插件,删除第一插件优化文件。
用户设备在运行更新后的第一应用的过程中,也可以加载运行插件。本申请实施例中,将运行更新后的第一应用的过程中,加载运行的插件简称为第一插件。
需要说明的是,运行更新后的第一应用的过程中加载运行的插件与运行第一应用的过程中加载运行的插件可以相同,也可以不同。所以,第一插件可以与第二插件相同。第一插件也可以与第二插件不同。基于此,第一插件优化文件可以为与第一插件相同的第二插件的第三插件优化文件。
所以,删除第一插件优化文件,可以按照下述方式实现:确定运行第一应用过程中加载运行的与第一插件相同的第二插件,删除该第二插件的第三插件优化文件。
步骤S103、加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成第二插件优化文件。
用户设备运行更新后的第一应用的过程中,在加载运行第一插件时,可以首先删除第一插件优化文件,然后加载运行第一插件,并且,可以对本次加载运行第一插件过程中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。之后,用户设备根据用户的操作再次运行更新后的第一应用,并且需要加载运行第一插件时,可以运行第二插件优化文件,加载运行的速度更快,用户体验更好。
需要说明的是,步骤S102至步骤S103以第一插件为一个为例,对本申请的实施例进行说明。而实际应用场景中第一插件的数量可以为一个,也可以为多个。也就是说,运行更新后的第一应用的过程中,可以加载运行一个或多个第一插件。当第一插件的数量为多个时,可以按照步骤S102至步骤S103的方式,在加载运行每一个第一插件时,删除该第一插件对应的第一插件优化文件,然后生成该第一插件对应的第二插件优化文件。
本实施例提供的插件优化方法中,用户设备更新第一应用后,运行更新后的第一应用时,如果需要加载运行第一插件,首先删除第一插件优化文件,然后加载运行第一插件,并且对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。可见,采用该插件优化方法,更新应用后,在运行更新后的应用的过程中,需要加载插件时,首先删除之前生成的该插件对应的插件优化文件,然后根据更新后的应用加载运行该插件的过程,重新生成该插件的新的插件优化文件,当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退现象。
参见图2,图2为本申请提供的插件优化方法的另一种实施方式的流程示意图。该插件优化方法的执行主体可以为用户设备,该插件优化方法可以包括以下步骤:
步骤S201、更新第一应用。
步骤S201的具体实现方式可以参考图1所示实施例的内容,此处不再赘述。
步骤S202、删除所述第一应用对应的所有第三插件优化文件。
结合前述实施例的内容可知,运行第一应用的过程中,可以加载运行一个或多个第二插件。在加载运行每一个第二插件后,可以对加载运行中提取的该第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。基于此,当第二插件为一个时,第一应用对应的所有第三插件优化文件为该第二插件的第三插件优化文件。当第二插件为多个时,第一应用对应的所有第三插件优化文件为该多个第二插件的第三插件优化文件。
步骤S203、运行更新后的第一应用时,加载运行第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成第二插件优化文件。
需要说明的是,步骤S203以第一插件为一个为例,对本申请的实施例进行说明。而实际应用场景中第一插件的数量可以为一个,也可以为多个。也就是说,运行更新后的第一应用的过程中,可以加载运行一个或多个第一插件。当第一插件的数量为多个时,可以按照步骤步骤S203的方式,在加载运行每一个第一插件时,生成该第一插件对应的第二插件优化文件。
本实施例提供的插件优化方法中,用户设备更新第一应用后,首先删除第一应用对应的所有第三插件优化文件,然后运行更新后的第一应用,并且在加载运行第一插件后,对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。可见,采用该插件优化方法,更新应用后,可以首先删除之前生成的与该应用对应的所有插件优化文件,然后运行更新后的应用时,在加载运行插件后,根据更新后的应用加载运行插件的过程,重新生成新的插件优化文件,当插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行插件时,不会发生闪退现象。
参见图3,图3为本申请提供的插件优化方法的另一种实施方式的流程示意图。该插件优化方法的执行主体可以为用户设备,该插件优化方法可以包括以下步骤:
步骤S301、运行第一应用时,加载运行至少一个第二插件,对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。
结合前述实施例的内容可知,第一应用为用户设备根据用户的操作安装的应用。用户设备接收到用户下载第一应用的操作后,可以下载第一应用程序包,然后根据第一应用程序包安装第一应用。
在安装第一应用之后,用户设备可以对安装过程中从第一应用程序包中提取的第一应用的可执行文件进行编译优化,生成第三应用优化文件。
安装第一应用之后,用户设备可以根据用户的操作,运行第一应用。在运行第一应用的过程中,用户设备可以运行第三应用优化文件,对于本次运行第一应用过程中第三应用优化文件对应功能之外的新增功能,用户设备可以对从第一应用程序包中提取的新增功能对应的可执行文件进行编译优化,生成新增功能对应的应用优化文件,从而更新第三应用优化文件为第四应用优化文件,第四应用优化文件包括新增功能对应的应用优化文件和第三应用优化文件。
以此类推,用户设备每次根据用户的操作运行第一应用时,都可以直接运行第一应用对应的当前的应用优化文件,并且,对于当前的应用优化文件对应功能之外的新增功能,用户设备还可以对新增功能对应的可执行文件进行编译优化,从而更新当前的应用优化文件。直至用户设备接收到用户输入的更新第一应用的操作后,将第一应用对应的当前的应用优化文件确定为第一应用优化文件。
此外,运行第一应用的过程中,还可以加载运行插件,本申请中,将第一应用运行过程中加载运行的插件简称为第二插件。第二插件的数量可以为一个或多个。也就是说,运行第一应用的过程中,可以加载运行至少一个第二插件。
运行第一应用的过程中,首次加载运行任意一个第二插件后,用户设备可以对本次加载运行中,从该第二插件的安装包中提取的该第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。之后,用户设备每次运行第一应用的过程中,需要加载运行该第二插件时,都可以加载运行该第二插件的第三插件优化文件,无需重新加载该第二插件的可执行文件,可以提高加载运行该第二插件的速度,用户体验更好。
步骤S302、存储每一个第二插件的优化状态信息。
运行第一应用的过程中,加载运行每一个第二插件,生成该第二插件的第三插件优化文件后,用户设备可以存储该第二插件的优化状态信息。
其中,每一个第二插件的优化状态信息可以用于表征已经生成该第二插件的第三插件优化文件。每一个第二插件的优化状态信息可以包括第一应用的信息和该第二插件的信息。第一应用的信息可以包括第一应用的包名、第一应用的应用版本号、第一应用的应用更新时间和第一应用需要加载的插件的信息等。第二插件的信息可以包括该第二插件的安装包名称、该第二插件的插件目录(该第二插件被加载至第一应用中的目录)、该第二插件的插件优化文件目录(该第二插件的第三插件优化文件存储至第一应用中的目录)和已经生成该第二插件的第三插件优化文件的信息等。
步骤S303、更新第一应用。
结合前述实施例的内容可知,用户设备可以根据接收到的用户输入的更新第一应用的操作,更新第一应用。更新第一应用后,用户设备可以删除第一应用优化文件,并且对本次更新过程中从用于更新第一应用的应用程序包中提取的第一应用的可执行文件进行编译优化,生成第二应用优化文件。
步骤S304、运行更新后的第一应用时,如果需要加载运行第一插件,确定存储的优化状态信息中是否包括第一优化状态信息。
结合前述实施例的内容可知,用户设备运行更新后的第一应用时,可以运行第二应用优化文件,可以提高运行速度,用户体验更好。
此外,用户设备在运行更新后的第一应用的过程中,也可以加载运行插件。本申请实施例中,将运行更新后的第一应用的过程中,加载运行的插件简称为第一插件。
需要说明的是,运行更新后的第一应用的过程中加载运行的插件与运行第一应用的过程中加载运行的插件可以相同,也可以不同。所以,第一插件可以与第二插件相同。第一插件也可以与第二插件不同。其中,第一优化状态信息对应的第二插件与第一插件相同。
基于此,确定存储的优化状态信息中是否包括第一优化状态信息,可以按照下述方式实现:将存储的优化状态信息对应的第二插件与第一插件进行匹配,如果存在与第一插件相同的第二插件,则确定存储的优化状态信息中包括第一优化状态信息;或者,如果不存在与第一插件相同的第二插件,则确定存储的优化状态信息中不包括第一优化状态信息。
步骤S305、如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件,然后加载运行所述第一插件,对加载运行中提取的所述第一插件的可执行文件进行编译优化,生成第二插件优化文件。
如果存储的优化状态信息中不包括第一优化状态信息,说明运行第一应用的过程中,没有生成第一插件优化文件,此种情况下,可以加载运行所述第一插件,对加载运行所述第一插件中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。需要说明的是,本申请对于运行第一应用的过程中,没有加载运行与第一插件相同的第二插件,没有生成第一插件优化文件的方案,不做具体讨论。
对加载运行中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件的具体实现方式,可以参考前述实施例的内容,此处不再赘述。
需要说明的是,步骤S304至步骤S305以第一插件为一个为例,对本申请的实施例进行说明。而实际应用场景中第一插件的数量可以为一个,也可以为多个。也就是说,运行更新后的第一应用的过程中,可以加载运行一个或多个第一插件。当第一插件的数量为多个时,可以按照步骤S304至步骤S305的方式,在加载运行每一个第一插件时,确定存储的优化状态信息中是否包括该第一插件对应的第一优化状态信息,并在包括的情况下,删除该第一优化状态信息对应的第三插件优化文件,然后生成该第一插件对应的第二插件优化文件。
本实施例提供的插件优化方法中,用户设备运行第一应用的过程中,加载运行至少一个第二插件后,可以对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件,并且会存储每一个第二插件的优化状态信息,然后更新第一应用后,运行更新后的第一应用时,如果需要加载运行第一插件,首先确定存储的优化状态信息中是否包括第一优化状态信息,第一优化状态信息对应的第二插件与第一插件相同,如果包括,删除第一优化状态信息对应的第三插件优化文件,然后加载运行第一插件,并且对本次加载运行过程中提取的第一插件的可执行文件进行编译优化,生成第二插件优化文件。
可见,采用该插件优化方法,在运行应用的过程中,加载运行插件后,可以生成插件的插件优化文件,并且存储插件的优化状态信息。在更新应用后,运行更新后的应用的过程中,需要加载插件时,可以根据存储的优化状态信息确定是否存在该插件对应的插件优化文件,存在的话,可以首先删除之前生成的该插件对应的插件优化文件,然后根据更新后的应用加载运行该插件的过程,重新生成该插件的新的插件优化文件。当该插件反调应用时,新的插件优化文件依据更新后的应用生成,与更新后的应用相匹配,更新后的应用根据新的插件优化文件加载运行该插件时,不会发生闪退现象。
本文中描述的各个方法实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本申请的保护范围中。
可以理解的是,上述各个方法实施例中,由用户设备实现的方法和操作,也可以由可用于用户设备的部件(例如芯片或者电路)实现。
上述实施例对本申请提供的插件优化方法进行了介绍。可以理解的是,用户设备为了实现上述功能,其包含了执行每一个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对用户设备进行功能模块的划分,例如,可以对应每一个功能划分每一个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
以上,结合图1至图3详细说明了本申请实施例提供的方法。以下,结合图4详细说明本申请实施例提供的装置。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
参见图4,图4为本申请提供的插件优化装置的一种实施方式的结构框图。如图4所示,该插件优化装置400可以包括:更新模块401、处理模块402和优化模块403。该插件优化装置400可以执行上述图1至图3所示实施例中任意一个实施例中用户设备执行的操作。
例如,在本申请一种可选的实施例中,更新模块401,可以用于更新第一应用;处理模块402,可以用于运行更新后的第一应用时,如果需要加载运行第一插件,删除第一插件优化文件,所述第一插件优化文件为运行所述第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;优化模块403,可以用于生成第二插件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件。
一种可能的实现方式中,所述处理模块402,还可以用于运行所述第一应用时加载运行至少一个第二插件;所述优化模块403,还可以用于对本次加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。
一种可能的实现方式中,所述第一插件优化文件为与所述第一插件相同的第二插件的第三插件优化文件。
一种可能的实现方式中,所述处理模块402用于删除第一插件优化文件,具体为:所述处理模块402,用于删除所有第三插件优化文件。
一种可能的实现方式中,所述插件优化装置400还可以包括:存储模块,用于存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。
一种可能的实现方式中,所述处理模块402用于删除第一插件优化文件,具体为:所述处理模块402,用于:确定存储的优化状态信息中是否包括第一优化状态信息,所述第一优化状态信息对应的第二插件与所述第一插件相同;如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件。
一种可能的实现方式中,所述处理模块402,还可以用于删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件;所述优化模块403,还可以用于生成第二应用优化文件,所述第二应用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件。
一种可能的实现方式中,所述优化模块403用于生成第二插件优化文件,具体为:所述优化模块403,用于:根据所述第二应用优化文件,运行更新后的第一应用;加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所述第二插件优化文件。
一种可能的实现方式中,所述处理模块402还可以用于:根据所述第二应用优化文件,运行更新后的第一应用;根据所述第二插件优化文件,加载运行所述第一插件。
也就是说,该插件优化装置400可以实现对应于图1至图3所示插件优化方法实施例中任意一个实施例中用户设备所执行的步骤或者流程,该插件优化装置400可以包括用于执行图1至图3所示插件优化方法实施例中任意一个实施例中用户设备执行的方法的模块。应理解,各模块执行上述相应步骤的具体过程在上述插件优化方法实施例中已经详细说明,为了简洁,在此不再赘述。
根据本申请实施例提供的方法,本申请实施例还提供一种计算机程序产品,该计算机程序产品包括:计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行图1至图3所示实施例中任意一个实施例的方法。
根据本申请实施例提供的方法,本申请实施例还提供一种计算机存储介质,该计算机存储介质存储有计算机程序或指令,当该计算机程序或指令在计算机上运行时,使得该计算机执行图1至图3所示实施例中任意一个实施例的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例提供的插件优化装置、计算机存储介质、计算机程序产品均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法对应的有益效果,在此不再赘述。
应理解,在本申请的各个实施例中,各步骤的执行顺序应以其功能和内在逻辑确定,各步骤序号的大小并不意味着执行顺序的先后,不对实施例的实施过程构成限定。
本说明书的各个部分均采用递进的方式进行描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处。尤其,对于插件优化装置、计算机存储介质、计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (20)
1.一种插件优化方法,其特征在于,所述方法包括:
更新第一应用;
删除第一插件优化文件,所述第一插件优化文件为运行所述第一应用时加载运行第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;
生成第二插件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件。
2.根据权利要求1所述的方法,其特征在于,更新第一应用之前,所述方法还包括:
运行所述第一应用时加载运行至少一个第二插件;
对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。
3.根据权利要求2所述的方法,其特征在于,所述删除第一插件优化文件,包括:
运行更新后的第一应用时,如果需要加载运行所述第一插件,删除与所述第一插件相同的第二插件的第三插件优化文件。
4.根据权利要求2所述的方法,其特征在于,所述删除第一插件优化文件,包括:
删除所有第三插件优化文件。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。
6.根据权利要求5所述的方法,其特征在于,所述删除第一插件优化文件,包括:
运行更新后的第一应用时,如果需要加载运行所述第一插件,确定存储的优化状态信息中是否包括第一优化状态信息,所述第一优化状态信息对应的第二插件与所述第一插件相同;
如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件。
7.根据权利要求1至6任意一项所述的方法,其特征在于,运行更新后的第一应用之前,所述方法还包括:
删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件;
生成第二应用优化文件,所述第二应用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件。
8.根据权利要求7所述的方法,其特征在于,所述生成第二插件优化文件,包括:
根据所述第二应用优化文件,运行更新后的第一应用;
加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所述第二插件优化文件。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
根据所述第二应用优化文件,运行更新后的第一应用;
根据所述第二插件优化文件,加载运行所述第一插件。
10.一种插件优化装置,其特征在于,所述装置包括:
更新模块,用于更新第一应用;
处理模块,用于删除第一插件优化文件,所述第一插件优化文件为运行所述第一应用时加载运行第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件;
优化模块,用于生成第二插件优化文件,所述第二插件优化文件为运行更新后的第一应用时加载运行所述第一插件后,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化得到的文件。
11.根据权利要求10所述的装置,其特征在于,
所述处理模块,还用于运行所述第一应用时加载运行至少一个第二插件;
所述优化模块,还用于对加载运行中提取的每一个第二插件的可执行文件进行编译优化,生成该第二插件的第三插件优化文件。
12.根据权利要求11所述的装置,其特征在于,所述处理模块用于删除第一插件优化文件,具体为:
所述处理模块,用于运行更新后的第一应用时,如果需要加载运行所述第一插件,删除与所述第一插件相同的第二插件的第三插件优化文件。
13.根据权利要求11所述的装置,其特征在于,所述处理模块用于删除第一插件优化文件,具体为:
所述处理模块,用于删除所有第三插件优化文件。
14.根据权利要求11所述的装置,其特征在于,所述装置还包括:
存储模块,用于存储每一个第二插件的优化状态信息,该优化状态信息用于表征已经生成该第二插件的第三插件优化文件。
15.根据权利要求14所述的装置,其特征在于,所述处理模块用于删除第一插件优化文件,具体为:
所述处理模块,用于:
运行更新后的第一应用时,如果需要加载运行所述第一插件,确定存储的优化状态信息中是否包括第一优化状态信息,所述第一优化状态信息对应的第二插件与所述第一插件相同;
如果存储的优化状态信息中包括所述第一优化状态信息,删除所述第一优化状态信息对应的第三插件优化文件。
16.根据权利要求10至15任意一项所述的装置,其特征在于,
所述处理模块,还用于删除第一应用优化文件,所述第一应用优化文件为更新第一应用之前,对运行第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件;
所述优化模块,还用于生成第二应用优化文件,所述第二应用优化文件为更新第一应用后,对更新第一应用过程中提取的第一应用的可执行文件进行编译优化得到的文件。
17.根据权利要求16所述的装置,其特征在于,所述优化模块用于生成第二插件优化文件,具体为:
所述优化模块,用于:
根据所述第二应用优化文件,运行更新后的第一应用;
加载运行所述第一插件,对本次加载运行中提取的所述第一插件的可执行文件进行编译优化,生成所述第二插件优化文件。
18.根据权利要求16或17所述的装置,其特征在于,所述处理模块还用于:
根据所述第二应用优化文件,运行更新后的第一应用;
根据所述第二插件优化文件,加载运行所述第一插件。
19.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序或指令,当所述计算机程序或指令被执行时,如权利要求1至9中任意一项所述的方法被执行。
20.一种计算机程序产品,其特征在于,包括计算机程序或指令,当所述计算机程序或指令被执行时,如权利要求1至9中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110598557.XA CN113419735B (zh) | 2021-05-31 | 2021-05-31 | 插件优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110598557.XA CN113419735B (zh) | 2021-05-31 | 2021-05-31 | 插件优化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419735A true CN113419735A (zh) | 2021-09-21 |
CN113419735B CN113419735B (zh) | 2022-04-19 |
Family
ID=77713322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110598557.XA Active CN113419735B (zh) | 2021-05-31 | 2021-05-31 | 插件优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419735B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126290A (zh) * | 2016-06-27 | 2016-11-16 | 微梦创科网络科技(中国)有限公司 | 应用程序优化方法、装置及系统 |
CN107015816A (zh) * | 2017-05-25 | 2017-08-04 | 微鲸科技有限公司 | 操作系统升级方法、装置及一种智能终端 |
CN111273955A (zh) * | 2020-01-16 | 2020-06-12 | 惠州Tcl移动通信有限公司 | 热修复插件优化方法、装置、存储介质及电子设备 |
CN111475227A (zh) * | 2020-04-02 | 2020-07-31 | 深圳创维-Rgb电子有限公司 | 业务插件加载实现方法、装置和终端设备 |
CN111552524A (zh) * | 2020-05-06 | 2020-08-18 | Oppo(重庆)智能科技有限公司 | 一种插件加载方法、装置及计算机可读存储介质 |
CN112765383A (zh) * | 2021-04-07 | 2021-05-07 | 荣耀终端有限公司 | 一种文件清理方法及电子设备 |
-
2021
- 2021-05-31 CN CN202110598557.XA patent/CN113419735B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106126290A (zh) * | 2016-06-27 | 2016-11-16 | 微梦创科网络科技(中国)有限公司 | 应用程序优化方法、装置及系统 |
CN107015816A (zh) * | 2017-05-25 | 2017-08-04 | 微鲸科技有限公司 | 操作系统升级方法、装置及一种智能终端 |
CN111273955A (zh) * | 2020-01-16 | 2020-06-12 | 惠州Tcl移动通信有限公司 | 热修复插件优化方法、装置、存储介质及电子设备 |
CN111475227A (zh) * | 2020-04-02 | 2020-07-31 | 深圳创维-Rgb电子有限公司 | 业务插件加载实现方法、装置和终端设备 |
CN111552524A (zh) * | 2020-05-06 | 2020-08-18 | Oppo(重庆)智能科技有限公司 | 一种插件加载方法、装置及计算机可读存储介质 |
CN112765383A (zh) * | 2021-04-07 | 2021-05-07 | 荣耀终端有限公司 | 一种文件清理方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
刘通 等: "基于ModelCenter平台的智能优化算法插件开发及应用", 《民用飞机设计与研究》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113419735B (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104375849B (zh) | 加载内核的方法及装置 | |
US20150220326A1 (en) | Mobile Terminal and Software Upgrade Method Thereof | |
CN107967139B (zh) | 游戏的热更新方法及装置 | |
CN105100191A (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
CN104834555A (zh) | 调用功能模块的方法、相关装置及装置修复方法 | |
CN110442327B (zh) | 一种应用程序构建方法、装置、服务器 | |
CN104991793A (zh) | 一种用于应用程序分包的方法、装置以及系统 | |
CN105138382A (zh) | 一种Android系统升级的方法及终端 | |
CN104866293B (zh) | 一种对Android应用程序扩展功能的方法及装置 | |
CN110750286B (zh) | OTA升级Mbn的管理方法、装置、系统、设备和介质 | |
CN112433747B (zh) | 一种适用于软件开发工具包sdk的差分升级方法及系统 | |
CN114721688A (zh) | 一种sdk升级方法、装置以及计算机设备 | |
CN112769706B (zh) | 组件化路由方法及系统 | |
CN111492345A (zh) | 优化和运行安卓应用程序的方法以及相关装置 | |
US20110321030A1 (en) | Method and apparatus for updating a software image | |
CN111290801A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111026439A (zh) | 应用程序的兼容方法、装置、设备及计算机存储介质 | |
CN111158756A (zh) | 用于处理信息的方法和装置 | |
CN110532016B (zh) | 版本管理方法、版本更新方法和版本管理系统 | |
WO2023274388A1 (zh) | 一种应用程序功能模块的动态插拔方法及系统 | |
CN106843956B (zh) | 系统固件包的生成方法及装置 | |
CN113419735B (zh) | 插件优化方法及装置 | |
CN105700900A (zh) | 一种优化无线局域网功能的方法及装置 | |
CN104461612A (zh) | 一种数据处理方法及装置 | |
CN111949303A (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 |