APP崩溃的修复方法及相关设备与流程

文档序号:18831419发布日期:2019-10-09 03:33阅读:1337来源:国知局
APP崩溃的修复方法及相关设备与流程

本申请涉及性能监控技术领域,尤其涉及一种app崩溃的修复方法及相关设备。



背景技术:

app,即手机软件,主要是指安装在智能手机上的软件,完善原始系统的不足与个性化,使手机完善其功能,为用户提供更丰富的使用体验的主要手段。手机软件的运行需要有相应的手机系统,目前主要的手机系统包括苹果公司的ios系统和谷歌公司的android(安卓)系统。

app在启动和运行过程中,不可避免的会由于各种原因发生崩溃,一旦发生崩溃,人们将无法继续使用该app,给用户的工作和生活带来诸多不便。因此,app崩溃后的自我修复能力对于app而言也是一个非常重要的因素。

目前,对于app崩溃的问题,通常是发布紧急版本修复,用户需要重新下载新版本包才能正常访问app。对于ios系统,发布新版本均需要经过苹果商店的审核才能重新上线,由于审核周期长,导致耗费很多时间,又影响用户的体验。



技术实现要素:

有鉴于此,有必要针对现有技术中对于app启动和运行崩溃的问题,通常发布紧急版本修复,需要重新下载新版本包才能正常访问app的问题,提供一种app崩溃的修复方法及相关设备。

一种app崩溃的修复方法,包括:

接收用户发送的app运行请求,根据所述app运行请求连接到与所述app运行请求对应的服务器;

向所述服务器发送所述app运行请求,接收所述服务器返回的运行参数,根据所述运行参数,运行所述app;

对所述app的运行情况进行监控,根据预设的每一事件的断点的执行情况,判断所述app是否发生崩溃;

若所述app发生崩溃,将没有正常执行的所述断点和所述断点对应的事件记录下来,在所述app下次启动或运行时,不执行使所述app发生崩溃的所述断点对应的事件,以使app正常运行;

根据记录的没有正常执行的所述断点和所述事件的数量,计算所述app运行的异常率,计算公式为:

上式中,s为app运行的异常率,m为非正常执行的断点的数量,p为所有预设的断点的数量,n为非正常执行的事件的数量,t为所有事件的数量。

在其中一个可能的实施例中,所述接收用户发送的app运行请求,根据所述app运行请求连接到与所述app运行请求对应的服务器,包括:

接收用户发送的所述app运行请求,读取所述app运行请求中的特征字符,根据所述特征字符,获取所述app运行请求对应的网页源码;

查询服务器的网页源码,若所述服务器的网页源码与所述app运行请求对应的网页源码一致,则连接到所述服务器。

在其中一个可能的实施例中,所述对所述app的运行情况进行监控,根据预设的每一事件的断点的执行情况,判断所述app是否发生崩溃,包括:

若每一所述事件的每一断点都正常执行,则所述app运行时所触发的每一所述事件都正常执行,记录为所述app未发生崩溃;

若任一所述事件的任一断点没有正常执行,则没有正常执行的所述断点对应的所述事件没有正常执行,记录为所述app发生崩溃。

在其中一个可能的实施例中,所述若任一所述事件的任一断点没有正常执行,则没有正常执行的所述断点对应的所述事件没有正常执行,记录为所述app发生崩溃之后,还包括:

若任一所述事件中任一断点没有正常执行,标记没有正常执行的所述断点;

根据标记符号定位到没有正常执行的所述断点的位置,根据没有正常执行的所述断点的位置确定所述app发生崩溃的位置。

在其中一个可能的实施例中,所述根据记录的没有正常执行的所述断点和所述事件的数量,计算所述app运行的异常率之后,还包括:

将所述异常率与预设的异常率阈值进行比较;

若所述异常率不大于所述异常率阈值,则对所述app不进行版本的更新;

若所述异常率大于所述异常率阈值,则分析异常原因,对异常进行修复后对所述app进行版本的更新。

在其中一个可能的实施例中,所述接收用户发送的所述app运行请求,读取所述app运行请求中的特征字符,根据所述特征字符,获取所述app运行请求对应的网页源码,包括:

当接收到用户发送的所述app运行请求,读取所述app运行请求中的域名信息,从所述域名信息中提取ip地址,对所述ip地址进行解析得到所述特征字符;

根据预设的所述特征字符与所述网页源码的对应关系,获取所述app运行请求对应的网页源码。

一种app崩溃的修复装置,包括如下模块:

接收模块,设置为接收用户发送的app运行请求,根据所述app运行请求连接到与所述app运行请求对应的服务器;

运行模块,设置为向所述服务器发送所述app运行请求,接收所述服务器返回的运行参数,根据所述运行参数,运行所述app;

监控模块,设置为对所述app的运行情况进行监控,根据预设的每一事件的断点的执行情况,判断所述app是否发生崩溃;

崩溃处理模块,设置为若所述app发生崩溃,将没有正常执行的所述断点和所述断点对应的事件记录下来,在所述app下次启动或运行时,不执行使所述app发生崩溃的所述断点对应的事件,以使app正常运行;

计算模块,设置为根据记录的没有正常执行的所述断点和所述事件的数量,计算所述app运行的异常率。

在其中一个可能的实施例中,所述监控模块还用于:

若每一所述事件的每一断点都正常执行,则所述app运行时所触发的每一所述事件都正常执行,记录为所述app未发生崩溃;

若任一所述事件的任一断点没有正常执行,则没有正常执行的所述断点对应的所述事件没有正常执行,记录为所述app发生崩溃。

基于相同的构思,本申请提出了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被一个或多个所述处理器执行时,使得一个或多个所述处理器执行上述app崩溃的修复方法的步骤。

基于相同的构思,本申请提出了一种存储介质,所述存储介质可被处理器读写,所述存储介质存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个所述处理器执行上述app崩溃的修复方法的步骤。

与现有技术相比,本申请中,根据预设的每一事件的断点的执行情况,判断app是否发生崩溃和发生崩溃的位置,若崩溃,则在app下次启动或运行时,不执行使app发生崩溃的断点所对应的事件,保证app正常运行,达到不发布新版本即可解决app启动或运行崩溃的问题,避免耗费较长时间,提升了用户的使用体验,且能定位app发生崩溃的位置;根据未正常执行的断点和事件的数量,计算app的异常率,对异常率较大的,选择发布新版本,提升了app版本的健壮性和兼容性,对异常率较小的,则不发布新版本,综合提高了工作效率。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

图1为本申请实施例中的一种app崩溃的修复方法的整体流程图;

图2为本申请实施例中的一种app崩溃的修复方法中的连接服务器过程的示意图;

图3为本申请实施例中的一种app崩溃的修复方法中的判断app崩溃过程的示意图;

图4为本申请实施例中的一种app崩溃的修复装置的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

图1为本申请实施例中的一种app崩溃的修复方法的整体流程图,如图1所示,一种app崩溃的修复方法,包括:

步骤s1,接收用户发送的app运行请求,根据所述app运行请求连接到与所述app运行请求对应的服务器。

本步骤执行时,接收用户发送的所述app运行请求,当接收到用户发送的所述app运行请求后,开始读取所述app运行请求中的特征字符,根据所述特征字符,获取所述app运行请求对应的网页源码;任一选取一台服务器,查询该服务器的网页源码,若该服务器的网页源码与所述app运行请求对应的网页源码一致,则连接到该服务器,若该服务器的网页源码与所述app运行请求对应的网页源码不一致,则查询下一台服务器的网页源码,直至查询到与所述app运行请求对应的网页源码一致的服务器。

其中,网页源码是指在网页制作时所使用的原始程序代码,一般网页源码保存在服务器中和用户发送的app运行请求中,特征字符一般是指网页源码代码的最后三位,这个特征字符与网络源码的前三位字符具有一致性对应关系。

步骤s2,向所述服务器发送所述app运行请求,接收所述服务器返回的运行参数,根据所述运行参数,运行所述app。

本步骤执行时,当连接到对应的服务器后,向所述服务器发送所述app运行请求后接收所述服务器返回的运行参数,提取出所述运行参数中的关于访问页面的特征元素,对所述特征元素按照预设的页面信息展示规则进行调整后运行所述app。

步骤s3,对所述app的运行情况进行监控,根据预设的每一事件的断点的执行情况,判断所述app是否发生崩溃。

本步骤中,预设的每一事件的断点是指预先设置的app启动或运行时所触发的事件的执行步骤。假如一个事件有3个断点,则表明该事件有3个执行步骤,若要完成该事件必须3个断点均要执行完成,如果一个断点出现异常,则该事件也异常,事件发生异常就表明app发生崩溃了。若每一所述事件的每一断点都正常执行,则所述app运行时所触发的每一所述事件都正常执行,记录为所述app未发生崩溃;若任一所述事件的任一断点没有正常执行,则没有正常执行的所述断点对应的所述事件没有正常执行,记录为所述app发生崩溃。

步骤s4,若所述app发生崩溃,将没有正常执行的所述断点和所述断点对应的事件记录下来,在所述app下次启动或运行时,不执行使所述app发生崩溃的所述断点对应的事件,以使app正常运行。

本步骤中,若所述app发生崩溃,即某一断点或若干断点没有正常执行,此时,将没有正常执行的所述断点和该断点对应的事件记录在本地文件夹。当所述app下次启动或运行时,选择不执行使所述app发生崩溃的所述断点对应的事件,不执行发生异常的事件,则app也不会发生崩溃。

在一种较佳的实施例中,当某一断点或若干断点没有正常执行,在app下次启动或运行时,还可以使用预先设置好的替换事件代替发生异常的事件来执行,保证app正常运行的同事还可以达到该事件的目的,满足用户的使用目的。

步骤s5,根据记录的没有正常执行的所述断点和所述事件的数量,计算所述app运行的异常率,计算公式为:

上式中,s为app运行的异常率,m为非正常执行的断点的数量,p为所有预设的断点的数量,n为非正常执行的事件的数量,t为所有事件的数量。

本实施例,根据预设的每一事件的断点的执行情况,判断app是否发生崩溃和发生崩溃的位置,若崩溃,则在app下次启动或运行时,不执行使app发生崩溃的断点所对应的事件,保证app正常运行,达到不发布新版本即可解决app启动或运行崩溃的问题,避免耗费较长时间,提升了用户的使用体验。

在一个实施例中,图2为本申请实施例中的一种app崩溃的修复方法中的连接服务器过程的示意图,如图2所示,所述步骤s1,接收用户发送的app运行请求,根据所述app运行请求连接到与所述app运行请求对应的服务器,包括:

步骤s101,接收用户发送的所述app运行请求,读取所述app运行请求中的特征字符,根据所述特征字符,获取所述app运行请求对应的网页源码。

本步骤执行时,当接收到用户发送的所述app运行请求,读取所述app运行请求中的域名信息,从所述域名信息中提取ip地址,对所述ip地址进行解析得到所述特征字符;根据预设的所述特征字符与所述网页源码的对应关系,获取所述app运行请求对应的网页源码。

步骤s102,查询服务器的网页源码,若所述服务器的网页源码与所述app运行请求对应的网页源码一致,则连接到所述服务器。

本步骤执行时,可以通过查询所述服务器的nginx层的访问记录,若所述nginx层中有用户的访问记录,则遍历所述访问记录获取所述服务器的网页源码,将所述服务器的网页源码与所述app运行请求对应的网页源码进行比较,若一致,则连接到该服务器;若所述nginx层中没有用户的访问记录,则获取所述nginx层保存的服务器的网页源码,将所述服务器的网页源码与所述app运行请求对应的网页源码进行比较,若一致,则连接到该服务器。

本实施例,根据预设的特征字符与网络源码的对应关系,获取app运行请求对应的网页源码,从而连接到对应的服务器,提高了app运行的效率。

在一个实施例中,图3为本申请实施例中的一种app崩溃的修复方法中的判断app崩溃过程的示意图,如图3所示,所述步骤s3,对所述app的运行情况进行监控,根据预设的每一事件的断点的执行情况,判断所述app是否发生崩溃,包括:

步骤s301,若每一所述事件的每一断点都正常执行,则所述app运行时所触发的每一所述事件都正常执行,记录为所述app未发生崩溃。

本步骤中,若某一事件的断点都正常执行了,则表明该事件正常执行了,若每一事件都正常执行了,则表明该app运行正常,未发生任何崩溃。具体的,判断断点是否正常执行,可以预先设置断点未正常执行时发送异常提醒。

步骤s302,若任一所述事件的任一断点没有正常执行,则没有正常执行的所述断点对应的所述事件没有正常执行,记录为所述app发生崩溃。

本步骤中,某一事件的任一断点未正常执行,表明该事件的某一执行步骤发生异常,缺少某一步骤则该事件无法完整发生。比如该事件在第一个断点也即在执行第一步时就发生了异常,则该事件无法跳转到第二个断点继续执行,则该事件必然无法完成,也即发生异常,那么app就发生崩溃了。

本实施例,根据预设的每一事件的断点的执行情况,判断app是否发生崩溃和发生崩溃的位置,提高了工作效率,同时保证了app的健康运行,异常问题的反馈响应及时、迅速,且定位清晰。

在一个实施例中,所述步骤s302,若任一所述事件的任一断点没有正常执行,则没有正常执行的所述断点对应的所述事件没有正常执行,记录为所述app发生崩溃之后,还包括:

若任一所述事件中任一断点没有正常执行,标记没有正常执行的所述断点;

本步骤执行时,当任一所述事件中的任一断点没有正常执行,会收到异常提醒,在收到异常提醒后,对该没有正常执行的断点进行标记,标记方式可以为使用醒目的颜色进行标记,比如红色。

根据标记符号定位到没有正常执行的所述断点的位置,根据没有正常执行的所述断点的位置确定所述app发生崩溃的位置。

本步骤中,根据标记符合可以定位并找到发生异常的所述断点的位置,根据该发生异常的断点的位置可以确定所述app发生崩溃的位置,比如,若发生异常的断点为某一事件的第二个断点,则所述app发生崩溃的位置为该事件的第二个断点与第三个断点之间。

本实施例,通过对发生异常的断点进行标记从而定位app发生崩溃的位置,使得定位崩溃的位置更加精准。

在一个实施例中,所述步骤s5,根据没有正常执行的所述断点和所述事件的数量,计算所述app运行的异常率之后,还包括:

将所述异常率与预设的异常率阈值进行比较;

本步骤中,预设的所述异常率阈值是根据历史异常数据预先设置的,所述异常率阈值会在实际操作中不断地调整和优化。将计算获得的所述app运行的异常率与所述异常率阈值进行比较,可以判断所述app运行的异常率是比较严重还是可以忽略不计。

若所述异常率不大于所述异常率阈值,则对所述app不进行版本的更新;

本步骤中,若app的异常率不大于所述异常率阈值,表明该异常对app的使用影响不大,对用户的使用感受影响也不大,处于可以接受的范围内,所以选择不更新该app的版本,只是通过不执行使该app发生崩溃的所述断点对应的事件,以使app正常运行。

若所述异常率大于所述异常率阈值,则分析异常原因,对异常进行修复后对所述app进行版本的更新。

本步骤中,若app的异常率大于所述异常率阈值,表明该app的出现异常的情况过大,对app的使用影响也很大,进而让用户的使用感受影响也大大降低,因此,分析异常原因,对异常进行修复后对所述app进行版本的更新。

本实施例,计算app的异常率,对异常率较小的,选择不发布新版本,对异常率较大的,则发布新版本,选择比较灵活,避免当异常率较小时发布新版本耗费时间,影响用户体验。

在一个实施例中,所述步骤s101,接收用户发送的所述app运行请求,读取所述app运行请求中的特征字符,根据所述特征字符,获取所述app运行请求对应的网页源码,包括:

当接收到用户发送的所述app运行请求,读取所述app运行请求中的域名信息,从所述域名信息中提取ip地址,对所述ip地址进行解析得到所述特征字符;

具体的,由于域名有时是会发生变化的,而ip地址也可能采用动态ip地址,所以要将ip地址进行解析得到所述特征字符。

根据预设的所述特征字符与所述网页源码的对应关系,获取所述app运行请求对应的网页源码。

具体的,网页源码是指在网页制作时所使用的原始程序代码,一般网页源码保存在服务器中和用户发送的app运行请求中,特征字符一般是指网页源码代码的最后三位,该特征字符与网络源码的前三位字符具有一致性对应关系。

在一个实施例中,提出一种app崩溃的修复装置,如图4所示,包括接收模块、运行模块、监控模块、崩溃处理模块、计算模块,具体的:

接收模块,设置为接收用户发送的app运行请求,根据所述app运行请求连接到与所述app运行请求对应的服务器;

运行模块,设置为向所述服务器发送所述app运行请求,接收所述服务器返回的运行参数,根据所述运行参数,运行所述app;

监控模块,设置为对所述app的运行情况进行监控,根据预设的每一事件的断点的执行情况,判断所述app是否发生崩溃;

崩溃处理模块,设置为若所述app发生崩溃,将没有正常执行的所述断点和所述断点对应的事件记录下来,在所述app下次启动或运行时,不执行使所述app发生崩溃的所述断点对应的事件,以使app正常运行;

计算模块,设置为根据记录的没有正常执行的所述断点和所述事件的数量,计算所述app运行的异常率。

在一个实施例中,所述监控模块还用于:

若每一所述事件的每一断点都正常执行,则所述app运行时所触发的每一所述事件都正常执行,记录为所述app未发生崩溃;

若任一所述事件的任一断点没有正常执行,则没有正常执行的所述断点对应的所述事件没有正常执行,记录为所述app发生崩溃。

在一个实施例中,提出一种计算机设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行计算机可读指令时实现上述各实施例中所述的app崩溃的修复方法的步骤。

在一个实施例中,提出一种存储介质,所述存储介质可被处理器读写,所述存储介质存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中所述的app崩溃的修复方法的步骤。其中,所述存储介质可以为非易失性存储介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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