Abstract:
Embodiments of the present disclosure present devices, methods, and computer readable medium for techniques for measuring operational performance metrics, and presenting these metrics through an application programming interface (API) for developers to access for optimizing their applications. Exemplary metrics can include central processing unit or graphics processing unit time, foreground/background time, networking bytes (per application), location activity, display average picture luminance, cellular networking condition, peak memory, number of logical writes, launch and resume time, frame rates, and hang time. Regional markers can also be used to measure specific metrics for in application tasks. The techniques provide multiple user interfaces to help developers recognize the important metrics to optimize the performance of their applications. The data can be normalized over various different devices having different battery size, screen size, and processing requirements. The user interfaces can provide an intelligent method for visualizing performance changes for significant changes in application versions.
Abstract:
Embodiments of the present disclosure present devices, methods, and computer readable medium for techniques for measuring operational performance metrics, and presenting these metrics through an application programming interface (API) for developers to access for optimizing their applications. Exemplary metrics can include central processing unit or graphics processing unit time, foreground/background time, networking bytes (per application), location activity, display average picture luminance, cellular networking condition, peak memory, number of logical writes, launch and resume time, frame rates, and hang time. Regional markers can also be used to measure specific metrics for in application tasks. The techniques provide multiple user interfaces to help developers recognize the important metrics to optimize the performance of their applications. The data can be normalized over various different devices having different battery size, screen size, and processing requirements. The user interfaces can provide an intelligent method for visualizing performance changes for significant changes in application versions.
Abstract:
Circuits, methods, and apparatus that may estimate the power being consumed by an OLED display screen of an electronic device, may provide further information about that power usage, may modify or change functions performed by the electronic device based on that power usage, and may inform an application's developer about the amount of power being used by the electronic device while the electronic device is running the application. One example may estimate the power being used by an OLED display screen of an electronic device by determining the content of images being displayed during a duration. The estimated power may then be presented to a user. The estimated power may be used in decisions to modify or change parameters of the screen or other device components.
Abstract:
In some implementations, a system can intelligently restore data to a user's computing device. For example, the system can prioritize data to be restored to a user device based on the data that the user is most likely to use. The system can restore high priority data items first while delaying restoration of low priority data items. The system can control when data restoration is performed based on device conditions. For example, the device conditions can include how much of an energy budget and/or data budget remains for downloading data to the user device. The device conditions can include the thermal condition (e.g., how hot) of the user device. If device conditions do not allow for downloading data at a particular time, then the device can delay downloading data until the device conditions allow for downloading and/or restoring the data.
Abstract:
In some implementations, a network daemon can manage access to a mobile device's network interface. The network daemon (e.g., network connection managing process) can monitor the condition of the mobile device's network connection on one or more interfaces. The network daemon can monitor many conditions on the mobile device. The network daemon can receive background networking requests from network clients (e.g., processes, applications) that specify criteria for initiating a network connection. The network daemon can then smartly manage network connections taking into account network conditions, mobile device conditions and/or client criteria received in the client request. This can help reduce battery life impact, memory usage, likelihood of call drops, data usage cost, and load on network operators.
Abstract:
Some embodiments of the invention provide a novel architecture for debugging devices. This architecture includes numerous devices that without user intervention automatically detect and report bug events to a set of servers that aggregate and process the bug events. When a device detects a potential bug event, the device in some embodiments generates a description of the potential bug event, and sends the generated description to the server set through a network. In addition to generating such a description, the device in some embodiments directs one or more of its modules to gather and store a collection of one or more data sets that are relevant to the potential bug event, in case the event has to be further analyzed by the server set. In the discussion below, the generated bug-event description is referred to as the event signature, while the gathered collection of data sets for an event is referred to as the event's data archive. The server set aggregates and processes the bug-event signatures that it receives from the various devices. For only a subset of the reported bug-event signatures, the server set then directs the devices that sent these signatures to also send the data archives that these devices have gathered and stored for the events associated with these signatures. These data archives can be further analyzed to identify the root causes of the bug events.
Abstract:
Some embodiments of the invention provide a novel architecture for debugging devices. This architecture includes numerous devices that without user intervention automatically detect and report bug events to a set of servers that aggregate and process the bug events. When a device detects a potential bug event, the device in some embodiments generates a description of the potential bug event, and sends the generated description to the server set through a network. In addition to generating such a description, the device in some embodiments directs one or more of its modules to gather and store a collection of one or more data sets that are relevant to the potential bug event, in case the event has to be further analyzed by the server set. In the discussion below, the generated bug-event description is referred to as the event signature, while the gathered collection of data sets for an event is referred to as the event's data archive. The server set aggregates and processes the bug-event signatures that it receives from the various devices. For only a subset of the reported bug-event signatures, the server set then directs the devices that sent these signatures to also send the data archives that these devices have gathered and stored for the events associated with these signatures. These data archives can be further analyzed to identify the root causes of the bug events.
Abstract:
The disclosed embodiments provide a system that processes incoming network packets to an electronic device. The system includes an analysis apparatus that maintains a list of accepted incoming packet attributes for the electronic device based on outgoing packets from the electronic device. The system also includes a filtering apparatus that compares a first set of header information for an incoming packet to the list. If the first set of header information is not included in the list, the filtering apparatus discards the incoming packet. If the first set of header information is included in the list, the filtering apparatus enables subsequent processing of the incoming packet on the electronic device by, for example, providing the incoming packet to a transport-layer mechanism on the electronic device for subsequent processing of the incoming packet by the transport-layer mechanism.
Abstract:
In some implementations, a mobile device can be configured to monitor environmental, system and user events. The occurrence of one or more events can trigger adjustments to system settings. In some implementations, the mobile device can be configured to keep frequently invoked applications up to date based on a forecast of predicted invocations by the user. In some implementations, the mobile device can receive push notifications associated with applications that indicate that new content is available for the applications to download. The mobile device can launch the applications associated with the push notifications in the background and download the new content. In some implementations, before running an application or accessing a network interface, the mobile device can be configured to check energy and data budgets and environmental conditions of the mobile device to preserve a high quality user experience.
Abstract:
The disclosed embodiments provide a system that processes incoming network packets to an electronic device. The system includes an analysis apparatus that maintains a list of accepted incoming packet attributes for the electronic device based on outgoing packets from the electronic device. The system also includes a management apparatus that uses the list to classify an incoming packet to the electronic device as a solicited incoming packet or an unsolicited incoming packet. If the incoming packet is classified as the solicited incoming packet, the management apparatus enables subsequent processing of the incoming packet on the electronic device. If the incoming packet is classified as the unsolicited incoming packet, the management apparatus adjusts a triggering of radio dormancy in the electronic device based on the incoming packet.