CN111580824B - 程序优化方法、装置及存储介质 - Google Patents
程序优化方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111580824B CN111580824B CN202010239629.7A CN202010239629A CN111580824B CN 111580824 B CN111580824 B CN 111580824B CN 202010239629 A CN202010239629 A CN 202010239629A CN 111580824 B CN111580824 B CN 111580824B
- Authority
- CN
- China
- Prior art keywords
- identifiers
- target application
- application program
- server
- target
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000008569 process Effects 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 47
- 230000003068 static effect Effects 0.000 abstract description 10
- 238000004458 analytical method Methods 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
- G06F8/4441—Reducing the execution time required by the program code
-
- 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
- G06F8/4434—Reducing the memory space required by the program code
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种程序优化方法、装置及存储介质,用于应用程序的优化。程序优化方法中,第二电子设备在目标应用程序中的代码被调用的情况下,将被调用代码对应的标识发送至服务器,服务器根据接收到的多个标识确定有效标识,根据有效标识确定目标应用程序中的无效标识,第一电子设备从目标应用程序中删除无效标识对应的目标代码。通过目标应用程序在运行过程中代码的调用情况,确定目标应用程序在实际运行过程中未被调用的类或函数,从目标应用程序中删除实际运行过程中未被调用的类或函数,减小目标应用程序的体积,相对于静态分析,可以确定更多的目标代码,进一步减小目标应用程序的体积,提高目标应用程序的运行效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种程序优化方法、装置及存储介质。
背景技术
在应用程序开发过程中,需要对应用程序进行优化,删除应用程序中的无用代码,以得到体积更小、运行效率更高的应用程序。
目前,主要通过静态分析技术对应用程序进行优化,在应用程序的开发过程中,对应用程序进行静态分析,确定应用程序中未被其他代码调用的目标代码,删除目标代码,减小应用程序的体积。
静态分析虽然可以确定部分目标代码,达到优化应用程序的目的,但是静态分析只能根据应用程序中各代码之间的调用关系,确定少量的目标代码,无法根据应用程序的实际运行情况,确定更多的目标代码,无法进一步减小应用程序的体积,提高应用程序的运行效率。
发明内容
本申请实施例提供了一种程序优化方法、装置、及存储介质,以解决无法根据应用程序的实际运行情况,确定更多的目标代码,减小应用程序的体积的问题。
有鉴于此,本申请第一方面提供了一种程序优化方法,应用于第一电子设备,包括:
获取目标应用程序;
获得所述目标应用程序中的所有无效标识;其中,所述无效标识包括所述目标应用程序中的所有标识中除所有有效标识之外的其他标识,所述有效标识为所述服务器根据接收到的多个标识信息分别包括的标识确定的,所述标识信息为第二电子设备在所述目标应用程序中的所述标识对应的代码被调用的情况下,向所述服务器发送的;
从所述目标应用程序中确定每个所述无效标识分别对应的目标代码;
删除每个所述无效标识分别对应的目标代码,得到删除所述目标代码后的目标应用程序。
可选的,所述获得所述目标应用程序中的所有无效标识,包括:
获得所述目标应用程序中的所有标识、以及所述服务器确定的所有有效标识,并根据所述所有有效标识和所述所有标识,获得所述所有无效标识;或者,获得所述服务器确定的所述所有无效标识。
可选的,所述目标应用程序为所述目标应用程序的源代码,或者对所述源代码进行编译之后,生成的中间代码。
有鉴于此,本申请第二方面提供了另一种程序优化方法,应用于服务器,包括:
接收多个第二电子设备分别发送的标识信息,其中,所述标识信息为所述第二电子设备在目标应用程序中的代码被调用的情况下,向服务器发送包括所述代码对应的标识的标识信息;
根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识。
可选的,在所述确定至少一个有效标识之后,还包括:根据预先获取的所述目标应用程序中的所有标识和所有所述有效标识,确定所有无效标识;向第一电子设备发送所述所有无效标识。
可选的,所述根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识,包括:
统计多个所述标识信息中分别包括的标识中的目标标识的个数,其中,所述目标标识为多个所述标识信息分别包括的标识中的任意一个;
若所述目标标识的个数大于等于预设阈值,则将所述目标标识作为所述有效标识。
本申请实施例第三方面提供了一种程序优化装置,设置于第一电子设备,包括:
获取模块,被配置为获取目标应用程序;
获得模块,被配置为获得所述目标应用程序中的所有无效标识;其中,所述无效标识包括所述目标应用程序中的所有标识中除所有有效标识之外的其他标识,所述有效标识为所述服务器根据接收到的多个标识信息分别包括的标识确定的,所述标识信息为第二电子设备在所述目标应用程序中的所述标识对应的代码被调用的情况下,向所述服务器发送的;
确定模块,被配置为从所述目标应用程序中确定每个所述无效标识分别对应的目标代码;
删除模块,被配置为删除每个所述无效标识分别对应的目标代码,得到删除所述目标代码后的目标应用程序。
可选的,所述获得模块具体被配置为获得所述目标应用程序中的所有标识、以及所述服务器确定的所有有效标识,并根据所述所有有效标识和所述所有标识,获得所述所有无效标识;或者,获得所述服务器确定的所述所有无效标识。
可选的,所述目标应用程序为所述目标应用程序的源代码,或者对所述源代码进行编译之后,生成的中间代码。
本申请实施例第四方面提供了另一种程序优化装置,设置于第一服务器,包括:
接收模块,被配置为接收多个第二电子设备分别发送的标识信息,其中,所述标识信息为所述第二电子设备在目标应用程序中的代码被调用的情况下,向服务器发送包括所述代码对应的标识的标识信息;
第一确定模块,被配置为根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识。
可选的,还包括:
第二确定模块,被配置为根据预先获取的所述目标应用程序中的所有标识和所有所述有效标识,确定所有无效标识;
发送模块,被配置为向第一电子设备发送所述所有无效标识。
可选的,所述第一确定模块具体被配置为统计多个所述标识信息中分别包括的标识中的目标标识的个数,其中,所述目标标识为多个所述标识信息分别包括的标识中的任意一个;若所述目标标识的个数大于等于预设阈值,则将所述目标标识作为所述有效标识。
本申请实施例第五方面提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如本申请第一方面任一可选实现方式中所述的程序优化方法。
本申请实施例第六方面提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如本申请第一方面任一可选实现方式中所述的程序优化方法。
本申请实施例第七方面提供一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行如本申请第一方面任一可选实现方式中所述的程序优化方法。
本申请实施例第八方面提供一种服务器,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如本申请第二方面任一可选实现方式中所述的程序优化方法。
本申请实施例第九方面提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如本申请第二方面任一可选实现方式中所述的程序优化方法。
本申请实施例第十方面提供一种包含指令的计算机程序产品,当所述计算机程序产品在服务器上运行时,使得所述服务器执行如如本申请第二方面任一可选实现方式中所述的程序优化方法。
本申请实施例第十一方面提供一种程序优化系统,包括第一电子设备、第二电子设备和服务器;
所述第二电子设备用于在目标应用程序中的代码被调用的情况下,向服务器发送包括代码对应的标识的标识信息;
所述服务器用于接收多个所述第二电子设备分别发送的所述标识信息;
所述服务器还用于根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识;
所述第一电子设备用于获取所述目标应用程序;
所述第一电子设备还用于获得所述目标应用程序中的所有无效标识;
所述第一电子设备还用于从所述目标应用程序中确定每个所述无效标识分别对应的目标代码;
所述第一电子设备还用于删除每个所述无效标识分别对应的目标代码,得到删除目标代码后的目标应用程序。
从以上技术方案可以看出,本申请实施例具有以下优点:
在本申请实施例中,第二电子设备在目标应用程序中的代码被调用的情况下,将被调用代码对应的标识发送至服务器,服务器根据接收到的多个标识确定有效标识,有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。根据有效标识确定目标应用程序中的无效标识,无效标识对应的目标代码为目标应用程序实际运行过程中未被调用的类或函数。第一电子设备从目标应用程序中删除无效标识对应的目标代码,得到删除目标代码后的目标应用程序,实现对目标应用程序的优化。通过目标应用程序在运行过程中代码的调用情况,确定目标应用程序在实际运行过程中未被调用的类或函数,从目标应用程序中删除实际运行过程中未被调用的类或函数,减小目标应用程序的体积,实现对目标应用程序的优化,相对于静态分析,可以确定更多的目标代码,进一步减小目标应用程序的体积,提高目标应用程序的运行效率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,还可以根据这些附图获得其它的附图。
图1是根据一示例性实施例示出的一种程序优化系统的结构图;
图2是根据一示例性实施例示出的一种程序优化方法的步骤流程图;
图3是根据一示例性实施例示出的另一种程序优化方法的步骤流程图;
图4是根据一示例性实施例示出的一种程序优化装置的结构框图;
图5是根据一示例性实施例示出的另一种程序优化装置的结构框图;
图6是根据一示例性实施例示出的一种电子设备的结构框图;
图7是根据一示例性实施例示出的一种服务器的结构框图;
图8是根据一示例性实施例示出的又一种程序优化装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,都应当属于本申请保护的范围。
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
参照图1,图1是根据一示例性实施例示出的一种程序优化系统的结构图,程序优化系统可以包括至少一个第一电子设备、服务器和多个第二电子设备。为简化说明,如图1所示,在此以程序优化系统包括一个第一电子设备、一个第二电子设备和服务器为例,第一电子设备和第二电子设备可以是手机或计算机等终端设备。
第二电子设备用于在目标应用程序中的代码被调用的情况下,向服务器发送包括代码对应的标识的标识信息。
本实施例中,第二电子设备用于安装并运行目标应用程序,第二电子设备可以在目标应用程序中的代码被调用的情况下,向服务器发送包括与被调用代码对应的标识的标识信息。其中,目标应用程序为用户编写的应用程序代码,例如由用户使用Java语言(Thejava programming language)、C++语言(The C++Programming Language、)和C语言(The CProgramming Language)等程序设计语言编写的应用程序代码。代码可以是目标应用程序中的某个类或函数,例如若目标应用程序是由Java语言编写的应用程序代码,代码可以是目标应用程序中包括的类A和类B,或者类A中包括的函数A1和函数A2,以及类B中包括的函数B1和函数B2。标识为与目标应用程序中的代码对应,且唯一标识代码的标识。例如,标识可以是目标应用程序中每个类的类名(例如“类A”),或者每个函数的函数名(例如“函数A1”)。或者,标识也可以是在目标应用程序的开发过程中,由用户在代码中的预设位置插入的标识,如在类A的预设位置中插入标识“A”,在函数B2的预设位置中插入标识“B2”。标识的具体形式,以及预设位置可以根据需求设置,本实施例对此不做限制。
服务器用于接收多个第二电子设备分别发送的标识信息,以及根据接收的多个标识信息分别包括的标识,确定至少一个有效标识。
本实施例中,服务器可以接收每个第二电子设备分别发送的标识信息,并根据接收到的每个标识信息分别包括的标识,确定至少一个有效标识。其中,服务器也可以根据确定的有效标识,以及预先获取的目标应用程序中包括的所有标识,确定目标应用程序中的所有无效标识。
第一电子设备用于获取目标应用程序,获得目标应用程序中的所有无效标识,从目标应用程序中确定每个无效标识分别对应的目标代码,以及删除每个无效标识分别对应的目标代码,得到删除目标代码后的目标应用程序。
本实施例中,第一电子设备可以从服务器获取有效标识,并根据预先获取的目标应用程序中包括的所有标识,确定目标应用程序中的所有无效标识。或者,第一电子设备也可以直接从服务器获取所有无效标识。第一电子设备可以根据获得的无效标识,从目标应用程序中确定并删除每个无效标识分别对应的目标代码,得到删除目标代码后的目标应用程序,以实现对目标应用程序的优化。
图2是根据一示例性实施例示出的一种程序优化方法的步骤流程图,参照图2,本实施例提供的程序优化方法可以适应于应用程序的优化,以减小应用程序的体积,提高应用程序的运行效率。本实施例提供的程序优化方法可以由程序优化装置执行,程序优化装置通常以软件和/或硬件的方式实现,程序优化装置可以设置于第一电子设备,该方法可以包括以下步骤:
201、获取目标应用程序。
本实施例中,第一电子设备在对目标应用程序进行优化之前,可以预先获取目标应用程序,如可以直接接收用户输入的目标应用程序,或者接收其他电子设备发送的目标应用程序,目标应用程序的获取方法可以根据需求设置,本实施例对此不做限制。
202、获得目标应用程序中的所有无效标识。
其中,无效标识包括目标应用程序中的所有标识中除所有有效标识之外的其他标识,有效标识为服务器根据接收到的多个标识信息分别包括的标识确定的,标识信息为第二电子设备在目标应用程序中的标识对应的代码被调用的情况下,向服务器发送的。
本实施例中,第二电子设备在目标应用程序的运行过程中,在目标应用程序中的某个代码(类或函数)被调用的情况下,向服务器发送包括与被调用的代码对应的标识的标识信息。例如,函数A1用于执行目标应用程序中的拍摄功能,第二电子设备在运行目标应用程序时,若目标应用程序中的拍摄功能被用户使用,则函数A1被目标应用程序调用。此时,第二电子设备可以从函数A1的预设位置中获取标识“A1”,向服务器发送包括标识“A1”的标识信息。或者,第二电子设备可以获取函数A1的函数名“函数A1”,向服务器发送包括“函数A1”标识信息,标识信息的具体形式可以根据需求设置,本实施例对此不做限制。
服务器用于接收每个第二电子设备分别发送的包括标识的标识信息,并根据接收到的多个标识信息分别包括的标识,确定有效标识。例如,服务器在接收到第二电子设备发送的包括标识“A1”的标识信息之后,解析该标识信息,获得标识“A1”,并确定标识“A1”为有效标识。服务器根据接收到的多个标识信息分别包括的标识确定的有效标识的方法,可以根据需求设置,本实施例对此不做限制。
本实施例中,无效标识为目标应用程序中包括的所有标识中,除服务器确定的所有有效标识之外的其他标识。例如,结合上述举例,目标应用程序中包括的标识为A、A1、A2、B、B1和B2,服务器确定的有效标识为A1,则无效标识为所有标识中除有效标识A1之外的标识A、A2、B、B1和B2。具体根据有效标识确定无效标识的过程可以根据需求设置,本实施例对此不做限制。其中,第一电子设备获取无效标识的方法可以根据需求设置,本实施例对此不做限制。
步骤203、从目标应用程序中确定每个无效标识分别对应的目标代码。
本实施例中,第一电子设备获得所有无效标识之后,可以在目标应用程序中确定每个无效标识分别对应的目标代码。例如,结合步骤201和步骤202,第一电子设备在获取到目标应用程序,并获得所有无效标识之后,可以对目标应用程序进行扫描,确定每个类和每个函数的预设位置中的标识,确定预设位置中标识为“A1”的函数为与无效标识“A1”对应的目标代码。第一电子设备根据无效标识确定目标代码的方法可以根据需求设置,本实施例对此不做限制。
步骤204、删除每个无效标识分别对应的目标代码,得到删除目标代码后的目标应用程序。
本实施例中,第一电子设备在确定目标代码之后,可以从目标应用程序中删除目标代码,得到删除目标代码后的目标应用程序。例如,第一电子设备在确定函数A1之后,可以从目标应用程序中删除函数A1,得到删除函数A1的目标应用程序。第一电子设备删除目标代码的过程可参考现有技术,本实施例对此不做限制。
实际应用中,第一电子设备在得到删除目标代码后的目标应用程序之后,可以根据删除目标代码后的目标应用程序,生成目标应用程序的应用程序包(例如APK,Androidapplication package),并向外发布应用程序包,使第二电子设备可以获取目标应用程序的应用程序包,安装并运行目标应用程序。第一电子设备根据删除目标代码后的目标应用程序生成应用程序包,并向外发布应用程序包的过程可参考现有技术,本实施例在此不做赘述。
综上所述,本实施例中,第二电子设备在目标应用程序中的代码被调用的情况下,将被调用代码对应的标识发送至服务器,服务器根据接收到的多个标识确定有效标识,有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。根据有效标识确定目标应用程序中的无效标识,无效标识对应的目标代码为目标应用程序实际运行过程中未被调用的类或函数。第一电子设备从目标应用程序中删除无效标识对应的目标代码,得到删除目标代码后的目标应用程序,实现对目标应用程序的优化。通过目标应用程序在运行过程中代码的调用情况,确定目标应用程序在实际运行过程中未被调用的类或函数,从目标应用程序中删除实际运行过程中未被调用的类或函数,减小目标应用程序的体积,实现对目标应用程序的优化,相对于静态分析,可以确定更多的目标代码,进一步减小目标应用程序的体积,提高目标应用程序的运行效率。
图3是根据一示例性实施例示出的另一种程序优化方法的步骤流程图,参照图3,该方法可以包括:
步骤301、第二电子设备在目标应用程序中的代码被调用的情况下,向服务器发送包括代码对应的标识的标识信息。
步骤302、服务器接收多个第二电子设备分别发送的标识信息。
步骤303、服务器根据接收的多个标识信息分别包括的标识,确定至少一个有效标识。
本实施例中,服务器用于接收第二电子设备发送的标识信息,并根据每个标识信息包括的标识,确定至少一个有效标识。结合上述举例,服务器可以直接确定标识信息中包括的标识为有效标识。
可选的,步骤303还可以通过如下方式实现:
统计多个标识信息中分别包括的标识中的目标标识的个数,其中,目标标识为多个标识信息中分别包括的标识中的任意一个;
若目标标识的个数大于等于预设阈值,则将目标标识作为有效标识。
实际应用中,服务器可以接收每个第二电子设备分别发送的多个标识信息,并且每个标识信息中包括的标识可以相同也可以不同。服务器可以对接收到的每个标识的个数进行统计,确定个数大于等于预设阈值的标识为有效标识。例如,服务器可以对标识“A1”的个数进行统计,每次接收到包括标识“A1”的标识信息之后,标识“A1”的个数加1,当标识“A1”的个数大于等于500000次(预设阈值)时,确定标识“A1”为有效标识。预设阈值的具体数值可以根据需求设置,本实施例对此不做限制。
本实施例中,当标识的个数大于等于预设阈值时,可以确定标识对应的代码在目标应用程序的运行过程中,被调用的次数较多。相反的,当标识的个数小于预设阈值时,可以确定标识对应的代码在目标应用程序的运行过程中,被调用的次数较少。当代码被调用的个数较少时,可以确定该代码对应的功能被用户使用的较少,可以在目标应用程序中删除该代码。进一步的,在根据有效标识确定无效标识时,可以将个数小于预设阈值的标识确定为无效标识,在目标应用程序中删除个数小于预设阈值的标识对应的目标代码,可以进一步减小目标应用程序的体积。
可选的,服务器可以根据预先获取的目标应用程序中的所有标识和所有有效标识,确定所有无效标识;并向第一电子设备发送所有无效标识。
本实施例中,服务器可以根据有效标识和预先获取的目标应用程序中的所有标识,确定无效标识,并向第一电子设备发送确定的无效标识。具体的,服务器可以预先获取目标应用程序中包括的每个标识,如用户在目标应用程序的开发过程中,可以建立包括所有标识的第一列表,并操作第一电子设备,通过第一电子设备向服务器发送第一列表。或者,第一电子设备在获取到目标应用程序之后,可以对目标应用程序进行扫描,确定目标应用程序中包括的所有标识,并建立包括所有标识的第一列表,向服务器发送第一列表。服务器获取目标应用程序中的所有标识的方法可以根据需求设置,本实施例对此不做限制。
服务器在确定有效标识之后,可以根据预先获取的第一列表,确定第一列表中除有效标识之外的标识为无效标识,并建立包括所有无效标识的第二列表。例如,若第一列表中包括标识A、A1、A2、B、B1和B2,服务器在确定标识A1为有效标识之后,可以确定第一列表中除有效标识A1之外的其他标识为无效标识,并建立包括无效标识A、A2、B、B1和B2的第二列表。服务器在确定无效标识,建立第二列表之后,可以向第一电子设备发送第二列表。服务器向第一电子设备发送无效标识的方法,可参考现有技术中服务器向电子设备发送数据的方法,本实施例对此不做限制。
可选的,服务器在确定至少一个有效标识之后,可以直接向第一电子设备发送所有有效标识。具体的,服务器在确定有效标识之后,可以建立包括所有有效标识的第三列表,如建立包括有效标识“A1”的第三列表,并向第一电子设备发送第三列表。服务器向第一电子设备发送有效标识的方法可以根据需求设置,本实施例对此不做限制。
步骤304、第一电子设备获取目标应用程序。
步骤305、第一电子设备获得目标应用程序中的所有无效标识。
本实施例中,第一电子设备可以直接从服务器获取所有有效标识(第三列表),以确定所有无效标识。或者,直接从服务器获取所有无效标识(第二列表)。
示例的,第一电子设备在获取目标应用程序之后,可以对目标应用程序进行扫描,获取目标应用程序中包括的所有标识,建立包括所有标识的第一列表,并从服务器获取所有有效标识。结合步骤303,第一电子设备可以直接接收服务器发送的第三列表,确定第一列表中除第三列表包括的所有有效标识之外的其他标识为无效标识。
实际应用中,在服务器可以确定所有无效标识的情况下,第一电子设备也可以直接从服务器获取无效标识,如直接接收服务器发送的第二列表,以确定目标应用程序中包括的所有无效标识。
实际使用时,第一电子设备也可以通过其他方式从服务器获取有效标识或无效标识,本实施例对此不做限制。
步骤306、第一电子设备从目标应用程序中确定每个无效标识分别对应的目标代码。
步骤307、第一电子设备删除每个无效标识分别对应的目标代码,得到删除目标代码后的目标应用程序。
可选的,目标应用程序可以为目标应用程序的源代码,或者对源代码进行编译之后,生成的中间代码。
本实施例中,目标应用程序可以为目标应用程序的源代码,例如目标应用程序可以是由Java语言编写的源代码。或者,目标应用程序也可以是对源代码进行编译之后,生成的中间代码,如可以通过编译工具对目标应用程序的源代码进行编译,生成目标应用程序的类文件(Java class文件),即目标应用程序的中间代码(Byte-code)。第一电子设备在获取到中间代码(目标应用程序)之后,可以通过代码混淆工具(如proguard)或者java字节码操纵框架(如ASM)对中间代码进行操作,根据无效标识从中间代码中确定并删除目标代码。对中间代码进行操作的方法可参考现有技术,本实施例对此不做限制。
实际应用中,直接对目标应用程序的中间代码中的目标代码进行删除,可以避免对目标应用程序的源代码进行删除操作,对目标应用程序的源代码进行保护。同时,在生成目标应用程序的应用程序包时,会在目标应用程序的中间代码中增加第三方库(例如AAR,Android Archive)。在目标应用程序运行过程中,当第三方库中的代码未被调用时,可以确定第三方库中未被调用的代码对应的标识为无效标识,进而在中间代码中确定并删除第三方库中的部分代码,可以减小第三方库的体积,进而减小目标应用程序的体积。
综上所述,本实施例中,第二电子设备在目标应用程序中的代码被调用的情况下,将被调用代码对应的标识发送至服务器,服务器从第二电子设备发送的多个标识中确定有效标识,有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。第一电子设备确定目标应用程序包括的所有标识中,除有效标识之外的标识为无效标识,无效标识对应的代码为目标应用程序实际运行过程中未被调用的类或函数。根据目标应用程序的实际运行情况,确定目标应用程序在实际运行过程中未被调用的类或函数,相对于静态分析,可以确定更多的目标代码,进一步减小目标应用程序的体积,提高目标应用程序的运行效率。
图4是根据一示例性实施例示出的一种程序优化装置的结构框图,如图4所示,程序优化装置可以包括:获取模块401、获得模块402、确定模块403和删除模块404。
获取模块401被配置为获取目标应用程序。
获得模块402被配置为获得目标应用程序中的所有无效标识;其中,无效标识包括目标应用程序中的所有标识中除所有有效标识之外的其他标识,有效标识为服务器根据接收到的多个标识信息分别包括的标识确定的,标识信息为第二电子设备在目标应用程序中的标识对应的代码被调用的情况下,向服务器发送的。
确定模块403被配置为从目标应用程序中确定每个无效标识分别对应的目标代码。
删除模块404被配置为删除每个无效标识分别对应的目标代码,得到删除目标代码后的目标应用程序。
可选的,获得模块402具体被配置为获得目标应用程序中的所有标识、以及服务器确定的所有有效标识,并根据所有有效标识和所有标识,获得所有无效标识;或者,获得服务器确定的所有无效标识。
可选的,目标应用程序为目标应用程序的源代码,或者对源代码进行编译之后,生成的中间代码。
在本申请实施例中,第二电子设备在目标应用程序中的代码被调用的情况下,将被调用代码对应的标识发送至服务器,服务器根据接收到的多个标识确定有效标识,有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。根据有效标识确定目标应用程序中的无效标识,无效标识对应的目标代码为目标应用程序实际运行过程中未被调用的类或函数。第一电子设备从目标应用程序中删除无效标识对应的目标代码,得到删除目标代码后的目标应用程序,实现对目标应用程序的优化。通过目标应用程序在运行过程中代码的调用情况,确定目标应用程序在实际运行过程中未被调用的类或函数,从目标应用程序中删除实际运行过程中未被调用的类或函数,减小目标应用程序的体积,实现对目标应用程序的优化,相对于静态分析,可以确定更多的目标代码,进一步减小目标应用程序的体积,提高目标应用程序的运行效率。
图5是根据一示例性实施例示出的另一种程序优化装置的结构框图,如图5所示,程序优化装置可以包括:接收模块501和第一确定模块502。
接收模块501被配置为接收多个第二电子设备分别发送的标识信息,其中,标识信息为第二电子设备在目标应用程序中的代码被调用的情况下,向服务器发送包括代码对应的标识的标识信息。
第一确定模块502被配置为根据接收的多个标识信息分别包括的标识,确定至少一个有效标识。
可选的,还可以以包括:第二确定模块和发送模块。
第二确定模块被配置为根据预先获取的目标应用程序中的所有标识和所有有效标识,确定所有无效标识。
发送模块被配置为向第一电子设备发送所有无效标识。
可选的,第一确定模块502具体被配置为统计多个标识信息中分别包括的标识中的目标标识的个数,其中,目标标识为多个标识信息分别包括的标识中的任意一个;若目标标识的个数大于等于预设阈值,则将目标标识作为有效标识。
图6是根据一示例性实施例示出的一种电子设备的结构框图,可以包括:
处理器601;
用于存储所述处理器601可执行指令的存储器602;
其中,所述处理器601被配置为执行图2或图3所示实施例中所述的方法。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行图2或图3所示实施例中所述的方法。
在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得所述电子设备能够执行图2或图3所示实施例中所述的方法。
图7是根据一示例性实施例示出的一种服务器的结构框图,可以包括:
处理器701;
用于存储所述处理器701可执行指令的存储器702;
其中,所述处理器701被配置为执行图3所示实施例中所述的方法。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行图3所示实施例中所述的方法。
在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在服务器上运行时,使得所述服务器能够执行图3所示实施例中所述的方法。
图8是根据一示例性实施例示出的又一种程序优化装置的结构框图,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口813,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理820来执行指令,以完成上述的音频数据处理方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口813为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述音频数据处理方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理820执行以完成上述音频数据处理方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (17)
1.一种程序优化方法,其特征在于,应用于第一电子设备,包括:
获取目标应用程序;
获得所述目标应用程序中的所有无效标识;其中,所述无效标识包括所述目标应用程序中的所有标识中除所有有效标识之外的其他标识,所述有效标识为服务器根据接收到的多个标识信息分别包括的标识确定的,所述标识信息为第二电子设备在所述目标应用程序中的所述标识对应的代码被调用的情况下,向所述服务器发送的被调用代码对应的标识;
从所述目标应用程序中确定每个所述无效标识分别对应的目标代码;
删除每个所述无效标识分别对应的目标代码,得到删除所述目标代码后的目标应用程序;
所述第一电子设备用于从所述服务器获取所述有效标识,并根据预先获取的所述目标应用程序中包括的所有标识,确定所述目标应用程序中的所有所述无效标识;
所述第二电子设备用于安装并运行所述目标应用程序,在所述目标应用程序中的代码被调用的情况下,向所述服务器发送被调用代码对应的标识;
所述服务器用于接收所述第二电子设备发送的所述标识信息,并根据每个所述标识信息包括的标识,确定至少一个所述有效标识;有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。
2.根据权利要求1所述的方法,其特征在于,所述获得所述目标应用程序中的所有无效标识,包括:
获得所述目标应用程序中的所有标识、以及所述服务器确定的所有有效标识,并根据所述所有有效标识和所述所有标识,获得所述所有无效标识;或者,
获得所述服务器确定的所述所有无效标识。
3.根据权利要求1所述的方法,其特征在于,所述目标应用程序为所述目标应用程序的源代码,或者对所述源代码进行编译之后,生成的中间代码。
4.一种程序优化方法,其特征在于,应用于服务器,包括:
接收多个第二电子设备分别发送的标识信息,其中,所述标识信息为所述第二电子设备在目标应用程序中的代码被调用的情况下,向服务器发送包括所述代码对应的标识的标识信息;
根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识;以使第一电子设备从所述服务器获取所述有效标识,并根据预先获取的所述目标应用程序中包括的所有标识,确定所述目标应用程序中的所有无效标识;
所述第一电子设备用于从所述服务器获取所述有效标识,并根据预先获取的所述目标应用程序中包括的所有标识,确定所述目标应用程序中的所有所述无效标识;
所述第二电子设备用于安装并运行所述目标应用程序,在所述目标应用程序中的代码被调用的情况下,向所述服务器发送被调用代码对应的标识;
所述服务器用于接收所述第二电子设备发送的所述标识信息,并根据每个所述标识信息包括的标识,确定至少一个所述有效标识;有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。
5.根据权利要求4所述的方法,其特征在于,在所述确定至少一个有效标识之后,还包括:
根据预先获取的所述目标应用程序中的所有标识和所有所述有效标识,确定所有无效标识;
向第一电子设备发送所述所有无效标识。
6.根据权利要求4所述的方法,其特征在于,所述根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识,包括:
统计多个所述标识信息中分别包括的标识中的目标标识的个数,其中,所述目标标识为多个所述标识信息分别包括的标识中的任意一个;
若所述目标标识的个数大于等于预设阈值,则将所述目标标识作为所述有效标识。
7.一种程序优化装置,其特征在于,设置于第一电子设备,包括:
获取模块,被配置为获取目标应用程序;
获得模块,被配置为获得所述目标应用程序中的所有无效标识;其中,所述无效标识包括所述目标应用程序中的所有标识中除所有有效标识之外的其他标识,所述有效标识为服务器根据接收到的多个标识信息分别包括的标识确定的,所述标识信息为第二电子设备在所述目标应用程序中的所述标识对应的代码被调用的情况下,向所述服务器发送的被调用代码对应的标识;
确定模块,被配置为从所述目标应用程序中确定每个所述无效标识分别对应的目标代码;
删除模块,被配置为删除每个所述无效标识分别对应的目标代码,得到删除所述目标代码后的目标应用程序,在所述目标应用程序中的代码被调用的情况下,向所述服务器发送被调用代码对应的标识;
所述第一电子设备用于从所述服务器获取所述有效标识,并根据预先获取的所述目标应用程序中包括的所有标识,确定所述目标应用程序中的所有所述无效标识;
所述第二电子设备用于安装并运行所述目标应用程序;
所述服务器用于接收所述第二电子设备发送的所述标识信息,并根据每个所述标识信息包括的标识,确定至少一个所述有效标识;有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。
8.根据权利要求7所述的装置,其特征在于,所述获得模块具体被配置为获得所述目标应用程序中的所有标识、以及所述服务器确定的所有有效标识,并根据所述所有有效标识和所述所有标识,获得所述所有无效标识;或者,获得所述服务器确定的所述所有无效标识。
9.根据权利要求7所述的装置,其特征在于,所述目标应用程序为所述目标应用程序的源代码,或者对所述源代码进行编译之后,生成的中间代码。
10.一种程序优化装置,其特征在于,设置于服务器,包括:
接收模块,被配置为接收多个第二电子设备分别发送的标识信息,其中,所述标识信息为所述第二电子设备在目标应用程序中的代码被调用的情况下,向服务器发送包括所述代码对应的标识的标识信息;
第一确定模块,被配置为根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识,以使第一电子设备从所述服务器获取所述有效标识,并根据预先获取的所述目标应用程序中包括的所有标识,确定所述目标应用程序中的所有无效标识;
所述第一电子设备用于从所述服务器获取所述有效标识,并根据预先获取的所述目标应用程序中包括的所有标识,确定所述目标应用程序中的所有所述无效标识;
所述第二电子设备用于安装并运行所述目标应用程序,在所述目标应用程序中的代码被调用的情况下,向所述服务器发送被调用代码对应的标识;
所述服务器用于接收所述第二电子设备发送的所述标识信息,并根据每个所述标识信息包括的标识,确定至少一个所述有效标识;有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。
11.根据权利要求10所述的装置,其特征在于,还包括:
第二确定模块,被配置为根据预先获取的所述目标应用程序中的所有标识和所有所述有效标识,确定所有无效标识;
发送模块,被配置为向第一电子设备发送所述所有无效标识。
12.根据权利要求10所述的装置,其特征在于,所述第一确定模块具体被配置为统计多个所述标识信息中分别包括的标识中的目标标识的个数,其中,所述目标标识为多个所述标识信息分别包括的标识中的任意一个;若所述目标标识的个数大于等于预设阈值,则将所述目标标识作为所述有效标识。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至3中任一项所述的程序优化方法。
14.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至3中任一项所述的程序优化方法。
15.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求4至6中任一项所述的程序优化方法。
16.一种非临时性计算机可读存储介质,其特征在于,当所述存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如权利要求4至6中任一项所述的程序优化方法。
17.一种程序优化系统,其特征在于,包括第一电子设备、第二电子设备和服务器;
所述第二电子设备用于在目标应用程序中的代码被调用的情况下,向服务器发送包括代码对应的标识的标识信息;
所述服务器用于接收多个所述第二电子设备分别发送的所述标识信息;
所述服务器还用于根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识;
所述第一电子设备用于获取所述目标应用程序;
所述第一电子设备还用于获得所述目标应用程序中的所有无效标识;
所述第一电子设备还用于从所述目标应用程序中确定每个所述无效标识分别对应的目标代码;
所述第一电子设备还用于删除每个所述无效标识分别对应的目标代码,得到删除目标代码后的目标应用程序;
所述第一电子设备还用于从所述服务器获取所述有效标识,并根据预先获取的所述目标应用程序中包括的所有标识,确定所述目标应用程序中的所有所述无效标识;
所述第二电子设备用于安装并运行所述目标应用程序,在所述目标应用程序中的代码被调用的情况下,向所述服务器发送被调用代码对应的标识;
所述服务器用于接收所述第二电子设备发送的所述标识信息,并根据每个所述标识信息包括的标识,确定至少一个所述有效标识;有效标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010239629.7A CN111580824B (zh) | 2020-03-30 | 2020-03-30 | 程序优化方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010239629.7A CN111580824B (zh) | 2020-03-30 | 2020-03-30 | 程序优化方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580824A CN111580824A (zh) | 2020-08-25 |
CN111580824B true CN111580824B (zh) | 2024-05-07 |
Family
ID=72122467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010239629.7A Active CN111580824B (zh) | 2020-03-30 | 2020-03-30 | 程序优化方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580824B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463176A (zh) * | 2020-12-03 | 2021-03-09 | 深圳市欢太科技有限公司 | 应用程序安装包处理方法、装置、电子设备及存储介质 |
CN113050948B (zh) * | 2021-03-22 | 2022-07-19 | 厦门亿联网络技术股份有限公司 | 动态库优化方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569799A (zh) * | 2016-10-17 | 2017-04-19 | 搜游网络科技(北京)有限公司 | 程序处理方法及其设备 |
CN106598828A (zh) * | 2015-10-14 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种源代码中的无效类确定方法及装置 |
CN108132790A (zh) * | 2017-12-22 | 2018-06-08 | 广州酷狗计算机科技有限公司 | 检测无用代码的方法、装置及计算机存储介质 |
CN109558145A (zh) * | 2017-09-26 | 2019-04-02 | 北京金山安全软件有限公司 | 一种面向安卓应用的安装包体积优化方法及装置 |
CN109918076A (zh) * | 2017-12-13 | 2019-06-21 | 北京嘀嘀无限科技发展有限公司 | 代码文件处理方法、系统、计算机设备及可读存储介质 |
CN110389764A (zh) * | 2019-06-19 | 2019-10-29 | 平安普惠企业管理有限公司 | 无用代码清理方法、设备、存储介质及装置 |
CN110716804A (zh) * | 2019-09-02 | 2020-01-21 | 平安普惠企业管理有限公司 | 无用资源的自动删除方法、装置、存储介质及电子设备 |
CN110780882A (zh) * | 2019-11-08 | 2020-02-11 | 网易(杭州)网络有限公司 | 代码文件的处理方法及装置、系统、电子设备、存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7353503B2 (en) * | 2002-12-27 | 2008-04-01 | Sun Microsystems, Inc. | Efficient dead code elimination |
US20150033339A1 (en) * | 2013-07-29 | 2015-01-29 | Crowdstrike, Inc. | Irrelevant Code Identification |
-
2020
- 2020-03-30 CN CN202010239629.7A patent/CN111580824B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598828A (zh) * | 2015-10-14 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种源代码中的无效类确定方法及装置 |
CN106569799A (zh) * | 2016-10-17 | 2017-04-19 | 搜游网络科技(北京)有限公司 | 程序处理方法及其设备 |
CN109558145A (zh) * | 2017-09-26 | 2019-04-02 | 北京金山安全软件有限公司 | 一种面向安卓应用的安装包体积优化方法及装置 |
CN109918076A (zh) * | 2017-12-13 | 2019-06-21 | 北京嘀嘀无限科技发展有限公司 | 代码文件处理方法、系统、计算机设备及可读存储介质 |
CN108132790A (zh) * | 2017-12-22 | 2018-06-08 | 广州酷狗计算机科技有限公司 | 检测无用代码的方法、装置及计算机存储介质 |
CN110389764A (zh) * | 2019-06-19 | 2019-10-29 | 平安普惠企业管理有限公司 | 无用代码清理方法、设备、存储介质及装置 |
CN110716804A (zh) * | 2019-09-02 | 2020-01-21 | 平安普惠企业管理有限公司 | 无用资源的自动删除方法、装置、存储介质及电子设备 |
CN110780882A (zh) * | 2019-11-08 | 2020-02-11 | 网易(杭州)网络有限公司 | 代码文件的处理方法及装置、系统、电子设备、存储介质 |
Non-Patent Citations (1)
Title |
---|
针对程序代码语句级能耗优化方法;黄天明;钱德沛;栾钟治;;科研信息化技术与应用;20180120(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111580824A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112003893B (zh) | 一种资源下载方法和装置 | |
CN111240694B (zh) | 应用检测方法、应用检测装置及存储介质 | |
CN111580824B (zh) | 程序优化方法、装置及存储介质 | |
CN109117144B (zh) | 页面处理方法、装置、终端及存储介质 | |
CN111767058A (zh) | 程序编译方法及装置、电子设备和存储介质 | |
CN111538502A (zh) | 安装包的处理方法、装置、电子设备及存储介质 | |
CN111913756B (zh) | 应用程序的优化方法、装置、系统、电子设备及存储介质 | |
CN110221813B (zh) | 应用的数据连接建立方法、装置、存储介质和电子设备 | |
CN112256563A (zh) | 安卓应用稳定性测试方法、装置、电子设备及存储介质 | |
CN112860625B (zh) | 数据获取方法、数据存储方法、装置、设备及存储介质 | |
CN112631695A (zh) | 一种数据校验方法、装置、电子设备及存储介质 | |
CN111597106A (zh) | 一种埋点管理方法及装置 | |
CN107526683B (zh) | 应用程序功能冗余度的检测方法、装置及存储介质 | |
CN107257384B (zh) | 服务状态监控方法及装置 | |
CN113934452B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111104297B (zh) | 多进程数据打点方法、装置、电子设备及存储介质 | |
CN111767249B (zh) | 确定函数自身运行时间的方法及装置 | |
CN110995767B (zh) | 一种请求处理方法及装置 | |
CN112182027B (zh) | 信息查询方法、装置、电子设备及存储介质 | |
CN112506628B (zh) | 代理程序的管理方法、装置、计算机设备及存储介质 | |
CN110659081B (zh) | 用于程序对象的文件处理方法、装置及电子设备 | |
CN109947640B (zh) | 基于回归测试的核心功能覆盖度统计方法及装置 | |
CN113590128A (zh) | 一种中间文件的获取方法、装置、电子设备及存储介质 | |
CN115390906A (zh) | 工程打包方法、装置、设备及存储介质 | |
CN114756319A (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 |