Mobile computing devices, such as mobile phones and tablet computers, are becoming increasingly powerful and ubiquitous in use. Software applications for these computerized devices are becoming widely available and offer extensive and ever increasing functionality. As a result, mobile computing devices are capable of processing a wide variety and potentially sensitive or personal information (e.g., documents, e-mails, and pictures) for display (e.g., on a screen) or otherwise for output to a user.
Certain mobile computing devices can operate in a limited access state that prevents an unauthorized user from accessing applications and information stored within the computing device, thereby effectively “locking” the computing device. For example, some mobile computing devices require a user to provide a specific input to lock and/or unlock the device. While the locking techniques can provide security for information contained within the device as well as protection from accidental inputs, once the device is unlocked, the computing device provides access to the applications and information stored within the computing device to any user who provides the specific input to unlock the device.
Some mobile computing devices enable multiple user profiles. For example, a mobile computing device may be configured with multiple, different user profiles, each user profile being separate from the other user profiles such that a user associated with a first user profile is prevented from gaining access to another user's profile without providing proper authentication information for the other user profile. As an example, a first user profile may be associated with a first user's information and a first set of installed applications while a second user profile may be associated a second user's information and a second, potentially overlapping, set of applications.
In an example, a method includes detecting, by a mobile computing device, for at least two respective user profiles of a plurality of user profiles, use of a component of the mobile computing device associated with the respective user profile, wherein the component comprises at least one of a hardware or a software component of the mobile device, and wherein the mobile computing device is configured to operate, at a given time, based at least in part on one or more configuration settings associated with one user profile of the plurality of user profiles. According to this example, the method also includes determining, by the mobile computing device, for each of the at least two respective user profiles, resource consumption caused by the detected use of the component of the mobile computing device over a period of time, wherein the resource consumption comprises at least one of an amount of data transmissions and power consumption of a battery of the mobile computing device. The method also may include generating, by the mobile computing device, for at least one of the at least two respective user profiles, a visual representation comprising an indication of the resource consumption caused by the detected use of the component associated with one of the respective user profiles, an indication of the component associated with the resource consumption associated with the one of the respective user profiles, an indication of the one of the respective user profiles, and an indication of the period of time.
In another example, a mobile computing device is configured to operate, at a given time, based at least in part on one or more configuration settings associated with one user profile of a plurality of user profiles. The mobile computing device can include a component comprising at least one of a hardware or a software component or the mobile device, and at least one processor. The at least one processor may be configured to detect, for at least two respective user profiles of the plurality of user profiles, use of the component associated with the respective user profile. The at least one processor also may be configured to determine, for each of the at least two respective user profiles, resource consumption caused by the detected use of the component over a period of time, wherein the resource consumption comprises at least one of an amount of data transmissions and power consumption of a battery of the mobile computing device. Further, the at least one processor may be configured to generate, for at least one of the at least two respective user profiles, a visual representation comprising an indication of the resource consumption caused by the detected use of the component associated with one of the respective user profiles, an indication of the component associated with the resource consumption associated with the one of the respective user profiles, and an indication of the one of the respective user profiles.
In a further example, a computer-readable storage medium can be encoded with instructions that, when executed, cause at least one processor of a mobile computing device to detect, for at least two respective user profiles of a plurality of user profiles, use of a component of the mobile computing device associated with the respective user profile, wherein the component comprises at least one of a hardware or a software component of the mobile device, and wherein the mobile computing device is configured to operate, at a given time, based at least in part on one or more configuration settings associated with one user profile of the plurality of user profiles. The computer-readable storage medium also can be encoded with instructions that, when executed, cause the at least one processor of the mobile computing device to determine, for each of the at least two respective user profiles, resource consumption caused by the detected use of the component of the mobile computing device over a period of time, wherein the resource consumption comprises at least one of an amount of data transmissions and power consumption of a battery of the mobile computing device. Additionally, the computer-readable storage medium can be encoded with instructions that, when executed, cause the at least one processor of the mobile computing device to generate, for at least one of the at least two respective user profiles, a visual representation comprising an indication of the resource consumption caused by the detected use of the component associated with one of the respective user profiles, an indication of the component associated with the resource consumption associated with the one of the respective user profiles, an indication of the one of the respective user profiles, and an indication of the period of time.
The details of one or more examples of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.
In general, this disclosure describes techniques for enabling and supporting multiple user profiles on a mobile computing device. In some instances, a mobile computing device may be configured with multiple, different user profiles, each user profile being separate from the other user profiles such that a user associated with a first user profile is prevented from gaining access to other users' profiles without providing proper authentication information for the other user profiles. As an example, a first user profile may be associated with a user's personal information and a first set of installed applications while a second user profile may be associated a user's work information and a second, potentially overlapping, set of applications. By providing different user profiles for the user's work and personal information and applications, an employer may enforce various security measures within the work profile to secure the work-related information and applications while allowing the user to configure the mobile computing device to apply a different set of security measures to the personal information and applications.
In other examples, a first user may share the mobile computing device with another user for a limited period of time (e.g., a guest user). Rather than permitting the guest user to access the first user's information and applications, the mobile computing device may be configured with a guest user profile that provides a configurable amount of access (e.g., limited access, full access, etc.) to the applications and information of the computing device. Responsive to the guest user no longer being the active user profile (e.g., logging out, logging into another user profile, etc.), the mobile computing device may be configured to automatically remove all application and user data stored at and/or generated by the mobile computing device while the guest user profile was the active user profile. Removing this application and user data may reduce the amount of information stored at the mobile computing device.
If used excessively, certain resources associated with computing devices, like battery and data transmission resources, can significantly impact device operation and user experience. Battery and data traffic usage can be even more significant if a computing device is configured for use by multiple users, as one user may use the device in ways that other users have no knowledge about or control over. For example, if a mobile computing device is on a limited data plan, one user could spend significant amounts time watching videos or streaming music, using up the amount of data available to both users on the plan without charge. In such a case, when an unexpected amount of data has been used on the phone, it can be useful to attribute the use to a particular user or a particular number of users.
In view of the impact of battery and data transmission resources and the benefits and complications associated therewith in a multi-user mobile computing device context, examples according to this disclosure include methods for collecting, by a mobile computing device, data indicative of battery and data transmission resources of the mobile device consumed as a result of use of various components of the device associated with one of multiple user profiles. Data indicating battery and data transmission resource consumption, and user profiles and mobile device components associated with the consumption may be collected for multiple time periods, e.g., hours, days, weeks, months, etc. The amount of consumption associated with particular users and device components may then be associated with particular periods of time. The mobile computing device can also be configured to generate and display one or more visual representations of the data indicating battery and data transmission resource consumption, and an indication of the associated user profiles, mobile device components, and particular time periods associated with the consumption.
In some examples of battery and data transmission resource recordation and presentation according to this disclosure, a method includes detecting, by a mobile computing device, use of a component of the mobile computing device. The use of the component is associated with a first user profile of a plurality of user profiles. The component of the mobile computing device can include a hardware and/or software component. The mobile computing device is configured to operate based at least in part on one or more configuration settings associated with one of the multiple user profiles at a time. The example method also includes determining at least one of an amount of data transmissions and power consumption of a battery of the mobile computing device caused by the detected use of the component of the mobile computing device, and generating a visual representation including the at least one of the amount of data transmissions and power consumption caused by the detected use of the component of the mobile computing device, the component of the mobile computing device detected as used in association with the first user profile, and the first user profile.
Once this data is collected, the mobile computing device can aggregate the data in various ways to show how the resource is used across applications and users. Example of such presentations are illustrated in
Computing device 2 may include UI device 4. In some examples, UI device 4 is configured to receive tactile, audio, or visual input. UI device 4, as shown in
As shown in
UI module 6 may be implemented in various ways. For example, UI module 6 may be implemented as a downloadable or pre-installed application or “app.” In another example, UI module 6 may be implemented as part of a hardware unit of computing device 2. In another example, UI module 6 may be implemented as part of an operating system of computing device 2.
Computing device 2, in some examples, includes input module 8. Input module 8 may include functionality to perform any one or more of a variety of operations on computing device 2. For instance, input module 8 may include functionality to determine gesture, keyboard, or other user inputs in accordance with the techniques described herein. Input module 8 may be implemented in various ways. For example, input module 8 may be implemented as a downloadable or pre-installed application or “app.” In another example, input module 8 may be implemented as part of a hardware unit of computing device 2. In another example, input module 8 may be implemented as part of an operating system of computing device 2.
Input module 8 may receive data from components associated with computing device 2, such as UI module 6. For instance, input module 8 may receive gesture data from UI module 6 that causes input module 8 to determine one or more actions to perform based on the gesture data. Input module 8 may also send data to components associated with computing device 2, such as UI module 6. For instance, input module 8 may send text determined based on the gesture data to UI module 6, which causes UI device 4 to display GUIs 15 and/or 16.
As shown in
User management module 10 may manage one or more user profiles configured at computing device 2. For example, user management module 10 may create, modify, or delete user profiles configured at computing device 2, e.g., responsive to user input received by input module 8. In some instances, user management module 10 may control access to information stored at computing device 2 and associated with various user profiles configured at computing device 2 by, for example, authenticating user input received by user interface device 4 against stored authentication information associated with a particular user profile to determine whether to grant access to the user profile.
Multiple user profiles of computing device 2 may be employed by the device to adapt the operation of the computing device 2, including the presentation of information and execution of functions, to particular user profiles associated with particular users of the device computing 2. For example, user management module 10 may store in memory of computing device 2 configuration settings associated with each of a number of user profiles. Computing device 2 can be configured to operate based at least in part on the configuration settings associated with a user profile indicated as active by user management module 10, such that operations of computing device 2 change depending on which of the multiple user profiles managed by user management module 10 is active at any given time. Adapting operation of computing device 2 based on different user profiles can include, e.g., providing access to different end-user software and/or hardware applications and generation of user profile-specific user interface elements by UI module 6 and presentation thereof at UI device 4. For example, elements of a GUI generated by UI module 6 and presentation of the GUI at UI device 4 may change depending on the user profile according to which computing device 2 is operating at a given time. In some examples, UI module 6 generates a GUI and presents the GUI at UI device 4 that includes a wallpaper digital image that is specific to a particular user profile.
User profile-based adaptive operation of computing device 2 is also applied to tracking and managing battery and data transmission resources of computing device 2. In the example of
In some examples, resource consumption module 14 is configured to detect, for a component of computing device 2, use associated with a first user profile of multiple user profiles managed by user management module 10. Resource consumption module 14 and user management module 10 may be configured to communicate with one another such that resource consumption module 14 receives data from user management module 10 indicating the user profile according to which computing device 2 is currently configured to operate. Additionally, resource consumption module 14 can be configured to determine an amount of resource consumption caused by the detected use associated with the first user profile of the component of computing device 2. For example, resource consumption module 14 can be configured to determine an amount of power consumption of a battery of computing device 2 caused by a detected use associated with the first user profile of a hardware component, e.g., a display device of computing device 2. In another example, resource consumption module 14 is configured to determine an amount of data transmissions caused by a detected use associated with the first user profile of an end-user application, e.g., an e-mail application of computing device 2. As described in more detail below, resource consumption module 14 can be configured to detect use of components of computing device 2 and determine resource consumption associated with the use with software, hardware, or combinations thereof
Resource consumption module 14 can store data indicative of the detected use of components of computing device 2, an indication of the particular user profile associated with such use, and the amount of resource consumption caused by the component use associated with the user profile. The data stored by resource consumption module 14 can then be employed to render visual representations of the data, for example, to present to users of computing device 2 at UI device 4. In some examples, resource consumption module 14 communicates to UI module 6 data indicative of the detected use of components of computing device 2, the particular user profile associated with such use, and the amount of resource consumption caused by the component use associated with the user profile. UI module 6 can be configured to generate a visual representation of the resource consumption, an indication of the component of computing device 2 associated with the resource consumption, and an indication of the user profile associated with the consumption. UI module 6 can also be configured to control UI device 4 to display, e.g., at a display device, the visual representation of the resource consumption, the indication of the component of computing device 2 associated with the resource consumption, and the indication of the user profile associated with the consumption. User management module 10 and resource consumption module 14 may be components of an operating system executing on computing device 2 or may be incorporated within any other software component, such as an application of applications modules 12.
In
As shown in the example of
Processors 40, in some examples, are configured to implement functionality and/or process instructions for execution within computing device 2. For example, processors 40 may be capable of processing instructions stored in storage device 48. Examples of processors 40 may include any one or more of a microprocessor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or equivalent discrete or integrated logic circuitry.
One or more storage devices 48 may be configured to store program code and/or data for use within computing device 2 during operation. In the example of
One or more storage devices 48, in an example, is used by software or applications running on computing device 2 (e.g., applications 12) to temporarily store information during program execution. Storage devices 48, in some examples, comprise one or more computer-readable storage media or computer-readable storage devices. In some examples, one or more of storage devices 48 may be configured to store larger amounts of information than volatile memory. One or more of storage devices 48 may further be configured for long-term storage of information. In some examples, one or more of storage devices 48 include non-volatile storage elements. Examples of such non-volatile storage elements include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories.
Computing device 2 also includes one or more communication units 44. Computing device 2, in some examples, utilizes communication units 44 to communicate with external devices using one or more networks, such as one or more wireless networks. Communication units 44 may include a network interface card, such as an Ethernet card, an optical transceiver, a radio frequency transceiver, or any other types of devices that can send and receive information. Other examples of such network interfaces may include Bluetooth, 3G, and WiFi radios computing devices as well as Universal Serial Bus (USB). In some examples, computing device 2 utilizes one or more communication units 44 to wirelessly communicate with another computing device that is operably coupled to computing device 2. In accordance with some examples according to this disclosure, data transmitted from computing device 2 and received by computing device 2 via one or more communication units 44 may be attributed to use of components of computing device 2 and may be tracked to determine the amount of data transmissions caused by use associated with particular user profiles of different components of device 2.
Computing device 2, in some examples, also includes one or more input devices 42. One or more input devices 42, in some examples, are configured to receive input from a user through tactile, audio, or video feedback. Examples of input devices 42 include a presence-sensitive input device, such as a presence-sensitive display; a mouse; a keyboard; a voice responsive system; video camera; microphone; or any other type of device for detecting a command from a user. In some examples, a presence-sensitive device includes a touch-sensitive device.
One or more output devices 46 may also be included in computing device 2. One or more output devices 46, in some examples, are configured to provide output to a user using tactile, audio, and/or video stimuli. Output devices 46, in some examples, include a sound card, a video graphics adapter card, optical projector, a presence-sensitive display, or any other type of device for converting a signal into an appropriate form understandable to humans or machines. Additional examples of output devices 46 include a speaker, a cathode ray tube (CRT) monitor, a liquid crystal display (LCD), or any other type of device that can generate intelligible output to a user.
Operating system 54, in some examples, controls the operation of components of computing device 2. For example, operating system 54, in some examples, facilitates the communication of user management module 10 with processors 40, communication units 44, storage device 48, input device 42, and output device 46. One or more components of storage devices 48, including user management module 10 and applications 12, may each include program instructions and/or data that may be executable by computing device 2.
In the example of
In some examples, power consumption module 56 is configured to determine the amount of power consumption of battery 60 of computing device 2 and communication data indicative of such consumption to UI module 6, which, in turn, can generate visual representations of power consumption data for display at output device 46, e.g., at a display device. For example, power consumption module 56 can be configured to detect the use of hardware or other components of computing device 2. The use of a component of computing device 2 can be detected, e.g., by measuring power drawn by the component, detecting activities performed by applications 12 with a hardware component of computing device 2, or detecting communications, such as instructions, to the hardware component from another component of computing device.
In some examples, the amount of power use attributable to the use of the component may be directly determined. For example, a power circuit between battery 60 and the hardware component, e.g., processors 40, may include a small resistor across which a voltage drop can be measured. Using the measured voltage drop and the known resistance of the resistor, power consumption module 56 can determine the amount of current being drawn by the component. Then, using the current being drawn and the known voltage of battery 60, power consumption module 56 can determine amount of power being drawn by the component.
In other examples, power consumption module 56 executes instructions that are configured to convert characteristics of operations and/or functions executed at computing device 2 into an amount of power consumption of battery 60. For example, after detecting use of a component of computing device 2, power consumption module 56 can execute instructions that convert characteristics of the detected use of the component into an amount of power consumption of battery 60. The instructions can relate the detected use of the component, e.g., type of use, duration of use, etc., into an estimated power consumption. The instructions may be based on, e.g., previously measured power consumption of similar or the same operations and/or functions by the same or a similar device.
In some examples, power consumption module 56 detects activation of a display device included in output devices 46. For example, power consumption module 56 can detect activation of a backlight of an LCD display device by detecting an increased power draw from battery 60 by the display or detecting messages, e.g., commands, from one or more processors 40 to the display to turn on the backlight. In such a case, power consumption module 56 can continue monitoring the activation of the LCD display for a period of time and determine a total amount of power consumed from battery 60 as a result of the display activation.
In some examples, power consumption module 56 executes an algorithm that converts display activation for a determined amount of time into an amount of power consumption from battery 60. In some instances, algorithms executed by power consumption module 56 to convert component use into power consumption data may be configured to consider more than the use of a particular component and the amount of time the component is used. For example, the character of the use of processors 40, e.g., operating frequencies and associated voltage planes, can vary for different functions, operating states, or resource loads, and the amount of power drawn from battery 60 can similarly vary, not only based on the amount of time processors 40 are executing the function, but also based on the operating frequency of processors 40. Regardless of the manner by which power consumption module 56 determines the amount of power consumption attributable to a component, power consumption module 56 can then store data indicating the amount of power consumption, e.g., on memory included in storage devices 48.
Data transmissions module 58 can be configured to operate in a manner similar to power consumption module 56, except with respect to determining the amount of data transmissions to and/or from communication units 44 caused by use associated with particular user profiles of components of computing device 2. In some examples, data transmissions module 58 is configured to determine the amount of data transmissions to and/or from communication units 44 and communicate data indicative of such data transmissions to UI module 6, which, in turn, can generate visual representations of data transmission data for display at output device 46, e.g., at a display device. For example, data transmissions module 58 can be configured to detect the use of hardware or other components of computing device 2. The use of a component of computing device 2 can be detected, e.g., by measuring power drawn by the component, detecting activities performed by applications 12 using a hardware component of computing device 2, or detecting communications, such as instructions, to the hardware component.
In some examples, data transmissions module 58 is configured to, upon detection of the use of a component of computing device 2, monitor operations of communication units 44 and measure the amount of data transmitted as a result of the detected use of the component. For example, data transmissions module 58 may detect the use of an end-user application included in application modules 12. Data transmissions module 58 could detect use of one of application modules 12, e.g., by monitoring messages, processes, or other operations associated with the one of application modules 12 indicating use. For example, data transmissions module 58 can detect the use of an e-mail client application by monitoring instructions executed by one or more processors 40. Upon detection of the use of the e-mail client, data transmissions module 58 can, in some examples, monitor operations of communications units 44 and measure the amount of data transmitted to and/or from communications units 44. Data transmissions module 58 can then associate the use of the e-mail client and the amount of data transmitted to and/or from communications units 44 during detected operation of the e-mail client with the use of the e-mail client.
In some examples, power consumption module 56 and/or data transmissions module 58, in conjunction with user management module 10, can associate the detected use of a component of computing device 2 and the power of battery 60 consumed thereby or the data transmissions to and/or from communication units 44 resulting therefrom, respectively, with a particular user profile. In some examples, power consumption module 56 and/or data transmissions module 58, in conjunction with user management module 10, can identify the user profile as an active one of the plurality of user profiles when the use of the component of computing device 2 occurred.
For example, various applications, processes, and other functions, including core system processes that are executed at computing device 2, e.g., by processors 40, each may be mapped to a unique identification code, such as a unique integer. In some examples, a unique identifier (ID) is mapped to each application and is also mapped to each user profile of computing device 2. In such cases, a single application, process, or other function executed at computing device 2 may be mapped to multiple unique ID's corresponding to multiple different user profiles.
In some examples, execution of each application (or process or other function) associated with the use of a component of computing device 2 may automatically invoke the unique ID of that application. For example, functions executed by an application may include within function calls of the application the unique ID of the application such that detection of the use of the application also indicates the unique ID of the application. Thus, resource consumption module 14, including power consumption module 56 and data transmissions module 58, can detect use of a component by detecting use of an application (or process or other function) associated therewith, and such detection may automatically indicate the unique ID of the application.
In some examples, identification of a user profile as the active profile at the time of component use and resource consumption caused thereby can be made at any point in time after the unique ID of an application associated with the detected component use is determined. In some examples, user management module 10 may receive a unique ID associated with an application, the use of which is associated with a detected use of a component from resource consumption module 14. User management module 10 or another module or component can be configured to reference a database or other data storage and retrieval mechanism mapping applications, unique ID's, and user profiles. For example, after or while detecting use of an application corresponding to use of a component of computing device 2, user management module 10 can be configured to send a database query to a database mapping applications to unique ID's and user profiles. The database query can be configured to return to user management module 10 the user profile associated with unique ID of the application that was or is being used. In some examples, identification of user profiles as the active profile at the time of component use are made during the generation of a visual representation of resource consumption, component use causing such consumption, and the user profile that is identified as active at the time the component use occurred.
Although described above as executed by each of power consumption module 56 and data transmissions module 58, in some examples, component use detection may be executed by a module separate therefrom. In such a case, the separate component use detection module can be configured to communicate data indicative of component use to power consumption module 56 and data transmissions module 58 for use in determining the amount of resources consumed by such use.
Resource consumption module 14, including power consumption module 56 and data transmissions module 58, can be configured to store data indicative of the detected use of components of computing device 2, the particular user profile associated with the component use, and the amount of resource consumption caused by the component use associated with the user profile. The data stored by resource consumption module 14 can then be employed to render visual representations of the data, for example, to present to users of computing device 2 at UI device 4. In some examples, resource consumption module 14 communicates data to UI module 6 indicative of the detected use of components of computing device 2, the particular user profile associated with the component use, and the amount of resource consumption caused by the component use associated with the user profile. UI module 6 can be configured to generate a visual representation of the resource consumption and the component of computing device 2 and user profile associated with such consumption. UI module 6 can also be configured to control UI device 4 to display, e.g., at a display device, the visual representation of the resource consumption, an indication of the component of computing device 2, and an indication of the user profile associated with such consumption. Examples of visual representations of user profile-specific component use and resource consumption are described in more detail below with reference to
As shown in the example of
In other examples, such as illustrated previously by computing device 2 in
Presence-sensitive display 64, like presence-sensitive display 4 as shown in
As shown in
Projector screen 82, in some examples, may include a presence-sensitive display 84. Presence-sensitive display 84 may include a subset of functionality or all of the functionality of UI device 4 as described in this disclosure. In some examples, presence-sensitive display 84 may include additional functionality. Projector screen 82 (e.g., an electronic whiteboard), may receive data from computing device 60 and display the graphical content. In some examples, presence-sensitive display 84 may determine one or more user inputs (e.g., continuous gestures, multi-touch gestures, single-touch gestures, etc.) at projector screen 82 using capacitive, inductive, and/or optical recognition techniques and send indications of such user input using one or more communication units to computing device 60.
As described above, in some examples, computing device 60 may output graphical content for display at presence-sensitive display 64, which is coupled to computing device 60 by a system bus or other suitable communication channel. Computing device 60 may also output graphical content for display at one or more remote devices, such as projector 80, projector screen 82, mobile device 86, and visual display device 90. For instance, computing device 60 may execute one or more instructions to generate and/or modify graphical content in accordance with techniques of the present disclosure. Computing device 60 may output the data that includes the graphical content to a communication unit of computing device 60, such as communication unit 70. Communication unit 70 may send the data to one or more of the remote devices, such as projector 80, projector screen 82, mobile device 86, and/or visual display device 90. In this way, computing device 60 may output the graphical content for display at one or more of the remote devices. In some examples, one or more of the remote devices may output the graphical content at a display device, such as a presence-sensitive display, that is included in and/or operatively coupled to the respective remote device.
In some examples, computing device 60 may not output graphical content at presence-sensitive display 64 that is operatively coupled to computing device 60. In other examples, computing device 60 may output graphical content for display at both a presence-sensitive display 64 that is coupled to computing device 60 by communication channel 62A, and at a display of one or more the remote devices. In such examples, the graphical content may be displayed substantially contemporaneously at each respective device. For instance, some delay may be introduced by the communication latency to send the data that includes the graphical content to the remote device. In some examples, graphical content generated by computing device 60 and output for display at presence-sensitive display 64 may be different than graphical content display output for display at one or more remote devices.
Computing device 60 may send and receive data using any suitable communication techniques. For example, computing device 60 may be operatively coupled to external network 74 using network link 72A. Each of the remote devices illustrated in
In some examples, computing device 60 may be operatively coupled to one or more of the remote devices included in
In accordance with techniques of the disclosure, computing device 60 may be operatively coupled to one or more of the remote devices, such as projector 80, projector screen 82, mobile device 86, and/or visual display device 90, using external network 74. Computing device 60 can be configured to detect resource (e.g., power or data transmissions) use by a component of computing device 60 and associate that detected resource use with the component and a user profile, such as an active user profile at the time at which the component was detected to consume the resource. Computing device 60 also may be configured to output data that includes a graphical representation of an indication of the component, the resource use, and an indication of the associated user profile to communication unit 70. Communication unit 70 may send the data that includes the representation of the indication of the component, the resource use, and the indication of the associated user profile to one or more of the remote devices, such as projector 80, projector screen 82, mobile device 86, and/or visual display device 90 using external network 74. A display device of the one or more of the remote devices, such as projector 80, projector screen 82, mobile device 86, and/or visual display device 90, in response to receiving the data using external network 74, may cause the associated display device to output the graphical representation of the component, the indication of the resource use, and the indication of the associated user profile.
In some examples, the method of
In some examples, power consumption module 56 can be configured to detect the use of hardware or other components of computing device 2 (200). The use of a component of computing device 2 can be detected, e.g., by measuring power drawn by the component, detecting activities performed by one or more of application modules 12 with a hardware component of computing device 2, or detecting communications such as instructions to the hardware component.
Power consumption module 56 can also be configured to determine the amount of power consumption of battery 60 caused by the detected use of the component of computing device 2 (202). In some examples, power consumption module 56 executes instructions that are configured to convert characteristics of operations/functions executed at computing device 2 into an amount of power consumption of battery 60. In some examples, power consumption module 56 detects activation of a display device included in output devices 46. For example, power consumption module 56 can detect activation of a backlight of an LCD display device by detecting an increased power draw from battery 60 by the display or detecting messages, e.g., commands from processors 40 to the display to turn on the backlight. In such a case, power consumption module 56 can continue monitoring the activation of the LCD display for a period of time and determine a total amount of power consumed from battery 60 as a result of the display activation. In some examples, power consumption module 56 executes an algorithm that converts display activation for a determined amount of time into an amount of power consumption from battery 60. Algorithms executed by power consumption module 56 to convert component use into power consumption data may be configured to consider more than the use of a particular component and the amount of time the component is used. For example, the character of the use of processors 40, e.g., operating frequencies and associated voltage planes, can vary for different functions, operating states, or resource loads, and the amount of power drawn from battery 60 can also vary, not only based on the amount of time processors 40 are executing a function, but also based on the operating frequency of the processors 40.
Power consumption module 56 can be configured to communicate data indicative of the detected use of components of computing device 2, the particular user profile associated with such use, and the amount of power consumption of battery 60 caused by the component use associated with the user profile. In some examples, resource consumption module 14 communicates data to UI module 6 indicative of the detected use of components of computing device 2, the particular user profile associated with such use, and the amount of resource consumption caused by the component use associated with the user profile. UI module 6 can be configured to generate a visual representation of the power consumption, an indication of the component of computing device 2, and an indication of the user profile associated with such consumption (204). In the process of generating the visual representation of the power consumption, the indication of the component of computing device 2, and the indication of the user profile associated with the consumption, user management module 10 can identify the user profile active at the time the component use occurred and can communicate an indication of the identified user profile to UI module 6. UI module 6 can also be configured to control UI device 4 to display, e.g., at a touch-sensitive display device the visual representation of the resource consumption, the indication of the component of computing device 2, and the indication of the user profile associated with such consumption (206).
An example of a visual representation including the amount of power consumption of battery 60 caused by the detected use of the component of computing device 2 associated with the first user profile, the indication of the component of computing device 2 detected as used in association with the first user profile, and the indication of the first user profile is illustrated in
In
GUI 310 also includes visual content representing component use, power consumption caused by the component use, and the indication of the first user profile. In the example illustrated in
Additionally, GUI 310 includes pictorial representation 318b and textual representation 320b of the first user profile, labeled “Joe Smith,” associated with the use of some components of computing device 2. GUI 310 also includes numerical representation 32b and graphical representation 324b of the amount of power consumption of battery 60 associated with the first user profile, labeled “Joe Smith” (e.g., caused by use of components of computing device 2 and associated with the “Joe Smith” user profile). In the example of
In some examples, data transmission module 58 can be configured to detect the use of hardware or other components of computing device 2 (200). The use of a component of computing device 2 can be detected, e.g., by measuring power drawn by the component, detecting activities performed by one or more of application modules 12 with a hardware component of computing device 2, or detecting communications such as instructions to the hardware component.
In some examples, data transmissions module 58 is configured to, upon detection of the use of a component of computing device 2, monitor operations of communication units 44 and determine the amount of data transmitted as a result of the detected use of the component (202). For example, data transmissions module 58 may detect the use of an end-user application included in application modules 12 executed at computing device 2. Data transmissions module 58 module can detect use of one of application modules 12, e.g., by monitoring messages, processes, or other operations associated with the application and indicating use thereof. For example, data transmissions module 58 can detect the use of an e-mail client application. Upon detection of the use of the e-mail client, data transmissions module 58 can, in some examples, monitor operations of communications units 44 and determine the amount of data transmitted to and/or from communications units 44 as a result of the use of the e-mail client.
Data transmission module 58 can be configured to communicate data indicative of the detected use of components of computing device 2, the particular user profile associated with such use, and the amount of data transmitted as a result of the component use associated with the user profile. In some examples, data transmission module 58 communicates the data to UI module 6. UI module 6 can be configured to generate a visual representation of the data transmissions, an indication of the component of computing device 2, and an indication of the user profile associated with such consumption (204). In the process of generating the visual representation of the data transmissions, the indication of the component of computing device 2, and the indication of the user profile associated with such consumption, user management module 10 can identify the user profile active at the time the component use occurred and can communicate the identified user profile to UI module 6. UI module 6 can also be configured to control UI device 4 to display, e.g., at a touch-sensitive display device the visual representation of the resource consumption, the indication of the component of computing device 2, and the indication of the user profile associated with the consumption (206).
An example of a visual representation including the amount of data transmissions to and/or from communications units 44 of computing device 2 caused by the detected use of the component of device 2 associated with the first user profile, the indication of the component of computing device 2 detected as used in association with the first user profile, and the indication of the first user profile is illustrated in
In
GUI 410 also includes visual content representing indications of component use, data transmissions resulting from the component use, and the indications of the user profile associated with the use. For example, GUI 410 includes graphical representation 416 indicating both the total amount of time and subsets thereof over which data transmissions were tracked. Graphical representation 416 also indicates the total amount of data transmissions over the time period. Similar to GUI 310 of
GUI 410 also includes a pictorial representation and textual representation of the user profile, labeled “Joe Smith,” associated with the use of the application modules of computing device 2. Again similar to GUI 310 of
The examples of
The techniques described in this disclosure may be implemented, at least in part, in hardware, software, firmware, or any combination thereof. For example, various aspects of the described techniques may be implemented within one or more processors, including one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuitry, as well as any combinations of such components. The term “processor” or “processing circuitry” may generally refer to any of the foregoing logic circuitry, alone or in combination with other logic circuitry, or any other equivalent circuitry. A control unit including hardware may also perform one or more of the techniques of this disclosure.
Such hardware, software, and firmware may be implemented within the same device or within separate devices to support the various techniques described in this disclosure. In addition, any of the described units, modules or components may be implemented together or separately as discrete but interoperable logic devices. Depiction of different features as modules or units is intended to highlight different functional aspects and does not necessarily imply that such modules or units must be realized by separate hardware, firmware, or software components. Rather, functionality associated with one or more modules or units may be performed by separate hardware, firmware, or software components, or integrated within common or separate hardware, firmware, or software components.
The techniques described in this disclosure may also be embodied or encoded in an article of manufacture including a computer-readable storage medium or computer-readable storage device encoded with instructions. Instructions embedded or encoded in an article of manufacture including a computer-readable storage medium encoded, may cause one or more programmable processors, or other processors, to implement one or more of the techniques described herein, such as when instructions included or encoded in the computer-readable storage medium are executed by the one or more processors. Computer readable storage media may include random access memory (RAM), read only memory (ROM), programmable read only memory (PROM), erasable programmable read only memory (EPROM), electronically erasable programmable read only memory (EEPROM), flash memory, a hard disk, a compact disc ROM (CD-ROM), a floppy disk, a cassette, magnetic media, optical media, or other computer readable storage media. In some examples, an article of manufacture may include one or more computer-readable storage media.
In some examples, a computer-readable storage medium may include a non-transitory medium. The term “non-transitory” may indicate that the storage medium is not embodied in a carrier wave or a propagated signal. In certain examples, a non-transitory storage medium may store data that can, over time, change (e.g., in RAM or cache).
Various examples have been described. These and other examples are within the scope of the following claims.
This application claims the benefit of U.S. Provisional Application No. 61/716,452, filed Oct. 19, 2012, and U.S. Provisional Application No. 61/791,244, filed Mar. 15, 2013, the entire contents of each of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61716452 | Oct 2012 | US | |
61791244 | Mar 2013 | US |