A disclosed method detects user input to set wallpaper of a first operating system environment using an image data file, and sends the image data file from the first operating system environment to a second operating system environment along with a request to update wallpaper of the second operating system environment. The two operating system environments are independent and utilize a common kernel. The method sets the wallpaper of the second operating system environment using the image data file. The method may also establish a bi-directional client-server communication channel between the operating system environments, and send the request to update wallpaper of the second operating system environment via the bi-directional client-server communication channel. An apparatus that performs the method includes a programmable processor, and memory containing executable instructions. The processor runs multiple operating system environments utilizing a common kernel.
|
11. An apparatus comprising:
at least one processor;
main memory coupled to the processor, the main memory containing executable instructions for execution by the processor, where upon executing the executable instructions the processor is configured to:
send an image data file obtained from a first operating system environment to a second operating system environment along with a request to update wallpaper of the second operating system environment, in response to user input to set wallpaper of the first operating system environment using the image data file, the second operating system environment and the first operating system environment being independent from each other, both operating system environments utilizing a common kernel independent of virtualization; and
set wallpaper of at least one of a plurality of home screens of the second operating system environment using the image data file, wherein at least one other home screen of the plurality of home screens of the second operating system environment comprises a different wallpaper than the wallpaper of the at least one of the plurality of home screens that was set using the image data file sent by the first operating system environment.
1. A method comprising:
detecting, by a wallpaper synchronization daemon of a first operating system environment, user input to set wallpaper of the first operating system environment using an image data file;
in response to detecting the user input to set the wallpaper of the first operating system environment, automatically sending the image data file by the wallpaper synchronization daemon of the first operating system environment to a wallpaper synchronization handler of a second operating system environment along with a request to update wallpaper of at least one of a plurality of home screens of the second operating system environment, the second operating system environment and the first operating system environment being independent from each other, both operating system environments utilizing a common kernel; and
setting, by the wallpaper synchronization handler of the second operating system environment, the wallpaper of the at least one of the plurality of home screens of the second operating system environment using the image data file, wherein at least one other home screen of the plurality of home screens of the second operating system environment comprises a different wallpaper than the wallpaper of the at least one of the plurality of home screens that was set using the image data file sent by the first operating system environment.
21. A computer readable, non-volatile, non-transitory memory, comprising:
executable instructions for execution by at least one processor, that when executed cause the at least one processor to:
detect user input to set wallpaper of a first operating system environment using an image data file;
modify the image data file based at least in part on display attributes of a second operating system environment when the user input is detected;
initiate a transmission of the modified image data file from the first operating system environment to the second operating system environment along with a request to update wallpaper of the second operating system environment when the user input is detected, the second operating system environment and the first operating system environment being independent from each other, both operating system environments utilizing a common kernel independent of virtualization; and
set the wallpaper of one of a plurality of home screens of the second operating system environment using the modified image data file, wherein at least one other home screen of the plurality of home screens of the second operating system environment comprises a different wallpaper than the wallpaper of the at least one of the plurality of home screens that was set using the modified image data file transmitted by the first operating system environment.
2. The method of
establishing a bi-directional client-server communication channel between the first operating system environment and the second operating system environment; and
sending the request to update wallpaper of the second operating system environment, from the first operating system environment to the second operating system environment via the bi-directional client-server communication channel.
3. The method of
executing wallpaper setup logic, the wallpaper setup logic including a first module contained with the first operating system environment and a second module contained within the second operating system environment; and
establishing the bi-directional client-server communication channel between the first operating system environment and the second operating system environment where the bi-directional client-server communication channel is between the first module and the second module.
4. The method of
detecting the user input by the first module and updating a file path for the image data file.
5. The method of
setting the wallpaper by the second module of the wallpaper setup logic.
6. The method of
updating the file path for the image data file by a configuration daemon of the first module; and
sending the request to update wallpaper of the second operating system environment, from the wallpaper synchronization daemon of the first module to the second module.
7. The method of
receiving the request to update wallpaper of the second operating system environment by the wallpaper synchronization handler of the second module; and
setting the wallpaper for the second operating system environment by a wallpaper manager of the second module.
8. The method of
transcoding the image data file to a file format useable by the second operating system environment.
9. The method of
sizing and scaling the wallpaper for the second operating system environment; and
displaying on a display, the wallpaper within the at least one of the plurality of home screens of the second operating system environment.
10. The method of
storing the image data file to local memory cache, after obtaining the image data file from the first operating system environment.
12. The apparatus of
establish a bi-directional client-server communication channel between the first operating system environment and the second operating system environment; and
send the request to update wallpaper of the second operating system environment, from the first operating system environment to the second operating system environment via the bi-directional client-server communication channel.
13. The apparatus of
execute wallpaper setup logic, the wallpaper setup logic including a first module contained with the first operating system environment and a second module contained within the second operating system environment; and
establish the bi-directional client-server communication channel between the first operating system environment and the second operating system environment where the bi-directional client-server communication channel is between the first module and the second module.
14. The apparatus of
detect the user input by the first module and update a file path for the image data file.
15. The apparatus of
16. The apparatus of
detecting the user input by a wallpaper synchronization daemon of the first module;
updating the file path for the image data file by a configuration daemon of the first module; and
sending the request to update wallpaper of the second operating system environment, from the wallpaper synchronization daemon of the first module to the second module.
17. The apparatus of
receive the request to update wallpaper of the second operating system environment by a wallpaper synchronization handler of the second module; and
set the wallpaper for the second operating system environment by a wallpaper manager of the second module.
18. The apparatus of
transcode the image data file to a file format useable by the second operating system environment.
19. The apparatus of
at least one display, coupled to the processor; and
where the processor is configured to:
size and scale the wallpaper for the second operating system environment; and
display on the display, the wallpaper within the at least one of the plurality of home screens of the second operating system environment.
20. The apparatus of
cache memory coupled to, or integrated with, the processor; and
where the processor is configured to store the image data file to the cache memory, after obtaining the image data file from the first operating system environment.
22. The computer readable, non-volatile, non-transitory memory, of
establish a bi-directional client-server communication channel between the first operating system environment and the second operating system environment; and
send the request to update wallpaper of the second operating system environment, from the first operating system environment to the second operating system environment via the bi-directional client-server communication channel.
|
The present disclosure relates generally to operating systems and devices having multiple operating system environments.
Various operating systems provide features and applications that are often specific to the given operating system. For this reason, it has become useful for computing devices, including handheld mobile devices, to be capable of running more than one operating system environment. By running more than one operating system environment on a device, users are able to access the features and applications associated with each of the operating system environments, thereby enhancing the capabilities and functions of the device.
In the past, virtualization techniques have been used to accomplish running multiple operating system environments; however such approaches require emulation of an entire machine which is resource intensive. Systems have now been developed that enable actual running of multiple operating system environments without the need for such resource intensive machine emulation. Such systems utilize a common kernel where the operating system environments may be considered middleware, in that, some services related to the various applications may be supported within the confines of the environment. Therefore, in these systems, the operating system environments co-exist independently, and do not require virtualization as in the past. Devices supporting these multiple environments therefore enable users to access and enjoy the features of the operating systems and their associated data such as applications.
Nevertheless, some demarcation between the operating system environments continues to exist for the purpose of presentation to the device user. The environments usually provide their own unique approach to how associated data is displayed by the operating system. In some cases, the user may be compelled to switch display views in order to work with one or another operating system environment. Being forced to switch views in this manner negatively impacts user experience because the work or operating contexts in which the user was engaged can be lost or muddled among the various views. Furthermore, any given operating system environment will not understand, and therefore will be incapable of interpreting, data associated with a different operating system environment and any associated data or working context.
The disclosed embodiments provide better interoperability between multiple operating system environments. In the embodiments, when a user attempts to change the background wallpaper in a first operating system environment, the image data file is captured and, if necessary, converted to a format that can be used by a second operating system environment, including, if necessary, adjusting the size and scale of the resulting wallpaper image to fit appropriately into a display. The second operating system environment then receives the converted image data file and uses it to set wallpaper. As a result, the user experience in working with multiple operating system environments is enhanced.
A disclosed method includes detecting user input to set wallpaper of a first operating system environment using an image data file, and sending the image data file from the first operating system environment to a second operating system environment along with a request to update wallpaper of the second operating system environment. The two operating system environments are independent from each other and both utilize a common kernel. The method sets the wallpaper of the second operating system environment using the image data file.
The method may also include establishing a bi-directional client-server communication channel between the first operating system environment and the second operating system environment, and sending the request to update wallpaper of the second operating system environment, from the first operating system environment to the second operating system environment via the bi-directional client-server communication channel.
The method may include transcoding the image data file to a file format useable by the second operating system environment, and sizing and scaling the wallpaper so that the wallpaper can be displayed within at least one home screen of a plurality of home screens of the second operating system environment.
The method may include executing wallpaper setup logic that has a first module contained with the first operating system environment and a second module contained within the second operating system environment. The bi-directional client-server communication channel is then established between the first module and the second module.
The method may also store the image data file to local memory cache, after obtaining the image data file from the first operating system environment. The method may detect the user input by the first module and update a file path for the image data file.
The disclosed embodiments include an apparatus that has at least one processor and main memory operatively coupled to the processor. The main memory contains executable instructions for execution by the processor, that when executed, cause the processor to send an image data file obtained from a first operating system environment to a second operating system environment along with a request to update wallpaper of the second operating system environment. This is done in response to user input to set wallpaper of the first operating system environment using the image data file. The processor will also set the wallpaper of the second operating system environment using the image data file, and perform other operations of the embodiments described herein. The apparatus may include cache memory operatively coupled to, or integrated with, the processor, and a display operatively coupled to the processor.
The embodiments also include a computer readable, non-volatile, non-transitory memory, storing executable instructions for execution by at least one processor, that when executed cause the at least one processor to perform the various methods and operations of the embodiments as described herein.
Turning now to the drawings wherein like numerals represent like components,
The mobile device 101 may interact with a larger display 201 as shown in
The term “display” as used herein refers to a device that displays “display data” such as an “image data file” to form a displayable image or displayable images, such as, but not limited to, a picture, a computer desktop, a gaming background, a video, an application window etc. Examples of a display include a television, computer monitor, etc., or an integrated display as found in electronic devices such as a laptop computer, handheld computing device, mobile telephone, PDA, etc. The display device may employ any appropriate display technology, such as for example, a CRT, LCD flat panel, LED flat panel, plasma screen, etc.
The terms “screen,” “home screen,” and “workspace” are used interchangeably in reference to an “image” which refers generally to what is “displayed” on a display. That is, an image, including a “screen,” “home screen,” and/or “workspace” may be displayed on a display. Examples of images include, but are not limited to, a computer desktop (i.e. a background), a gaming background, a video, an application window, an icon, a widget, etc., including also the wallpaper described herein. In other words, the term “image” may refer to a background, or may refer individually, or collectively, to elements or objects in the foreground, of hovering over, a background image such as the wallpaper. The term “display data” is used interchangeably herein with the term “image data” and refers to the information (data, or digital information) that the display interprets and/or decodes to show (i.e. to display) the user an image such as a workspace or home screen, as well as any associated elements or objects in the foreground of home screens or workspaces, or the live wallpaper, etc. An “active” home screen or “active” workspace is the home screen or workspace currently being displayed. For example, in
The term “data” as used herein, and in contrast to “display data” and “image data,” may refer to files (i.e. data files) such as executable application files, widgets, video files, documents, photographs, etc. without limitation, or to text data, such as, for example, words copied and pasted from a document.
In the example of
As mentioned briefly above, the mobile device 101 first operating system environment may provide various “home screens” 111 that enable the user to organize application icons 107 and widgets 109. In other words, various icons and widgets may be distributed between the various home screens 111. The background image, i.e. wallpaper, may include home screen objects (i.e. icons 107 and widget 109), that are associated with one of several home screens.
The combined image displayed on display 201, may include all icons, widgets, etc., from all of the home screens 111. However, when displayed only on the integrated display 103 of the mobile device 101, the icons and widgets may be distributed according to their corresponding home screens 111 as configured by the mobile device 101 user. In some embodiments, the home screens 111 of the first operating system environment may be mapped to workspaces of the second operating system environment. In this example, the wallpaper 203, may be appropriately sized and scaled to fit within the perimeter of the display 201, and may show a home screen of the first operating system environment. In this example, only the icons and widgets that the user associated with the displayed home screen would be displayed on the display 201, until the user toggled to another mapped workspace/home screen. That is, any windows that may be associated with a workspace of the second operating system would also be displayed when that workspace is mapped with the given home screen.
The wallpaper 203 in the above described scenarios is displayed on display 201 by being sized and scaled to fit within the perimeter of the display 201. However, a challenge exists when attempting to set wallpaper on the home screens 111 of the mobile device 101. Among various advantages of the embodiments, background wallpaper may be set for the mobile device home screens 111, regardless of which application and which operating system environment is used to obtain the image data file, and also regardless of the image data file format or scaling.
In accordance with an embodiment, the first operating system environment, or more specifically, the operating system environment that is used to download or obtain the image data file 215, may obtain contextual information such as metadata associated with the image data file 215, to inform a wallpaper setup logic of the mobile device 101 that the image data file 215 is to be setup as wallpaper. By having the contextual information which may include the image data file's file extension name the wallpaper setup logic may determine that the image data file is in a certain format, such as “.svg,” “.png,” a bitmap, “.jpg,” “.gif,” etc., such that appropriate transcoding can be applied to transcode the image data file for use by the second operating system environment. Among the advantages of the embodiment illustrated by
The mobile device 401 includes at least one processor 403 (such as a CPU) and may include other processors such as, but not limited to, a graphics processing unit (GPU), all of which are operatively coupled via a communication bus 415. The processor may be a programmable processor that executes instructions (i.e. software or firmware) stored in memory, to perform various operations. The communication bus 415 may run throughout the mobile device 401, providing operative coupling to the various components and circuitry contained within the mobile device 401. Therefore, in accordance with embodiments, device components, circuitry, and the like, may be operatively coupled via the communication bus 415. In other words, various intervening device components, circuitry, and the like, may exist in between, and/or along, the communication path between any two or more operatively coupled components. As shown in
In accordance with the embodiments, the processor 403 may run various operating system environments such as operating system environment #1 (OSE #1) 406, operating system environment #2 (OSE #2) 407, and so on through operating system environment #N 408 (OSE #N, i.e. an N-th operating system environment). In other words, the processor 403 is operative to run one or more of the various operating system environments 406 through 408, concurrently. The plurality of operating system environments are each completely autonomous and can exist and function independently from one another. One or more of the operating system environments may be run concurrently, and each operating system environment utilizes a common kernel 405. In other words, each one of the operating system environments is completely autonomous and may exist and function completely independently, without any of the other operating system environments being executed. The operating system environments provide “environments,” in that, for example, all necessary libraries, toolkits, windowing, etc., is present within the environment to enable an application associated with the operating system environment to function. The common kernel 405 provides fundamental interaction at the hardware level of mobile device 401. For example, the common kernel 405 may provide required operating system tasks such as program loading, system resource allocation, handling device input and output, and some memory management functions. The common kernel 405 may be created as an object-oriented design that can interface, and enable communication with, programming objects within the various operating system environments. Examples of operating system environments include, but are not limited to, Android™, Ubuntu®, other Linux® based operating systems, etc.
The mobile device 401 includes wallpaper setup logic 409 in accordance with the embodiments. The wallpaper setup logic 409 may be contained within one or more of the various operating system environments such as OSE #1 406, OSE #2 407 and OSE #N 408 as shown. However, the wallpaper setup logic 409 may also exist independently from any of the operating system environments in some embodiments. The wallpaper setup logic 409 is operatively coupled to the main memory 419 and also to cache memory 417 via the communication bus 415. That is, the wallpaper setup logic 409 communicates with the cache memory 417, the main memory 419 and the integrated display 421 via the communication bus 415.
The wallpaper setup logic 409 may obtain an image data file for the wallpaper in a variety of ways. One way is that the user may download a “wallpaper” file from the Internet using a Web browser that is associated with one of the operating system environments. Another way is that the user may use an image data file stored in main memory 419 and attempt to use the image data file as the wallpaper image. Either way, the wallpaper setup logic 409 operation is similar. For example, the user may activate a wallpaper setting application associated with OSE #1 406 and attempt to setup wallpaper using an image data file. In accordance with the embodiments, the wallpaper setup logic 409 will detect the user's actions and will pass information from OSE #1 406 to OSE #2 407, for example. The information may include contextual information such as metadata and including file type information related to the image data file format.
In some embodiments, the wallpaper setup logic 409 may be object oriented software or firmware that is executed by processor 403 only when more than one operating system environment is executed by the processor 403. The term “logic” as used herein may include software and/or firmware executing on one or more programmable processors (including CPUs and/or GPUs), and may also include ASICs, DSPs, hardwired circuitry (logic circuitry), or combinations thereof. For the example embodiment illustrated by
Although the example provided by
As shown in the example embodiment of
Also it is to be understood that
In some embodiments, the wallpaper setup logic 409 may operate at an application service level of the various operating system environments to pass image data file information including contextual information, notifications and requests between the environments. In some cases, providing contextual information may involve extracting and providing file metadata, file extensions, file format types, and/or image resolution and scaling information, to the receiving operating system environment such that the receiving operating system environment may be able to interpret and use an image data file as wallpaper. That is, the wallpaper setup logic 409 informs the receiving operating system environment of the correct file type and performs any necessary transcoding and scaling appropriate so that the receiving operating system can set the image data file as wallpaper for the integrated display 421.
In one example embodiment, one operating system environment may be an Android™ operating system environment and the second operating system environment maybe a Linux® based operating system environment. However, any of various operating system environments may be used, that operate with a common kernel in accordance with the embodiments.
The methods of operations of the various embodiments, at a high level, are shown by the flowcharts of
The user input may be detected by the wallpaper setup logic as shown in block 601 of
The synchronization handling and management module 411 includes a wallpaper sync handler 807 and a wallpaper manager 809. The bi-directional client-server communication channel 413 provides for command, request and data exchange between the synchronization and configuration module 410 and the synchronization handling and management module 411. An example of operation in accordance with an embodiment is shown in the message flow diagram of
The wallpaper sync daemon implements an AddWatch 917, 919 process with the configuration daemon 805 to detect user actions that attempt to set an image as a new desktop wallpaper. That is, if for example the user interface 901 sends a SetNewDesktopWallpaper command 921 to the application 803, the configuration daemon 805 will detect this and perform an UpdateBackgroundFilePath 923, 927 with the application 803 to note, or change, the location of the selected or downloaded image data file. The user interface 901 may be informed of the update via message 925. The configuration daemon 805 will then send a NotifyChange 929 to the wallpaper sync daemon 801, the wallpaper sync daemon 801 will save the image data (obtained by OSE #1 406) to cache memory as shown in 931. Transcoding of the image data and other processing such as resizing, scaling, etc. may be performed on the image data at this point. The wallpaper sync daemon will then send a request 933 to update the OSE #2 wallpaper to the wallpaper sync handler 807. The wallpaper sync handle sends a SetWallpaper command 935 to the wallpaper manager 809 and the wallpaper manager 809 responds by confirmation message 937 and sets the wallpaper as the background for OSE #2.
Among other advantages of various embodiments disclosed herein, the user experience is enhanced when setting up wallpaper in a device that uses two or more operating system environments. Using the embodiments, an image data file may be passed from one operating system environment to another, and be useable by the receiving operating system environment as wallpaper. Although the embodiments have been described using examples related to two operating system environments, the various embodiments are not limited to only two operating system environments and can incorporate many operating system environments as illustrated by the plurality of operating system environments shown in
The various embodiments also include computer readable memory that may contain executable instructions, for execution by at least one processor, that when executed, cause the at least one processor to operate in accordance with the wallpaper setup logic 409 functionality herein described. The computer readable memory may be any suitable non-volatile, non-transitory, memory such as, but not limited to, programmable chips such as EEPROMS, flash ROM (thumb drives), compact discs (CDs) digital video disks (DVDs), etc., that may be used to load executable instructions or program code to other processing devices or electronic devices such as those that may benefit from the features of the herein described embodiments. The executable instructions may also include the various operating system environments and the common kernel.
While various embodiments have been illustrated and described, it is to be understood that the invention is not so limited. Numerous modifications, changes, variations, substitutions and equivalents will occur to those skilled in the art without departing from the scope of the present invention as defined by the appended claims.
Jung, Ji Hye, Dharawat, Parikshit
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
6804718, | Mar 18 1999 | Kent Ridge Digital Labs | Computing system and method for migrating a mobile computing environment |
7636586, | Oct 12 2005 | CONVERSANT WIRELESS LICENSING S A R L | Mobile communication terminal |
8195624, | Jun 30 2005 | Insyde Software Corporation | Shared file system management between independent operating systems |
8233879, | Apr 17 2009 | T-MOBILE INNOVATIONS LLC | Mobile device personalization based on previous mobile device usage |
8392498, | Oct 08 2010 | AUGA TECHNOLOGIES LIMITED | Distribution of content and behavior to disparate platforms |
8549273, | Mar 24 2009 | CMS INTELLECTUAL PROPERTIES, INC | Method and apparatus to present a unique background image on a personal computer display when the computer system is booted from an external drive |
20060031407, | |||
20060155669, | |||
20070024916, | |||
20080201659, | |||
20100115254, | |||
20110084986, | |||
20110087868, | |||
20110119610, | |||
20110246904, | |||
20110304636, | |||
20120005691, | |||
20120036450, | |||
20120081353, | |||
20120084792, | |||
20120102428, | |||
20120150970, | |||
20120173986, | |||
20120174212, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 08 2012 | DHARAWAT, PARIKSHIT | Motorola Mobility LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029113 | /0190 | |
Oct 11 2012 | Google Technology Holdings LLC | (assignment on the face of the patent) | / | |||
Oct 11 2012 | JUNG, JI HYE | Motorola Mobility LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 029113 | /0190 | |
Oct 28 2014 | Motorola Mobility LLC | Google Technology Holdings LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034296 | /0001 |
Date | Maintenance Fee Events |
Mar 02 2020 | REM: Maintenance Fee Reminder Mailed. |
Aug 17 2020 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Jul 12 2019 | 4 years fee payment window open |
Jan 12 2020 | 6 months grace period start (w surcharge) |
Jul 12 2020 | patent expiry (for year 4) |
Jul 12 2022 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 12 2023 | 8 years fee payment window open |
Jan 12 2024 | 6 months grace period start (w surcharge) |
Jul 12 2024 | patent expiry (for year 8) |
Jul 12 2026 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 12 2027 | 12 years fee payment window open |
Jan 12 2028 | 6 months grace period start (w surcharge) |
Jul 12 2028 | patent expiry (for year 12) |
Jul 12 2030 | 2 years to revive unintentionally abandoned end. (for year 12) |