应用程序的修复方法、装置、计算机设备以及存储介质制造方法及图纸

技术编号:33780562 阅读:63 留言:0更新日期:2022-06-12 14:34
本公开提供了一种应用程序的修复方法、装置、计算机设备以及存储介质,其中,该方法包括:检测针对所述Flutter应用中的目标功能的功能调用请求;基于检测到的所述功能调用请求在所述Flutter应用的本地文件中查找所述目标功能的目标字节码文件;在查找到所述目标功能的目标字节码文件的情况下,运行所述目标功能的目标字节码文件,以实现执行修复对应功能缺陷之后的目标功能。在本公开实施例中,在基于功能调用请求在Flutter应用的本地文件中查找到目标功能的目标字节码文件的情况下,就可以运行该字节码文件,以实现执行修复对应功能缺陷之后的目标功能,从而缩短了修复Flutter应用的功能缺陷的流程,提高了修复效率,进而提高了用户的使用体验。高了用户的使用体验。高了用户的使用体验。

【技术实现步骤摘要】
应用程序的修复方法、装置、计算机设备以及存储介质


[0001]本公开涉及计算机
,具体而言,涉及一种应用程序的修复方法、装置、计算机设备以及存储介质。

技术介绍

[0002]随着Flutter跨端技术的普及,基于该Flutter跨端技术开发的Flutter应用也越来越多,因此,针对Flutter应用的问题修复需求也越来越普遍。然而,在现有的针对Flutter应用的修复方案中,在针对该Flutter应用中的待修复功能进行代码修改得到补丁包后,再将该补丁包上传至应用商店,以使用户从应用商店下载该补丁包,从而完成该Flutter应用中的待修复功能的修复。因此,现有的修复方案整个流程较为冗长,修复效率较低。

技术实现思路

[0003]本公开实施例至少提供一种应用程序的修复方法、装置、计算机设备以及存储介质。
[0004]第一方面,本公开实施例提供了一种应用程序的修复方法,应用于Flutter应用,包括:
[0005]检测针对所述Flutter应用中的目标功能的功能调用请求;基于检测到的所述功能调用请求在所述Flutter应用的本地文件中查找所述目标功能的目标字节码文件;其中,所述目标字节码文件中包含用于修复所述目标功能的对应功能缺陷的字节码;在查找到所述目标功能的目标字节码文件的情况下,运行所述目标功能的目标字节码文件,以实现执行修复对应功能缺陷之后的目标功能。
[0006]一种可选的实施方式中,所述基于检测到的所述功能调用请求在所述Flutter应用的本地文件中查找所述目标功能的目标字节码文件,包括:
[0007]在所述功能调用请求中获取所述目标功能的功能标识;获取目标映射文件;其中,所述目标映射文件中包含所述Flutter应用的指定功能的功能标识和字节码标识之间的映射关系,所述字节码标识用于指示对应指定功能是否存在相应的字节码文件;在所述目标映射文件中查找与所述目标功能的功能标识相对应的目标映射数据,并在基于所述目标映射数据确定所述本地文件中存在所述目标功能的目标字节码文件的情况下,在所述本地文件的指定位置中查找所述目标功能的目标字节码文件。
[0008]一种可选的实施方式中,所述方法还包括:
[0009]在未查找到所述目标功能的目标字节码文件的情况下,获取预设时段内所述Flutter应用的历史下载记录;所述历史下载记录用于指示所述Flutter应用在预设时段内从服务器获取到的对应功能的字节码文件;在确定所述历史下载记录中包含所述目标功能的目标字节码文件的历史下载记录的情况下,向所述服务器发送获取请求;获取所述服务器基于所述获取请求返回的所述目标字节码文件,并运行所述目标字节码文件。
[0010]一种可选的实施方式中,所述方法还包括:
[0011]在未查找到所述目标功能的目标字节码文件的情况下,在所述本地文件查找所述目标功能的AOT编译文件,并运行所述AOT编译文件。
[0012]一种可选的实施方式中,所述基于检测到的所述功能调用请求在所述Flutter应用的本地文件中查找所述目标功能的目标字节码文件,包括:
[0013]在所述本地文件中查找到所述目标功能的多个版本的字节码文件的情况下,基于所述功能调用请求确定当前时刻所需要调用的目标功能的版本标识;在所述多个版本的字节码文件中确定与所述版本标识相匹配的字节码文件作为所述目标功能的目标字节码文件。
[0014]一种可选的实施方式中,所述方法还包括:
[0015]在检测对所述Flutter应用中的目标功能的功能调用请求之后,获取服务器发送的所述目标功能的目标字节码文件;将所述目标功能的目标字节码文件保存在所述本地文件的指定存储位置。
[0016]一种可选的实施方式中,所述将所述目标功能的目标字节码文件保存在所述本地文件的指定存储位置,包括:
[0017]在所述本地文件中查找所述目标功能的历史字节码文件;在查找到所述历史字节码文件的情况下,删除所述历史字节码文件,并将所述目标字节码文件保存在所述本地文件的指定存储位置。
[0018]一种可选的实施方式中,所述运行所述目标功能的目标字节码文件,以实现执行修复对应功能缺陷之后的目标功能,包括:
[0019]调用所述Flutter应用中的Dart虚拟机;将所述目标字节码文件加载至所述Dart虚拟机,以通过所述Dart虚拟机中的字节码解释器运行所述目标功能的目标字节码文件,以实现执行修复对应功能缺陷之后的目标功能。
[0020]第二方面,本公开实施例还提供一种应用程序的修复方法,应用于服务器,包括:
[0021]确定Flutter应用中待修复功能的目标修复代码;对所述目标修复代码进行编译,并基于所述编译过程中的目标中间编译产物生成所述待修复功能的目标字节码文件;向所述Flutter应用发送所述目标字节码文件,以使所述Flutter应用基于上述第一方面所述的方法运行所述目标字节码文件。
[0022]一种可选的实施方式中,所述方法还包括:
[0023]接收所述Flutter应用发送的获取请求,并确定所述获取请求所对应的待修复功能;获取所述待修复功能所对应的目标字节码文件,并将所述目标字节码文件传输至所述Flutter应用。
[0024]一种可选的实施方式中,所述获取所述待修复功能所对应的目标字节码文件,包括:
[0025]获取所述待修复功能所对应的各个版本的字节码文件;在所述各个版本的字节码文件中确定与所述获取请求相匹配的字节码文件作为所述目标字节码文件;其中,所述获取请求中携带所请求调用的待修复功能的版本标识。
[0026]第三方面,本公开实施例还提供一种应用程序的修复装置,应用于Flutter应用,包括:
[0027]检测单元,用于检测针对所述Flutter应用中的目标功能的功能调用请求;查找单元,用于基于检测到的所述功能调用请求在所述Flutter应用的本地文件中查找所述目标功能的目标字节码文件;其中,所述目标字节码文件中包含用于修复所述目标功能的对应功能缺陷的字节码;运行单元,用于在查找到所述目标功能的目标字节码文件的情况下,运行所述目标功能的目标字节码文件,以实现执行修复对应功能缺陷之后的目标功能。
[0028]第四方面,本公开实施例还提供一种应用程序的修复装置,应用于服务器,包括:
[0029]确定单元,用于确定Flutter应用中待修复功能的目标修复代码;编译单元,用于对所述目标修复代码进行编译,并基于所述编译过程中的目标中间编译产物生成所述待修复功能的目标字节码文件;发送单元,用于向所述Flutter应用发送所述目标字节码文件,以使所述Flutter应用基于上述权利要求第一方面所述的方法运行所述目标字节码文件。
[0030]第五方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序的修复方法,其特征在于,应用于Flutter应用,包括:检测针对所述Flutter应用中的目标功能的功能调用请求;基于检测到的所述功能调用请求在所述Flutter应用的本地文件中查找所述目标功能的目标字节码文件;其中,所述目标字节码文件中包含用于修复所述目标功能的对应功能缺陷的字节码;在查找到所述目标功能的目标字节码文件的情况下,运行所述目标功能的目标字节码文件,以实现执行修复对应功能缺陷之后的目标功能。2.根据权利要求1所述的方法,其特征在于,所述基于检测到的所述功能调用请求在所述Flutter应用的本地文件中查找所述目标功能的目标字节码文件,包括:在所述功能调用请求中获取所述目标功能的功能标识;获取目标映射文件;其中,所述目标映射文件中包含所述Flutter应用的指定功能的功能标识和字节码标识之间的映射关系,所述字节码标识用于指示对应指定功能是否存在相应的字节码文件;在所述目标映射文件中查找与所述目标功能的功能标识相对应的目标映射数据,并在基于所述目标映射数据确定所述本地文件中存在所述目标功能的目标字节码文件的情况下,在所述本地文件的指定位置中查找所述目标功能的目标字节码文件。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在未查找到所述目标功能的目标字节码文件的情况下,获取预设时段内所述Flutter应用的历史下载记录;所述历史下载记录用于指示所述Flutter应用在预设时段内从服务器获取到的对应功能的字节码文件;在确定所述历史下载记录中包含所述目标功能的目标字节码文件的历史下载记录的情况下,向所述服务器发送获取请求;获取所述服务器基于所述获取请求返回的所述目标字节码文件,并运行所述目标字节码文件。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:在未查找到所述目标功能的目标字节码文件的情况下,在所述本地文件查找所述目标功能的AOT编译文件,并运行所述AOT编译文件。5.根据权利要求1所述的方法,其特征在于,所述基于检测到的所述功能调用请求在所述Flutter应用的本地文件中查找所述目标功能的目标字节码文件,包括:在所述本地文件中查找到所述目标功能的多个版本的字节码文件的情况下,基于所述功能调用请求确定当前时刻所需要调用的目标功能的版本标识;在所述多个版本的字节码文件中确定与所述版本标识相匹配的字节码文件作为所述目标功能的目标字节码文件。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:在检测对所述Flutter应用中的目标功能的功能调用请求之后,获取服务器发送的所述目标功能的目标字节码文件;将所述目标功能的目标字节码文件保存在所述本地文件的指定存储位置。7.根据权利要求6所述的方法,其特征在于,所述将所述目标功能的目标字节码文件保存在所述本地文件的指定存储位置,包括:
在所述本地文件中查找所述目标功能的历史字节码文件;在查找到所述历史字节码文件的情况下,删除所述历史字节码文件,并将所述目标字节码文件保存在所述本地文件的指定存储位置。...

【专利技术属性】
技术研发人员:季涛
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:

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

1