WO2020082354A1 - 一种系统状态检测方法、系统状态装置及终端设备 - Google Patents

一种系统状态检测方法、系统状态装置及终端设备 Download PDF

Info

Publication number
WO2020082354A1
WO2020082354A1 PCT/CN2018/112171 CN2018112171W WO2020082354A1 WO 2020082354 A1 WO2020082354 A1 WO 2020082354A1 CN 2018112171 W CN2018112171 W CN 2018112171W WO 2020082354 A1 WO2020082354 A1 WO 2020082354A1
Authority
WO
WIPO (PCT)
Prior art keywords
thread
state
blocked
sub
inputreader
Prior art date
Application number
PCT/CN2018/112171
Other languages
English (en)
French (fr)
Inventor
郑健平
Original Assignee
深圳市欢太科技有限公司
Oppo广东移动通信有限公司
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 深圳市欢太科技有限公司, Oppo广东移动通信有限公司 filed Critical 深圳市欢太科技有限公司
Priority to CN201880097460.7A priority Critical patent/CN112673354B/zh
Priority to PCT/CN2018/112171 priority patent/WO2020082354A1/zh
Publication of WO2020082354A1 publication Critical patent/WO2020082354A1/zh

Links

Images

Classifications

    • 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

Definitions

  • the present application belongs to the field of electronic technology, and particularly relates to a system state detection method, a system state detection device, a terminal device, and a computer-readable storage medium.
  • the system state is detected by the watchdog subthread under the system process, and the watchdog subthread is based on the virtual machine running in the terminal device. If the running state of the virtual machine code is in a blocked state, the watchdog sub-thread cannot be used.
  • the present application provides a system state detection method, system state detection device, terminal device, and computer-readable storage medium, which can detect the system state of the terminal device when the running state of the virtual machine code in the terminal device is in a blocked state Whether it is stuck.
  • the first aspect of the present application provides a system state detection method, including:
  • the above preset process does not go through the virtual machine interpretation.
  • the second aspect of the present application provides a system status detection device, including:
  • the thread state detection module is used to detect whether the thread state of the inputreader sub-thread in the main thread under the above system process and / or the input under the above system process is in a blocked state through a preset process outside the system process. Let the process not be explained by the virtual machine;
  • the system state determination module is configured to execute, through the preset process, if the thread state of the main thread and / or the sub-thread of the input reader is a blocked state, determine that the system is in a stuck state.
  • a third aspect of the present application provides a terminal device, including a memory, a processor, and a computer program stored in the memory and executable on the processor.
  • the processor executes the computer program to implement the method of the first aspect. A step of.
  • a fourth aspect of the present application provides a computer-readable storage medium.
  • the computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the method of the first aspect described above are implemented.
  • a fifth aspect of the present application provides a computer program product.
  • the computer program product includes a computer program.
  • the computer program is executed by one or more processors, the steps of the method of the first aspect described above are implemented.
  • FIG. 1 is a schematic diagram of an implementation process of a system state detection method provided in Embodiment 1 of the present application;
  • FIG. 2 is a schematic diagram of an implementation process of another system state detection method provided in Embodiment 1 of the present application;
  • FIG. 3 is a schematic diagram of an implementation process of yet another system state detection method provided in Embodiment 2 of the present application;
  • step S301 is a schematic flowchart of an implementation method of step S301 provided in Embodiment 2 of the present application;
  • FIG. 5 is a schematic diagram of an execution process of a system state detection method provided in Embodiment 2 of the present application.
  • FIG. 6 is a schematic structural diagram of a system status detection device provided in Embodiment 3 of the present application.
  • FIG. 7 is a schematic structural diagram of a terminal device provided in Embodiment 4 of the present application.
  • the system state detection method provided in the embodiment of the present application is applicable to a terminal device.
  • the terminal device includes but is not limited to: a smart phone, a palmtop computer, a desktop computer, a cloud server, a notebook, and the like.
  • the system state detection method is performed by a preset process other than a system process, where the preset process is not interpreted by a virtual machine.
  • the application program developed based on the Java language must be interpreted by the virtual machine when running. Therefore, for the terminal device of the Android operating system, the code corresponding to the above-mentioned preset process can be based on C Language, C ++ or script development, so that the preset process does not need to be interpreted by the virtual machine, and can be directly translated into machine code.
  • the method for detecting the system status in the first embodiment of the present application includes:
  • step S101 it is detected whether the thread state of the main thread under the above system process and / or the input acquisition sub-thread under the above system process is in a blocked state;
  • the main thread under the system process is mainly responsible for message processing, and the input acquisition sub-thread under the system process is mainly responsible for responding to user instructions. If the thread state of the main thread or inputreader sub-thread is blocked, then the terminal device The system will be stuck, that is, when the user clicks the screen or presses the button, the terminal device does not respond. Therefore, in this embodiment of the present application, the thread state of the main thread and / or the inputreader sub-thread under the system process can be used to determine whether the system is stuck.
  • this step S101 includes three parallel situations: namely, the above-mentioned preset process may only detect whether the thread state of the main thread under the system process is in a blocked state; or, may only detect the inputreader sub under the system process Whether the thread state of the thread is blocked; or, it can detect whether the thread state of the main thread under the system process is blocked and whether the thread state of the inputreader sub-thread under the system process is blocked.
  • the step S101 may be: the preset process detects whether the thread states of the main thread and the inputreader sub-thread are both blocked. .
  • this step S101 may specifically be: when the preset process detects a certain time, whether the thread state of the main thread and / or the inputreader sub-thread is a blocked state, for example, the preset process detects the current Whether the main thread is in a blocked state at the moment, and / or (skilled persons in the art should know that “and / or” and “and / or” in the present application are different expressions with the same meaning) to detect the inputreader sub-thread at the current moment Whether the thread status is blocked; or, step S101 may be specifically: the above-mentioned preset process detects a thread of the above-mentioned main thread and / or the above-mentioned inputreader sub-thread within a certain period of time (such as 9: 00-9: 02) Whether the state is always blocked, for example, as shown in step S201 in FIG.
  • a certain period of time such as 9: 00-9: 02
  • the above-mentioned preset process detects whether the main thread is always in the blocked state at the current time and within a preset time period after the current time, and / or, Detect whether the thread state is always blocked at the current time of the inputreader sub-thread and within the preset time period after the current time.
  • the system state detection method shown in Figure 1 is a system-state detecting method 2 shown in the drawings.
  • step S102 if the thread state of the main thread and / or the sub-thread of the input reader is blocked, it is determined that the system is stuck;
  • step S101 if the detection result of the above step S101 is positive, it is determined that the system is stuck.
  • step S201 if the detection result of step S201 is affirmative, that is, if the thread state of the main thread has been blocked at the current time and a preset time period after the current time, and / or, the inputreader sub-thread The thread state is always in the blocked state at the current time and within a preset time period after the current time, and it is determined that the system is stuck.
  • this step S102 may detect that the thread state of the main thread and / or the inputreader sub-thread is blocked In the state, it is further detected whether the thread state of the watchdog sub-thread under the system process is in the blocked state, and if so, it is determined that the system is stuck.
  • the system state detection methods shown in FIGS. 1 and 2 each include three parallel technical solutions.
  • the system state detection method shown in FIG. 2 includes the following three parallel
  • the technical solutions are technical solution A, technical solution B and technical solution C.
  • the technical solution A is: detecting whether the thread state of the main thread has been in the blocked state at the current time and the preset time period after the current time; if the thread state of the main thread is within the current time and the preset time period after the current time Always in a blocked state, it is determined that the system is stuck.
  • the technical solution B is: detecting whether the thread state of the inputreader sub-thread is always in a blocked state at the current time and within a preset duration after the current time; if the thread state of the inputreader sub-thread is within the current time and within the preset duration after the current time Always in a blocked state, it is determined that the system is stuck.
  • the technical solution C is: detecting whether the main thread has been in the blocked state at the current time and within a preset time period after the current time, and detecting the inputreader sub-thread at the current time and within the preset time period after the current time, the thread state Whether it has been in a blocked state; if the thread state of the above main thread has been blocked at the current time and a preset time period after the current time, and the thread state of the above inputreader sub-thread is at the current time and the preset time period after the current time If the system has been in a blocked state, it is determined that the system is in a stuck state (of course, those skilled in the art should know that in order to ensure as much as possible that the system state is obtained through the preset process when the virtual machine code running state is blocked, this
  • the technical solution of the first embodiment of the application may be the technical solution C).
  • the virtual machine code can normally run normally. Therefore, The watchdog sub-thread under the system process can also work normally, so when the main thread and inputreader sub-thread, if the thread status of only one thread is blocked, the terminal device can obtain whether the system status is through the watchdog sub-thread In the stuck state, there is no need to detect whether the system state is stuck in the preset process.
  • the process in order to save the system power consumption of the terminal device and reduce the workload of the processor, the above Suppose that the process can determine that the system is stuck when the thread status of the main thread and the inputreader sub-thread are both blocked, or it can detect that the thread status of the main thread, inputreader sub-thread, and watchdog sub-thread are all at the same time.
  • the system When it is in the blocking state, the system is determined to be stuck; You can also determine that the system is stuck when the thread status of the main thread and inputreader sub-thread are both blocked for a certain period of time; or you can also detect the main thread, inputreader sub-thread and When the thread state of the watchdog sub-thread is blocked for a certain period of time, the system is determined to be stuck, and so on.
  • an operation of detecting whether the thread state of the main thread and / or inputreader sub-thread is in a blocking state, and, when the thread state of the main thread and / or inputreader sub-thread is in a blocking state, determine The operations in which the system is stuck are executed by the preset process. Since the preset process is not interpreted by the virtual machine, when the running state of the virtual machine code in the terminal device is blocked, the preset process can still be It is executed by the terminal device. Therefore, the terminal device can obtain whether the system is in a stuck state through the preset process. Therefore, it solves the technical problem in the prior art that when the running state of the virtual machine code is in the blocked state, it is impossible to determine whether the system state is stuck.
  • the system state detection method in the second embodiment of the present application is also performed by a preset process other than a system process , Where the preset process is not interpreted by the virtual machine during execution.
  • the code corresponding to the preset process may be developed based on C language, C ++, or script, so that the preset process does not need to be interpreted by a virtual machine, and can be directly translated into machine code.
  • the system state detection method in the second embodiment of the present application includes:
  • step S301 it is detected whether the main thread has been in a blocked state at the current time and within a preset time period after the current time, and (the person skilled in the art should know that the "and” and “and” described in this application And “and” are different expressions of the same meaning), to detect whether the inputreader sub-thread has been in the blocked state at the current time and within the preset duration after the current time;
  • this step S301 may be performed by the following steps:
  • the thread status of the main thread and the inputreader sub-thread is detected once every sub-time interval within the preset duration after the current time .
  • the sub-duration is less than the above-mentioned preset duration, and the sub-duration may be a preset fixed value or a random value, which is not limited in this application;
  • this step S301 can also be performed through steps S401-S404 shown in FIG. 4:
  • step S401 it is detected whether the thread state of the main thread at the current moment is a blocked state, and it is detected whether the thread state of the inputreader sub-thread is a blocked state;
  • step S402 if it is detected that the thread states of the main thread and the inputreader sub-thread are both blocked, the thread state of the main thread is continuously detected a preset number of times and the inputreader is continuously detected within a preset duration after the current time The preset number of thread states of the child thread;
  • step S403 it is determined whether the thread states of the continuously detected main thread are all blocked, and it is determined whether the thread states of the continuously detected inputreader sub-threads are all blocked.
  • step S404 if the thread states of the continuously detected main thread are all blocked, and the thread states of the continuously detected inputreader sub-threads are all blocked, it is determined that the thread state of the main thread is at the current time and after the current time Has been in a blocked state for a preset period of time, and the thread state of the inputreader sub-thread has been in a blocked state at the current time and for a preset time period after the current time.
  • step S401 if it is detected that the thread state of the main thread at the current time is not blocked, or if it is detected that the thread state of the inputreader sub-thread at the current time is not blocked, it can be When the time interval is preset, the process returns to step S401.
  • step S403 if the thread states of the main thread that are continuously detected are not all blocked, or if the thread states of the inputreader sub-threads that are continuously detected are not all blocked, the preset time from the current time At intervals, return to step S401.
  • step S302 if the thread state of the main thread is always blocked at the current time and a preset time period after the current time, and the thread state of the inputreader sub-thread is at the current time and the preset time period after the current time Always in a blocked state, it is determined that the system is stuck.
  • step S301 If the detection result of the above step S301 is positive, it is determined that the system is stuck. And if the above preset process determines that the system is stuck, it can perform a restart operation, restart the terminal device, and repair the system.
  • step S401 the preset process executes step S401 to detect whether the thread states of the main thread and the inputreader sub-thread at time T0 are both blocked. Assume that at T0, the thread states of the main thread and the inputreader sub-thread If they are not in the blocked state, then a predetermined time interval (such as 60 seconds), that is, T1, execute step S401 again;
  • step S401 is executed again;
  • the preset process detects that the thread status of the main thread and the inputreader sub-thread are both blocked, and it will continuously detect the thread status of the main thread for a preset number of times within a preset duration after time T2. It will detect the preset number of thread states of the inputreader sub-thread. Assuming that at T3, the preset number of thread states of the main thread is detected and the preset number of thread states of the inputreader sub-thread is detected, step S403 is executed, that is, the pre- Let the process further determine whether each thread state of the continuously detected main thread is blocked, and whether each thread state of the continuously detected inputreader sub-thread is blocked;
  • step S401 is executed again;
  • the preset process detects that the thread status of the main thread and the inputreader sub-thread are both blocked, and it will continuously detect the thread status of the main thread for a preset number of times within a preset duration after time T4.
  • the thread state of the inputreader sub-thread is detected a predetermined number of times.
  • step S403 is executed, which is Let the process further determine whether each thread state of the continuously detected main thread is blocked, and whether each thread state of the continuously detected inputreader sub-thread is blocked;
  • step S302 is executed to make the predetermined process determined The system is currently stuck, and the preset process can perform a restart operation to repair the system.
  • the second embodiment of the present application also provides a method for determining the thread state of a thread, that is, a thread can be set to correspond to a stack when the thread is running, and the stack holds the function currently running by the thread, if the stack is found
  • the saved function is a wait function (for example, for Android systems, the wait function can be a futexwait function) to determine whether the thread is blocked.
  • step S401 may include:
  • the thread status of the main thread at the current moment is determined to be blocked State, and the thread state of the inputreader sub-thread at the current moment is also blocked.
  • the technical solution provided in the second embodiment of the present application defines that the thread state of the preset process detects that the main thread has been blocked for a period of time, and detects the thread of the inputreader sub-thread Only when the state has been blocked for a period of time, can the system be determined to be stuck. This is because when only one thread state of the main thread and inputreader sub-thread is blocked, or when the thread state of the main thread and inputreader sub-thread is only unblocked for a short time, usually, the watchdog sub-thread under the system process is It can work normally. The watchdog sub-thread can detect whether the system is stuck.
  • Embodiment 2 of the present application defines the above preset process Only when the thread state of the main thread has been blocked for a period of time and the thread state of the inputreader sub-thread has been blocked for a period of time will the system be determined to be stuck.
  • the second embodiment of the present application is the same as the first embodiment, which can solve the technical problem in the prior art that when the running state of the virtual machine code is in the blocked state, it is impossible to determine whether the system state is stuck.
  • Embodiment 3 of the present application provides a system state detection device.
  • the system state detection device 500 includes:
  • the thread state detection module 501 is used to detect whether the thread state of the inputreader sub-thread in the main thread under the system process and / or the input under the system process is in a blocked state through a preset process other than the system process. The default process is not explained by the virtual machine;
  • the system state determination module 502 is configured to execute, through the preset process, if the thread state of the main thread and / or the input reader sub-thread is a blocked state, determine that the system is in a stuck state.
  • the above thread state detection module 501 is specifically used to:
  • the above system state determination module 502 is specifically used to:
  • the above thread state detection module 501 includes:
  • a current state detection unit configured to detect whether the thread state of the main thread at the current moment is a blocked state, and / or to detect whether the thread state of the inputreader sub-thread at the current moment is a blocked state;
  • the continuous state detection unit is used to continuously detect if the thread state of the main thread at the current moment is blocked and / or the thread state of the input reader at the current moment is blocked, within a preset duration after the current moment
  • a continuous state judgment unit used for judging whether the thread states of the above-mentioned main thread that are continuously detected are all blocked, and / or whether the thread states of the above-mentioned inputreader sub-threads continuously detected are all blocked;
  • a thread state detection unit configured to determine that the thread state of the main thread is continuously blocked if the thread state of the main thread continuously detected is blocked, and / or the thread state of the sub thread of the inputreader continuously detected is blocked.
  • the current time and the preset time duration after the current time are always in a blocked state, and / or, the thread state of the inputreader sub-thread is always blocked in the current time and the preset time duration after the current time.
  • the main thread corresponds to a first stack when it is running, and the first stack is used to save the function that the main thread is running,
  • the inputreader sub-thread corresponds to a second stack when running, and the second stack is used to save the function that the inputreader sub-thread is running;
  • the above current state detection unit includes:
  • a function detection subunit configured to detect at the current time whether the function stored in the first stack that the main thread is running is a waiting function, and / or, at the current time, detect the inputreader stored in the second stack Whether the function the thread is running is a waiting function;
  • the current state detection subunit is used if the function stored in the first stack that is running on the main thread is a waiting function, and / or, the function that the sub-thread on the inputreader saved in the second stack is running is a waiting function, Then, it is determined that the thread state of the main thread at the current moment is a blocked state, and / or, the thread state of the inputreader sub-thread at the current moment is a blocked state.
  • the above thread state detection module 501 further includes:
  • the first return unit is used to: if the thread state of the main thread at the current time is not blocked, or the thread state of the inputreader sub-thread at the current time is not blocked, when a preset time interval from the current time, Returning to the current state detection unit to trigger the current state detection unit to perform the detection of whether the thread state of the main thread at the current moment is blocked, and / or to detect whether the thread state of the inputreader sub-thread at the current moment is blocked A step of.
  • the above thread state detection module 501 further includes:
  • the second return unit is configured to: if the thread states of the above-mentioned main thread that are continuously detected are not all blocked, or the thread states of the above-mentioned inputreader sub-threads that are continuously detected are not all blocked, then preset a time interval from the current moment , Return to the current state detection unit to trigger the current state detection unit to perform the detection of whether the thread state of the main thread at the current time is blocked, and / or to detect whether the thread state of the inputreader sub-thread at the current time is Steps in the blocked state.
  • the above thread state detection device 500 further includes:
  • the restart module is used to execute the above-mentioned preset process to execute the restart operation if the system is stuck.
  • the terminal device 6 of this embodiment includes: a processor 60, a memory 61, and a computer program 62 stored in the memory 61 and executable on the processor 60.
  • the processor 60 executes the computer program 62
  • the steps in the above method embodiments are implemented, for example, steps 101 to 102 shown in FIG. 1.
  • the processor 60 executes the computer program 62
  • the functions of the modules / units in the foregoing device embodiments are realized, for example, the functions of the modules 501 to 502 shown in FIG. 6.
  • the computer program 62 may be divided into one or more modules / units.
  • the one or more modules / units are stored in the memory 61 and executed by the processor 60 to complete the application.
  • the one or more modules / units may be a series of computer program instruction segments capable of performing specific functions, and the instruction segments are used to describe the execution process of the computer program 62 in the terminal device 6.
  • the above-mentioned computer program 62 can be divided into a thread state detection module and a system state determination module. The specific functions of each module are as follows:
  • the above preset process does not go through the virtual machine interpretation.
  • the above terminal device may include, but is not limited to, the processor 60 and the memory 61.
  • FIG. 7 is only an example of the terminal device 6 and does not constitute a limitation on the terminal device 6, and may include more or fewer components than the illustration, or a combination of certain components or different components.
  • the above terminal device may further include an input and output device, a network access device, a bus, and the like.
  • the so-called processor 60 may be a central processing unit (Central Processing Unit, CPU), or other general-purpose processors, digital signal processors (Digital Signal Processor, DSP), application specific integrated circuits (Application Specific Integrated Circuit, ASIC), Field-programmable gate array (Field-Programmable Gate Array, FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
  • the above-mentioned memory 61 may be an internal storage unit of the above-mentioned terminal device 6, such as a hard disk or a memory of the terminal device 6.
  • the memory 61 may also be an external storage device of the terminal device 6, for example, a plug-in hard disk equipped on the terminal device 6, a smart memory card (Smart) Media (SMC), a secure digital (SD) card, and a flash memory Card (Flash Card), etc.
  • the memory 61 may include both the internal storage unit of the terminal device 6 and the external storage device.
  • the memory 61 is used to store the computer program and other programs and data required by the terminal device.
  • the above-mentioned memory 61 can also be used to temporarily store data that has been or will be output.
  • each functional unit and module is used as an example for illustration.
  • the above-mentioned functions can be allocated by different functional units
  • Module completion means that the internal structure of the above device is divided into different functional units or modules to complete all or part of the functions described above.
  • the functional units and modules in the embodiment may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above integrated unit may use hardware It can also be implemented in the form of software functional units.
  • the specific names of each functional unit and module are only for the purpose of distinguishing each other, and are not used to limit the protection scope of the present application.
  • the disclosed device and method may be implemented in other ways.
  • the system embodiments described above are only schematic.
  • the above-mentioned division of modules or units is only a division of logical functions.
  • there may be other divisions for example, multiple units or components may be combined Or it can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • the above integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a computer-readable storage medium.
  • the present application can implement all or part of the processes in the methods of the above embodiments, and can also be completed by instructing relevant hardware through a computer program.
  • the above computer program can be stored in a computer-readable storage medium When executed by the processor, the steps of the foregoing method embodiments may be implemented.
  • the above-mentioned computer program includes computer program code, and the above-mentioned computer program code may be in the form of source code, object code, executable file or some intermediate form.
  • the above-mentioned computer-readable storage medium may include: any entity or device capable of carrying the above-mentioned computer program code, recording medium, U disk, removable hard disk, magnetic disk, optical disk, computer-readable memory, read-only memory (ROM, Read-Only Memory ), Random Access Memory (RAM, Random Access Memory), electrical carrier signals, telecommunications signals and software distribution media, etc.
  • ROM Read-Only Memory
  • RAM Random Access Memory
  • electrical carrier signals telecommunications signals and software distribution media, etc.
  • the content contained in the above computer-readable storage medium can be appropriately increased or decreased according to the requirements of legislation and patent practice in jurisdictions.
  • computer-readable storage The medium does not include electrical carrier signals and telecommunications signals.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种系统状态检测方法、系统状态检测装置及终端设备,所述方法包括:通过系统进程之外的预设进程执行:检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;其中,所述预设进程不经过虚拟机解释。本申请可以在当终端设备中虚拟机代码的运行状态处于阻塞状态时,依然能够检测出终端设备的系统状态是否为卡死状态。

Description

一种系统状态检测方法、系统状态装置及终端设备 技术领域
本申请属于电子技术领域,尤其涉及一种系统状态检测方法、系统状态检测装置、终端设备及计算机可读存储介质。
背景技术
目前,对于多数终端设备(比如安卓系统的手机、平板电脑等),系统状态均是由系统进程下的看门狗watchdog子线程检测的,而watchdog子线程是基于终端设备中的虚拟机运行的,如果虚拟机代码的运行状态处于阻塞状态,会导致watchdog子线程无法使用。
发明内容
本申请提供了一种系统状态检测方法、系统状态检测装置、终端设备及计算机可读存储介质,可以在当终端设备中虚拟机代码的运行状态处于阻塞状态时,能够检测出终端设备的系统状态是否为卡死状态。
本申请第一方面提供了一种系统状态检测方法,包括:
通过系统进程之外的预设进程,执行:
检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
其中,上述预设进程不经过虚拟机解释。
本申请第二方面提供了一种系统状态检测装置,包括:
线程状态检测模块,用于通过系统进程之外的预设进程,检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,其中,上述预设进程不经过虚拟机解释;
系统状态确定模块,用于通过上述预设进程,执行若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
本申请第三方面提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面方法的步骤。
本申请第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面方法的步骤。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种系统状态检测方法的实现流程示意图;
图2是本申请实施例一提供的另一种系统状态检测方法的实现流程示意图;
图3是本申请实施例二提供的再一种系统状态检测方法的实现流程示意图;
图4是本申请实施例二提供的步骤S301的一种实现方法的流程示意图;
图5是本申请实施例二提供的一种系统状态检测方法的执行过程示意图;
图6是本申请实施例三提供的一种系统状态检测装置的结构示意图;
图7是本申请实施例四提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
本申请实施例提供的系统状态检测方法适用于终端设备,示例性地,该终端设备包括但不限于:智能手机、掌上电脑、桌上型计算机、云端服务器、笔记本等。
为了说明本申请上述的技术方案,下面通过具体实施例来进行说明。
实施例1
下面对本申请实施例一提供的一种系统状态检测方法进行描述,该系统状态检测方法是由一系统进程之外的预设进程执行的,其中,该预设进程不经过虚拟机解释。对于安卓操作系统的终端设备来说,基于Java语言开发的应用程序在运行时必须要经过虚拟机的解释,因此,对于安卓操作系统的终端设备来说,上述预设进程对应的代码可以基于C语言、C++或者脚本等开发,以使得该预设进程不需要经过虚拟机的解释,可以直接被翻译成机器码。
请参阅附图1,本申请实施例一中的系统状态检测方法包括:
在步骤S101中,检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
对于许多终端设备来说,系统进程下的主线程主要负责消息处理,系统进程下的输入获取inputreader子线程主要负责响应用户指令,若主线程或者inputreader子线程的线程状 态处于阻塞状态,那么终端设备的系统将处于卡死状态,即当用户点击屏幕或者按压按键时,终端设备无反应。因此,本申请实施例可以通过系统进程下的主线程和/或inputreader子线程的线程状态,来判断系统是否处于卡死状态。
然而有时,当系统进程下的主线程和/或inputreader子线程的线程状态为阻塞状态时,终端设备的虚拟机代码的运行状态并非为阻塞状态,虚拟机代码依然能够正常运行,所以系统进程下的watchdog子线程也可以正常检测系统状态,因此,在这种情况下,我们并不需要通过系统进程之外的预设进程来检测系统状态,所以,本申请实施例所提供的技术方案中,可以适当的增加一些判断系统状态是否为卡死状态的条件,以保证是在虚拟机代码运行状态为阻塞状态时才通过该预设进程获取到系统状态。比如,除了检测主线程和/或inputreader子线程的线程状态,还可以检测watchdog子线程的线程状态是否为阻塞状态;或者,当检测到主线程和/或inputreader子线程的线程状态长时间为阻塞状态时,才认为系统为卡死状态,等等。具体详见本实施例的后续描述。
在本申请实施例中,该步骤S101包括三种并列的情况:即上述预设进程可以仅仅检测系统进程下的主线程的线程状态是否处于阻塞状态;或者,可以仅仅检测系统进程下的inputreader子线程的线程状态是否处于阻塞状态;或者,可以检测系统进程下的主线程的线程状态是否为阻塞状态并且检测系统进程下的inputreader子线程的线程状态是否为阻塞状态。为了尽可能保证是在虚拟机代码运行状态为阻塞状态时才通过该预设进程获取到系统状态,该步骤S101可以为:预设进程检测主线程以及inputreader子线程的线程状态是否均为阻塞状态。
在本申请实施例中,该步骤S101可以具体为:上述预设进程检测某一时刻时,上述主线程和/或上述inputreader子线程的线程状态是否为阻塞状态,比如,上述预设进程检测当前时刻上述主线程是否处于阻塞状态,且/或(本领域技术人员应该知晓,本申请所述的“且/或”与“和/或”是相同意思的不同表达)检测当前时刻上述inputreader子线程的线程状态是否为阻塞状态;或者,该步骤S101可以具体为:上述预设进程检测某一时间段内(比如9:00-9:02),上述主线程和/或上述inputreader子线程的线程状态是否一直为阻塞状态,比如,如图2中步骤S201所示,上述预设进程检测主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测在inputreader子线程当前时刻以及当前时刻之后的预设时长内,线程状态是否一直为阻塞状态,本领域技术人员应该知晓,附图1所示的系统状态检测方法是包括附图2所示的系统状态检测方法的。
在步骤S102中,若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
在本申请实施例中,若上述步骤S101的检测结果是肯定的,则确定系统处于卡死状态。 如图2所示,若步骤S201的检测结果是肯定的,即若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
此外,为了尽可能保证是在虚拟机代码运行状态为阻塞状态时才通过该预设进程获取到系统状态,该步骤S102可以在检测到上述主线程和/或上述inputreader子线程的线程状态为阻塞状态时,进一步检测系统进程下的watchdog子线程的线程状态是否阻塞状态,若是,则确定系统为卡死状态。
在本申请实施例中,附图1以及附图2所示的系统状态检测方法,均分别包括三个并列的技术方案,比如,附图2所示的系统状态检测方法,包括以下三个并列的技术方案,分别为技术方案A、技术方案B以及技术方案C。
其中,技术方案A为:检测主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
技术方案B为:检测inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;若上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
技术方案C为:检测主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,并且,检测inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,并且,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态(当然,本领域技术人员应当知晓,为了尽可能保证是在虚拟机代码运行状态为阻塞状态时才通过该预设进程获取到系统状态,本申请实施例一的技术方案可以为该技术方案C)。
在本申请实施例一中,如果系统进程下的主线程和inputreader子线程中,只有一个线程的线程状态为阻塞状态,那么在这种情况下,虚拟机代码通常是能够正常运行的,因此,系统进程下的watchdog子线程也是可以正常工作的,所以,当主线程和inputreader子线程中,如果只有一个线程的线程状态为阻塞状态时,终端设备是可以通过watchdog子线程来获取到系统状态是否为卡死状态,完全没有必要再通过上述预设进程来检测系统状态是否为卡死状态,因此,在本申请实施例中,为了节约终端设备的系统功耗,减轻处理器的工作负担,上述预设进程可以在同时检测到主线程和inputreader子线程的线程状态均为阻塞状态时,才确定系统为卡死状态;或者可以,同时检测到主线程、inputreader子线程以及 watchdog子线程的线程状态均为阻塞状态时,才确定系统为卡死状态;或者也可以,同时检测到主线程和inputreader子线程的线程状态在某一时间段内均为阻塞状态时,才确定系统为卡死状态;或者还可以,同时检测到主线程、inputreader子线程以及watchdog子线程的线程状态在某一时间段内均为阻塞状态时,才确定系统为卡死状态,等等。
此外,在本申请实施例中,当确定系统为卡死状态后,可以通过上述预设进程执行:发出提示信息,以提示用户系统为卡死状态;或者,可以通过上述预设进程直接执行重启操作。
本申请实施例一所提供的技术方案中,检测主线程和/或inputreader子线程的线程状态是否处于阻塞状态的操作,以及,当主线程和/或inputreader子线程的线程状态处于阻塞状态时,确定系统处于卡死状态的操作均是由预设进程执行的,由于该预设进程不经过虚拟机解释,因此,当终端设备中虚拟机代码的运行状态处于阻塞状态时,该预设进程依然可以被终端设备所执行,因此,该终端设备就可以通过该预设进程获取到系统是否处于卡死状态。因此,解决了现有技术中当虚拟机代码的运行状态处于阻塞状态时,无法确定系统状态是否为卡死状态的技术问题。
实施例2
请参下面对本申请实施例二提供的另一种系统状态检测方法进行描述,同实施例一相同,本申请实施例二中的系统状态检测方法也是由一系统进程之外的预设进程执行的,其中,该预设进程在执行时不经过虚拟机解释。对于安卓操作系统的终端设备来说,该预设进程对应的代码可以基于C语言、C++或者脚本等开发,以使得该预设进程不需要经过虚拟机的解释,可以直接被翻译成机器码。请参阅附图3,本申请实施例二中的系统状态检测方法包括:
在步骤S301中,检测主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和(本领域技术人员应该知晓,本申请所述的“和”、“且”以及“并且”是相同意思的不同表达),检测inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;
在本申请实施例中,该步骤S301可以通过以下步骤执行:
首先,检测上述主线程在当前时刻的线程状态是否为阻塞状态,并且,检测上述inputreader子线程的线程状态是否为阻塞状态;
其次,若检测到上述主线程以及上述inputreader子线程的线程状态均为阻塞状态,则在当前时刻之后的预设时长内,每间隔一子时长,就检测一次主线程以及inputreader子线程的线程状态,其中,该子时长小于上述预设时长,该子时长可以为预先设置的固定数值,也可以为一随机数值,本申请对此不作限定;
然后,判断在当前时刻之后的预设时长内,所检测的主线程的线程状态是否均为阻塞状态,并且,判断在当前时刻之后的预设时长内,所检测的inputreader子线程的线程状态是否均为阻塞状态;
最后,若在当前时刻之后的预设时长内,所检测的主线程的线程状态均为阻塞状态,并且,在当前时刻之后的预设时长内,所检测的inputreader子线程的线程状态均为阻塞状态,则确定上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
此外,该步骤S301也可以通过附图4所示的步骤S401-S404执行:
在步骤S401中,检测上述主线程在当前时刻的线程状态是否为阻塞状态,并且,检测上述inputreader子线程的线程状态是否为阻塞状态;
在步骤S402中,若检测到上述主线程以及上述inputreader子线程的线程状态均为阻塞状态,则在当前时刻之后的预设时长内,连续检测主线程的线程状态预设次数,并且连续检测inputreader子线程的线程状态预设次数;
在步骤S403中,判断连续检测的主线程的线程状态是否均为阻塞状态,并且,判断连续检测的inputreader子线程的线程状态是否均为阻塞状态;
在步骤S404中,若连续检测的主线程的线程状态均为阻塞状态,并且,连续检测的inputreader子线程的线程状态均为阻塞状态,则确定上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
此外,在上述步骤S401之后,若检测到上述主线程在当前时刻的线程状态不为阻塞状态,或者,检测到上述inputreader子线程在当前时刻的线程状态不为阻塞状态,则可以在距离当前时刻预设时间间隔时,返回执行步骤S401。
此外,在上述步骤S403之后,若连续检测的上述主线程的线程状态不均为阻塞状态,或者,连续检测的上述inputreader子线程的线程状态不均为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行步骤S401。
在步骤S302中,若上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
若上述步骤S301的检测结果是肯定的,则确定系统处于卡死状态。并且上述预设进程若确定系统处于卡死状态之后,可以执行重启操作,重启终端设备,对系统进行修复。
为了更清楚的描述本申请实施例二附图4所示的技术方案,下面利用附图5进行说明。
如图5所示,在T0时刻,预设进程执行步骤S401,检测主线程以及inputreader子线程在T0时刻的线程状态是否均为阻塞状态,假设在T0时刻,主线程以及inputreader子线程的线程状态不均为阻塞状态,则间隔一预设时间间隔(比如60秒),即T1时刻,再次执行步骤S401;
假设在T1时刻,主线程以及inputreader子线程的线程状态依然不均为阻塞状态,则再次间隔一预设时间间隔,即T2时刻,再次执行步骤S401;
假设在T2时刻,该预设进程检测到主线程以及inputreader子线程的线程状态均为阻塞状态,则会在T2时刻之后的预设时长内,连续检测主线程的线程状态预设次数,同时也会检测inputreader子线程的线程状态预设次数,假设在T3时刻,检测完成主线程的线程状态预设次数,并且检测完成inputreader子线程的线程状态预设次数,则会执行步骤S403,即该预设进程会进一步判断连续检测的主线程的各个线程状态是否均为阻塞状态,以及,连续检测的inputreader子线程的各个线程状态是否均为阻塞状态;
假设在T3时刻,判断出连续检测的主线程的各个线程状态不均为阻塞状态,或者连续检测的inputreader子线程的各个线程状态不均为阻塞状态,则会再次间隔一预设时间间隔,即在T4时刻,再次执行步骤S401;
假设在T4时刻,该预设进程检测到主线程以及inputreader子线程的线程状态均为阻塞状态,则会在T4时刻之后的预设时长内,连续检测主线程的线程状态预设次数,同时也会检测inputreader子线程的线程状态预设次数,假设在T5时刻,检测完成主线程的线程状态预设次数,并且检测完成inputreader子线程的线程状态预设次数,则会执行步骤S403,即该预设进程会进一步判断连续检测的主线程的各个线程状态是否均为阻塞状态,以及,连续检测的inputreader子线程的各个线程状态是否均为阻塞状态;
假设在T5时刻,判断出连续检测的主线程的各个线程状态均为阻塞状态,并且,连续检测的inputreader子线程的各个线程状态均为阻塞状态,则执行步骤S302,以使得该预设进程确定系统当前处于卡死状态,并且该预设进程可执行一重启操作以修复系统。
另外,本申请实施例二还给出了一种判断线程的线程状态的方法,即可以设置线程在运行时对应有一堆栈,该堆栈保存有该线程当前正在运行的函数,若查找到该堆栈中保存的函数为等待函数(比如,对于安卓系统来说,等待函数可以为futexwait函数),来确定该线程是否为阻塞状态。具体地,为了确定主线程以及inputreader子线程是否处于阻塞状态,可以设置该主线程在运行时对应有第一堆栈,该第一堆栈用于保存该主线程正在运行的函数,并且设置该inputreader子线程在运行时对应有第二堆栈,该第二堆栈用于保存该inputreader子线程正在运行的函数;相应地,步骤S401可以包括:
在当前时刻,检测上述第一堆栈中保存的主线程正在运行的函数是否为等待函数,并 且,在当前时刻,检测上述第二堆栈中保存的inputreader子线程正在运行的函数是否为等待函数;
若上述第一堆栈中保存的主线程正在运行的函数为等待函数,并且,上述第二堆栈中保存的inputreader子线程正在运行的函数为等待函数,则确定主线程在当前时刻的线程状态为阻塞状态,且inputreader子线程在当前时刻的线程状态也为阻塞状态。
本申请实施例二所提供的技术方案相比于实施例一来说,限定了预设进程在检测到主线程在一段时间段内的线程状态一直为阻塞状态,且检测到inputreader子线程的线程状态在一段时间段内也一直为阻塞状态时,才会确定系统处于卡死状态。这是由于当主线程以及inputreader子线程只有一个的线程状态为阻塞状态,或者当主线程以及inputreader子线程的线程状态只在短时间内未阻塞状态时,通常情况下,系统进程下的watchdog子线程是可以正常工作的,该watchdog子线程是能够检测到系统是否为卡死状态的,因此,为了节约终端设备的系统功耗,减轻处理器的工作负担,本申请实施例二限定了上述预设进程只有在检测到主线程在一段时间段内的线程状态一直为阻塞状态,且检测到inputreader子线程的线程状态在一段时间段内也一直为阻塞状态时,才会确定系统处于卡死状态。此外,本申请实施例二同实施例一相同,能够解决现有技术中当虚拟机代码的运行状态处于阻塞状态时,无法确定系统状态是否为卡死状态的技术问题。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例3
本申请实施例三提供了一种系统状态检测装置,该系统状态检测装置500包括:
线程状态检测模块501,用于通过系统进程之外的预设进程,检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,其中,上述预设进程不经过虚拟机解释;
系统状态确定模块502,用于通过上述预设进程,执行若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
可选地,上述线程状态检测模块501具体用于:
通过系统进程之外的预设进程,检测上述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测上述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,其中,上述预设进程不经过虚拟机解释;
相应地,上述系统状态确定模块502具体用于:
通过上述预设进程,执行若上述主线程的线程状态在当前时刻以及当前时刻之后的预 设时长内一直处于阻塞状态,和/或,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
可选地,上述线程状态检测模块501包括:
当前状态检测单元,用于检测上述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测上述inputreader子线程在当前时刻的线程状态是否为阻塞状态;
状态连续检测单元,用于若上述主线程在当前时刻的线程状态为阻塞状态,和/或,上述inputreader在当前时刻的线程状态为阻塞状态,则在当前时刻之后的预设时长内,连续检测上述主线程的线程状态预设次数,和/或,在当前时刻之后的预设时长内,连续检测上述inputreader子线程的线程状态预设次数;
连续状态判断单元,用于判断连续检测的上述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的上述inputreader子线程的线程状态是否均为阻塞状态;
线程状态检测单元,用于若连续检测的上述主线程的线程状态均为阻塞状态,和/或,连续检测的上述inputreader子线程的线程状态均为阻塞状态,则确定上述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,上述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
可选地,上述主线程在运行时对应有第一堆栈,上述第一堆栈用于保存上述主线程正在运行的函数,
和/或,
上述inputreader子线程在运行时对应有第二堆栈,上述第二堆栈用于保存上述inputreader子线程正在运行的函数;
相应地,上述当前状态检测单元包括:
函数检测子单元,用于在当前时刻,检测上述第一堆栈中保存的上述主线程正在运行的函数是否为等待函数,和/或,在当前时刻,检测上述第二堆栈中保存的上述inputreader子线程正在运行的函数是否为等待函数;
当前状态检测子单元,用于若上述第一堆栈中保存的上述主线程正在运行的函数为等待函数,和/或,上述第二堆栈中保存的上述inputreader子线程正在运行的函数为等待函数,则确定上述主线程在当前时刻的线程状态为阻塞状态,和/或,上述inputreader子线程在当前时刻的线程状态为阻塞状态。
可选地,上述线程状态检测模块501还包括:
第一返回单元,用于若上述主线程在当前时刻的线程状态不为阻塞状态,或者,上述inputreader子线程在当前时刻的线程状态不为阻塞状态,则在距离当前时刻预设时间间隔 时,返回上述当前状态检测单元,以触发上述当前状态检测单元执行上述检测上述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测上述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤。
可选地,上述线程状态检测模块501还包括:
第二返回单元,用于若连续检测的上述主线程的线程状态不均为阻塞状态,或者,连续检测的上述inputreader子线程的线程状态不均为阻塞状态,则在距离当前时刻预设时间间隔时,返回上述当前状态检测单元,以触发上述当前状态检测单元执行上述检测上述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测上述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤。
可选地,上述线程状态检测装置500还包括:
重启模块,用于通过上述预设进程执行若系统处于卡死状态,则执行重启操作。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例4
图7是本申请实施例四提供的终端设备的示意图。如图7所示,该实施例的终端设备6包括:处理器60、存储器61以及存储在上述存储器61中并可在上述处理器60上运行的计算机程序62。上述处理器60执行上述计算机程序62时实现上述各个方法实施例中的步骤,例如图1所示的步骤101至102。或者,上述处理器60执行上述计算机程序62时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块501至502的功能。
示例性的,上述计算机程序62可以被分割成一个或多个模块/单元,上述一个或者多个模块/单元被存储在上述存储器61中,并由上述处理器60执行,以完成本申请。上述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序62在上述终端设备6中的执行过程。例如,上述计算机程序62可以被分割成线程状态检测模块以及系统状态确定模块,各模块具体功能如下:
通过系统进程之外的预设进程执行:
检测上述系统进程下的主线程和/或上述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
若上述主线程和/或上述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
其中,上述预设进程不经过虚拟机解释。
上述终端设备可包括,但不仅限于,处理器60、存储器61。本领域技术人员可以理解,图7仅仅是终端设备6的示例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如上述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器61可以是上述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。上述存储器61也可以是上述终端设备6的外部存储设备,例如上述终端设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,上述存储器61还可以既包括上述终端设备6的内部存储单元也包括外部存储设备。上述存储器61用于存储上述计算机程序以及上述终端设备所需的其它程序和数据。上述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员 可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (20)

  1. 一种系统状态检测方法,其特征在于,包括:
    通过系统进程之外的预设进程执行:
    检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
    若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
    其中,所述预设进程不经过虚拟机解释。
  2. 如权利要求1所述的系统状态检测方法,其特征在于,所述若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态,包括:
    若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则:
    检测所述系统进程下的看门狗watchdog子线程的线程状态是否处于阻塞状态;
    若所述watchdog子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
  3. 如权利要求1所述的系统状态检测方法,其特征在于,所述检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,包括:
    检测所述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测所述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;
    相应地,所述若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态,包括:
    若所述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,所述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
  4. 如权利要求3所述的系统状态检测方法,其特征在于,所述检测所述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测所述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,包括:
    检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态;
    若所述主线程在当前时刻的线程状态为阻塞状态,和/或,所述inputreader在当前时刻的线程状态为阻塞状态,则:
    在当前时刻之后的预设时长内,连续检测所述主线程的线程状态预设次数,和/或,在当前时刻之后的预设时长内,连续检测所述inputreader子线程的线程状态预设次数;
    判断连续检测的所述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的所述inputreader子线程的线程状态是否均为阻塞状态;
    若连续检测的所述主线程的线程状态均为阻塞状态,和/或,连续检测的所述inputreader子线程的线程状态均为阻塞状态,则确定所述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,所述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
  5. 如权利要求4所述的系统状态检测方法,其特征在于,所述主线程在运行时对应有第一堆栈,所述第一堆栈用于保存所述主线程正在运行的函数,
    和/或,
    所述inputreader子线程在运行时对应有第二堆栈,所述第二堆栈用于保存所述inputreader子线程正在运行的函数;
    相应地,所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态,包括:
    在当前时刻,检测所述第一堆栈中保存的所述主线程正在运行的函数是否为等待函数,和/或,在当前时刻,检测所述第二堆栈中保存的所述inputreader子线程正在运行的函数是否为等待函数;
    若所述第一堆栈中保存的所述主线程正在运行的函数为等待函数,和/或,所述第二堆栈中保存的所述inputreader子线程正在运行的函数为等待函数,则确定所述主线程在当前时刻的线程状态为阻塞状态,和/或,所述inputreader子线程在当前时刻的线程状态为阻塞状态。
  6. 如权利要求4所述的系统状态检测方法,其特征在于,在所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤之后,还包括:
    若所述主线程在当前时刻的线程状态不为阻塞状态,或者,所述inputreader子线程在当前时刻的线程状态不为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤以及后续步骤。
  7. 如权利要求4所述的系统状态检测方法,其特征在于,在所述判断连续检测的所述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的所述inputreader子线程的线程状态是否均为阻塞状态的步骤之后,还包括:
    若连续检测的所述主线程的线程状态不均为阻塞状态,或者,连续检测的所述inputreader子线程的线程状态不均为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤以及后续步骤。
  8. 如权利要求1至7中任一项所述的系统状态检测方法,其特征在于,所述系统状态检测方法还包括:
    通过所述预设进程执行:
    发出提示信息,所述提示信息用于向用户指示系统状态为卡死状态。
  9. 如权利要求1至7中任一项所述的系统状态检测方法,其特征在于,所述系统状态检测方法还包括:
    通过所述预设进程执行:
    若系统处于卡死状态,则执行重启操作。
  10. 一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
    通过系统进程之外的预设进程执行:
    检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态;
    若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态;
    其中,所述预设进程不经过虚拟机解释。
  11. 如权利要求10所述的终端设备,其特征在于,所述若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态,包括:
    若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则:
    检测所述系统进程下的看门狗watchdog子线程的线程状态是否处于阻塞状态;
    若所述watchdog子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
  12. 如权利要求10所述的终端设备,其特征在于,所述检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,包括:
    检测所述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测所述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态;
    相应地,所述若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态,包括:
    若所述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,所述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,则确定系统处于卡死状态。
  13. 如权利要求12所述的系统状态检测方法,其特征在于,所述检测所述主线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,和/或,检测所述inputreader子线程在当前时刻以及当前时刻之后的预设时长内,线程状态是否一直处于阻塞状态,包括:
    检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态;
    若所述主线程在当前时刻的线程状态为阻塞状态,和/或,所述inputreader在当前时刻的线程状态为阻塞状态,则:
    在当前时刻之后的预设时长内,连续检测所述主线程的线程状态预设次数,和/或,在当前时刻之后的预设时长内,连续检测所述inputreader子线程的线程状态预设次数;
    判断连续检测的所述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的所述inputreader子线程的线程状态是否均为阻塞状态;
    若连续检测的所述主线程的线程状态均为阻塞状态,和/或,连续检测的所述inputreader子线程的线程状态均为阻塞状态,则确定所述主线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态,和/或,所述inputreader子线程的线程状态在当前时刻以及当前时刻之后的预设时长内一直处于阻塞状态。
  14. 如权利要求13所述的系统状态检测方法,其特征在于,所述主线程在运行时对应有第一堆栈,所述第一堆栈用于保存所述主线程正在运行的函数,
    和/或,
    所述inputreader子线程在运行时对应有第二堆栈,所述第二堆栈用于保存所述inputreader子线程正在运行的函数;
    相应地,所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态,包括:
    在当前时刻,检测所述第一堆栈中保存的所述主线程正在运行的函数是否为等待函数,和/或,在当前时刻,检测所述第二堆栈中保存的所述inputreader子线程正在运行的函数是否为等待函数;
    若所述第一堆栈中保存的所述主线程正在运行的函数为等待函数,和/或,所述第 二堆栈中保存的所述inputreader子线程正在运行的函数为等待函数,则确定所述主线程在当前时刻的线程状态为阻塞状态,和/或,所述inputreader子线程在当前时刻的线程状态为阻塞状态。
  15. 如权利要求13所述的系统状态检测方法,其特征在于,在所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤之后,还包括:
    若所述主线程在当前时刻的线程状态不为阻塞状态,或者,所述inputreader子线程在当前时刻的线程状态不为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤以及后续步骤。
  16. 如权利要求13所述的系统状态检测方法,其特征在于,在所述判断连续检测的所述主线程的线程状态是否均为阻塞状态,和/或,判断连续检测的所述inputreader子线程的线程状态是否均为阻塞状态的步骤之后,还包括:
    若连续检测的所述主线程的线程状态不均为阻塞状态,或者,连续检测的所述inputreader子线程的线程状态不均为阻塞状态,则在距离当前时刻预设时间间隔时,返回执行所述检测所述主线程在当前时刻的线程状态是否为阻塞状态,和/或,检测所述inputreader子线程在当前时刻的线程状态是否为阻塞状态的步骤以及后续步骤。
  17. 如权利要求10至16中任一项所述的系统状态检测方法,其特征在于,所述系统状态检测方法还包括:
    通过所述预设进程执行:
    发出提示信息,所述提示信息用于向用户指示系统状态为卡死状态。
  18. 如权利要求10至16中任一项所述的系统状态检测方法,其特征在于,所述系统状态检测方法还包括:
    通过所述预设进程执行:
    若系统处于卡死状态,则执行重启操作。
  19. 一种系统状态检测装置,其特征在于,包括:
    线程状态检测模块,用于通过系统进程之外的预设进程,检测所述系统进程下的主线程和/或所述系统进程下的输入获取inputreader子线程的线程状态是否处于阻塞状态,其中,所述预设进程不经过虚拟机解释;
    系统状态确定模块,用于通过所述预设进程,执行若所述主线程和/或所述inputreader子线程的线程状态为阻塞状态,则确定系统处于卡死状态。
  20. 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特 征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述方法的步骤。
PCT/CN2018/112171 2018-10-26 2018-10-26 一种系统状态检测方法、系统状态装置及终端设备 WO2020082354A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201880097460.7A CN112673354B (zh) 2018-10-26 2018-10-26 一种系统状态检测方法、系统状态装置及终端设备
PCT/CN2018/112171 WO2020082354A1 (zh) 2018-10-26 2018-10-26 一种系统状态检测方法、系统状态装置及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/112171 WO2020082354A1 (zh) 2018-10-26 2018-10-26 一种系统状态检测方法、系统状态装置及终端设备

Publications (1)

Publication Number Publication Date
WO2020082354A1 true WO2020082354A1 (zh) 2020-04-30

Family

ID=70330874

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/112171 WO2020082354A1 (zh) 2018-10-26 2018-10-26 一种系统状态检测方法、系统状态装置及终端设备

Country Status (2)

Country Link
CN (1) CN112673354B (zh)
WO (1) WO2020082354A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778824A (zh) * 2021-08-23 2021-12-10 深圳市联影高端医疗装备创新研究院 操作系统实时性检测方法、装置、计算机设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736958A (zh) * 2012-05-30 2012-10-17 深圳市共进电子股份有限公司 一种对多个进程系统进行监控的看门狗实现方法及系统
CN102902599A (zh) * 2012-09-17 2013-01-30 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
CN103793288A (zh) * 2014-02-14 2014-05-14 北京邮电大学 一种软件看门狗系统及方法
US20150220352A1 (en) * 2014-02-05 2015-08-06 Travis T. Wilson Method and System for Executing Third-Party Agent Code in a Data Processing System
CN105224395A (zh) * 2015-10-10 2016-01-06 上海斐讯数据通信技术有限公司 一种进程管理方法及系统
CN106484555A (zh) * 2016-09-29 2017-03-08 广东欧珀移动通信有限公司 异常检测与恢复的方法及移动终端

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7467324B1 (en) * 2004-09-30 2008-12-16 Ayaya Inc. Method and apparatus for continuing to provide processing on disk outages
US8433954B2 (en) * 2010-04-20 2013-04-30 Microsoft Corporation Testing components for thread safety
CN104021071A (zh) * 2013-03-01 2014-09-03 腾讯科技(深圳)有限公司 进程生命周期的获取方法及系统
US9804951B2 (en) * 2014-10-08 2017-10-31 Signalfx, Inc. Quantization of data streams of instrumented software
US9760353B2 (en) * 2014-12-19 2017-09-12 Signalfx, Inc. Dynamically changing input data streams processed by data stream language programs
CN107704363B (zh) * 2017-09-28 2021-07-23 努比亚技术有限公司 冻屏监测方法、移动终端及计算机可读存储介质
CN108052354A (zh) * 2017-11-06 2018-05-18 北京趣拿软件科技有限公司 应用程序无响应的确定方法、装置、处理器及终端
CN108052390B (zh) * 2017-11-30 2021-11-16 努比亚技术有限公司 基于线程阻塞的内存清理方法、移动终端及可读存储介质
CN108197032B (zh) * 2018-01-23 2021-04-27 武汉斗鱼网络科技有限公司 Ios应用的主线程卡顿监测方法、介质、设备及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736958A (zh) * 2012-05-30 2012-10-17 深圳市共进电子股份有限公司 一种对多个进程系统进行监控的看门狗实现方法及系统
CN102902599A (zh) * 2012-09-17 2013-01-30 华为技术有限公司 虚拟机内部故障处理方法、装置及系统
US20150220352A1 (en) * 2014-02-05 2015-08-06 Travis T. Wilson Method and System for Executing Third-Party Agent Code in a Data Processing System
CN103793288A (zh) * 2014-02-14 2014-05-14 北京邮电大学 一种软件看门狗系统及方法
CN105224395A (zh) * 2015-10-10 2016-01-06 上海斐讯数据通信技术有限公司 一种进程管理方法及系统
CN106484555A (zh) * 2016-09-29 2017-03-08 广东欧珀移动通信有限公司 异常检测与恢复的方法及移动终端

Also Published As

Publication number Publication date
CN112673354B (zh) 2024-04-19
CN112673354A (zh) 2021-04-16

Similar Documents

Publication Publication Date Title
US20190228217A1 (en) Method, apparatus and device for waking up voice interaction function based on gesture, and computer readable medium
US20150186161A1 (en) Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product
US20190302867A1 (en) Method and apparatus for reducing continuous-wakeup delay of bluetooth loudspeaker, and bluetooth loudspeaker
CN107844189A (zh) 一种降低黑屏耗电的方法、系统、终端及计算机可读存储介质
JP5649254B2 (ja) ポータブルコンピューティングデバイスのプロセッサがスリープ状態に迅速に入りスリープ状態から迅速に出るための方法およびシステム
WO2021072880A1 (zh) 虚拟机内部快照异步创建方法、装置、系统及存储介质
CN114564435A (zh) 异构多核芯片的核间通信方法、装置及介质
WO2020155734A1 (zh) 非接触卡的读写速度提升方法、装置及终端设备
CN109298907B (zh) 应用程序显示方法、应用程序显示装置及终端
WO2020082354A1 (zh) 一种系统状态检测方法、系统状态装置及终端设备
CN113190427A (zh) 卡顿监控方法、装置、电子设备及存储介质
WO2024087618A1 (zh) 一种截屏方法、截屏装置、截屏设备及计算机存储介质
CN110874729B (zh) 电子红包识别策略的切换方法、切换装置及移动终端
CN110515662B (zh) 双系统设备的远程控制方法、系统、设备及可读存储介质
WO2020224218A1 (zh) 基于hbase的数据写入方法、系统、装置及可读存储介质
CN111045741A (zh) 一种用于智能终端无闪存触摸屏的固件加载的方法
CN108132803B (zh) 基于移动终端的定时保活及唤醒方法、系统、终端及介质
CN108520063A (zh) 事件日志的处理方法、装置及终端设备
CN106507413B (zh) 发送消息的方法、移动终端及播放设备
CN114647411A (zh) 编程界面加载方法、装置、电子设备及存储介质
CN110874730B (zh) 信息处理方法、信息处理装置及移动终端
WO2020113469A1 (zh) 开机检测方法、开机检测装置及移动终端
US10545562B2 (en) Electronic device and method for operating the same
CN110875876B (zh) 电子红包识别方法、电子红包识别装置及移动终端
CN108181983A (zh) 具有控制器进入低功率模式的电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18938093

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 27.08.2021)

122 Ep: pct application non-entry in european phase

Ref document number: 18938093

Country of ref document: EP

Kind code of ref document: A1