Detecting changes in performance state
The power monitoring application addresses the lack of energy efficiency in mobile computing devices by tracking performance states and providing users with energy consumption information, enhancing energy efficiency awareness and reducing power consumption.
Patent Information
- Application Number
- DE102015101953
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2014-03-12
- Filing Date
- 2015-02-11
- Publication Date
- 2025-03-13
- Estimated Expiration
- 2035-02-11
AI Technical Summary
Existing mobile computing devices lack optimized energy efficiency in applications, and users have limited access to data that affects energy efficiency without rooting the device or modifying the operating system.
A power monitoring application that tracks performance states of a mobile computing device by requesting time stamps at specified intervals, detecting transitions between active and sleep states, and providing users with energy consumption information through a graphical user interface.
Enables users to access current performance state information, improving energy efficiency awareness and potentially reducing power consumption by identifying applications that consume power during sleep states.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL FIELD
[0001] This disclosure generally relates to state detection. More specifically, the disclosure describes state detection in a mobile computing device. BACKGROUND
[0002] Mobile computing devices are becoming increasingly common on the market. Despite the significant growth of the mobile computing device market, applications configured to run on a mobile computing device, such as a smartphone or tablet computer, may not be optimized for power efficiency. Many mobile computing devices include operating systems that enter a sleep mode to conserve power. However, without rooting the mobile computing device and / or running a modified operating system, little data related to power efficiency is available to an end user on mobile computing devices.
[0003] US 2013 / 0 139 138 A1 describes a monitoring system that determines when a receiving device is in standby mode by monitoring the receiving device's usage daily. Regular status checks are performed (e.g., every minute), and based on these status checks, it is determined which mode the receiving device was in during each half-hour (or other selected interval) of the day. The middle of the longest period of the day in which the receiving device was in standby mode is set as the desired time of day for software updates or other automatic actions.This process repeats every day, and the determined times of day for software updates are averaged over the number of days the usage data was collected to serve as a future time of day (based on a moving average) for software updates or other automatic actions on the receiving device.
[0004] US 2009 / 0 307 519 A1 describes a system and method comprising a power-saving scheduler that manages timed events in an event table. Each timed event has an associated grace period within which the event should begin executing after a trigger, and a timestamp that specifies a scheduled execution time for the event. When a device is in a power-saving sleep mode, a trigger can put the device into a wake state. The power scheduler then accesses the event table with the pending timed events and reorders the event table from the event with the shortest grace period to the event with the longest grace period. Any event whose timestamp is within the grace period, measured from the trigger time, is executed.After a plurality of such events have been executed, the device may return to sleep mode. US 2013 / 0 007 494 A1 describes techniques for managing power consumption and latency for entering and exiting idle states. In one embodiment, a processor includes a processing core configured to operate in a plurality of power states (e.g., C-states) that include an operating power state and at least one idle power state. The processing core is also configured to operate in a plurality of power states. The processor further includes a power management unit configured to receive a request from the processing core to enter the at least one idle state. The power management unit is configured to maintain a first of the plurality of power states (e.g.,P-states) based on the requested idle power state. In one embodiment, the power management unit is further configured to cause the processing core to transition to the selected first power state before transitioning to the requested idle state.
[0005] US 2009 / 0 303 066 A1 describes a method and apparatus for a mobile device to set an alarm based on an external request. In one embodiment of the invention, the mobile device receives the external request containing a set of one or more parameters that at least partially define the alarm, as well as a set of one or more actions to be performed when the alarm is triggered. After determining that the external request is trustworthy, the mobile device automatically sets the alarm on the mobile device according to the set of parameters in the request. When the alarm is triggered, the mobile device executes the actions contained in the external request. US 2010 / 0 332 883 A1 describes a system for allocating a thread to a resource. The system receives a thread and usage data for all resources. The system determines whether there is thread-resource affinity.The system uses thread-resource affinity to identify a resource and a timestamp indicating when the thread last completed execution on the resource. The system determines whether the resource is subject to a dispatch policy. The system uses utilization data to determine a timestamp for when the resource last entered a power-off state. If the second timestamp is before the first timestamp, the system dispatches the thread to the resource and generates a power management event. The system determines whether the power management event satisfies a throttling policy. The system discards the power management event if the throttling policy is not satisfied and determines whether to adjust the resource's current power state based on the power management event if the throttling policy is satisfied.
[0006] US 2010 / 0 312 946 A1 describes a machine-implemented method that includes generating a universally unique identifier, detecting the trigger of a sleep event, and associating the universally unique identifier with the sleep event. The method monitors subsystem events that occur after a sleep event is triggered and stores data in non-volatile, non-disk storage (e.g., non-boot memory) that identifies an event level corresponding to the currently occurring subsystem event. The method determines whether a wake-up event has completed and logs each of the subsystem events using the universally unique identifier until a wake-up event is completed. SUMMARY OF THE INVENTION
[0007] The object underlying the invention is to provide a method and a system for monitoring performance states of a mobile computing device, which provide a user of the mobile computing device with access to current information about the performance states of the mobile computing device. The above object is achieved by the subject matter of the independent claims. Further advantageous embodiments are specified in the subclaims. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram of a mobile computing device having a performance monitoring application for detecting the performance state of the mobile computing device, Fig. 2 is a diagram illustrating a time axis where timestamps are requested at given time intervals and sleep states are determined, Fig. 3 is a diagram of a graphical user interface (GUI) to display energy consumption information and changes in the power state of the mobile computing device, Fig. 4 is a diagram of a graphical user interface (GUI) for displaying power consumption information and event indicators related to changes in the power state of the mobile computing device, Fig. 5 is a diagram of a graphical user interface (GUI) to display energy consumption information and event display information, Fig. 6 is a diagram of a graphical user interface (GUI) to display energy consumption information as well as application information, Fig. 7 is a block diagram illustrating a method for detecting changes in the power state of a mobile computing device, and Fig. Figure 8 is a block diagram illustrating an example of a tangible, non-transitory computer-readable medium configured to detect power state changes. DETAILED DESCRIPTION
[0008] The subject matter disclosed herein relates to methods for monitoring power consumption and detecting state transitions in a mobile computing device environment. More specifically, the methods described herein relate to a user-space application, such as a performance monitoring application, for monitoring power consumption and requesting timestamps at predetermined intervals during an active state. When the mobile computing device enters a sleep state, the user-space application stops, resulting in a suspension of timestamp requests until the mobile computing device re-enters the active state. Upon re-entering the active state, timestamp requests resume. If a difference between two consecutive timestamps is greater than the threshold, the performance monitoring application may detect that the mobile computing device has entered a sleep mode.Furthermore, the methods described herein are not specific to any particular mobile computing device platform.
[0009] A "power state," as referred to herein, indicates a threshold of power consumption of the mobile device. In some embodiments, a power state is defined by the Advanced Configuration and Power Interface (ACPI), Revision 5.0a, dated November 13, 2013. In embodiments, an "S0" state is an "on" state, or a working state, where the mobile computing device is fully functional, fully powered on, and retains context. The S0 state may be referred to herein as an "active state." An "S3" state is a sleep state where the mobile computing device consumes less power than in the S0 state, and the contexts associated with processes of the mobile computing device are moved to a memory device, such as a random access memory (RAM) device.
[0010] Fig. 1 is a block diagram of a mobile computing device having a performance monitoring application for detecting the performance state of the mobile computing device. The mobile computing device 100 may include a processor 102, a memory device 104 comprising a non-transitory computer-readable medium, and a storage device 106. The mobile computing device 100 may include a display driver 108 configured to operate a display device 110 to render images. As shown in Fig. 1, the storage device 104 may further include an operating system 112 having a power management system 116, and a performance monitoring application 114. As indicated by the dashed boxes 112, 114, and 116, when in operation, the operating system 112 as well as the performance monitoring application 114 may be executed in the memory area of the storage device 106, as indicated by the dashed boxes 112, 114, 116 of the storage unit 106 of Fig. 1 is displayed.
[0011] The performance monitoring application 114 may be a set of instructions stored on the storage device 104 that, when executed by the processor 102, instruct the mobile computing device 100 to perform operations. As discussed above, during operation, the performance monitoring application 114 is implemented in the user space of the storage device 106. The operations of the performance monitoring application 114 include detecting when the mobile computing device 100 is in an active state and requesting timestamps at predetermined intervals that remain the same during the active state. For example, the performance monitoring application 114 may be configured to request timestamps every 1 second.If a first timestamp and second timestamp are received in response to the timestamp request, the performance monitoring application 114 may determine whether a difference between the received first timestamp and the received second timestamp exceeds the predetermined interval, for example, if the difference is greater than 1 second. If the time difference exceeds the predetermined interval, the performance monitoring application 114 detects that the mobile computing device 100 has entered a sleep state for a period of time indicated by the detected timestamp difference.
[0012] The operating system 112 is a mobile operating system configured to manage resources and applications of the mobile computing device 100. In one embodiment, the operating system is a Linux-based system, such as the Android operating system built on a Linux kernel. The operating system 112 allows the performance monitoring application 114 to execute only in user space, as opposed to both user space and kernel space. The operating system 112 may be associated with a system clock configured to track the timing within the operations of the mobile computing device 100.The timestamp requests submitted by the performance monitoring application 114 at the predetermined regular intervals associated with the operation of the performance monitoring application 114 may be responded to by the operating system 112 providing timestamps based on the system clock.
[0013] In embodiments, the power management system 116 may be an integrated module of the operating system 116. However, the power management system 116 may be a discrete module of the storage device 104 to be executed by the processor 102. In both embodiments, the power management system 116 may provide power state transitions, monitor power consumption, and provide additional power consumption data to the power monitoring application 114.
[0014] In some embodiments, the power monitoring application 114 may issue power consumption level requests to the power management system 116. In other scenarios, the power monitoring application 114 may issue power consumption level requests or event log requests directly to the drivers of the mobile computing device 100. For example, the mobile computing device 100 may also include a battery 118 and a battery driver 120 configured to control and monitor the operations of the battery 118, such as voltage or current drawn from the battery. In some scenarios, the power monitoring application 114 may request data related to the power consumption information directly from the battery driver 120. In other scenarios, the power monitoring application 114 may request event logs directly from the operating system 112.For example, when the display device 110 is turned on, off, set, or the like, the operating system 112 may receive event data indicating a particular event related to power consumption to provide to the power monitoring application 114.
[0015] Mobile computing device 100, as referred to herein, is a computing device wherein components such as a processing device, a storage device, and a display device are arranged within a single housing. For example, mobile computing device 100 may be a tablet computer, a smartphone, a handheld video game system, a cellular phone, an all-in-one slate computing device, or any other computing device having all-in-one functionality.
[0016] Processor 102 may be a main processor capable of executing the stored instructions. Processor 102 may be a single-core processor, a multi-core processor, a cluster, or any number of other configurations. Main processor 102 may be implemented as a Complex Instruction Set Computer (CISC) processor or Reduced Instruction Set Computer (RISC) processor, x86 instruction set compatible processor, multi-core processor, or any other microprocessor or central processing unit (CPU).
[0017] The memory device 106 may include: a random access memory (RAM) (e.g., static random access memory (SRAM), dynamic random access memory (DRAM), zero capacitor RAM, silicon oxide nitride oxide silicon (SONOS), embedded DRAM, extended data out RAM (EDO), double data rate RAM (DDR), resistive random access memory (RRAM), parameter random access memory (PRAM), etc.), read-only memory (ROM) (e.g., mask ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), flash memory, or any other suitable memory system. The main processor 102 can communicate via a system bus 122 (e.g., Peripheral Component Interconnect (PCI), Industry Standard Architecture (ISA), PCI-Express, HyperTransport®, NuBus, etc.) may be connected to components including storage device 104 and storage unit 106. Display interface 110 may be a point of interaction with software or hardware of mobile computing device 100 and display interface 112. For example, the display interface may be a Digital Video Interface (DVI), a High-Definition Multimedia Interface (HDMI), and the like. The display may be a built-in display or a peripheral display of mobile computing device 100. In embodiments, display 112 includes touchscreen functionality.
[0018] The block diagram of Fig. 1 is not intended to indicate that the mobile computing device 100 implements all of the Fig. 1. In addition, depending on the details of the specific implementation, the mobile computing device 100 may include any number of additional components not shown in Fig. 1 components shown. Fig. Figure 2 is a diagram illustrating a time axis where timestamps are requested at predetermined time intervals and sleep states are determined. Time axis 200 represents timestamps requested at a predetermined interval, as indicated at 202. In other words, the time difference between a timestamp requested by a user-space application, such as the performance monitoring application 114 of Fig. 1, requested and occurring at 204, and the timestamp requested at 206, is equal to the predetermined interval 202 when the device is active. However, a first timestamp may be requested at 208 and a second timestamp may be requested at 210. If the difference between the first timestamp 208 and the second timestamp 210, indicated by 212, is greater than the predetermined interval 202, then the performance monitoring application 114 may detect an entry into and exit from a sleep state. As discussed in more detail below, the entry into and exit from the sleep state may be logged by the performance monitoring application 114 and presented to a user via a graphical user interface on a display, such as the one described above with reference to Fig. 1 discussed display device 110, will be presented.
[0019] In some embodiments, the accuracy of determining when a mobile computing device, such as mobile computing device 100 of Fig. 1, relative to the frequency of timestamp requests. In other words, the shorter the specified interval, the more accurate the determination of entry into and exit from a sleep state. In some examples, the specified interval 202 is 1 second. However, the specified interval 202 may be shorter than 1 second to improve the accuracy of detecting power state transitions. It should be noted that shorter specified intervals may impact power consumption, and therefore, the specified interval may be adjusted by a user or a developer of the power monitoring application 114 in light of power consumption increases that may occur as a result of increasingly shorter specified intervals.
[0020] Fig. 3 is a diagram of a graphical user interface (GUI) for displaying energy consumption information and changes in the power state of the mobile computing device. As discussed above, a GUI 300 may be displayed on a display device, such as the one described above with reference to Fig. 1. The GUI 300 may display a graphic 301 so that a user has better access to power consumption data of the mobile computing device 100. Along with each timestamp request, power consumption values may be collected by the power monitoring application 114 for the mobile computing device 100. Line 302 displays the power consumption at various values until the mobile computing device 100 transitions to the sleep state at 304. The line at 306 represents the mobile computing device 100 transitioning to the active state again. As shown in Fig. 3, the power consumption level during the sleep state 304 is low compared to the active states, although the mobile computing device 100 may still consume power due to device power leakage and certain components of the mobile computing device 100 that must remain powered on during the sleep state, as illustrated by line 302 or line 306.
[0021] In some embodiments, power consumption for a particular application executing on mobile computing device 100 may be graphically displayed. For example, the line at 302 or at 306 may indicate the power consumed by a specific application executing on computing device 100 during an active state. In this scenario, the particular application may be selectable by the user via controls of power monitoring application 114.
[0022] In some scenarios, a particular application may continue to consume higher amounts of power during a sleep state. In this scenario, the line 304 may be relatively higher and the graphical representation on the GUI 300, or on any of the devices described below with reference to Fig. 4 and Fig. 5, may allow a user to determine that a particular application is consuming power even while asleep. Therefore, the graphical representation may provide the user with more information regarding the power consumption of mobile computing device 100.
[0023] Fig. 4 is a diagram of a graphical user interface (GUI) that displays power consumption information and event indicators related to changes in the power state of the mobile computing device. GUI 400 includes a graph 401 that displays the power consumption of a mobile computing device, such as mobile computing device 100 of Fig. 1. Similar to the Fig. In Figure 3, the rendered graph 401 illustrates power consumption levels during the active states 302, 306 and the sleep state 304. The graph 401 may also illustrate event indicators, such as event indicators 402 and 404. Event indicators may be based on captured event information related to a timestamp that causes entry into or exit from the sleep state. As discussed in more detail below, the event information may be captured, rendered, and displayed.
[0024] Fig. Figure 5 is a diagram of a graphical user interface (GUI) that displays energy consumption information and event viewer information. The GUI 500 includes a graphic 501 and an example of specific event information suitable for an event viewer, such as the one described above with reference to Fig. 4 discussed event log 402. As in Fig. 5, the event indicator 402 may be associated with event information displayed in the box 502. The event information 502 may include timestamp information as well as a description of the event information 502. In the Fig. 5, the event information description includes "SCREEN_OFF", which indicates to a user that the event associated with a transition from the active state indicated at 302 to the sleep state 304 may have been triggered by turning off the screen.
[0025] Fig. 6 is a diagram of a graphical user interface (GUI) that displays power consumption information and application information. The GUI 600 includes a graphic 601 and an example of application information. Application information can be derived by determining which applications were running at a timestamp immediately before entering sleep state 304, such as the one described above with reference to Fig. 2. Application information can also be derived by determining which applications are running at a timestamp immediately following the exit from the sleep state, such as the one discussed above with reference to Fig. 2 discussed second timestamp 210, are executed.
[0026] For example, the application information rendered at 602 indicates applications executing on the mobile computing device 100 during entry into the sleep state 304. As illustrated at 602, the application information may include applications executing in the foreground prior to entry into the sleep state 304, as well as applications executing in the background. At 604, application information is provided indicating applications executing on the mobile computing device 100 during exit from the sleep state 304. Similar to block 602, the application information at block 604 includes applications executing in the background and in the foreground during exit from the sleep state 304. In embodiments, a user may use the application information 602, 604 to estimate which application initiated exit from the sleep state 304.For example, "Application A," indicated at 602 and 604, remains in the foreground during both entry into and exit from sleep state 304, while "Application B" transitions to the background during sleep state 304. In this scenario, Application A may be responsible for exiting sleep state 304 because it was running in the foreground during exit from sleep state 304. Therefore, application information may be useful in determining applications causing an exit from sleep state 304. Fig. 7 is a block diagram illustrating a method for detecting changes in the power state of a mobile computing device. At block 702, timestamp requests are initiated at predetermined intervals. In some examples, the predetermined interval may be 1 second. At 704, a first timestamp and a second timestamp are received in response to timestamp requests. At 706, the difference between the first timestamp and the second timestamp is determined. If it is determined that the difference between the first timestamp and the second timestamp is greater than the predetermined interval, at block 708, it is determined that the mobile computing device entered and exited a sleep state during the period of time indicated by the timestamp difference.
[0027] In embodiments, method 700 includes capturing event information for the first timestamp and / or capturing event information for the second timestamp. The event information may indicate a trigger for entering or exiting the sleep state. For example, an event such as a "SCREEN_OFF" event at 402 of Fig. 5 trigger a transition from an active state to a sleep state. In other scenarios, an event such as a "SCREEN_ON" can trigger an exit from a sleep state to the active state. Other event information, such as power consumption information for a specific application and event information for the specific application, can be captured.
[0028] In embodiments, method 700 includes rendering a representation of the power state change, including the indication of entry into the sleep state, in a graphical user interface of a display of the mobile computing device. The representation may also represent exit from the sleep state to the active state. Additionally, in some scenarios, the representation may present information, such as event information, and power consumption information of a specific application, as discussed above.
[0029] Fig. 8 is a block diagram illustrating an example of a tangible, non-transitory computer-readable medium configured to detect power state changes. The tangible, non-transitory computer-readable medium 800 may be accessed by a processor 802 via a computer bus 804. Furthermore, the tangible, non-transitory computer-readable medium 800 may include computer-executable instructions for directing the processor 802 to perform the steps of the present method.
[0030] The various software components discussed herein may be stored on the tangible, non-transitory, computer-readable medium 800 as described in Fig.8. For example, a performance monitoring application 806 may be configured to issue timestamp requests at predetermined intervals. In some examples, the predetermined interval may be 1 second. A first timestamp and a second timestamp are received by the performance monitoring application 806 in response to timestamp requests. The performance monitoring application determines the difference between the first timestamp and the second timestamp. If it is determined that the difference between the first timestamp and the second timestamp is greater than the predetermined interval, the performance monitoring application 806 determines that the mobile computing device entered and exited a sleep state during the period of time indicated by the timestamp difference. EXAMPLE 1
[0031] A method for determining power states of a mobile computing device is described herein. Timestamps are requested at predetermined intervals during an active state. A first and a second timestamp may be received. If the difference between the first timestamp and the second timestamp exceeds the predetermined interval, then the mobile computing device entered and exited a sleep state during the time difference of the timestamps.
[0032] Event information may also be captured. Event information may be data related to events occurring on the mobile computing device and related to entering or exiting a sleep state. The captured information may be displayed on a graphical user interface of the mobile computing device. EXAMPLE 2
[0033] A system for monitoring power states is described herein. The system may include a processing device, such as a processing apparatus, and a storage device, such as a system storage unit. The system storage unit may include instructions executable by the processing device to initiate operations. The operations include requesting timestamps at predetermined intervals during an active state. The operations include receiving a first timestamp and a second timestamp in response to timestamp requests, and determining whether a difference between a received first timestamp and a received second timestamp exceeds the predetermined interval.If it is determined that the time difference between timestamps exceeds a predetermined threshold, then the operations include determining an entry of the mobile computing device into a sleep state during a period of time indicated by the determined timestamp difference. EXAMPLE 3
[0034] A non-transitory computer-readable medium is described herein. The non-transitory computer-readable medium includes code that, when executed, causes a processing device to request timestamps at predetermined intervals during an active state, and to receive a first timestamp and a second timestamp in response to timestamp requests. The code, when executed, determines whether a difference between a received first timestamp and a received second timestamp exceeds the predetermined interval, and, if so, determines that the mobile computing device has entered a sleep state during a period of time indicated by the determined timestamp difference.
[0035] An embodiment is an implementation or example. Reference to "one embodiment," "some embodiments," "various embodiments," or "other embodiments" means that a particular feature, structure, or characteristic described in connection with the embodiments is present in at least some embodiments, but not necessarily all embodiments of the present techniques. The various performances of "one embodiment" or "some embodiments" do not necessarily refer to the same embodiments.
[0036] Not all components, features, structures, characteristics, etc., described and shown herein need be included in a particular embodiment or embodiments. For example, if the description states that a component, feature, structure, or characteristic "may" or "could" be included, then it is not required that that particular component, feature, structure, or characteristic be included. If the description or claims refer to "a" element, this does not mean that there is only one of that element. If the description or claims refer to "an additional" element, this does not preclude there being more than one of the additional element.
[0037] It should be noted that although some embodiments have been described with reference to particular implementations, other implementations are possible according to some embodiments. Additionally, the arrangement and / or order of circuit elements or other features shown in the drawings and / or described herein need not be arranged in the particular manner shown and described. Many other arrangements are possible according to some embodiments.
[0038] For each system shown in a figure, the elements may, in some cases, each have the same reference number or a different reference number to indicate that the represented elements could be different and / or similar. However, an element may be flexible enough to have different implementations and may work with some or all of the systems shown or described herein. The various elements shown in the figures may be the same elements, or they may be different. Which is called a first element and which a second element is arbitrary.
[0039] It should be understood that specifics in the above-mentioned examples may be used anywhere in one or more embodiments. For example, any optional features of the computing device described above may also be implemented with respect to any of the methods described herein or on the computer-readable medium. Furthermore, although flowcharts and / or state diagrams may have been used to describe embodiments, the techniques are not limited to these diagrams or to corresponding descriptions herein. For example, the flow need not move through every box or state shown or in exactly the same order as shown and described herein.
[0040] The present methods are not limited to the specific details listed herein. Indeed, it will be apparent to those skilled in the art who read this disclosure that many other modifications of the foregoing description and drawings may be made within the scope of the present techniques. Accordingly, it is the following claims, and any amendments thereto, that define the scope of the present techniques.
Claims
[1] Method (700) comprising: Requesting (702) timestamps at predetermined intervals during an active state, Receiving (704) a first timestamp and a second timestamp in response to timestamp requests, Determining (706) whether a difference between the received first time stamp and the received second time stamp exceeds the predetermined interval, and if necessary Determining (708) that a mobile computing device (100) has entered a sleep state during a period of time indicated by the determined time difference, the method further comprising: Capturing event information for the first timestamp, or Capturing event information for the second timestamp, or any combination thereof, where the event information of the first timestamp indicates a trigger for entering the sleep state. [2] The method of claim 1, wherein operations of the mobile computing device (100) are suspended during the sleep state. [3] A method according to a combination of claims 1 to 2, wherein the event information of the second timestamp indicates a trigger for entering the active state. [4] The method of any combination of claims 1 to 3, comprising rendering a representation of the power state change including the indication of entry into the sleep state in a graphical user interface of a display of the mobile computing device (100). [5] A method according to a combination of claims 1 to 4, wherein the method is implemented in a user area of the mobile computing device (100) as opposed to a kernel area of the mobile computing device (100). [6] System for monitoring performance conditions, comprising: a processing device (102), a system memory (106), the system memory (106) comprising instructions executable by the processing device (102) to initiate operations, the operations comprising: Requesting timestamps at specified intervals during an active state, Receiving a first timestamp and a second timestamp in response to timestamp requests, and Determining whether a difference between a received first timestamp and a received second timestamp exceeds the predetermined interval, and if so Determining that a mobile computing device (100) has entered a sleep state during a period of time indicated by the determined timestamp difference, the operations further comprising: Capturing event information for the first timestamp, or Capturing event information for the second timestamp, or any combination thereof, and wherein the event information of the first timestamp indicates a trigger for entering the sleep state. [7] The system of claim 6, wherein operations of the mobile computing device (100) are suspended during the sleep state. [8] A system according to any combination of claims 6 to 7, wherein the event information of the second timestamp indicates a trigger for entering the active state. [9] The system of any combination of claims 6 to 8, wherein the operations comprise rendering a representation of the power state change comprising indicating entry into the sleep state in a graphical user interface of a display of the mobile computing device (100). [10] The system of any combination of claims 6 to 9, wherein the operations are implemented in a user area of the mobile computing device (100) as opposed to a kernel area of the mobile computing device (100). [11] A non-transitory computer-readable medium (104) comprising code that, when executed, causes a processing device (102) to: Requesting timestamps at specified intervals during an active state, Receiving a first timestamp and a second timestamp in response to timestamp requests, and Determining whether a difference between a received first timestamp and a received second timestamp exceeds the predetermined interval, and if so Determining an entry of a mobile computing device (100) into a sleep state during a period of time indicated by the determined timestamp difference, the code further causing the processing device to: Capturing event information for the first timestamp, or Capturing event information for the second timestamp, or any combination thereof, and wherein the event information of the first timestamp indicates a trigger for entering the sleep state such that operations of the mobile computing device (100) are suspended during the sleep state. [12] The computer-readable medium (104) of claim 11, wherein the event information of the second timestamp indicates a trigger for entering the active state. [13] The computer-readable medium (104) of any combination of claims 11 to 12, comprising code to cause the processing means (102) to render a representation of the power state change including the indication of entry into the sleep state in a graphical user interface of a display of the mobile computing device (100). [14] The computer-readable medium (104) of any combination of claims 11 to 13, wherein the code is implemented in a user area of the mobile computing device (100) as opposed to a kernel area of the mobile computing device (100). [15] A non-transitory computer-readable medium (104) comprising code that, when executed, causes a processing device to implement the method according to any combination of claims 1 to 5.
Citation Information
Patent Citations
Method and apparatus to remotely set alarms on a mobile device
US20090303066A1
Power saving scheduler for timed events
US20090307519A1
Sleep wake event logging
US20100312946A1
Method and system for event-based management of resources
US20100332883A1
Managing processor-state transitions
US20130007494A1