应用运行方法和装置的制造方法

文档序号:8430591阅读:324来源:国知局
应用运行方法和装置的制造方法
【技术领域】
[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]将动态链接库添加至创建的所述独立进程的内存地址空间,所述动态链接库包含有至少一个模块,每个所述模块包含有属于同一类型的应用的逻辑代码;
[0026]通过创建的所述独立进程根据包括所述应用的启动参数的启动命令行确定所述应用的类型;
[0027]通过创建的所述独立进程根据所述应用的类型加载所述动态链接库中相应的所述模块运行所述应用。
[0028]第二方面,提供了一种应用运行装置,用于包括至少两个应用的客户端中,所述装置包括:
[0029]信号接收模块,用于接收用于启动所述客户端中的一个应用的触发信号;
[0030]进程创建模块,用于根据所述触发信号创建所述应用对应的独立进程;
[0031]参数检测模块,用于通过创建的所述独立进程检测所述客户端中是否存在正在运行的应用的启动参数与所述应用的启动参数相同;
[0032]宿主运行模块,用于若检测结果为所述客户端中存在正在运行的应用的启动参数与所述应用的启动参数相同,则通过所述正在运行的应用所对应的宿主独立进程运行所述应用,且结束创建的所述独立进程。
[0033]在第二方面的第一种可能的实施方式中,所述装置还包括:
[0034]参数设置模块,用于设置所述客户端中崩溃率属于同一范围的不同应用具有相同的启动参数。
[0035]结合第二方面,在第二种可能的实施方式中,所述装置还包括:
[0036]进程运行模块,用于若检测结果为所述客户端中不存在正在运行的应用的启动参数与所述应用的启动参数相同,则通过创建的所述独立进程运行所述应用。
[0037]结合第二方面,在第三种可能的实施方式中,所述宿主运行模块,包括:命令行发送单元、命令行接收单元、类型判断单元和模块加载单元;
[0038]所述命令行发送单元,用于通过创建的所述独立进程将包括所述应用的启动参数的启动命令行发送给所述宿主独立进程;
[0039]所述命令行接收单元,用于通过所述宿主独立进程接收所述启动命令行;
[0040]所述类型判断单元,用于通过所述宿主独立进程根据所述启动命令行确定所述应用的类型;
[0041]所述模块加载单元,用于通过所述宿主独立进程根据所述应用的类型加载已添加至所述宿主独立进程自身的内存地址空间的动态链接库中相应的模块运行所述应用,所述动态链接库包含有至少一个所述模块,每个所述模块包含有属于同一类型的应用的逻辑代码。
[0042]结合第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述宿主运行模块,还包括:命令行存储单元、命令行检测单元和命令行读取单元;
[0043]所述命令行存储单元,用于通过所述宿主独立进程将所述应用的启动命令行存储至所述宿主独立进程自身的线程管理器中;
[0044]所述命令行检测单元,用于通过所述宿主独立进程每隔预定时间间隔检测所述线程管理器中是否存在未处理的所述应用的启动命令行;
[0045]所述命令行读取单元,用于若检测结果为存在所述未处理的所述应用的启动命令行,则通过所述宿主独立进程读取所述未处理的所述应用的启动命令行。
[0046]结合第二方面的第二种可能的实施方式,在第五种可能的实施方式中,所述进程运行模块,包括:动态库添加单元、类型确定单元和应用运行单元;
[0047]所述动态库添加单元,用于将动态链接库添加至创建的所述独立进程的内存地址空间,所述动态链接库包含有至少一个模块,每个所述模块包含有属于同一类型的应用的逻辑代码;
[0048]所述类型确定单元,用于通过创建的所述独立进程根据包括所述应用的启动参数的启动命令行确定所述应用的类型;
[0049]所述应用运行单元,用于通过创建的所述独立进程根据所述应用的类型加载所述动态链接库中相应的所述模块运行所述应用。
[0050]本发明实施例提供的技术方案带来的有益效果是:
[0051]通过接收到用于启动客户端中的一个应用的触发信号后,根据该触发信号创建应用对应的独立进程,通过创建的独立进程检测客户端中是否存在正在运行的应用的启动参数与该应用的启动参数相同;若检测结果为存在正在运行的应用的启动参数与该应用的启动参数相同,则通过正在运行的应用对应的宿主独立进程运行该应用,且结束创建的独立进程;解决了现有技术中因每个应用都以独立进程的形式运行,而导致系统开销巨大而且浪费系统资源的问题;达到了在不影响应用正常运行的前提下,减少系统中运行的独立进程的数量,从而减小系统开销和节约系统资源的效果。
【附图说明】
[0052]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0053]图1是本发明一个实施例提供的应用运行方法的方法流程图;
[0054]图2A是本发明另一实施例提供的应用运行方法的方法流程图;
[0055]图2B是本发明另一实施例提供的应用运行方法所涉及的步骤206的子步骤的方法流程图;
[0056]图3是本发明一个实施例提供的应用运行装置的结构方框图;
[0057]图4是本发明另一实施例提供的应用运行装置的结构方框图。
【具体实施方式】
[0058]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0059]发明人提供了一种应用运行机制,既不会因个别应用在运行过程中发生崩溃而导致整个客户端的崩溃,也不会因每个应用均以独立进程的形式运行而导致系统开销巨大且浪费系统资源。具体来讲,在一种
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1