一种应用程序更新系统、方法及装置与流程

文档序号:35677413发布日期:2023-10-08 09:48阅读:24来源:国知局
一种应用程序更新系统、方法及装置与流程

本发明涉及软件,特别是涉及一种应用程序更新系统、方法及装置。


背景技术:

1、电子设备经常有在运行中更新应用程序的需求,应用程序的更新可以解决应用程序故障,或是升级应用程序功能。但若对应用程序整体进行升级,则在应用程序升级的过程中,应用程序无法正常工作,进而会对电子设备的正常运行造成影响。为此现有技术中可以采用热修复的方式,在不影响电子设备正常运行的情况下,以补丁函数的形式为应用程序中包含的部分原函数进行更新,从而实现对应用程序的更新。

2、但若在调用应用程序中的原函数的线程正在执行的过程中,采用热修复的方式对该原函数进行更新,则会对正在执行该原函数的线程造成影响,从而导致运算错误、线程挂死等故障的发生。


技术实现思路

1、本发明实施例的目的在于提供一种应用程序更新系统、方法及装置,以在对应用程序进行更新的过程中避免故障的发生。具体技术方案如下:

2、第一方面,本发明实施例提供了一种应用程序更新系统,所述系统包括:处理器中运行的应用更新模块与并行运行的多个进程,所述应用更新模块包含:用于对目标应用程序中的原函数进行更新的补丁函数,以及所述原函数与所述补丁函数之间的对应关系;

3、所述应用更新模块,用于在启动对所述目标应用程序的更新后,向多个进程中的每一进程分别发送表示待进行应用程序更新的第一更新通知;

4、所述多个进程中的每一进程,用于在该进程运行至同步状态后,保持同步状态,并向所述应用更新模块发送同步通知,其中,所述同步通知表示:该进程处于同步状态,所述进程处于同步状态表示:该进程中包含的所有线程均处于未调用函数的拥塞状态;

5、所述应用更新模块,还用于在接收到所有进程发送的同步通知后,向多个进程中的每一进程分别发送第二更新通知,所述第二更新通知指示:多个进程中的每一进程分别对所述目标应用程序中进行更新;

6、所述多个进程中的每一进程,还用于基于所述对应关系,将该进程中各个线程对所述原函数的调用更新为对所述补丁函数的调用,以对所述目标应用程序进行更新。

7、第二方面,本发明实施例提供了一种应用程序更新方法,应用于处理器中运行的应用更新模块,所述应用更新模块包含:用于对目标应用程序中的原函数进行更新的补丁函数,以及所述原函数与所述补丁函数之间的对应关系,所述方法包括:

8、在启动对所述目标应用程序的更新后,向所述处理器中并行运行的多个进程中的每一进程分别发送表示待进行应用程序更新的第一更新通知,以使得每一进程在运行至同步状态后,且接收到所述第一更新通知的情况下,保持同步状态,并向所述应用更新模块发送同步通知,其中,所述同步通知表示:该进程处于同步状态,所述进程处于同步状态表示:该进程中包含的所有线程均处于未调用函数的拥塞状态;

9、在接收到所有进程发送的各个同步通知后,向多个进程中的每一进程分别发送第二更新通知,以使得每一进程基于所述对应关系,将该进程中各个线程对所述原函数的调用更新为对所述补丁函数的调用,以对所述目标应用程序进行更新。

10、第三方面,本发明实施例提供了一种应用程序更新方法,应用于处理器中并行运行的多个进程中的每一进程,所述方法包括:

11、在接收到应用更新模块发送的第一更新通知的情况下,在该进程运行至同步状态后,保持同步状态,其中,所述应用更新模块包含:用于对目标应用程序中的原函数进行更新的补丁函数,以及所述原函数与所述补丁函数之间的对应关系,所述第一更新通知为:表示待进行应用程序更新的通知;

12、向所述应用更新模块发送同步通知,以使得所述应用更新模块在接收到所有进程发送的同步通知后,向多个进程中的每一进程分别发送第二更新通知,其中,所述同步通知表示:该进程处于同步状态,所述进程处于同步状态表示:该进程中包含的所有线程均处于未调用函数的拥塞状态,所述第二更新通知指示:多个进程中的每一进程分别对所述目标应用程序进行更新;

13、基于所述对应关系,将该进程中各个线程对所述原函数的调用更新为对所述补丁函数的调用,以对所述目标应用程序进行更新。

14、第四方面,本发明实施例提供了一种应用程序更新装置,应用于处理器中运行的应用更新模块,所述应用更新模块包含:用于对目标应用程序中的原函数进行更新的补丁函数,以及所述原函数与所述补丁函数之间的对应关系,所述装置包括:

15、第一更新通知发送模块,用于在启动对所述目标应用程序的更新后,向所述处理器中并行运行的多个进程中的每一进程分别发送表示待进行应用程序更新的第一更新通知,以使得每一进程在运行至同步状态后,保持同步状态,并向所述应用更新模块发送同步通知,其中,所述同步通知表示:该进程处于同步状态,所述进程处于同步状态表示:该进程中包含的所有线程均处于未调用函数的拥塞状态;

16、第二更新通知发送模块,用于在接收到所有进程发送的各个同步通知后,向多个进程中的每一进程分别发送第二更新通知,以使得每一进程基于所述对应关系,将所述该进程中各个线程对所述原函数的调用更新为对所述补丁函数的调用,以对所述目标应用程序进行更新。

17、第五方面,本发明实施例提供了一种应用程序更新装置,应用于处理器中并行运行的每一进程,所述装置包括:

18、通知判断模块,用于在接收到应用更新模块发送的第一更新通知的情况下,在该进程运行至同步状态后,保持同步状态,其中,所述应用更新模块包含:用于对目标应用程序中的原函数进行更新的补丁函数,以及所述原函数与所述补丁函数之间的对应关系,所述第一更新通知为:表示待进行应用程序更新的通知;

19、同步通知发送模块,用于向所述应用更新模块发送同步通知,以使得所述应用更新模块在接收到所有进程发送的同步通知后,向多个进程中的每一进程分别发送第二更新通知,其中,所述同步通知表示:该进程处于同步状态,所述进程处于同步状态表示:该进程中包含的所有线程均处于未调用函数的拥塞状态,所述第二更新通知指示:多个进程中的每一进程分别对所述目标应用程序进行更新;

20、调用更新模块,用于基于所述对应关系,将该进程中各个线程对所述原函数的调用更新为对所述补丁函数的调用,以对所述目标应用程序进行更新。

21、第六方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第二方面或第三方面任一所述的方法步骤。

22、本发明实施例有益效果:

23、本发明实施例提供了一种应用程序更新系统,上述系统包括:处理器中运行的应用更新模块与并行运行的多个进程,应用更新模块包含:用于对目标应用程序中的原函数进行更新的补丁函数,以及原函数与补丁函数之间的对应关系。在应用更新模块启动对目标应用程序的更新后,先向多个进程中的每一进程分别发送第一更新通知,每一进程在接收到第一更新通知且运行至同步状态后,该进程所包含的线程不直接继续调用函数而是保持同步状态,并向应用更新模块发送同步通知,应用更新模块在接收到所有进程发送的同步通知之后再向多个进程中的每一进程分别发送第二更新通知,以指示多个进程中的每一进程基于上述对应关系将该进程中各个线程对原函数的调用更新为对补丁函数的调用,以实现对目标应用程序的更新。

24、由以上可见,在目标应用程序更新的过程中,应用更新模块先向各个进程发送第一更新通知,使得各个进程在运行至同步状态后保持同步状态,在应用更新模块确定各个进程均处于同步状态后再指示各个进程进行目标应用程序的更新。在进行目标应用程序的更新的过程中进程处于同步状态,也就是进程中包含的各个线程均未调用函数,也就不会调用被更新的原函数,此时对原函数进行更新不会对线程造成影响,也就不会发生故障。

25、并且本发明实施例中进程存在同步状态,而不会持续不间断地运行,在应用程序确定各个进程均处于同步状态时,便可以确定各个进程包含的各个线程均未调用函数,此时便可以指示各个进程进行目标应用程序的更新。因此,本发明实施例中应用更新模块可以利用各个进程的同步状态,控制各个进程运行至同步状态后暂时保持同步状态进行目标应用程序的更新。而应用更新模块不需要先分别持续监控各个进程中每一线程当前是否调用函数,也不需要持续监控各个进程中的每一线程当前调用的是哪些函数,再等待各个线程均未调用原函数后才控制各个进程进行目标应用程序的更新,因此本发明实施例能够简化目标应用程序更新的过程。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1