Abstract:
The embodiments set forth techniques for implementing various “prediction engines” that can be configured to provide different kinds of predictions within a mobile computing device. According to some embodiments, each prediction engine can assign itself as an “expert” on one or more “prediction categories” within the mobile computing device. When a software application issues a request for a prediction for a particular category, and two or more prediction engines respond with their respective prediction(s), a “prediction center” can be configured to receive and process the predictions prior to responding to the request. Processing the predictions can involve removing duplicate information that exists across the predictions, sorting the predictions in accordance with confidence levels advertised by the prediction engines, and the like. In this manner, the prediction center can distill multiple predictions down into an optimized prediction and provide the optimized prediction to the software application.
Abstract:
Disclosed herein is a technique for implementing a framework that enables application developers to enhance their applications with dynamic adjustment capabilities. Specifically, the framework, when utilized by an application on a mobile computing device that implements the framework, can enable the application to establish predictive models that can be used to identify meaningful behavioral patterns of an individual who uses the application. In turn, the predictive models can be used to preempt the individual's actions and provide an enhanced overall user experience. The framework is configured to interface with other software entities on the mobile computing device that conduct various analyses to identify appropriate times for the application to manage and update its predictive models. Such appropriate times can include, for example, identified periods of time where the individual is not operating the mobile computing device, as well as recognized conditions where power consumption is not a concern.
Abstract:
An example computer-implemented method includes determining, by an electronic device, that the electronic device has not received a user activity for an interval of time. The method also includes determining, by the electronic device, a contextual state of the electronic device, and adapting, by the electronic device, a sleep delay value based on the determined contextual state of the electronic device. The method also includes determining that the interval of time has exceeded the sleep delay value, and responsive to determining that the interval of time has exceeded the sleep delay value, transitioning, by the electronic device, from a first power state to a second power state, where the first power state is higher or lower than the second power state.
Abstract:
An example computer-implemented method includes determining, by an electronic device, that the electronic device has not received a user activity for an interval of time. The method also includes determining, by the electronic device, a contextual state of the electronic device, and adapting, by the electronic device, a sleep delay value based on the determined contextual state of the electronic device. The method also includes determining that the interval of time has exceeded the sleep delay value, and responsive to determining that the interval of time has exceeded the sleep delay value, transitioning, by the electronic device, from a first power state to a second power state, where the first power state is higher or lower than the second power state.
Abstract:
Systems and methods are disclosed for generating term frequencies of known terms based on crowdsourced differentially private sketches of the known terms. An asset catalog can be updated with new frequency counts for known terms based on the crowdsourced differentially private sketches. Known terms can have a classification. A client device can maintain a privacy budget for each classification of known terms. Classifications can include emojis, deep links, locations, finance terms, and health terms, etc. A privacy budget ensures that a client does not transmit too much information to a term frequency server, thereby compromising the privacy of the client device.
Abstract:
Systems and methods are disclosed for a server learning new words generated by user client devices in a crowdsourced manner while maintaining local differential privacy of client devices. A client device can determine that a word typed on the client device is a new word that is not contained in a dictionary or asset catalog on the client device. New words can be grouped in classifications such as entertainment, health, finance, etc. A differential privacy system on the client device can comprise a privacy budget for each classification of new words. If there is privacy budget available for the classification, then one or more new terms in a classification can be sent to new term learning server, and the privacy budget for the classification reduced. The privacy budget can be periodically replenished.
Abstract:
The subject matter of the disclosure relates to low temperature power throttling at a mobile device to reduce the likelihood of an unexpected power down event in cold weather environments. A mobile device employing a power management solution may be configured to determine that a monitored temperature at the mobile device (at the battery of the mobile device) is below a first threshold level, and whether a hardware component (such as a camera) is active or inactive. Then, based on these determinations, the mobile device can select a throttle setting from a first set of throttle settings when the hardware component is active, and a second set of throttle settings when the hardware component is inactive. Subsequently the mobile device can throttle power consumption for one or more components of the mobile device according to the selected throttle setting.
Abstract:
Systems and methods for proactively populating an application with information that was previously viewed by a user in a different application are disclosed herein. An example method includes: while displaying a first application, obtaining information identifying a first physical location viewed by a user in the first application. The method also includes exiting the first application and, after exiting the first application, receiving a request from the user to open a second application that is distinct from the first application. In response to receiving the request and in accordance with a determination that the second application is capable of accepting geographic location information, the method includes presenting the second application so that the second application is populated with information that is based at least in part on the information identifying the first physical location.
Abstract:
In some implementations, a mobile device can be configured to monitor environmental, system and user events associated with the mobile device and/or a peer device. The occurrence of one or more events can trigger adjustments to system settings. 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 communicating with a peer device, the mobile device can be configured to check energy and data budgets and environmental conditions of the mobile device and/or a peer device to ensure a high quality user experience.
Abstract:
According to one embodiment, a first battery number is determined representing a battery condition of a battery of a mobile device using a predictive model, where the predictive model is configured to predict future battery conditions based on a past battery usage of the battery. A second battery number is determined representing the battery condition using a drain model, where the drain model is configured to predict a future battery discharge rate based on a past battery discharge rate. A third battery number is determined representing the battery condition based on a current battery level corresponding to a remaining life of the battery at the point in time. Power management logic performs a power management action based on the battery condition derived from at least one of the first battery number, the second battery number and the third battery number.