CN111309606B - 页面异常处理方法、装置、计算机设备及存储介质 - Google Patents

页面异常处理方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111309606B
CN111309606B CN202010084361.4A CN202010084361A CN111309606B CN 111309606 B CN111309606 B CN 111309606B CN 202010084361 A CN202010084361 A CN 202010084361A CN 111309606 B CN111309606 B CN 111309606B
Authority
CN
China
Prior art keywords
exception
abnormal
component
page
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010084361.4A
Other languages
English (en)
Other versions
CN111309606A (zh
Inventor
丁海盛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202010084361.4A priority Critical patent/CN111309606B/zh
Publication of CN111309606A publication Critical patent/CN111309606A/zh
Application granted granted Critical
Publication of CN111309606B publication Critical patent/CN111309606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种页面异常处理方法、装置、计算机设备及存储介质。所述方法包括:通过异常整合组件收集原生应用程序生成的目标页面的异常信息,所述目标页面通过跨平台框架开发,所述异常整合组件通过所述跨平台框架开发;通过所述异常整合组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境;通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理。本发明实施例可以快速有效监控到跨平台框架开发的页面的异常情况。

Description

页面异常处理方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及网络领域,尤其涉及一种页面异常处理方法、装置、计算机设备及存储介质。
背景技术
随着人们对移动终端的使用越来越频繁,对应用程序的要求也越来越高。开发人员更好开发出应用程序的功能,通常会使用开发框架开发应用程序的页面开发。
开发框架开发的组件和操作系统中原生应用程序进行通信时,需要搭建通信机制实现,开发框架中通常没有配置统一的异常捕捉机制,从而原生应用程序无法监控到异常情况,由此,难以及时处理异常情况。
发明内容
本发明实施例提供一种页面异常处理方法、装置、计算机设备及存储介质,可以快速有效监控到跨平台框架开发的页面的异常情况。
第一方面,本发明实施例提供了一种页面异常处理方法,包括:
通过异常整合组件收集原生应用程序生成的目标页面的异常信息,所述目标页面通过跨平台框架开发,所述异常整合组件通过所述跨平台框架开发;
通过所述异常整合组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境;
通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理。
第二方面,本发明实施例还提供了一种页面异常处理装置,包括:
页面异常信息收集模块,用于通过异常整合组件收集原生应用程序生成的目标页面的异常信息,所述目标页面通过跨平台框架开发,所述异常整合组件通过所述跨平台框架开发;
页面异常信息传输模块,用于通过所述异常整合组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境;
页面异常信息处理模块,用于通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的页面异常处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的页面异常处理方法。
本发明实施例通过跨平台框架开发的异常整合组件收集原生应用程序中基于跨平台框架开发的页面的异常信息,并将异常信息发送至原生应用程序中的异常处理组件,同时通过异常处理组件根据原生应用程序所处的环境分别针对异常信息进行相应的不同处理,解决了现有技术中原生应用程序中基于开发框架开发的页面无法进行异常捕捉和处理的问题,实现收集开发框架开发的页面的异常信息,并准确传输到原生应用程序进行处理,可以提高跨平台框架开发页面的异常信息的捕捉准确率以及效率,而且按照原生应用程序所处环境分别采用不同的异常处理方式,可以快速准确进行页面的异常处理。
附图说明
图1是本发明实施例一中的一种页面异常处理方法的流程图;
图2a是本发明实施例二中的一种页面异常处理方法的流程图;
图2b是本发明实施例二中的一种页面异常处理系统架构的示意图;
图2c是本发明实施例二中的一种错误页面的示意图;
图3是本发明实施例三中的一种页面异常处理装置的结构示意图;
图4是本发明实施例四中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一中的一种页面异常处理方法的流程图的示意图,本实施例可适用于针对原生应用程序中基于开发框架开发的页面进行异常监控的情况,该方法可以由本发明实施例提供的页面异常处理装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中,具体是终端设备。如图1所示,本实施例的方法具体包括:
S110,通过异常整合组件收集原生应用程序生成的目标页面的异常信息,所述目标页面通过跨平台框架开发,所述异常整合组件通过所述跨平台框架开发。
异常整合组件用于收集基于跨平台框架开发的页面的异常信息。原生应用程序为在终端设备本地操作系统(如iOS系统或Android系统等)中,使用支持的编程语言和开发工具,直接调用操作系统提供的应用程序编程接口(Application Programming Interface,API)所开发的应用程序。目标页面为原生应用程序生成的页面,用于显示原生应用程序的内容或者与原生应用程序无关的内容,示例性的,可以是原生应用程序中关联的小程序的页面。
目标页面的异常信息用于描述页面无法正确显示的事件的信息,示例性的,异常信息包括下述至少一项:目标页面出现异常的时间、异常原因和异常堆栈等信息。
跨平台框架可以是指程序语言、软件或硬件设备可以在多种系统或不同硬件架构的电脑上运行。具体的,跨平台框架不依赖于操作系统,在一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。
目标页面和异常整合组件均是由跨平台框架开发的。
可选的,所述跨平台框架为Flutter框架(Flutter Framework)。其中,Flutter框架是移动应用开发框架,也即由Dart语言构建的软件开发工具包(Software DevelopmentKit,SDK)。Flutter框架可以快速在iOS和Android上构建高质量的原生用户界面(UserInterface,UI)。原生用户界面可以是以原生应用程序为运行环境的功能程序的页面,功能程序可以是小程序或HTML5 Web应用程序等。
S120,通过所述异常整合组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境。
异常处理组件用于处理异常信息。具体的,异常处理组件以原生应用程序为运行环境的组件。异常处理组件与异常整合组件不同,异常处理组件不是通过跨平台框架开发,而是和原生应用程序共同开发。
通常基于跨平台框架开发的页面与原生应用程序之间的通信需要额外开发的组件实现。
可选的,跨平台框架为Flutter框架,所述通过所述异常整合组件将所述异常信息发送至异常处理组件,包括:通过所述异常整合组件调用通道组件将所述异常信息发送至异常处理组件。
通道组件用于建立异常整合组件和原生应用程序之间的通信。异常处理组件和原生应用程序均位于原生(Native)端。而异常整合组件位于Flutter端。Flutter端和Native端之间的通信通过调用通道组件实现。通过通道组件可以快速准确实现异常整合组件和异常处理组件之间的通信。
S130,通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理。
原生应用程序所处的环境通常可以包括开发环境、测试环境或线上环境等。一般一个应用程序在从开发到发布的过程中,会依次经历开发环境、测试环境和线上环境。通常,在开发和测试时,技术人员会模拟出接近真实用户的环境,以不断优化应用程序,直到应用程序正确稳定运行之后进行发布,原生应用程序正式下发到用户使用的真实终端设备运行。
通常,原生应用程序在所处的环境不同时,会对异常信息进行不同处理。
可选的,所述原生应该用程序所处的环境包括开发环境,所述通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理,包括:通过所述异常处理组件根据所述异常信息生成错误页面并显示。
开发环境是指原生应用程序或其中的某些组件的开发过程中,利用一些工具和数据模拟出的环境。具体的,基于跨平台框架开发的页面在开发环境中进行开发,此时,技术人员可以直接监控到开发的页面和原生应用程序的运行情况,为了便于技术人员快速定位到异常原因,并进行处理,可以采集异常信息并可视化提供给技术人员。从而,在原生应用程序中显示错误页面,方便用户快速浏览,错误页面用于提供给用户,方便用户快速定位异常原因并进行处理。具体的,错误页面包括与目标页面关联的异常信息。
通过在开发环境中生成包含异常信息的错误页面,实现对异常信息的可视化,方便技术人员快速定位异常原因,从而快速处理异常,提高页面的开发效率。
可选的,所述原生应该用程序所处的环境包括线上环境,所述通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理,包括:通过所述异常处理组件将所述异常信息上报至服务器,以使所述服务器监控所述原生应用程序生成的目标页面。
线上环境是指原生应用程序或其中的某些组件的开发完成并发布后所处的环境,通常为真实用户所使用的环境。具体的,线上环境是指原生应用程序在真实用户使用的终端设备中的真实环境。此时,使用终端设备的真实用户通常不是技术人员,无法看懂也无需了解页面产生异常的原因。此时,需要将异常信息上报至服务器,技术人员可以通过服务器获取异常信息并定位异常原因,从而处理异常。
服务器用于与原生应用程序进行通信,以监控目标页面是否正常显示。
通过在线上环境直接将异常信息上报至服务器,方便技术人员在服务器端快速定位异常原因,从而快速处理异常。
可选的,跨平台框架为Flutter框架,所述通过异常整合组件收集原生应用程序生成的目标页面的异常信息,包括:获取经过同步异步异常事件处理之后的未处理的第一异常事件;获取所述同步异步异常事件处理过程中关联的第二异常事件;获取操作系统的线程异常关联的第三异常事件;通过异常整合组件分别对所述第一异常事件、第二异常事件和第三异常事件进行整合,生成所述目标页面的异常信息。
实际上,针对Flutter框架来说,通常异常事件可以包括同步异步异常事件、未处理异常事件和线程异常事件。
其中,针对同步异步异常事件:同步异步异常事件包括同步异常事件和异步异常事件。try-catch或catchError为Flutter框架中常用的处理异常事件的函数。可以通过try-catch处理同步异常事件,catchError处理异步异常事件。但存在部分异常事件由于无法确定是同步异常事件还是异步异常事件,无法通过try-catch或catchError进行处理,同时也无法直接在代码入口使用try-catch或catchError处理,这些异常事件也叫未处理异常事件,即第一异常事件。在经过try-catch或catchError进行异常处理之后,未处理的异常事件即为第一异常事件。
针对第一异常事件:Dart语言提供Zone(区域)机制,可以在Zone执行Dart代码,并且提供错误处理机制来捕捉在指定的Zone中运行的代码出现的异常事件。其中,Zone表示一个代码执行的环境范围,不同Zone相互独立,隔离。Zone可以捕获、拦截或者修改一些代码行为。从而可以把所有基于跨平台框架开发的页面的代码或者原生应用程序的所有代码放在同一个Zone执行,并且通过错误处理机制来捕捉未处理异常。
针对第二异常事件:需要获取同步异步异常事件作为第二异常事件。Flutter框架可以通过try-catch或catchError直接对同步异步异常事件进行处理,由此,可以在try-catch或catchError的处理过程中,截获异常信息。Flutter框架中通常使用try-catch处理异常事件,例如,UI布局的异常事件的预设默认处理方式:通过Flutter.reportError将异常信息输出到Console。实际上,这种异常处理方式在开发阶段很难获取,由于这种异常事件已经被try-catch处理,所以通过第一异常事件的捕捉方式无法捕捉到。具体的,分析源码后发现Flutter.reportError将异常信息输出到Console的方式具体是通过调用Flutter.onErrorr的静态变量,从而,可以通过覆盖Flutter.onError捕捉到第二异常事件。
针对第三异常事件:操作系统中通过Isolate实现多线程,从而可以通过Isolate.addErrorListener函数监听Isolate异常,捕获第三异常事件。
对异常事件进行整合,实际是指统一异常事件的数据格式,按照设定格式存储异常数据,形成异常信息。也即,异常信息是指统一格式的异常事件的数据。
通过异常整合组件收集多个不同方向的目标页面的异常事件,并进行格式转换,形成统一格式的异常信息,可以全面准确获取目标页面的异常信息,以提高异常原因的定位效率,从而提高异常的处理速度。
可选的,所述第一异常事件通过对位于目标区域中的原生应用程序进行异常监控确定,不同原生应用程序位于不同区域,所述第二异常事件通过监控所述跨平台框架的异常处理过程,并获取设定静态属性确定,所述第三异常事件通过监听Isolate线程确定。
其中,第一异常事件通过对位于目标区域中的原生应用程序进行异常监控确定,不同原生应用程序位于不同区域,不同区域彼此隔离,由此不同原生应用程序彼此隔离,相互独立运行,从而减少原生应用程序之间的相互干扰。其中,一个区域代表前述Zone。目标区域用于运行原生应用程序,由此原生应用程序中基于跨平台框架开发的页面位于该目标区域。具体的,可以对Zone进行配置,拦截原生应用程序中的设定行为,以捕获页面触发的异常事件。
第二异常事件通过监控跨平台框架的异常处理过程获取设定静态属性确定。第二异常事件是通过跨平台框架的现有函数进行异常处理。通过前述对异常处理过程进行解析确定,异常处理为Flutter.reportError通过调用Flutter.onErrorr将异常信息输出到Console,从而,回调Flutter.onErrorr将异常信息输出至指定地址,从而捕获第二异常事件。
第三异常事件具体可以通过Isolate.addErrorListener函数执行对Isolate异常进行监听并捕获。
通过收集多个不同方向的目标页面的异常事件,增加异常事件的覆盖率,从而提高异常定位的准确率。
本发明实施例通过跨平台框架开发的异常整合组件收集原生应用程序中基于跨平台框架开发的页面的异常信息,并将异常信息发送至原生应用程序中的异常处理组件,同时通过异常处理组件根据原生应用程序所处的环境分别针对异常信息进行相应的不同处理,解决了现有技术中原生应用程序中基于开发框架开发的页面无法进行异常捕捉和处理的问题,实现收集开发框架开发的页面的异常信息,并准确传输到原生应用程序进行处理,可以提高跨平台框架开发页面的异常信息的捕捉准确率以及效率,而且按照原生应用程序所处环境分别采用不同的异常处理方式,可以快速准确进行页面的异常处理。
实施例二
图2a为本发明实施例二中的一种页面异常处理方法的流程图,本实施例以上述实施例为基础进行具体化。本实施例的方法具体包括:
S210,获取经过同步异步异常事件处理之后的未处理的第一异常事件。
本发明实施例中的异常整合组件、原生应用程序、目标页面、异常信息、通用列表功能组件、跨平台框架、异常处理组件、环境和异常事件等可以参考上述实施例的描述。
S220,获取所述同步异步异常事件处理过程中关联的第二异常事件。
S230,获取操作系统的线程异常关联的第三异常事件。
S240,通过异常整合组件分别对所述第一异常事件、第二异常事件和第三异常事件进行整合,生成所述目标页面的异常信息,所述目标页面通过Flutter框架开发,所述异常整合组件通过所述Flutter框架开发。
可选的,所述第一异常事件通过对位于目标区域中的原生应用程序进行异常监控确定,不同原生应用程序位于不同区域,所述第二异常事件通过监控所述跨平台框架的异常处理过程,并获取设定静态属性确定,所述第三异常事件通过监听Isolate线程确定。
S250,通过所述异常整合组件调用通道组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境。
S260,通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理;所述原生应该用程序所处的环境包括开发环境或线上环境。
可选的,所述通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理,包括:通过所述异常处理组件根据所述异常信息生成错误页面并显示;或者通过所述异常处理组件将所述异常信息上报至服务器,以使所述服务器监控所述原生应用程序生成的目标页面。
相应的,实现页面异常处理方法的系统架构图如2b所示。其中:
异常处理组件201位于Native端通过通道组件(Flutter Channel)与位于Flutter端的异常整合组件203进行通信。异常整合组件203接收区域异常捕捉组件204(Zone ErrorCatcher)收集的第一异常事件,接收框架异常捕捉组件206(Framework Error Catcher)收集的第二异常事件,以及接收线程异常捕捉组件205(Isolate Error Catcher)收集的第三异常事件。异常整合组件203对接收到的第一异常事件、第二异常事件和第三异常事件进行整合成统一格式。
终端设备一般通过Assert函数处理不同环境的异常,开发环境发现异常输出日志(log)并崩溃(Crash),线上环境则不做任何处理,这种处理方式效率很低。而且,Flutter框架的开发过程一般会采用热重载(hot reload)进行快速调试,如果发现异常后直接Crash,则必须重新启动原生应用程序并重新跳转到Flutter框架开发的页面,此时只能需要通过log分析异常。
但在页面异常处理方法的系统中,可以在开发环境中提供一种可视化的错误页面,如图2c所示,错误页面具体包括异常信息,包括异常原因和异常堆栈,并且不会使原生应用程序Crash,技术人员可以根据错误页面快速定位到异常原因,并重新连接Flutter,充分发挥Flutter hot reload特性,进一步提升开发效率。在线上环境把异常上报到服务器(Server),Server对异常信息以及堆栈做聚合,提供实时报表,从而做到实时监控线上异常情况,极大提升Flutter业务稳定性。
本发明实施例通过对Flutter端异常捕捉,并统一格式形成异常信息,通过Channel机制将异常信息发送至原生端,由原生端根据原生应用程序所处的环境进行相应异常处理,实现Flutter端的异常监控,以及实现针对性异常处理,提高异常定位效率和准确性,从而快速进行解决异常问题,提高页面的稳定性。
实施例三
图3为本发明实施例三中的一种页面异常处理装置的示意图。实施例三是实现本发明上述实施例提供的页面异常处理方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中。
相应的,本实施例的装置可以包括:
页面异常信息收集模块310,用于通过异常整合组件收集原生应用程序生成的目标页面的异常信息,所述目标页面通过跨平台框架开发,所述异常整合组件通过所述跨平台框架开发;
页面异常信息传输模块320,用于通过所述异常整合组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境;
页面异常信息处理模块330,用于通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理。
本发明实施例通过跨平台框架开发的异常整合组件收集原生应用程序中基于跨平台框架开发的页面的异常信息,并将异常信息发送至原生应用程序中的异常处理组件,同时通过异常处理组件根据原生应用程序所处的环境分别针对异常信息进行相应的不同处理,解决了现有技术中原生应用程序中基于开发框架开发的页面无法进行异常捕捉和处理的问题,实现收集开发框架开发的页面的异常信息,并准确传输到原生应用程序进行处理,可以提高跨平台框架开发页面的异常信息的捕捉准确率以及效率,而且按照原生应用程序所处环境分别采用不同的异常处理方式,可以快速准确进行页面的异常处理。
进一步的,所述原生应该用程序所处的环境包括开发环境,所述页面异常信息处理模块330,包括:错误页面生成单元,用于通过所述异常处理组件根据所述异常信息生成错误页面并显示。
进一步的,所述原生应该用程序所处的环境包括线上环境,所述页面异常信息处理模块330,包括:异常信息上报单元,用于通过所述异常处理组件将所述异常信息上报至服务器,以使所述服务器监控所述原生应用程序生成的目标页面。
进一步的,所述跨平台框架为Flutter框架。
进一步的,所述页面异常信息传输模块320,包括通道组件调用单元,用于通过所述异常整合组件调用通道组件将所述异常信息发送至异常处理组件。
进一步的,所述页面异常信息收集模块310,包括:异常事件收集整合单元,用于获取经过同步异步异常事件处理之后的未处理的第一异常事件;获取所述同步异步异常事件处理过程中关联的第二异常事件;获取操作系统的线程异常关联的第三异常事件;通过异常整合组件分别对所述第一异常事件、第二异常事件和第三异常事件进行整合,生成所述目标页面的异常信息。
进一步的,所述第一异常事件通过对位于目标区域中的原生应用程序进行异常监控确定,不同原生应用程序位于不同区域,所述第二异常事件通过监控所述跨平台框架的异常处理过程,并获取设定静态属性确定,所述第三异常事件通过监听Isolate线程确定。
上述装置可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种计算机设备的结构示意图。图4示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图4显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。计算机设备12可以是挂接在总线上的设备。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(PerIPheral ComponentInterconnect,PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列(Redundant Arrays of Inexpensive Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的方法。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的页面异常处理方法:
也即,该程序被处理器执行时实现:通过异常整合组件收集原生应用程序生成的目标页面的异常信息,所述目标页面通过跨平台框架开发,所述异常整合组件通过所述跨平台框架开发;通过所述异常整合组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境;通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、只读存储器(Read OnlyMemory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (8)

1.一种页面异常处理方法,其特征在于,包括:
通过异常整合组件收集原生应用程序生成的目标页面的异常信息,所述目标页面通过跨平台框架开发,所述异常整合组件通过所述跨平台框架开发;
通过所述异常整合组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境;
通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理;
其中,所述跨平台框架为Flutter框架;
所述通过异常整合组件收集原生应用程序生成的目标页面的异常信息,包括:
获取经过同步异步异常事件处理之后的未处理的第一异常事件;
获取所述同步异步异常事件处理过程中关联的第二异常事件;
获取操作系统的线程异常关联的第三异常事件;
通过异常整合组件分别对所述第一异常事件、第二异常事件和第三异常事件进行整合,生成所述目标页面的异常信息。
2.根据权利要求1所述的方法,其特征在于,所述原生应用程序所处的环境包括开发环境,
所述通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理,包括:
通过所述异常处理组件根据所述异常信息生成错误页面并显示。
3.根据权利要求1所述的方法,其特征在于,所述原生应用程序所处的环境包括线上环境,
所述通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理,包括:
通过所述异常处理组件将所述异常信息上报至服务器,以使所述服务器监控所述原生应用程序生成的目标页面。
4.根据权利要求1所述的方法,其特征在于,所述通过所述异常整合组件将所述异常信息发送至异常处理组件,包括:
通过所述异常整合组件调用通道组件将所述异常信息发送至异常处理组件。
5.根据权利要求1所述的方法,其特征在于,所述第一异常事件通过对位于目标区域中的原生应用程序进行异常监控确定,不同原生应用程序位于不同区域,所述第二异常事件通过监控所述跨平台框架的异常处理过程,并获取设定静态属性确定,所述第三异常事件通过监听Isolate线程确定。
6.一种页面异常处理装置,其特征在于,包括:
页面异常信息收集模块,用于通过异常整合组件收集原生应用程序生成的目标页面的异常信息,所述目标页面通过跨平台框架开发,所述异常整合组件通过所述跨平台框架开发;其中,所述跨平台框架为Flutter框架;
页面异常信息传输模块,用于通过所述异常整合组件将所述异常信息发送至异常处理组件,所述异常处理组件以所述原生应用程序为运行环境;
页面异常信息处理模块,用于通过所述异常处理组件根据所述原生应用程序所处的环境对异常信息进行处理;
所述页面异常信息收集模块,包括:异常事件收集整合单元,用于获取经过同步异步异常事件处理之后的未处理的第一异常事件;获取所述同步异步异常事件处理过程中关联的第二异常事件;获取操作系统的线程异常关联的第三异常事件;通过异常整合组件分别对所述第一异常事件、第二异常事件和第三异常事件进行整合,生成所述目标页面的异常信息。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-5中任一所述的页面异常处理方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的页面异常处理方法。
CN202010084361.4A 2020-02-10 2020-02-10 页面异常处理方法、装置、计算机设备及存储介质 Active CN111309606B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010084361.4A CN111309606B (zh) 2020-02-10 2020-02-10 页面异常处理方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010084361.4A CN111309606B (zh) 2020-02-10 2020-02-10 页面异常处理方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111309606A CN111309606A (zh) 2020-06-19
CN111309606B true CN111309606B (zh) 2024-01-19

Family

ID=71149032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010084361.4A Active CN111309606B (zh) 2020-02-10 2020-02-10 页面异常处理方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111309606B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111796897A (zh) * 2020-07-03 2020-10-20 北京达佳互联信息技术有限公司 页面展示方法、装置、存储介质及电子设备
CN113076209B (zh) * 2021-06-08 2021-08-17 贝壳技术有限公司 通信方法、装置、电子设备及存储介质
CN113810249B (zh) * 2021-09-17 2022-10-21 深圳市腾讯网域计算机网络有限公司 一种回调检测的方法及装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951233A (zh) * 2017-03-02 2017-07-14 广州天高软件科技有限公司 混合模式智能手机应用开发框架
CN110659028A (zh) * 2019-09-30 2020-01-07 北京达佳互联信息技术有限公司 数据处理系统、方法、装置、电子设备及存储介质
CN110691136A (zh) * 2019-09-29 2020-01-14 广州华多网络科技有限公司 数据交互方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951233A (zh) * 2017-03-02 2017-07-14 广州天高软件科技有限公司 混合模式智能手机应用开发框架
CN110691136A (zh) * 2019-09-29 2020-01-14 广州华多网络科技有限公司 数据交互方法、装置、电子设备及存储介质
CN110659028A (zh) * 2019-09-30 2020-01-07 北京达佳互联信息技术有限公司 数据处理系统、方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111309606A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
CN111309606B (zh) 页面异常处理方法、装置、计算机设备及存储介质
US8510842B2 (en) Pinpointing security vulnerabilities in computer software applications
US8578340B1 (en) Recording and replaying computer program execution with recorded execution event breakpoints
CN107025174B (zh) 用于设备的用户界面异常测试的方法、装置和可读储介质
US20130219365A1 (en) Method and system for visual feedback
US20130081001A1 (en) Immediate delay tracker tool
US9594670B2 (en) Managing software dependencies during software testing and debugging
US20160274997A1 (en) End user monitoring to automate issue tracking
US8694831B2 (en) Automatic bug reporting tool
CN110597704B (zh) 应用程序的压力测试方法、装置、服务器和介质
US9697107B2 (en) Testing applications
CN113448795B (zh) 用于获取系统诊断信息的方法、设备和计算机程序产品
CN112817831A (zh) 应用性能监测方法、装置、计算机系统和可读存储介质
CN109165372B (zh) 一种网页加载方法、装置、设备及存储介质
CN111190791A (zh) 应用异常上报方法、装置和电子设备
CN111506470A (zh) 浏览器错误检测和告警方法、装置、设备及存储介质
JP6238221B2 (ja) ソフトウェアの実行を監視する装置、方法およびプログラム
US20160112285A1 (en) Apparatus and method for detecting abnormal connection
CN108595332B (zh) 软件测试方法及装置
US20190102282A1 (en) Measuring and improving test coverage
CN103425576A (zh) 信息反馈的方法及终端
CN113641575B (zh) 一种测试方法、装置、设备及存储介质
CN114579342A (zh) 故障检测方法、装置、电子设备及存储介质
CN112988593B (zh) 代码分析方法、装置、计算机设备及存储介质
CN114327648B (zh) 一种驱动调试方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant