应用程序运行方法、装置、设备及存储介质制造方法及图纸

技术编号:38928318 阅读:20 留言:0更新日期:2023-09-25 09:34
本申请公开了一种应用程序运行方法、装置、设备及存储介质,可以应用于云技术、人工智能、智慧交通、车联网等各种场景,方法包括:获取目标标识信息对应的至少两个版本的应用程序;根据每个版本的应用程序对应的抽象语法树,确定每个应用程序对应的类节点集;根据每个类节点对应的子树以及每个子树中各个节点所引用的节点,确定各个应用程序的相同类节点以及每个应用程序的区别类节点;根据相同类节点对应的代码以及每个应用程序的区别类节点对应的代码,确定目标代码文件;向终端发送目标代码文件,以使终端基于目标代码文件运行任一版本的应用程序。本申请缩小了目标代码文件的体积,降低了其占用的内存,从而提高了终端的运行稳定性。的运行稳定性。的运行稳定性。

【技术实现步骤摘要】
应用程序运行方法、装置、设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种应用程序运行方法、装置、设备及存储介质。

技术介绍

[0002]当前游戏视频直播发展方兴未艾,其中最热门的,当属具备电竞属性的游戏举办的各类赛事。越来越多的玩家通过相关的官方赛事或视频直播平台直播自己的游戏进程,也有越来越多的游戏运营会在自己游戏客户端内嵌视频直播的功能;而内嵌视频直播模块通常会有多个版本。相关技术在对多个版本的模块进行编译出包时,不做差异化,获取每个版本的全部类对应的代码集,而多个版本的代码集对应的体积较大,占据的内存较大,从而会影响设备的运行稳定性。
[0003]因此,有必要提供一种应用程序运行方法、装置、设备及存储介质,降低了目标代码文件占用的内存,从而提高了终端的运行稳定性。

技术实现思路

[0004]本申请提供了一种应用程序运行方法、装置、设备及存储介质,可以降低目标代码文件占用的内存,从而提高终端的运行稳定性。
[0005]一方面,本申请提供了一种应用程序运行方法,所述方法包括:
[0006]获取目标标识信息对应的至少两个版本的应用程序;
[0007]根据每个版本的应用程序对应的抽象语法树,确定每个应用程序对应的类节点集;
[0008]以每个类节点集中的类节点作为根节点,遍历每个根节点对应的抽象语法树,得到每个类节点对应的子树;
[0009]根据每个类节点对应的子树,确定各个应用程序的相同类节点以及每个应用程序的区别类节点;
[0010]根据所述相同类节点对应的代码以及每个应用程序的区别类节点对应的代码,确定目标代码文件;
[0011]向终端发送所述目标代码文件,以使所述终端基于所述目标代码文件运行任一版本的应用程序。
[0012]另一方面提供了一种应用程序运行装置,所述装置包括:
[0013]应用程序获取模块,用于获取目标标识信息对应的至少两个版本的应用程序;
[0014]类节点集确定模块,用于根据每个版本的应用程序对应的抽象语法树,确定每个应用程序对应的类节点集;
[0015]子树构建模块,用于以每个类节点集中的类节点作为根节点,遍历每个根节点对应的抽象语法树,得到每个类节点对应的子树;
[0016]区别类节点确定模块,用于根据每个类节点对应的子树,确定各个应用程序的相
同类节点以及每个应用程序的区别类节点;
[0017]目标代码文件确定模块,用于根据所述相同类节点对应的代码以及每个应用程序的区别类节点对应的代码,确定目标代码文件;
[0018]目标代码文件发送模块,用于向终端发送所述目标代码文件,以使所述终端基于所述目标代码文件运行任一版本的应用程序。
[0019]另一方面提供了一种应用程序运行设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上所述的应用程序运行方法。
[0020]另一方面提供了一种计算机存储介质,所述计算机存储介质存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如上所述的应用程序运行方法。
[0021]另一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行以实现如上所述的应用程序运行方法。
[0022]本申请提供的应用程序运行方法、装置、设备及存储介质,具有如下技术效果:
[0023]本申请通过获取目标标识信息对应的至少两个版本的应用程序;根据每个版本的应用程序对应的抽象语法树,确定每个应用程序对应的类节点集;以每个类节点集中的类节点作为根节点,遍历每个根节点对应的抽象语法树,得到每个类节点对应的子树;根据每个类节点对应的子树,确定各个应用程序的相同类节点以及每个应用程序的区别类节点;根据所述相同类节点对应的代码以及每个应用程序的区别类节点对应的代码,确定目标代码文件;向终端发送所述目标代码文件,以使所述终端基于所述目标代码文件运行任一版本的应用程序。本申请将不同版本的应用程序中代码按照相同类节点和区别类节点分成两部分,在构建目标代码文件时,仅使用一份相同类节点对应的代码,再结合各个应用程序的区别类代码形成目标代码文件,从而大大缩小了目标代码文件的体积,降低了其占用的内存,从而提高了终端的运行稳定性。
附图说明
[0024]为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0025]图1是本申请实施例提供的一种应用程序运行系统的示意图;
[0026]图2是本申请实施例提供的一种应用程序运行方法的流程示意图;
[0027]图3是本申请实施例提供的一种确定各个应用程序的相同类节点的方法的流程示意图;
[0028]图4是本申请实施例提供的一种构建每个类节点对应的关联节点集的方法的流程示意图;
[0029]图5是本申请实施例提供的一种确定每个应用程序的区别类节点的方法的流程示
意图一;
[0030]图6是本申请实施例提供的一种确定每个应用程序的区别类节点的方法的流程示意图二;
[0031]图7是本申请实施例提供的确定每个应用程序对应的初始差异类节点以及回溯差异类节点的方法的流程示意图;
[0032]图8是本申请实施例提供的生成目标代码文件方法的流程示意图;
[0033]图9是本申请实施例提供的向所述终端发送所述待运行版本标识方法的流程示意图;
[0034]图10是本申请实施例提供的双版本化的名为TGATVViewController的类的标识示意图;
[0035]图11是本申请实施例提供的一种确定待运行版本标识的方法示意图;
[0036]图12是本申请实施例提供的一种应用程序的版本迭代策略示意图;
[0037]图13是本申请实施例提供的一种双版本应用程序中类节点数量示意图;
[0038]图14是本申请实施例提供的一种应用程序运行装置的结构示意图;
[0039]图15是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
[0040]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0041]本申请实施例提供一种应用程序运行方法、装置、设备和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序运行方法,其特征在于,所述方法包括:获取目标标识信息对应的至少两个版本的应用程序;根据每个版本的应用程序对应的抽象语法树,确定每个应用程序对应的类节点集;以每个类节点集中的类节点作为根节点,遍历每个根节点对应的抽象语法树,得到每个类节点对应的子树;根据每个类节点对应的子树,确定各个应用程序的相同类节点以及每个应用程序的区别类节点;根据所述相同类节点对应的代码以及每个应用程序的区别类节点对应的代码,确定目标代码文件;向终端发送所述目标代码文件,以使所述终端基于所述目标代码文件运行任一版本的应用程序。2.根据权利要求1所述的方法,其特征在于,所述根据每个类节点对应的子树,确定各个应用程序的相同类节点以及每个应用程序的区别类节点,包括:根据每个类节点对应的子树以及每个子树中各个节点所引用的节点,确定每个类节点对应的关联节点集;根据各个应用程序的同一标识的类节点对应的关联节点集,确定每个应用程序的区别类节点;根据任一应用程序对应的区别类节点以及类节点集,确定各个应用程序的相同类节点。3.根据权利要求2所述的方法,其特征在于,所述根据每个类节点对应的子树以及每个子树中各个节点所引用的节点,确定每个类节点对应的关联节点集,包括:将每个类节点对应的子树中节点作为每个类节点的第一关联节点;将每个类节点对应的子树中各个节点所引用的节点,作为每个类节点的第二关联节点;根据每个类节点对应的第一关联节点以及第二关联节点,构建每个类节点对应的关联节点集。4.根据权利要求2所述的方法,其特征在于,所述根据各个应用程序的同一标识的类节点对应的关联节点集,确定每个应用程序的区别类节点,包括:获取每个关联节点集中各个关联节点的属性信息;根据各个应用程序的同一标识的类节点对应的各个关联节点的属性信息,确定每个应用程序对应的第一差异节点;根据每个应用程序对应的第一差异节点,确定每个应用程序的区别类节点。5.根据权利要求4所述的方法,其特征在于,所述根据每个应用程序对应的第一差异节点,确定每个应用程序的区别类节点,包括:确定每个应用程序对应的目标类节点;任一应用程序对应的目标类节点为目标应用程序对应的类节点集中不存在的节点;所述目标应用程序为所述至少两个版本的应用程序中除所述任一应用程序之外的应用程序;根据每个应用程序对应的目标类节点以及每个目标类节点对应的关联节点集,确定每个应用程序对应的第二差异节点;
根据每个应用程序对应的第一差异节点以及第二差异节点,确定每个应用程序的区别类节点。6.根据权利要求5所述的方法,其特征在于,所述根据每个应用程序对应的第一差异节点以及第二差异节点,确定每个应用程序的区别类节点,包括:将每个应用程序对应的第一差异节点以及第二差异节点,确定为每个应用程序的初始差异节点;将每个应用程序的初始差异节点中的类节点,确定为每个应用程序的初始差异类节点;根据每个应用程序的初始差异节点在所述初始差异节点对应的关联节点集中进行回溯,确定每个应用程序的回溯差异类节点;所述每个应用程序的回溯差异类节点为,与每个应用程序的初始差异节点存在直接或间接引用关系的类节点;将每个应用程序对应的初始差异类节点以及回溯差异类节点作为每个应用程序的区别类节点。7.根据权利要求1

6任一项所述的方法,其特征在于,所述根据所述相同类节点对应的代码以及每个应用程序的区别类节点对应的代码,确定目标代码文件,包括...

【专利技术属性】
技术研发人员:陈建波
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1