CN111095221B - 一种刷新显示异常处理的方法及终端 - Google Patents

一种刷新显示异常处理的方法及终端 Download PDF

Info

Publication number
CN111095221B
CN111095221B CN201780094769.6A CN201780094769A CN111095221B CN 111095221 B CN111095221 B CN 111095221B CN 201780094769 A CN201780094769 A CN 201780094769A CN 111095221 B CN111095221 B CN 111095221B
Authority
CN
China
Prior art keywords
display
daemon
refresh request
terminal
display daemon
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
CN201780094769.6A
Other languages
English (en)
Other versions
CN111095221A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN111095221A publication Critical patent/CN111095221A/zh
Application granted granted Critical
Publication of CN111095221B publication Critical patent/CN111095221B/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/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本申请实施例提供一种刷新显示异常处理的方法,用于处理刷新显示异常,针对性检测应用以及系统卡死的原因,从而提高了刷新显示异常处理的效率。该方法包括获取应用的刷新请求,刷新请求用于指示刷新应用的显示数据;通过应用的渲染线程向显示守护程序传递刷新请求;当渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,则确定渲染线程异常;当显示守护程序对刷新请求的处理时长大于第二时间阈值,则确定显示守护程序异常。

Description

一种刷新显示异常处理的方法及终端
本申请要求于2017年10月9日提交中国专利局、申请号为201710931516.1、发明名称为“一种检测并修复终端卡死的方法和终端”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,具体涉及一种刷新显示异常处理的方法及终端。
背景技术
随着智能终端的发展,用户对终端的使用需求越来越大。在终端上,显示系统是终端非常重要的组成部分,例如:终端与用户的界面交互都需要通过显示系统来实现。
显示系统承担着终端的刷新、绘制和显示等重要功能。终端在显示状态下每个刷新周期显示系统都会执行刷新操作。显示系统包括显示守护程序。刷新操作的过程是各个应用(APP)在收到时钟刷新信号后,通过各自的渲染线程把刷新请求传递给显示守护程序,通过显示守护程序把刷新数据传给图形处理器和屏幕,实现显示界面上数据的刷新。显示守护程序在数据刷新过程中会将各个应用的图层进行合并,合并成一个和屏幕大小一致的显示图层,将显示图层传递到终端的图形处理器,然后将刷新数据更新到屏幕上。
显示系统在数据刷新的过程中会出现应用卡死的情况,导致整个屏幕无法刷新,目前针对应用卡死的原因无法获知。
发明内容
为解决现有技术中无法检测应用异常的原因,本申请实施例提供一种刷新显示异常处理的方法及终端,可以检测出导致应用异常或者系统异常的程序,从而提高了刷新显示的处理效率,提高了屏幕显示的流畅度。本申请实施例还提供了相应的计算机可读存储介质和计算机程序产品。
本申请实施例第一方面提供一种刷新显示异常处理的方法,可以包括:获取应用的刷新请求,该刷新请求可以是周期性的时钟信号,该时钟信号可以是硬件如定时器触发的,刷新请求用于指示刷新应用的显示数据;通过应用的渲染线程向显示守护程序传递刷新请求;渲染线程是应用的线程,显示守护程序是显示系统的程序,当渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,则确定渲染线程异常;该通讯时间可以是渲染线程与显示守护程序之间进行消息传递的时间,当显示守护程序对刷新请求的处理时长大于第二时间阈值,则确定显示守护程序异常。异常可以包括卡顿、卡死以及阻塞等多种显示刷新不流畅的状态。由上述第一方面可知,可以检测出导致应用异常或者系统异常的程序,从而提高了刷新显示的处理效率,提高了屏幕显示的流畅度。
可选地,结合第一方面,在第一种可能的实现方式中,该方法还可以包括:当渲染线程和显示守护程序中的任意一个出现异常,则采用对应的修复策略修复渲染线程或显示守护程序。由该第一种可能的实现方式可见,针对不同线程或程序的异常,采用不同的修复策略进行针对性修复,从而提高了刷新异常处理的效率。
可选地,结合第一方面或第一方面第一种可能的实现方式,在第二种可能的方式中,该方法还可以包括:在渲染线程向显示守护程序传递刷新请求时启动计时;将渲染线程向显示守护程序传递刷新请求到渲染线程接收到显示守护程序返回的接收响应的时间确定为通讯时间,接收响应为显示守护程序接收到刷新请求的响应。
可选地,结合第一方面或第一方面第一种可能的实现方式,在第三种可能的方式中,该方法还可以包括在渲染线程向显示守护程序传递刷新请求时启动计时;当计时超过第一时间阈值渲染线程还未接收到接收响应,则确定渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,接收响应为显示守护程序接收到刷新请求的响应。
可选地,结合第一方面或第一方面任意一种可能的实现方式,在第四种可能的方式中,该方法还可以包括:在显示守护程序对刷新请求开始处理时启动计时,在显示守护程序结束对刷新请求的处理时结束计时;将从启动计时到结束计时之间的时间长度确定为处理时长。
可选地,结合第一方面或第一方面任意一种可能的实现方式,在第五种可能的方式中,该方法还可以包括:在显示守护程序对刷新请求开始处理时启动计时;当计时超过第二时间阈值显示守护程序还未结束对刷新请求的处理,则确定显示守护程序对刷新请求的处理时长大于第二时间阈值。
可选地,结合本申请上述一些实施例,在第六种可能的方式中,当渲染线程和显示守护程序中的任意一个出现异常,则采用对应的修复策略修复渲染线程或显示守护程序,可以包括:当渲染线程出现异常,则重启应用。该方案中,若通过通讯时间判断的方式确定渲染线程异常,则可以确定该渲染线程被调用。
可选地,结合本申请上述一些实施例,在第七种可能的方式中,该方法还可以包括:若渲染线程未被调用,则检测应用的消息队列;若检测到消息队列中包含与显示相关的处于等待状态的刷新请求,则将消息队列中处于等待状态的刷新请求调整到消息队列中的顶端,以使处于等待状态的刷新请求被优先处理。该方案中,若主线程消息队列阻塞,导致渲染线程未被调用,通过将与显示刷新相关的刷新请求调整到消息队列的顶端,使刷新请求被优先处理,可以快速解决显示异常的问题。
可选地,结合本申请上述一些实施例,在第八种可能的方式中,当渲染线程和显示守护程序中的任意一个出现异常,则采用对应的修复策略修复渲染线程或显示守护程序,可以包括:当显示守护程序出现异常,则重启显示守护程序。
可选地,结合本申请上述第一方面或第一方面的任一种可能的实现方式,在第九种可能的方式中,在获取应用的刷新请求之后,该方法还可以包括:响应输入的显示界面切换指令,显示界面切换指令用于指示切换显示界面;若检测到显示界面未切换,则确定显示守护程序出现异常,重新启动显示守护程序。
本申请实施例第二方面提供了一种终端,具有在刷新显示异常处理时可以确定出导致显示异常的渲染线程或显示守护程序的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述第一方面或第一方面任一可能的实现方式所描述的功能相对应的模块。
本申请实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一可能的实现方式所述的方法。需要说明的是,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产口的形式体现出来,该计算机软件产品存储在一个存储介质中,用于储存为上述设备所用的计算机软件指令,其包含用于执行上述第一方面为终端所设计的程序。
该存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例第四方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第一方面或第一方面任一可选实现方式所述的方法。
本申请实施例提供的技术方案中,具有以下有益效果:
终端可以检测出导致应用异常或者系统异常的程序,从而提高了刷新显示的处理效率,提高了屏幕显示的流畅度。
附图说明
图1A是终端的刷新显示处理的流程示意图;
图1B是本申请实施例所应用的系统架构图;
图1C是应用的主线程和渲染线程之间的流程示意图;
图1D是确定显示守护程序是否发生异常的一个示意图;
图1E是终端正常处理刷新请求的一个示意图;
图1F是终端检测到刷新请求的一个示意图;
图1G是终端提高刷新请求的优先级的一个示意图;
图2是本申请实施例中刷新显示异常处理的方法的一实施例示意图;
图3是本申请实施例中刷新显示异常处理的方法的另一实施例示意图;
图4是本申请实施例中刷新显示异常处理的方法的另一实施例示意图;
图5是本申请实施例中刷新显示异常处理的方法的另一实施例示意图;
图6A是本申请实施例中用户点击联系人应用以显示联系人列表的示意图;
图6B是本申请实施例中用户对终端进行从下往上滑动触屏的操作的示意图;
图6C是本申请实施例中用户点击联系人应用中的某联系人的操作的示意图;
图6D是本申请实施例中联系人应用从第一界面进入第二界面的示意图;
图6E是本申请实施例中第一定时器终结仍未进入第二界面的示意图;
图6F是本申请实施例中第一时间阈值之后仍未重新启动联系人应用的示意图;
图6G是本申请实施例中用户在存在异常的情况下点击主控键的示意图;
图6H是本申请实施例中终端响应用户按主控键的操作的示意图;
图6I是本申请实施例中终端未响应用户按主控键的操作的示意图;
图7A是本申请实施例中终端显示的游戏应用中游戏界面的示意图;
图7B是本申请实施例中终端显示的游戏应用中游戏界面出现卡顿的示意图;
图7C是本申请实施例中终端显示的游戏应用中刷新后的游戏界面的示意图;
图8是本申请实施例中终端的一实施例示意图;
图9是本申请实施例中终端的另一实施例示意图。
具体实施方式
图1A为终端的刷新显示处理的流程示意图。终端上各个应用(APP)在收到周期的时钟信号后,通过各应用的渲染线程把刷新请求传递给显示守护程序,最终通过显示守护程序把刷新数据传给图形处理器和终端屏幕,完成显示刷新。
但终端目前的显示系统,缺少对显示守护程序和各应用的渲染线程的监控与修复机制,如果发生显示刷新异常,如:卡死、卡顿或阻塞等导致刷新不流畅的情况,终端的整个屏幕就无法刷新,出现冻屏现象,并且无法恢复,对用户造成较差的用户体验。可以理解的是,冻屏现象为终端的屏幕显示出现卡顿、刷新不流畅等现象。
在本申请实施例中,图1B为本申请实施例所应用的系统架构图。在图1B所示中,终端可以包括应用、图层合成系统、终端屏幕系统、异常监控系统和异常修复系统。
其中,异常监控系统:主要是对显示刷新的渲染线程和显示守护程序两大程序进行监控,如果发现渲染线程和/或显示守护程序在执行过程中出现异常,则异常监控系统向异常修复系统上报异常消息。可以理解的是,异常消息可以包括渲染线程和/或显示守护程序的卡顿、卡死、堵塞等指示消息。
异常修复系统:主要是对异常监控系统上报的异常消息,进行自动化修复,使得应用界面可以进行更新。
本申请实施例所涉及的终端可以为:手机、平板电脑(tablet personalcomputer)、膝上型电脑(Laptop Computer)、数码相机、个人数字助理(personal digitalassistant,简称PDA)、导航装置、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)、游戏设备等。
下面可以对本申请实施例的技术原理做进一步的说明:
(1)确定渲染线程是否发生异常:应用的主线程接收到刷新请求时,将该刷新请求向该应用的渲染线程发送,渲染线程再向显示守护程序发送刷新请求;该刷新请求可以是周期性的时钟信号,该时钟信号可以是硬件(如定时器)触发的。显示守护程序接收到刷新请求时,可以给渲染线程反馈一个响应消息,该响应消息指示显示守护程序已经收到渲染线程发送的刷新请求。该响应消息可以为接收响应。异常监控系统可以通过对应用渲染线程与显示守护程序的通讯时间进行计时监控,如果该通讯时间超过第一时间阈值,则异常监控系统确定渲染线程异常,异常修复系统可以重启该渲染线程对应的应用,解决该应用的冻屏现象。
也可以这样理解:渲染线程向显示守护程序发送刷新请求时,开启定时器,当定时器达到第一时间阈值时,渲染线程还未接收到显示守护程序发送的响应消息,则也可认为通讯时间超过第一时间阈值,则可以确定渲染线程异常。
可选择的,以安卓(Android)平台为例,对应用的主线程与渲染线程之间的流程做一个说明。图1C为应用的主线程和渲染线程之间的流程示意图。
图1C中包括主线程(ActivityThread)、指挥者(Choreographer)、显示管理者(ViewRootlmpl)、传递者(ThreadedRenderer)和渲染线程(RenderThread)。
应用的主线程收到用于显示刷新的周期性的时钟信号,通过指挥者(Choreographer)、显示管理者(ViewRootlmpl)、传递者(ThreadedRenderer)之间的信令,如:main、doFrame、performDraw、nSyncAndDrawFrame向渲染线程传递刷新请求。
(2)确定显示守护程序是否发生异常:异常监控系统对显示守护程序进行监控,当显示守护程序接收渲染线程发送的刷新请求时,可以判断显示守护程序对该刷新请求的处理时长是否超过第二时间阈值,若超过,则异常监控系统确定显示守护程序异常,异常修复系统可以重启显示守护程序,实现终端设备的整体刷新。
本申请实施例中,显示守护程序对该刷新请求的处理过程可以是依据该刷新请求对待刷新的数据进行合成处理的过程。
图1D为确定显示守护程序是否发生异常的一个示意图。在图1D所示中,显示守护程序接收多个请求,多个请求中可以包括刷新请求等。以其中一个刷新请求为例进行说明,异常监控系统可以根据对刷新请求进行处理的起始时间和处理结束的处理时长来确定显示守护程序是否发生异常。
该处理时长可以是从显示守护程序接收到该刷新请求到对刷新请求处理完成的时间长度,也可以是对该刷新请求开始处理(例如图1D中的Req_service_begin)到对刷新请求处理完成(例如图1D中的Req_service_end)的时间长度。这多个请求可以是同一应用的,也可以是不同应用的,不做具体限定。
可选择的,异常监控系统也可以判断显示守护程序中待处理的任务请求是否大于特定阈值,若大于,也可以确定显示守护程序发生异常。异常修复系统可以重启显示守护程序,实现终端设备的整体刷新。
需要说明的是,如果异常监控系统确定渲染线程发生异常和显示守护程序发生异常,则异常修复系统可以先重启显示守护程序,若重启显示守护程序后,应用显示还处于异常状态,则重启处于异常状态的应用。针对同时有多个应用发生异常的情况,在重启显示守护程序后,如果还有个别应用处于异常状态,再重启这些个别应用。如果异常监控系统确定渲染线程发生异常,显示守护程序正常,则异常修复系统可以重启该渲染线程对应的应用;如果异常监控系统确定渲染线程正常,显示守护程序发生异常,则异常修复系统可以重启显示守护程序。
(3)应用的主线程消息队列中包括多个请求,若该多个请求中包括刷新请求,则将该刷新请求调整到该主线程队列中的顶端,优先处理,来解决终端的卡顿问题。处理逻辑可以包括:
a、在刷新请求插入主线程消息队列时进行识别和标记;
b、每次轮询都先判断被标记的刷新请求是否被延误,本申请实施例中若该刷新请求未处于消息队列的顶端,则确定该刷新请求被延误;
c、在被延误的情况下,优先处理被标记的刷新请求,优先处理的方式可以是将该刷新请求调整到消息队列的顶端,若有多个刷新请求,则按照刷新请求进入消息队列的顺序依次从顶端的第一个位置开始向下排列。
示例性的,图1E为终端正常处理刷新请求的一个示意图。在图1E所示中,对刷新请求的处理是在116ms处理的。图1F为终端检测到刷新请求的一个示意图。在图1F所示中,主线程检测到被标记的刷新请求。图1G为终端提高刷新请求的优先级的一个示意图。在图1G所示中,主线程将刷新请求调整到主线程消息队列的第一位,其他请求消息按顺序向下移动,这样可以提高刷新请求的优先级,那么主线程可以优先将刷新请求向渲染线程发送。即应用的主线程可以在100ms的时候就对刷新请求进行处理。所以,终端可以对各个应用的任务处理优先级进行智能调控,优先保证应用界面的刷新流畅。
以下结合具体实施例进行说明,如图2,为本申请实施例中刷新显示异常处理的方法的一实施例示意图。
201、用户在终端上进行进入联系人应用的操作。
在本申请实施例中,终端以手机为例进行说明,该手机中有多种应用,其中包括购物应用(如淘宝)、通信应用(如微信),还有手机自带的应用,如短信应用和联系人应用。以联系人应用为例,当用户想要打电话或者查询好友的电话号码时,可以在手机中点击联系人应用的图标,以打开联系人应用,在一些可行的实施例中,也可以通过语音信号打开联系人应用,如手机语音助手,此处不做限定。
202、终端启动联系人应用,显示联系人应用的第一界面。
在本申请实施例中,当用户在终端上进行进入联系人应用的操作时,终端可以启动联系人应用,并显示该联系人应用的第一界面。该第一界面可以是通讯录界面、最近通话界面或者拨号键盘界面等,如图6A所示,为用户点击联系人应用以显示联系人列表的示意图,其中,当终端显示桌面时,可以进行点击桌面上的联系人应用的图标的操作,终端响应该操作,显示联系人应用中的联系人列表。
在一些可行的实施例中,该第一界面可以为联系人应用的初始界面,也可以为进入上次联系人应用的退出时的界面,此处不做限定。需要说明的是,在一些可行的实施例中,该第一界面的内容可以为多个联系人的电话号码、单个联系人的详细资料、联系人应用的设置界面等,此处不做限定。
203、若联系人应用刷新显示正常,则终端显示刷新后的联系人应用的第二界面。
在本申请实施例中,当启动了联系人应用后,例如:显示系统的定时器周期性产生时钟信号,也就是刷新请求,该刷新请求被传递给该联系人应用的渲染线程,该刷新请求再由该渲染线程传递给显示守护程序,再由显示守护程序依据该刷新请求对待刷新的数据进行合成,然后由显示守护程序将合成的数据传递给图形处理器和终端屏幕,实现刷新显示。如一秒钟刷新60次,终端屏幕最多可以刷新60次。在一些情况下,刷新的内容和原来的内容没有区别,因为没有受到任何操作或者内容上的更新;在一些情况下,刷新的内容和原来的内容有区别,如当接收来自用户的操作,如点击查看联系人、上下滑动屏幕、点击联系人、左右滑动联系人信息等。如图6B所示,为用户对终端进行从下往上滑动触屏的操作的示意图。其中,用户可以在联系人应用的第一界面中,可以执行从下往上滑动触屏的操作,则终端可以响应该操作且显示更多的联系人的信息。
如图6C所示,为用户点击联系人应用中的某联系人的操作的示意图。其中,当用户点击“sally”时,终端则启动第一定时器,第一定时器的计时长度可以设置为如3秒,若此时第一定时器的时间达到2.95秒时,联系人应用还未反映,则仍然是显示第一界面。
如图6D所示,为联系人应用从第一界面进入第二界面的示意图。若第一定时器达到1.78秒时,进入第二界面而显示sally的联系人信息,则表示刷新正常。
在一些可行的实施例中,终端可以包括该联系人应用在内的多个不同的应用,每个应用针对刷新处理的过程都可以参阅上述联系人应用的刷新显示处理过程进行理解。
204、若联系人应用刷新显示异常,则终端继续显示联系人应用的第一界面。
在一些情况下,用户对终端输入刷新操作后,终端会继续显示联系人应用的第一界面。在这种情况下,即使用户对终端进行其他操作,终端也不会显示新的界面内容,而是仍然停留在第一界面上,如果这情况持续的时间足够久,对于用户而言,即为卡顿或卡死。
若如图6E所示,为第一定时器终结仍未进入第二界面的示意图,当第一定时器的3秒的时间超时时,若仍未进入第二界面,则依然显示第一界面。
205、终端对该联系人应用的渲染线程和显示守护程序进行刷新检测。
在一些可行的实施例中,对于渲染线程,终端会检测渲染线程与显示守护程序之间的通讯时间,当渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,则确定渲染线程异常。
其中,对通讯时间的检测可以是:
在渲染线程向显示守护程序传递刷新请求时启动计时;将渲染线程向显示守护程序传递刷新请求到渲染线程接收到显示守护程序返回的接收响应的时间确定为通讯时间,接收响应为显示守护程序接收到刷新请求的响应。
关于渲染线程与显示守护程序之间的通讯时间大于第一时间阈值的判断方式还可以是:
在渲染线程向显示守护程序传递刷新请求时启动计时;当计时超过第一时间阈值渲染线程还未接收到接收响应,则确定渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,接收响应为显示守护程序接收到刷新请求的响应。
对于显示守护程序的异常检测可以是:当显示守护程序对刷新请求的处理时长大于第二时间阈值,则确定显示守护程序异常。
其中,对于处理时长的确定方式可以是:
在显示守护程序对刷新请求开始处理时启动计时,在显示守护程序结束对刷新请求的处理时结束计时;将从启动计时到结束计时之间的时间长度确定为处理时长。
对于显示守护程序对刷新请求的处理时长大于第二时间阈值的判断方式还可以是:
在显示守护程序对刷新请求开始处理时启动计时;当计时超过第二时间阈值显示守护程序还未结束对刷新请求的处理,则确定显示守护程序对刷新请求的处理时长大于第二时间阈值。
无论渲染线程还是显示守护程序中任何一个出现异常,都可以采用对应的修复策略进行修复。
在本申请实施例中,异常的情况可以包括联系人应用异常,即渲染线程异常,以及显示守护程序异常。如果确定为渲染线程异常,则确定为联系人应用异常,则需要对联系人应用进行处理。在本申请实施例,终端具有异常监控系统和异常修复系统,该异常监控系统用于当出现异常时,判断该异常是应用的异常还是显示守护程序的异常,而异常修复系统则用于对出现的异常进行修复。
206、终端重新启动联系人应用,显示联系人应用的初始界面。
在本申请实施例中,若异常监控系统确定为联系人应用存在异常,则异常修复系统会重新启动联系人应用,以修复异常的情况。需要说明的是,当该联系人应用被重新启动时,会显示联系人应用的初始界面,如图6F,为重新启动联系人应用后显示的该联系人应用的初始界面的示意图。
在本申请实施例中,联系人界面刷新失败时,可以进行自动监控和自动修复,使得联系人界面刷新正常。即终端可以增加显示卡顿检测算法和显示卡顿修复算法,自动修复应用界面显示异常。
具体的,参阅图3,为本申请实施例中刷新显示异常处理的方法的另一实施例示意图,下面结合终端的内部实现的特点进行说明:
301、用户在终端上进行进入联系人应用的操作。
在本申请实施例中,终端以手机为例进行说明,该手机中有多种应用,其中包括购物应用(如淘宝)、通信应用(如微信),还有手机自带的应用,如短信应用和联系人应用。以联系人应用为例,当用户想要打电话或者查询好友的电话号码时,可以在手机中点击联系人应用的图标,以打开联系人应用,在一些可行的实施例中,也可以通过语音信号打开联系人应用,如手机语音助手,此处不做限定。
在本申请实施例中的用户和终端的交互中,终端至少涉及应用(此处以联系人应用为例)、显示模块(屏幕)、异常监控系统、异常修复系统,当用户在终端上进行进入联系人应用的操作时,则该联系人应用会被启动,且向屏幕发送显示联系人应用界面的请求。
当屏幕接收到显示联系人应用界面的请求时,则可以显示联系人应用的第一界面,如前,该第一界面可以为联系人应用的初始界面,也可以为进入上次启动联系人应用的退出时的界面,此处不做限定。
302、联系人应用中的渲染线程向显示守护程序发送刷新请求时启动第一定时器。
联系人应用可以不断的接收到刷新请求,该刷新请求由该联系人应用的渲染线程传递给显示守护程序,对于任意一条刷新请求,经渲染线程向显示守护程序发送时,会开启第一定时器,第一定时器的计时时长可以设置为例如3秒。
303、若显示守护程序接收到刷新请求,则显示守护程序向该渲染线程返回接收响应。
渲染线程向显示守护程序传递该刷新请求时开始到接收到显示守护程序返回的接收响应的时间为渲染线程与显示守护程序之间的通讯时间。
304、若通讯时间小于第一时间阈值,则可以重置第一定时器。
在本申请实施例,若通讯时间在第一时间阈值内,如3秒内,则可以重置第一定时器以对下一次的通讯时间进行监测。
如第一定时器的计时时长为3秒,则倒数3,2,1,0,则结束,初始化为将第一定时器重新设置为3秒。在某些可行的实施例中,若该第一定时器的定时方法为0,1,2,3秒,则初始化为将定时器重新设置为0秒,此处不做限定。
305、若通讯时间大于第一时间阈值,则确定该联系人应用发生异常。
在本申请实施例中,若在第一时间阈值内,始终没有接收到接收响应,则说明渲染线程存在异常,即可以理解为联系人应用存在异常,屏幕上也不会刷新出第二界面。
306、异常监控系统向异常修复系统发送异常消息。
异常监控系统确定该联系人应用存在异常,会向异常修复系统发送联系人应用存在异常的异常消息,异常修复系统接收到异常消息后,可以对联系人应用进行修复。
异常修复系统还会根据异常监控系统对显示守护程序的检测情况确定修复策略,若显示守护程序未检测到异常,则执行步骤307,若显示守护程序被检测到存在异常,则异常修复系统会重启显示守护程序,若重启显示守护程序后,该联系人应用还处于异常状态,则再执行步骤307。
307、异常修复系统重新启动联系人应用。
异常修复系统会重新启动联系人应用,需要说明的是,此处所指的重新启动是指关闭该联系人应用,然后再次启动该联系应用,则该联系人应用正在显示的第一界面则可能不会在重新启动后第一时间显示,而是会显示该联系人应用的初始界面。
在一些可行的实施例中,出现异常的情况不一定是因为应用出现卡顿,还有可能是显示守护程序出现卡顿,以下结合具体实施例进行说明,详细的,请参考图4,为本申请实施例中刷新显示异常处理的方法的另一实施例示意图。
401、终端显示联系人应用的第一界面。
在本申请实施例中,用户可以通过对联系人应用的点击、按压、双击等操作使得终端进入联系人应用,显示联系人应用的第一界面。
402、若未发生显示刷新异常,则终端显示刷新后的联系人应用的第二界面。
本步骤与步骤203相同,此处不做赘述。
403、若发生显示刷新异常,则终端继续显示联系人应用的第一界面。
本步骤与步骤204相同,此处不做赘述。
404、第一界面显示异常。
第一界面在一定时长内无法刷新,出现卡死或卡顿等情况。
405、终端接收用户对系统按键的操作。
在一些可行的实施例中,终端可以接收用户的显示界面切换指令,如接收用户对系统按键的操作,如接收用户对音量键、电源键、主(Home)控键等的操作,还可以接收用户的应用切换操作指令,如图6H所示,为用户在存在异常的情况下点击主控键的示意图。
需要说明的是,若终端中的异常是联系人应用的异常,则终端仍然能响应用户对上述按键的操作,若终端中的异常是显示守护程序,则终端也不会响应对上述按键的操作。因此,若用户点击音量键、电源按键、主(Home)控键,以及通过切换应用等向终端输入显示界面切换指令后,显示界面不发生变化,则说明显示守护程序出现异常,若显示界面发生变化,则说明显示守护程序未出现异常。
406、若第三时间阈值内对该操作无响应,则终端确定显示守护程序存在异常。
在本申请实施例,若终端对于用户对系统按键的操作没有响应,则可以在第三时间阈值之内判断是否存在异常,若超过第三时间阈值,则确定存在显示守护程序的异常,则需要对该显示守护程序进行处理,如可以重启显示守护程序,以解决卡顿的问题。如图6I,为终端响应用户按主控键的操作的示意图。
407、终端确定显示守护程序存在异常,重新启动显示守护程序。
在本申请实施例中,当显示守护程序重新启动时,可能会黑屏一小会,如0.1秒,也可能不会黑屏,此处不做限定。当显示守护程序重新启动时,仍然会显示出现异常之前的界面。
具体的,请参参阅5,为本申请实施例中刷新显示异常处理的方法的另一实施例示意图,下面结合终端的内部实现的特点进行说明:
501-503与图3中的步骤301-303相同,可以参阅步骤301-303进行理解。
504、显示守护程序对刷新请求进行处理,并同时启动第二定时器。
在本申请实施例中,当显示守护程序开始处理刷新请求时,会启动第二定时器,该第二定时器用于计时是否能够及时处理该刷新请求,如该刷新请求在第二时间阈值内仍然未能处理,则可以确定显示守护程序出现异常。
可选择的,本申请实施例中,也可以从显示守护程序接收到该刷新请求时,启动第二定时器。
505、若第二时间阈值显示守护程序处理完成该刷新请求,则重置第二定时器。
在本申请实施例中,若在第二时间阈值中,该刷新请求被显示守护程序处理完成,则显示守护程序未发生异常,可以重置该第二定时器。屏幕上会显示刷新后的联系人应用的第二界面。
506、若第二时间阈值内未完成对刷新请求的处理,则确定该显示守护程序存在异常。
在本申请实施例中,若在第二时间阈值内仍然未处理完成该刷新请求,则确定该显示守护程序会存在异常。
507、异常监控系统向异常修复系统发送异常消息。
该步骤的异常消息用于通知显示守护程序发生异常。
此处需要说明的是,无论是异常监测系统监测到渲染线程存在异常还是显示守护程序存在异常,都会向异常修复系统上报异常消息,关于渲染线程的异常修复过程图3所对应的实施例中已经描述,该实施例中就不再重复描述渲染线程的修复,只是针对显示守护程序的修复进行描述。
异常监控系统可以向异常修复系统发送异常消息,以使得异常修复系统解决当下的异常情况。
508、异常修复系统重新启动显示守护程序。
则该异常修复系统会对该显示守护程序进行重新启动处理,在本申请实施例中,当显示守护程序重新启动时,可能会黑屏一小会,如0.1秒,也可能不会黑屏,此处不做限定。当显示守护程序重新启动时,仍然会显示出现异常之前的内容。
以上实施例中对显示刷新过程中渲染线程和显示守护程序的异常检测和修复进行了描述,下面针对主线程的消息队列中消息过多,导致刷新请求无法被及时处理,渲染线程不被调用导致的卡顿进行示例性描述:
结合上述联系人应用的示例,如果联系人应用的渲染线程未被调用,可以参考上述图1E-图1G所示的方法,将刷新请求调整至消息队列中的顶端,使该刷新请求可以被优先处理,从而解决终端界面显示刷新的卡顿问题。
在另一场景示例中,如图7A为终端显示的游戏应用中游戏界面的示意图。在图7A所示中,用户在终端上使用游戏应用在玩某款大型在线互动手游,里面的游戏动效和在线互动比较多,很多人在玩,游戏应用需要一直和服务器交互,来处理游戏效果,无暇执行刷新任务,导致游戏应用的界面出现卡顿,如图7B所示。图7B为终端显示的游戏应用中游戏界面出现卡顿的示意图。
在本申请实施例中,终端通过应用任务的优先级智能化动态分配,使得游戏应用即使在繁忙情况下,仍能正常刷新显示的游戏界面。示例性的,游戏应用在每次轮询过程中,在主线程消息队列中查找,是否存在被标记的刷新请求,若存在,则将刷新请求添加到该消息队列的前端,可以参考上述图1G所示,以便主线程优先处理。
图7C为终端显示的游戏应用中刷新后的游戏界面的示意图。在图7C所示中,终端的异常修复系统将刷新请求添加到主线程队列中的前端,主线程可以优先将刷新请求向渲染线程传输,渲染线程又可以向显示守护程序传输;显示守护程序再经过图像合成可以在终端的屏幕上显示刷新后的游戏界面。
在本申请实施例中,玩大型在线游戏(或者多人在线聊天应用),因为任务繁忙导致的卡顿问题,终端可以智能调整任务优先级,让屏幕刷新始终保持流畅。即增加了显示卡顿检测算法和显示卡顿修复算法,对终端应用的任务处理进行智能调度,优先处理刷新请求,识别因为任务繁忙导致的终端屏幕刷新卡顿丢帧问题,自动检测和自动修复。
需要说明的是,这里只是以游戏应用为例进行说明的,在其他任意应用上,处理的任务请求中如果包括刷新请求,都可以将刷新请求调整到主线程消息队列的顶端,优先处理。
另外,可选地,在侵权检测中,模拟应用渲染线程卡死或者显示守护程序卡死的示例命令如下:
故障注入命令:rProcess fault=hang pid=xxx
故障注入:
linux-39:/bome/y1/work/2016/5/process#./rProcess fault=hang tid=3960
successful execution[rProcess fault=hang tid=3960]
注入效果:
linux--39:/home/y1/work/2016/5/process#.cat/proc/3960/status|grep St
State:T(stopped)
VmStk:136kB
以上描述了刷新显示异常检测及修复的过程,下面结合附图对执行上述方法实施例的终端进行描述。
本申请实施例以移动终端是手机为例,对本申请提供的刷新显示异常处理的过程进行介绍。下面结合附图8对手机的各个构成部件进行具体的介绍。图8示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图8,手机包括:输入单元1930、显示单元1940、处理器1980、射频(Radio Frequency,RF)电路1910、存储器1920、传感器1950、音频电路1960、无线保真(wireless fidelity,WiFi)模块1970、以及电源1990等部件。本领域技术人员可以理解,图8中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图8对手机的各个构成部件进行具体的介绍:
显示单元1940可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。在本申请实施例中,显示单元1940用于,显示应用的数据。
显示单元1940可包括显示面板1941,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1941。进一步的,触控面板1931可覆盖显示面板1941,当触控面板1931检测到在其上或附近的触摸操作后,传送给处理器1980以确定触摸事件的类型,随后处理器1980根据触摸事件的类型在显示面板1941上提供相应的视觉输出。虽然在图8中,触控面板1931与显示面板1941是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1931与显示面板1941集成而实现手机的输入和输出功能。
输入单元1930可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。在本申请实施例中,输入单元1930用于,接收用户输入的操作。具体地,输入单元1930可包括触控面板1931以及其他输入设备1932。触控面板1931,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1931上或在触控面板1931附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1931可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1980,并能接收处理器1980发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1931。除了触控面板1931,输入单元1930还可以包括其他输入设备1932。具体地,其他输入设备1932可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
处理器1980是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1920内的软件程序和/或模块,以及调用存储在存储器1920内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1980可包括一个或多个处理单元;优选的,处理器1980可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1980中。
存储器1920可用于存储软件程序以及模块,处理器1980通过运行存储在存储器1920的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1920可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1920可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
手机还可包括至少一种传感器1950,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1941的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1941和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1960、扬声器1961,传声器1962可提供用户与手机之间的音频接口。音频电路1960可将接收到的音频数据转换后的电信号,传输到扬声器1961,由扬声器1961转换为声音信号输出;另一方面,传声器1962将收集的声音信号转换为电信号,由音频电路1960接收后转换为音频数据,再将音频数据输出处理器1980处理后,经RF电路1910以发送给比如另一手机,或者将音频数据输出至存储器1920以便进一步处理。
RF电路1910可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1980处理;另外,将设计上行的数据发送给基站。通常,RF电路1910包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1910还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
WiFi属于短距离无线传输技术,手机通过WiFi模块1970可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块1970,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
手机还包括给各个部件供电的电源1990(比如电池),优选的,电源可以通过电源管理系统与处理器1980逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
本申请实施例提供的手机,在执行刷新显示异常处理的过程处理器1980执行如下步骤:
获取应用的刷新请求,刷新请求用于指示刷新应用的显示数据;
通过应用的渲染线程向显示守护程序传递刷新请求;
当渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,则确定渲染线程异常;
当显示守护程序对刷新请求的处理时长大于第二时间阈值,则确定显示守护程序异常。
可选的,在本申请的一些实施例中,处理器1980还用于:当渲染线程和显示守护程序中的任意一个出现异常,则采用对应的修复策略修复渲染线程或显示守护程序。
可选的,在本申请的一些实施例中,处理器1980还用于:在渲染线程向显示守护程序传递刷新请求时启动计时;将渲染线程向显示守护程序传递刷新请求到渲染线程接收到显示守护程序返回的接收响应的时间确定为通讯时间,接收响应为显示守护程序接收到刷新请求的响应。
可选的,在本申请的一些实施例中,处理器1980还用于:在渲染线程向显示守护程序传递刷新请求时启动计时;当计时超过第一时间阈值渲染线程还未接收到接收响应,则确定渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,接收响应为显示守护程序接收到刷新请求的响应。
可选的,在本申请的一些实施例中,处理器1980还用于:在显示守护程序对刷新请求开始处理时启动计时,在显示守护程序结束对刷新请求的处理时结束计时;将从启动计时到结束计时之间的时间长度确定为处理时长。
可选的,在本申请的一些实施例中,处理器1980还用于:在显示守护程序对刷新请求开始处理时启动计时;当计时超过第二时间阈值显示守护程序还未结束对刷新请求的处理,则确定显示守护程序对刷新请求的处理时长大于第二时间阈值。
可选的,在本申请的一些实施例中,处理器1980具体用于:当渲染线程出现异常,则重启应用。
可选的,在本申请的一些实施例中,处理器1980还用于:若渲染线程未被调用,则检测应用的消息队列;若检测到消息队列中包含与显示相关的处于等待状态的刷新请求,则将消息队列中处于等待状态的刷新请求调整到消息队列中的顶端,以使处于等待状态的刷新请求被优先处理。
可选的,在本申请的一些实施例中,处理器1980具体用于:当显示守护程序出现异常,则重启显示守护程序。
可选的,在本申请的一些实施例中,处理器1980还用于响应输入的显示界面切换指令,显示界面切换指令用于指示切换显示界面;若检测到显示界面未切换,则确定显示守护程序出现异常,重新启动显示守护程序。
参阅图9,本申请实施例提供的终端的另一实施例包括:
获取模块2001,用于获取应用的刷新请求,刷新请求用于指示刷新应用的显示数据;
传递模块2002,用于通过应用的渲染线程向显示守护程序传递获取模块获取的刷新请求;
第一处理模块2003,用于当渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,则确定渲染线程异常;
第二处理模块2004,用于当显示守护程序对刷新请求的处理时长大于第二时间阈值,则确定显示守护程序异常。
可选地,修复模块2005,用于当渲染线程和显示守护程序中的任意一个出现异常,则采用对应的修复策略修复渲染线程或显示守护程序。
可选地,第一处理模块2003还用于:
在渲染线程向显示守护程序传递刷新请求时启动计时;
将渲染线程向显示守护程序传递刷新请求到渲染线程接收到显示守护程序返回的接收响应的时间确定为通讯时间,接收响应为显示守护程序接收到刷新请求的响应。
可选地,第一处理模块2003还用于:
在渲染线程向显示守护程序传递刷新请求时启动计时;
当计时超过第一时间阈值渲染线程还未接收到接收响应,则确定渲染线程与显示守护程序之间的通讯时间大于第一时间阈值,接收响应为显示守护程序接收到刷新请求的响应。
可选地,第二处理模块2004还用于:
在显示守护程序对刷新请求开始处理时启动计时,在显示守护程序结束对刷新请求的处理时结束计时;
将从启动计时到结束计时之间的时间长度确定为处理时长。
可选地,第二处理模块2004还用于:
在显示守护程序对刷新请求开始处理时启动计时;
当计时超过第二时间阈值显示守护程序还未结束对刷新请求的处理,则确定显示守护程序对刷新请求的处理时长大于第二时间阈值。
可选地,修复模块2005具体用于:
当渲染线程出现异常,则重启应用。
可选地,修复模块2005还具体用于:
若渲染线程未被调用,则检测应用的消息队列;
若检测到消息队列中包含与显示相关的处于等待状态的刷新请求,则将消息队列中处于等待状态的刷新请求调整到消息队列中的顶端,以使处于等待状态的刷新请求被优先处理。
可选地,修复模块2005具体用于:
当显示守护程序出现异常,则重启显示守护程序。
可选地,终端还包括第三处理模块2006,
获取模块2001,还用于响应输入的显示界面切换指令,显示界面切换指令用于指示切换显示界面;
第三处理模块2006,用于若检测到显示界面未切换,则确定显示守护程序出现异常,重新启动显示守护程序。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的刷新显示异常处理的方法以及终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (31)

1.一种刷新显示异常处理的方法,其特征在于,包括:
获取应用的刷新请求,所述刷新请求用于指示刷新所述应用的显示数据;
通过所述应用的渲染线程向显示守护程序传递所述刷新请求,所述显示守护程序用于将所述刷新请求请求刷新的刷新数据更新到屏幕上;
当所述渲染线程与所述显示守护程序之间的通讯时间大于第一时间阈值,则确定所述渲染线程异常;
当所述显示守护程序对所述刷新请求的处理时长大于第二时间阈值,则确定所述显示守护程序异常。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述渲染线程和所述显示守护程序中的任意一个出现异常,则采用对应的修复策略修复所述渲染线程或所述显示守护程序。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述渲染线程向所述显示守护程序传递所述刷新请求时启动计时;
将所述渲染线程向所述显示守护程序传递所述刷新请求到所述渲染线程接收到所述显示守护程序返回的接收响应的时间确定为所述通讯时间,所述接收响应为所述显示守护程序接收到所述刷新请求的响应。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述渲染线程向所述显示守护程序传递所述刷新请求时启动计时;
当计时超过所述第一时间阈值所述渲染线程还未接收到接收响应,则确定所述渲染线程与所述显示守护程序之间的通讯时间大于第一时间阈值,所述接收响应为所述显示守护程序接收到所述刷新请求的响应。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述显示守护程序对所述刷新请求开始处理时启动计时,在所述显示守护程序结束对所述刷新请求的处理时结束计时;
将从所述启动计时到所述结束计时之间的时间长度确定为所述处理时长。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述显示守护程序对所述刷新请求开始处理时启动计时;
当计时超过所述第二时间阈值所述显示守护程序还未结束对所述刷新请求的处理,则确定所述显示守护程序对所述刷新请求的处理时长大于第二时间阈值。
7.根据权利要求2所述的方法,其特征在于,所述当所述渲染线程和所述显示守护程序中的任意一个出现异常,则采用对应的修复策略修复所述渲染线程或所述显示守护程序,包括:
当所述渲染线程出现异常,则重启所述应用。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述渲染线程未被调用,则检测所述应用的消息队列;
若检测到所述消息队列中包含与显示相关的处于等待状态的刷新请求,则将所述消息队列中所述处于等待状态的刷新请求调整到所述消息队列中的顶端,以使所述处于等待状态的刷新请求被优先处理。
9.根据权利要求2、7或8所述的方法,其特征在于,所述当所述渲染线程和所述显示守护程序中的任意一个出现异常,则采用对应的修复策略修复所述渲染线程或所述显示守护程序,包括:
当所述显示守护程序出现异常,则重启所述显示守护程序。
10.根据权利要求1或2所述的方法,其特征在于,在获取所述应用的刷新请求之后,所述方法还包括:
响应输入的显示界面切换指令,所述显示界面切换指令用于指示切换显示界面;
若检测到显示界面未切换,则确定所述显示守护程序出现异常,重新启动所述显示守护程序。
11.一种终端,其特征在于,包括:
获取模块,用于获取应用的刷新请求,所述刷新请求用于指示刷新所述应用的显示数据;
传递模块,用于通过所述应用的渲染线程向显示守护程序传递所述获取模块获取的刷新请求,所述显示守护程序用于将所述刷新请求请求刷新的刷新数据更新到屏幕上;
第一处理模块,用于当所述渲染线程与所述显示守护程序之间的通讯时间大于第一时间阈值,则确定所述渲染线程异常;
第二处理模块,用于当所述显示守护程序对所述刷新请求的处理时长大于第二时间阈值,则确定所述显示守护程序异常。
12.根据权利要求11所述的终端,其特征在于,
修复模块,用于当所述渲染线程和所述显示守护程序中的任意一个出现异常,则采用对应的修复策略修复所述渲染线程或所述显示守护程序。
13.根据权利要求11或12所述的终端,其特征在于,
所述第一处理模块还用于:
在所述渲染线程向所述显示守护程序传递所述刷新请求时启动计时;
将所述渲染线程向所述显示守护程序传递所述刷新请求到所述渲染线程接收到所述显示守护程序返回的接收响应的时间确定为所述通讯时间,所述接收响应为所述显示守护程序接收到所述刷新请求的响应。
14.根据权利要求11或12所述的终端,其特征在于,
所述第一处理模块还用于:
在所述渲染线程向所述显示守护程序传递所述刷新请求时启动计时;
当计时超过所述第一时间阈值所述渲染线程还未接收到接收响应,则确定所述渲染线程与所述显示守护程序之间的通讯时间大于第一时间阈值,所述接收响应为所述显示守护程序接收到所述刷新请求的响应。
15.根据权利要求11或12所述的终端,其特征在于,
所述第二处理模块还用于:
在所述显示守护程序对所述刷新请求开始处理时启动计时,在所述显示守护程序结束对所述刷新请求的处理时结束计时;
将从所述启动计时到所述结束计时之间的时间长度确定为所述处理时长。
16.根据权利要求11或12所述的终端,其特征在于,
所述第二处理模块还用于:
在所述显示守护程序对所述刷新请求开始处理时启动计时;
当计时超过所述第二时间阈值所述显示守护程序还未结束对所述刷新请求的处理,则确定所述显示守护程序对所述刷新请求的处理时长大于第二时间阈值。
17.根据权利要求12所述的终端,其特征在于,
所述修复模块具体用于:
当所述渲染线程出现异常,则重启所述应用。
18.根据权利要求17所述的终端,其特征在于,
所述修复模块还具体用于:
若所述渲染线程未被调用,则检测所述应用的消息队列;
若检测到所述消息队列中包含与显示相关的处于等待状态的刷新请求,则将所述消息队列中所述处于等待状态的刷新请求调整到所述消息队列中的顶端,以使所述处于等待状态的刷新请求被优先处理。
19.根据权利要求12、17或18所述的终端,其特征在于,
所述修复模块具体用于:
当所述显示守护程序出现异常,则重启所述显示守护程序。
20.根据权利要求11或12所述的终端,其特征在于,所述终端还包括第三处理模块,
所述获取模块,还用于响应输入的显示界面切换指令,所述显示界面切换指令用于指示切换显示界面;
所述第三处理模块,用于若检测到显示界面未切换,则确定所述显示守护程序出现异常,重新启动所述显示守护程序。
21.一种终端,其特征在于,包括:
触摸屏,其中,所述触摸屏包括触敏表面和显示器;
一个或多个处理器;
存储器;
多个应用程序,以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述终端执行时,使得所述终端执行以下步骤:
获取应用的刷新请求,所述刷新请求用于指示刷新所述应用的显示数据;
通过所述应用的渲染线程向显示守护程序传递所述刷新请求,所述显示守护程序用于将所述刷新请求请求刷新的刷新数据更新到屏幕上;
当所述渲染线程与所述显示守护程序之间的通讯时间大于第一时间阈值,则确定所述渲染线程异常;
当所述显示守护程序对所述刷新请求的处理时长大于第二时间阈值,则确定所述显示守护程序异常。
22.根据权利要求21所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端还执行以下步骤:
当所述渲染线程和所述显示守护程序中的任意一个出现异常,则采用对应的修复策略修复所述渲染线程或所述显示守护程序。
23.根据权利要求21或22所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端还执行以下步骤:
在所述渲染线程向所述显示守护程序传递所述刷新请求时启动计时;
将所述渲染线程向所述显示守护程序传递所述刷新请求到所述渲染线程接收到所述显示守护程序返回的接收响应的时间确定为所述通讯时间,所述接收响应为所述显示守护程序接收到所述刷新请求的响应。
24.根据权利要求21或22所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端还执行以下步骤:
在所述渲染线程向所述显示守护程序传递所述刷新请求时启动计时;
当计时超过所述第一时间阈值所述渲染线程还未接收到接收响应,则确定所述渲染线程与所述显示守护程序之间的通讯时间大于第一时间阈值,所述接收响应为所述显示守护程序接收到所述刷新请求的响应。
25.根据权利要求21或22所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端还执行以下步骤:
在所述显示守护程序对所述刷新请求开始处理时启动计时,在所述显示守护程序结束对所述刷新请求的处理时结束计时;
将从所述启动计时到所述结束计时之间的时间长度确定为所述处理时长。
26.根据权利要求21或22所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端还执行以下步骤:
在所述显示守护程序对所述刷新请求开始处理时启动计时;
当计时超过所述第二时间阈值所述显示守护程序还未结束对所述刷新请求的处理,则确定所述显示守护程序对所述刷新请求的处理时长大于第二时间阈值。
27.根据权利要求22所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端具体执行以下步骤:
当所述渲染线程出现异常,则重启所述应用。
28.根据权利要求27所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端还具体执行以下步骤:
若所述渲染线程未被调用,则检测所述应用的消息队列;
若检测到所述消息队列中包含与显示相关的处于等待状态的刷新请求,则将所述消息队列中所述处于等待状态的刷新请求调整到所述消息队列中的顶端,以使所述处于等待状态的刷新请求被优先处理。
29.根据权利要求22、27或28所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端具体执行以下步骤:
当所述显示守护程序出现异常,则重启所述显示守护程序。
30.根据权利要求21或22所述的终端,其特征在于,当所述指令被所述终端执行时,使得所述终端还执行以下步骤:
在获取所述应用的刷新请求之后,响应输入的显示界面切换指令,所述显示界面切换指令用于指示切换显示界面;
若检测到显示界面未切换,则确定所述显示守护程序出现异常,重新启动所述显示守护程序。
31.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在终端上运行时,使得所述终端执行如权利要求1-10中任一项所述的方法。
CN201780094769.6A 2017-10-09 2017-10-15 一种刷新显示异常处理的方法及终端 Active CN111095221B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2017109315161 2017-10-09
CN201710931516 2017-10-09
PCT/CN2017/106229 WO2019071626A1 (zh) 2017-10-09 2017-10-15 一种刷新显示异常处理的方法及终端

Publications (2)

Publication Number Publication Date
CN111095221A CN111095221A (zh) 2020-05-01
CN111095221B true CN111095221B (zh) 2023-11-03

Family

ID=66101233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780094769.6A Active CN111095221B (zh) 2017-10-09 2017-10-15 一种刷新显示异常处理的方法及终端

Country Status (4)

Country Link
US (1) US11151017B2 (zh)
EP (1) EP3663925B1 (zh)
CN (1) CN111095221B (zh)
WO (1) WO2019071626A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112711519B (zh) * 2019-10-25 2023-03-14 腾讯科技(深圳)有限公司 画面流畅度检测方法、装置、存储介质和计算机设备
CN110928661B (zh) * 2019-11-22 2023-06-16 北京浪潮数据技术有限公司 一种线程迁移方法、装置、设备及可读存储介质
CN111159042A (zh) * 2019-12-31 2020-05-15 可牛网络技术(北京)有限公司 一种流畅度测试方法、装置及电子设备
CN113448827A (zh) * 2020-03-26 2021-09-28 北京沃东天骏信息技术有限公司 一种测试数据的处理方法和装置
CN112380540A (zh) * 2020-11-13 2021-02-19 武汉虹旭信息技术有限责任公司 Android应用安全检测方法及装置
CN113138883B (zh) * 2021-05-14 2024-02-02 北京字节跳动网络技术有限公司 消息处理方法、装置、存储介质及电子设备
CN117130766B (zh) * 2023-01-17 2024-06-07 荣耀终端有限公司 一种线程处理方法及电子设备
CN115878065B (zh) * 2023-02-16 2023-05-23 青岛意想意创技术发展有限公司 互动显示单元构成的互动系统的控制方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314471B1 (en) * 1998-11-13 2001-11-06 Cray Inc. Techniques for an interrupt free operating system
JP2011034208A (ja) * 2009-07-30 2011-02-17 Hitachi Ltd 異常検出方法、装置、及びプログラム
CN103412812A (zh) * 2013-08-23 2013-11-27 北京奇虎科技有限公司 浏览器运行状态监测方法及装置
US8881111B1 (en) * 2013-09-17 2014-11-04 Xamarin Inc. Testing user interface responsiveness for mobile applications
CN104615543A (zh) * 2015-02-12 2015-05-13 腾讯科技(深圳)有限公司 一种窗口程序异常响应的检测方法及装置
CN105389258A (zh) * 2015-12-10 2016-03-09 腾讯科技(深圳)有限公司 一种程序检测方法及装置
EP3056983A1 (en) * 2013-11-06 2016-08-17 Huawei Device Co., Ltd. Display frame generation method and terminal device
CN106021358A (zh) * 2016-05-10 2016-10-12 深圳云之家网络有限公司 一种异常信息记录方法及系统
CN106681913A (zh) * 2016-12-08 2017-05-17 武汉斗鱼网络科技有限公司 一种应用卡顿定位系统及方法
WO2017156676A1 (zh) * 2016-03-14 2017-09-21 华为技术有限公司 一种针对应用的处理方法、装置及智能终端
CN107220019A (zh) * 2017-05-15 2017-09-29 努比亚技术有限公司 一种基于动态vsync信号的渲染方法、移动终端及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002342046A (ja) * 2001-03-20 2002-11-29 Oce Technologies Bv 印刷キューを管理する方法およびプリンタ
US7310751B2 (en) * 2004-02-20 2007-12-18 Hewlett-Packard Development Company, L.P. Timeout event trigger generation
US20060200450A1 (en) * 2005-03-04 2006-09-07 Microsoft Corporation Monitoring health of actively executing computer applications
US8572573B2 (en) * 2012-03-09 2013-10-29 Nvidia Corporation Methods and apparatus for interactive debugging on a non-preemptible graphics processing unit
US9412067B2 (en) * 2012-09-05 2016-08-09 Numenta, Inc. Anomaly detection in spatial and temporal memory system
CN104423996B (zh) 2013-09-04 2019-02-01 腾讯科技(深圳)有限公司 视图刷新方法和装置
US9658747B2 (en) * 2013-10-01 2017-05-23 Microsoft Technology Licensing, Llc Virtual tabs supporting web content suspension
EP3063674B1 (en) * 2013-11-01 2019-06-19 Kapow Technologies A/S Determining web page processing state
CN104331357B (zh) * 2014-10-10 2018-07-10 北京金山安全软件有限公司 应用程序异常的检测方法、装置和移动终端
US10320941B2 (en) * 2015-07-30 2019-06-11 Nasdaq, Inc. Server-side caching for web user interfaces
US20170289000A1 (en) * 2016-03-31 2017-10-05 Qualcomm Incorporated Systems and methods for controlling processing performance

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314471B1 (en) * 1998-11-13 2001-11-06 Cray Inc. Techniques for an interrupt free operating system
JP2011034208A (ja) * 2009-07-30 2011-02-17 Hitachi Ltd 異常検出方法、装置、及びプログラム
CN103412812A (zh) * 2013-08-23 2013-11-27 北京奇虎科技有限公司 浏览器运行状态监测方法及装置
US8881111B1 (en) * 2013-09-17 2014-11-04 Xamarin Inc. Testing user interface responsiveness for mobile applications
EP3056983A1 (en) * 2013-11-06 2016-08-17 Huawei Device Co., Ltd. Display frame generation method and terminal device
CN104615543A (zh) * 2015-02-12 2015-05-13 腾讯科技(深圳)有限公司 一种窗口程序异常响应的检测方法及装置
CN105389258A (zh) * 2015-12-10 2016-03-09 腾讯科技(深圳)有限公司 一种程序检测方法及装置
WO2017156676A1 (zh) * 2016-03-14 2017-09-21 华为技术有限公司 一种针对应用的处理方法、装置及智能终端
CN106021358A (zh) * 2016-05-10 2016-10-12 深圳云之家网络有限公司 一种异常信息记录方法及系统
CN106681913A (zh) * 2016-12-08 2017-05-17 武汉斗鱼网络科技有限公司 一种应用卡顿定位系统及方法
CN107220019A (zh) * 2017-05-15 2017-09-29 努比亚技术有限公司 一种基于动态vsync信号的渲染方法、移动终端及存储介质

Also Published As

Publication number Publication date
EP3663925A1 (en) 2020-06-10
WO2019071626A1 (zh) 2019-04-18
US11151017B2 (en) 2021-10-19
CN111095221A (zh) 2020-05-01
EP3663925A4 (en) 2020-09-23
US20200242004A1 (en) 2020-07-30
EP3663925B1 (en) 2021-12-01

Similar Documents

Publication Publication Date Title
CN111095221B (zh) 一种刷新显示异常处理的方法及终端
US10732696B2 (en) Method and apparatus for wake-up control of intelligent terminal
CN106686396B (zh) 一种切换直播间的方法和系统
CN108062190B (zh) 一种应用运行状态控制方法及移动终端
WO2016150331A1 (zh) 一种运行游戏客户端的方法和装置
EP3306865A1 (en) Communication message sending method and device
WO2019080929A1 (zh) 消息提示方法、移动终端
WO2018219104A1 (zh) 省电控制方法及相关产品
CN111866433B (zh) 视频源切换方法、播放方法、装置、设备和存储介质
KR20170129197A (ko) 메시지 업데이팅 방법, 장치 및 단말
US20170318061A1 (en) Method, device, and system for managing information recommendation
CN108334345B (zh) 应用程序处理方法、装置、可读存储介质和移动终端
CN106406924B (zh) 应用程序启动和退出画面的控制方法、装置及移动终端
CN108345474A (zh) 应用程序的启动方法、启动装置及移动终端
CN106775680A (zh) 悬浮通知的处理方法、装置和移动终端
CN110597437A (zh) 一种截屏方法及终端设备
WO2018018704A1 (zh) 一种应用程序冻结方法及终端设备
CN109656431A (zh) 信息显示方法、装置及存储介质
CN107193551B (zh) 一种生成图像帧的方法和装置
CN107688498B (zh) 应用程序处理方法和装置、计算机设备、存储介质
US20180260847A1 (en) Information display method, apparatus, and system
CN108536540B (zh) 桌面图标的鼠标消息获取方法及装置
CN106681845B (zh) 一种管理通讯消息的方法和装置
CN110908787A (zh) 一种应用程序处理方法及电子设备
CN106033358B (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