logo好方法网

程序优化方法、装置及存储介质


技术摘要:
本申请实施例公开了一种程序优化方法、装置及存储介质,用于应用程序的优化。程序优化方法中,第二电子设备在目标应用程序中的代码被调用的情况下,将被调用代码对应的标识发送至服务器,服务器根据接收到的多个标识确定有效标识,根据有效标识确定目标应用程序中的无  全部
背景技术:
在应用程序开发过程中,需要对应用程序进行优化,删除应用程序中的无用代码, 以得到体积更小、运行效率更高的应用程序。 目前,主要通过静态分析技术对应用程序进行优化,在应用程序的开发过程中,对 应用程序进行静态分析,确定应用程序中未被其他代码调用的目标代码,删除目标代码,减 小应用程序的体积。 静态分析虽然可以确定部分目标代码,达到优化应用程序的目的,但是静态分析 只能根据应用程序中各代码之间的调用关系,确定少量的目标代码,无法根据应用程序的 实际运行情况,确定更多的目标代码,无法进一步减小应用程序的体积,提高应用程序的运 行效率。
技术实现要素:
本申请实施例提供了一种程序优化方法、装置、及存储介质,以解决无法根据应用 程序的实际运行情况,确定更多的目标代码,减小应用程序的体积的问题。 有鉴于此,本申请第一方面提供了一种程序优化方法,应用于第一电子设备,包 括: 获取目标应用程序; 获得所述目标应用程序中的所有无效标识;其中,所述无效标识包括所述目标应 用程序中的所有标识中除所有有效标识之外的其他标识,所述有效标识为所述服务器根据 接收到的多个标识信息分别包括的标识确定的,所述标识信息为第二电子设备在所述目标 应用程序中的所述标识对应的代码被调用的情况下,向所述服务器发送的; 从所述目标应用程序中确定每个所述无效标识分别对应的目标代码; 删除每个所述无效标识分别对应的目标代码,得到删除所述目标代码后的目标应 用程序。 可选的,所述获得所述目标应用程序中的所有无效标识,包括: 获得所述目标应用程序中的所有标识、以及所述服务器确定的所有有效标识,并 根据所述所有有效标识和所述所有标识,获得所述所有无效标识;或者,获得所述服务器确 定的所述所有无效标识。 可选的,所述目标应用程序为所述目标应用程序的源代码,或者对所述源代码进 行编译之后,生成的中间代码。 有鉴于此,本申请第二方面提供了另一种程序优化方法,应用于服务器,包括: 接收多个第二电子设备分别发送的标识信息,其中,所述标识信息为所述第二电 子设备在目标应用程序中的代码被调用的情况下,向服务器发送包括所述代码对应的标识 4 CN 111580824 A 说 明 书 2/13 页 的标识信息; 根据接收的多个所述标识信息分别包括的标识,确定至少一个有效标识。 可选的,在所述确定至少一个有效标识之后,还包括:根据预先获取的所述目标应 用程序中的所有标识和所有所述有效标识,确定所有无效标识;向第一电子设备发送所述 所有无效标识。 可选的,所述根据接收的多个所述标识信息分别包括的标识,确定至少一个有效 标识,包括: 统计多个所述标识信息中分别包括的标识中的目标标识的个数,其中,所述目标 标识为多个所述标识信息分别包括的标识中的任意一个; 若所述目标标识的个数大于等于预设阈值,则将所述目标标识作为所述有效标 识。 本申请实施例第三方面提供了一种程序优化装置,设置于第一电子设备,包括: 获取模块,被配置为获取目标应用程序; 获得模块,被配置为获得所述目标应用程序中的所有无效标识;其中,所述无效标 识包括所述目标应用程序中的所有标识中除所有有效标识之外的其他标识,所述有效标识 为所述服务器根据接收到的多个标识信息分别包括的标识确定的,所述标识信息为第二电 子设备在所述目标应用程序中的所述标识对应的代码被调用的情况下,向所述服务器发送 的; 确定模块,被配置为从所述目标应用程序中确定每个所述无效标识分别对应的目 标代码; 删除模块,被配置为删除每个所述无效标识分别对应的目标代码,得到删除所述 目标代码后的目标应用程序。 可选的,所述获得模块具体被配置为获得所述目标应用程序中的所有标识、以及 所述服务器确定的所有有效标识,并根据所述所有有效标识和所述所有标识,获得所述所 有无效标识;或者,获得所述服务器确定的所述所有无效标识。 可选的,所述目标应用程序为所述目标应用程序的源代码,或者对所述源代码进 行编译之后,生成的中间代码。 本申请实施例第四方面提供了另一种程序优化装置,设置于第一服务器,包括: 接收模块,被配置为接收多个第二电子设备分别发送的标识信息,其中,所述标识 信息为所述第二电子设备在目标应用程序中的代码被调用的情况下,向服务器发送包括所 述代码对应的标识的标识信息; 第一确定模块,被配置为根据接收的多个所述标识信息分别包括的标识,确定至 少一个有效标识。 可选的,还包括: 第二确定模块,被配置为根据预先获取的所述目标应用程序中的所有标识和所有 所述有效标识,确定所有无效标识; 发送模块,被配置为向第一电子设备发送所述所有无效标识。 可选的,所述第一确定模块具体被配置为统计多个所述标识信息中分别包括的标 识中的目标标识的个数,其中,所述目标标识为多个所述标识信息分别包括的标识中的任 5 CN 111580824 A 说 明 书 3/13 页 意一个;若所述目标标识的个数大于等于预设阈值,则将所述目标标识作为所述有效标识。 本申请实施例第五方面提供一种电子设备,包括: 处理器; 用于存储所述处理器可执行指令的存储器; 其中,所述处理器被配置为执行所述指令,以实现如本申请第一方面任一可选实 现方式中所述的程序优化方法。 本申请实施例第六方面提供一种非临时性计算机可读存储介质,当所述存储介质 中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如本申请第一方面任一 可选实现方式中所述的程序优化方法。 本申请实施例第七方面提供一种包含指令的计算机程序产品,当其在电子设备上 运行时,使得电子设备执行如本申请第一方面任一可选实现方式中所述的程序优化方法。 本申请实施例第八方面提供一种服务器,包括: 处理器; 用于存储所述处理器可执行指令的存储器; 其中,所述处理器被配置为执行所述指令,以实现如本申请第二方面任一可选实 现方式中所述的程序优化方法。 本申请实施例第九方面提供一种非临时性计算机可读存储介质,当所述存储介质 中的指令由服务器的处理器执行时,使得所述服务器能够执行如本申请第二方面任一可选 实现方式中所述的程序优化方法。 本申请实施例第十方面提供一种包含指令的计算机程序产品,当所述计算机程序 产品在服务器上运行时,使得所述服务器执行如如本申请第二方面任一可选实现方式中所 述的程序优化方法。 本申请实施例第十一方面提供一种程序优化系统,包括第一电子设备、第二电子 设备和服务器; 所述第二电子设备用于在目标应用程序中的代码被调用的情况下,向服务器发送 包括代码对应的标识的标识信息; 所述服务器用于接收多个所述第二电子设备分别发送的所述标识信息; 所述服务器还用于根据接收的多个所述标识信息分别包括的标识,确定至少一个 有效标识; 所述第一电子设备用于获取所述目标应用程序; 所述第一电子设备还用于获得所述目标应用程序中的所有无效标识; 所述第一电子设备还用于从所述目标应用程序中确定每个所述无效标识分别对 应的目标代码; 所述第一电子设备还用于删除每个所述无效标识分别对应的目标代码,得到删除 目标代码后的目标应用程序。 从以上技术方案可以看出,本申请实施例具有以下优点: 在本申请实施例中,第二电子设备在目标应用程序中的代码被调用的情况下,将 被调用代码对应的标识发送至服务器,服务器根据接收到的多个标识确定有效标识,有效 标识对应的代码为目标应用程序在实际运行过程中,被调用的类或函数。根据有效标识确 6 CN 111580824 A 说 明 书 4/13 页 定目标应用程序中的无效标识,无效标识对应的目标代码为目标应用程序实际运行过程中 未被调用的类或函数。第一电子设备从目标应用程序中删除无效标识对应的目标代码,得 到删除目标代码后的目标应用程序,实现对目标应用程序的优化。通过目标应用程序在运 行过程中代码的调用情况,确定目标应用程序在实际运行过程中未被调用的类或函数,从 目标应用程序中删除实际运行过程中未被调用的类或函数,减小目标应用程序的体积,实 现对目标应用程序的优化,相对于静态分析,可以确定更多的目标代码,进一步减小目标应 用程序的体积,提高目标应用程序的运行效率。 附图说明 为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施 例,还可以根据这些附图获得其它的附图。 图1是根据一示例性实施例示出的一种程序优化系统的结构图; 图2是根据一示例性实施例示出的一种程序优化方法的步骤流程图; 图3是根据一示例性实施例示出的另一种程序优化方法的步骤流程图; 图4是根据一示例性实施例示出的一种程序优化装置的结构框图; 图5是根据一示例性实施例示出的另一种程序优化装置的结构框图; 图6是根据一示例性实施例示出的一种电子设备的结构框图; 图7是根据一示例性实施例示出的一种服务器的结构框图; 图8是根据一示例性实施例示出的又一种程序优化装置的结构框图。
分享到:
收藏