U.S. patent application number 13/462529 was filed with the patent office on 2013-11-07 for method and apparatus for displaying active operating system environment data with a plurality of concurrent operating system environments.
This patent application is currently assigned to Motorola Mobility, Inc.. The applicant listed for this patent is Joshua D. Galicia, Andrew N. Tzakis, Christopher M. Wolfe. Invention is credited to Joshua D. Galicia, Andrew N. Tzakis, Christopher M. Wolfe.
Application Number | 20130293573 13/462529 |
Document ID | / |
Family ID | 49512193 |
Filed Date | 2013-11-07 |
United States Patent
Application |
20130293573 |
Kind Code |
A1 |
Wolfe; Christopher M. ; et
al. |
November 7, 2013 |
Method and Apparatus for Displaying Active Operating System
Environment Data with a Plurality of Concurrent Operating System
Environments
Abstract
A method of operation generates live wallpaper display data
associated with a first operating system environment and generates
overlay display data associated with a second operating system
environment, both operating system environments utilizing a common
kernel. The overlay display data is overlaid on the live wallpaper
of the first operating system environment. The method may also
include generating at least one active application window as a
portion of the live wallpaper display data. The embodiments
disclosed include an apparatus that performs the above outlined
method. The apparatus includes multi-environment display data
handling logic, operative to generate live wallpaper display data
associated with a first operating system environment. The
multi-environment display data handling logic generates overlay
display data associated with a second operating system environment,
which is then overlaid on the live wallpaper of the first operating
system environment.
Inventors: |
Wolfe; Christopher M.;
(Antioch, IL) ; Galicia; Joshua D.; (Cary, IL)
; Tzakis; Andrew N.; (Vernon Hills, IL) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Wolfe; Christopher M.
Galicia; Joshua D.
Tzakis; Andrew N. |
Antioch
Cary
Vernon Hills |
IL
IL
IL |
US
US
US |
|
|
Assignee: |
Motorola Mobility, Inc.
Libertyville
IL
|
Family ID: |
49512193 |
Appl. No.: |
13/462529 |
Filed: |
May 2, 2012 |
Current U.S.
Class: |
345/629 |
Current CPC
Class: |
G06F 9/451 20180201;
G09G 5/14 20130101; G09G 5/363 20130101; G06F 8/61 20130101; G09G
2340/12 20130101; G06F 9/45533 20130101; G06F 3/048 20130101 |
Class at
Publication: |
345/629 |
International
Class: |
G09G 5/00 20060101
G09G005/00 |
Claims
1. A method comprising: generating live wallpaper display data
associated with a first operating system environment; and
generating overlay display data associated with a second operating
system environment, the first and second operating system
environments being independent from each other, both operating
system environments utilizing a common kernel, the overlay display
data to be overlaid on the live wallpaper of the first operating
system environment.
2. The method of claim 1, comprising: generating at least one
active application window as a portion of the live wallpaper
display data, the at least one active application window associated
with an application of the first operating system environment.
3. The method of claim 1, comprising: generating a plurality of
widget windows as a portion of the live wallpaper display data, the
plurality of widget windows associated with the first operating
system environment; and generating at least one active application
window as a portion of the overlay display data, the at least one
active application window associated with the second operating
system environment.
4. The method of claim 3, comprising: obtaining position input
corresponding to positional movement of the at least one active
application window; generating real time overlay display data
updates corresponding to the positional movement; and maintaining
any active widget portions of the live wallpaper in an active
state, even if covered over by the overlay display data.
5. The method of claim 1, wherein generating overlay display data
associated with the second operating system environment, the
overlay display data to be overlaid on the live wallpaper of the
first operating system environment, comprises: generating overlay
display data associated with a Linux.RTM. operating system
environment as the second operating system environment.
6. The method of claim 5, wherein generating live wallpaper display
data associated with the first operating system environment,
comprises: generating live wallpaper display data associated with
an Android.TM. operating system environment as the first operating
system environment.
7. The method of claim 1, comprising: displaying, on a display, the
live wallpaper display data; and displaying, on the display, the
overlay display data including at least one application window
overlaying the live wallpaper and covering a portion thereof, the
at least one application window associated with an application of
the second operating system.
8. An apparatus comprising: multi-environment display data handling
logic, operative to: generate live wallpaper display data
associated with a first operating system environment; and generate
overlay display data associated with a second operating system
environment, the first and second operating system environments
being independent from each other, with both operating system
environments utilizing a common kernel, the overlay display data to
be overlaid on the live wallpaper of the first operating system
environment.
9. The apparatus of claim 8, wherein the multi-environment display
data handling logic is operative to: generate at least one active
application window as a portion of the live wallpaper display data,
the at least one active application window associated with an
application of the first operating system environment.
10. The apparatus of claim 8, wherein the multi-environment display
data handling logic is operative to: generate a plurality of widget
windows as a portion of the live wallpaper display data, the
plurality of widget windows associated with the first operating
system environment; and generate at least one active application
window as a portion of the overlay display data, the at least one
active application window associated with the second operating
system environment.
11. The apparatus of claim 10, wherein the multi-environment
display data handling logic is operative to: obtain position input
corresponding to positional movement of the at least one active
application window; generate real time overlay display data updates
corresponding to the positional movement; and maintain any active
widget portions of the live wallpaper in an active state, even if
covered over by the overlay display data.
12. The apparatus of claim 8, wherein the multi-environment display
data handling logic is operative to generate overlay display data
associated with the second operating system environment, the
overlay display data to be overlaid on the live wallpaper of the
first operating system environment, by: generating overlay display
data associated with a Linux.RTM. operating system environment as
the second operating system environment.
13. The apparatus of claim 12, wherein the multi-environment
display data handling logic is operative to generate live wallpaper
display data associated with the first operating system
environment, by: generating live wallpaper display data associated
with an Android.TM. operating system environment as the first
operating system environment.
14. The apparatus of claim 8, comprising: a display, operatively
coupled to the multi-environment display data handling logic, the
display operative to: display the live wallpaper display data; and
display the overlay display data including at least one application
window overlaying the live wallpaper and covering a portion
thereof, the at least one application window associated with an
application of the second operating system.
15. A computer readable, non-volatile, non-transitory memory,
comprising: executable instructions for execution on at least one
processor, that when executed cause the at least one processor to:
generate live wallpaper display data associated with a first
operating system environment; and generate overlay display data
associated with a second operating system environment, the first
and second operating system environments being independent from
each other, with both operating system environments utilizing a
common kernel, the overlay display data to be overlaid on the live
wallpaper of the first operating system environment.
16. The computer readable, non-volatile, non-transitory memory, of
claim 15, wherein the executable instructions, when executed,
further cause the at least one processor to: generate at least one
active application window as a portion of the live wallpaper
display data, the at least one active application window associated
with an application of the first operating system environment.
17. The computer readable, non-volatile, non-transitory memory, of
claim 15, wherein the executable instructions, when executed,
further cause the at least one processor to: generate a plurality
of widget windows as a portion of the live wallpaper display data,
the plurality of widget windows associated with the first operating
system environment; and generate at least one active application
window as a portion of the overlay display data, the at least one
active application window associated with the second operating
system environment.
18. The computer readable, non-volatile, non-transitory memory, of
claim 17, wherein the executable instructions, when executed,
further cause the at least one processor to: obtain position input
corresponding to positional movement of the at least one active
application window; generate real time overlay display data updates
corresponding to the positional movement; and maintain any active
widget portions of the live wallpaper in an active state, even if
covered over by the overlay display data.
19. The computer readable, non-volatile, non-transitory memory, of
claim 15, wherein the executable instructions, when executed,
further cause the at least one processor to generate overlay
display data associated with the second operating system
environment, the overlay display data to be overlaid on the live
wallpaper of the first operating system environment, by: generating
overlay display data associated with a Linux.RTM. operating system
environment as the second operating system environment.
20. The computer readable, non-volatile, non-transitory memory, of
claim 19, wherein the executable instructions, when executed,
further cause the at least one processor to generate live wallpaper
display data associated with the first operating system
environment, by: generating live wallpaper display data associated
with an Android.TM. operating system environment as the first
operating system environment.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present disclosure is related to copending U.S. patent
application Ser. No. ______, Attorney Docket No. CS39606, "METHOD
AND APPARATUS FOR DISPLAYING DATA FROM A PLURALITY OF CONCURRENT
OPERATING SYSTEM ENVIRONMENTS," and U.S. patent application Ser.
No. ______, Attorney Docket No. CS39608, "METHOD AND APPARATUS FOR
PROVIDING CONTEXTUAL INFORMATION BETWEEN OPERATING SYSTEM
ENVIRONMENTS," both of which are assigned to the same assignee as
the present application, and both of which are hereby incorporated
by reference herein.
FIELD OF THE DISCLOSURE
[0002] The present disclosure relates generally to operating
systems and operating system environments.
BACKGROUND
[0003] 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.
[0004] 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.
[0005] Nevertheless, some demarcation between the operating system
environments must 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.
BRIEF DESCRIPTION OF THE DRAWINGS
[0006] FIG. 1 is a block diagram of a mobile device display with a
display image having live or active image content associated with a
first operating system environment.
[0007] FIG. 2 is block diagram of a display having a combined image
where the display data of a first operating system is displayed as
active or live wallpaper, and display data of a second operating
system is shown hovering above, or overlaying, the live wallpaper,
in accordance with the embodiments.
[0008] FIG. 3 is diagram of an apparatus with a plurality of
operating system environments, a single kernel and
multi-environment display data handling logic in accordance with an
embodiment.
[0009] FIG. 4 is flow chart illustrating high level operation of
the embodiments.
[0010] FIG. 5 is a flow chart illustrating details of one
embodiment.
[0011] FIG. 6 is a flow chart illustrating position input handling
on the combined image display, while maintaining the live
wallpaper, in accordance with various embodiments.
[0012] FIG. 7 is a flow chart illustrating further details of
operation in accordance with various embodiments.
DETAILED DESCRIPTION
[0013] The various embodiments disclosed provide an enhanced user
experience when using multiple operating system environments having
a common kernel. The embodiments combine the graphical display data
from one operating system environment with the graphical display
data from at least a second operating system environment to create
a combined graphical display. For example, in one embodiment, a
mobile device home screen of a first operating system environment
is displayed as active or live wallpaper, and display data from a
second operating system environment is handled as overlay data that
hovers above the live wallpaper. In this example, when the user
moves image objects of the second operating system environment over
live wallpaper objects, the active or live state of the live
wallpaper objects is preserved. Also, if the user switches between
workspaces, the live wallpaper is maintained, which results in a
smoother and more consistent user experience in working with the
two operating system environments
[0014] The disclosed embodiments provide a method that includes
generating live wallpaper display data associated with a first
operating system environment; and generating overlay display data
associated with a second operating system environment. The overlay
display data is overlaid on the live wallpaper of the first
operating system environment to create a combined display image.
Both operating system environments of the method utilize a common
kernel. The method may include generating at least one active
application window as a portion of the live wallpaper display data.
The at least one active application window is a window image object
associated with an application of the first operating system
environment.
[0015] The method may also include generating a plurality of widget
windows as a portion of the live wallpaper display data. The widget
windows are widget image objects associated with the first
operating system environment. The method will then generate at
least one active application window from the second operating
system environment, as a portion of the overlay display data.
[0016] The user may interact with the combined display as a
graphical user interface. For example, the method obtains position
input corresponding to positional movement of the at least one
active application window, generates real time overlay display data
updates corresponding to the positional movement, and maintains any
active widget portions of the live wallpaper in an active state,
even if covered over by the overlay display data. In other words,
the active or live background, that is, the live wallpaper, remains
active even when the second operating system environment is in
use.
[0017] The method may employ, for example, the Android.TM.
operating system as the first operating system that generates the
live wallpaper, and a Linux.RTM. based operating system environment
as the second operating system environment. However, any of various
operating system environments may be used in accordance with the
embodiments, such as, but not limited to, Android.TM., Linux.RTM.,
Ubuntu.RTM., etc.
[0018] The method may also include displaying, on a display, the
live wallpaper display data. Accordingly, the overlay display data
of the second operating system environment may include at least one
application window overlaying the live wallpaper and covering a
portion of the live wallpaper.
[0019] The embodiments disclosed include an apparatus that performs
the above outlined method. The apparatus includes multi-environment
display data handling logic, operative to generate live wallpaper
display data associated with a first operating system environment.
The multi-environment display data handling logic generates overlay
display data associated with a second operating system environment,
which is then overlaid on the live wallpaper of the first operating
system environment.
[0020] The multi-environment display data handling logic is also
operative to generate at least one active application window,
associated with the first operating system environment, as a
portion of the live wallpaper display data. For example, the
multi-environment display data handling logic is operative to
generate a plurality of widget windows as a portion of the live
wallpaper display data, and generate at least one active
application window as a portion of the overlay display data. The at
least one active application window may associated with the second
operating system environment, and the plurality of widget windows
may be associated with the first operating system environment.
[0021] The multi-environment display data handling logic is
operative to obtain position input corresponding to positional
movement of the at least one active application window, generate
real time overlay display data updates corresponding to the
positional movement, and maintain any active widget portions of the
live wallpaper in an active state, even if covered over by the
overlay display data.
[0022] The apparatus may include a display, operatively coupled to
the multi-environment display data handling logic. The display is
operative to display the live wallpaper display data, and the
overlay display data.
[0023] Another disclosed embodiment is a computer readable,
non-volatile, non-transitory memory that stores executable
instructions for execution on at least one processor. The
instructions, when executed, cause the at least one processor to
generate live wallpaper display data associated with a first
operating system environment, and generate overlay display data
associated with a second operating system environment, with both
operating system environments utilizing a common kernel. The
instructions may also cause the at least one processor to overlay
the overlay display data on the live wallpaper of the first
operating system environment to create a combined display
image.
[0024] Turning now to the drawings wherein like numerals represent
like components, FIG. 1 illustrates a mobile device 101, which
includes an integrated display 103. The integrated display 103,
displays live wallpaper 105, which is a display background image
shown as a dotted line around the perimeter of the display 103. The
mobile device 101 may also be capable of displaying various home
screens that provide for organization of application icons 107. The
home screens may allow the user to launch an application within the
perimeter of the home screen, by, for example, clicking a mouse
cursor or by using a touch screen, to provide selection input to
select and activate a desired application icon. Additionally,
scrolling to another home screen may also allow scrolling between
such launched applications. In any case, the live wallpaper 105, is
associated with a first operating system environment, and may
provide active image content. For example, a widget 109 may provide
real time information to the user. One example of a widget 109 is a
clock widget which provides the time. The home screens, and/or
visual image objects such as the icon 107 objects or widget 109
objects present in a home screen, may be moved about using a
graphical user interface (GUI), that may include touch screen
functionality, a track ball, or any other suitable user interface
for selecting and moving image objects. The background image, which
is the live wallpaper 105, remains active during any user
interactions. In other words, the live wallpaper 105 may be viewed
as a representation of the associated first operating system
environment, which may be a Linux.RTM. based operating system
environment such as, but not limited to, Android.TM., Ubuntu.RTM.,
etc.
[0025] In accordance with some embodiments, the mobile device 101
may interact with another display 201, which may be a larger
display, as shown in FIG. 2. The larger display 201 may provide an
enhanced user experience by allowing the user of mobile device 101
to have better a better view of various applications, etc. For
example, the larger display 201 may display various icons 211,
widgets 207, 209, application windows 213, 215, and a toolbar 205.
In accordance with the embodiments, the display image may include a
background image, referred to herein as live wallpaper 203. The
live wallpaper 203 is associated with a first operating system
environment of mobile device 101. In accordance with the
embodiments, some of the image objects displayed on (or hovering
over) the live wallpaper 203, may be associated with a second,
third, etc., operating system environment. The mobile device 101
may use one or more operating system environments together, or
launch additional operating system environments as needed.
Therefore, the display 201 may display a combined image providing
information from one or more operating system environments. In the
example of FIG. 2, the live wallpaper 203, icons 211, and widgets
207, 209, are associated with a first operating system environment
of the mobile device 101. The toolbar 205 and application window
213 and 215, are associated with a second operating system
environment. In accordance with the embodiment of FIG. 2, the
application windows 213 and 215 are overlaid on, or in other words,
hover over, the live wallpaper 203 of the first operating system
environment.
[0026] The term "display" as used herein refers to a device that
displays "display data" to form an image or 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.
[0027] 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
active or live 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 live 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.
[0028] FIG. 2 illustrates some of the various advantages of the
herein disclosed embodiments. In the example of FIG. 2, the display
201 displays a combined image that includes display data from a
first operating system environment and a second operating system
environment. A live wallpaper 203 is displayed that represents the
first operating system environment and is active or "live," in
that, real time operating system information may be provided. In
one example, an active or live widget 207, associated with the
first operating system environment may provide real time
information to the user. An example of an active or live widget is
a clock application that provides the time. As shown in FIG. 2, an
application window 213 associated with a second operating system
environment may be positioned, and/or moved by the user on and
about the live wallpaper 203. In the example of FIG. 2, the
application window 213 is shown hovering above a live widget 207 as
well as various other widgets 209 that are associated with the
first operating system environment. In accordance with the
embodiments, the live widget 207 and any of the other widgets 209
that are active or "live," would remain in an active state, even if
covered over by images associated with the second operating system.
That is, the live widget 207 will remain active even though the
application window 213 is in "focus," i.e. is active and being
used, and partially (or completely) covers over the widget 207
image as shown in FIG. 2. Put another way, the first operating
system environment, as represented by the live wallpaper 203, is
always running behind the second (or any other) operating system
environment. The second operating system environment may be
interacted with through windows such as application windows 213 and
215. These windows are resizable by the user as illustrated by
window 213 which is expanded versus window 215 which is shown
reduced in size, on the display.
[0029] As mentioned briefly above, the mobile device 101 first
operating system environment may provide various "home screens"
that enable the user to organize application icons 107 and widgets
109. In other words, various icons and widgets may be distributed
between various home screens. The live wallpaper 105 as shown in
FIG. 1, may include home screen objects (i.e. icons 107 and widget
109), that are associated with one of several home screens. In one
embodiment, the combined image displayed on display 201, will
include all icons, widgets, etc., from all of the home screens. For
example, icons 211 and widgets 207, 209 are shown collectively on
the combined image displayed on display 201. However, if displayed
on the integrated display 103 of the mobile device 101, the icons
211 and widgets 207, 209 would be distributed according to their
corresponding home screens as configured by the mobile device 101
user.
[0030] In another embodiment, the home screens of the first
operating system environment may be mapped to workspaces of the
second operating system environment. In this example, the live
wallpaper 203, as illustrated generally by the dotted line within
the perimeter of the display 201, may show a home screen of the
first operating system environment. In this example, only the icons
211 and widgets 207, 209 that the user associated with the
displayed home screen would be displayed. Likewise, the windows 213
and 215 may be associated with a workspace of the second operating
system, and that workspace may be mapped with the given home
screen. In this case, only windows for the given workspace would be
shown, along with image objects for the mapped home screen. That
is, the combined display may show only those image objects which
the user associated with the mapped workspace/home screen. The user
may switch (i.e. toggle), or scroll, away from one workspace/home
screen, and back again to, for example, the workspace/home screen
of the combined image shown in FIG. 2. However, in any of these
examples, the live wallpaper 203 remains active. In another
embodiment, active widgets, such as widget 207 remain fixed to the
live wallpaper 203. In this case, the workspace/home screens may be
viewed as hovering above the live wallpaper 203 and any fixed
active widgets.
[0031] Among the advantages of the embodiment illustrated by FIG.
2, user experience is enhanced because user access to icons and
widgets of the first operating system environment is simplified
when utilizing multiple operating system environments.
[0032] Further details of the various embodiments are best
understood with reference to FIG. 3. FIG. 3 illustrates a block
diagram of an apparatus 300 in accordance with various embodiments.
For example, the apparatus 300 may include a mobile device 301
operatively connected via a communication bus 329 to a peripheral
device 327 that may include a display 325. The mobile device 301
includes programmable processor 303 (i.e. a CPU) and graphics
processing unit (GPU) 315, which are operatively coupled via a
communication bus 313. The communication bus 313 may run throughout
the mobile device 301, providing operative coupling to the various
components and circuitry contained within the mobile device 301.
Therefore, in accordance with embodiments, device components,
circuitry, and the like, may be operatively coupled via the
communication bus 313. 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 FIG. 3, the programmable processor
303 is operatively coupled by the communication bus 313 to memory
311 and to a user interface (UI) 323. The memory 311 is in turn
operatively coupled, via the communication bus 313, to hardware 319
that drives an integrated display 321. The integrated display 321
is operatively coupled to hardware 319 via the same communication
bus 313. The display 321 serves as a graphical user interface (GUI)
of the mobile device 301. Therefore, the display 321 also
interfaces with, and is operatively coupled to, the programmable
processor 303 via the communication bus 313 as part of the UI 323.
The UI 323 may include a track ball mouse, touch sensitive
elements, physical switches, gyroscopic position sensors, etc. The
display 321 may provide a touchscreen functionality that is also
therefore operatively coupled, via the communication bus 313, to
the user interface 323. That is, the display 321 may provide a
graphical user interface with touchscreen capability in addition to
cursor control click to provide selection input and/or drag and
drop input functionality.
[0033] In accordance with the embodiments, the programmable
processor 303 may run various operating system environments 307,
such as operating system environment 1, operating system 2
environment, and so on through an N-th operating system
environment. In other words, the programmable processor 303 is
operative to run one or more of the various operating system
environments 307, concurrently. The plurality of operating system
environments 307 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 305. 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 305 provides fundamental interaction at the hardware
level of mobile device 301. For example, the common kernel 305 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 305 may be
created as an object-oriented design that can interface, and enable
communication with, programming objects within the various
operating system environments 307.
[0034] Examples of operating system environments include, but are
not limited to, Android.TM., Ubuntu.RTM., other Linux.RTM. based
operating systems, etc. In one example embodiment, the mobile
device 301 may be connected to the peripheral device 327 by way of
a docking port that provides the communication bus 329. In this
example, the mobile device 301 display data may be shown on display
325 which may be larger in dimensions than the integrated display
321.
[0035] In accordance with the various embodiments, the apparatus
300 includes multi-environment display data handling logic 309. The
multi-environment display data handling logic 309 may be contained
within one or more of the various operating system environments
307. However, for the example embodiment illustrated in FIG. 3, the
first operating system environment is shown as including the
multi-environment display data handling logic 309. The
multi-environment display data handling logic 309 may also exist
independently from any of the operating system environments in some
embodiments. The multi-environment display data handling logic 309
is operatively coupled to the memory 311 and also to the GPU 315
via communication path 317 which may be implemented over the
internal communication bus 313. Therefore the communication path
317 is a schematic representation of a communication path between
the multi-environment display handling logic 309 and the memory 311
and GPU 315, and may be implemented via any suitable communication
pathway. That is, it is to be understood that the operating system
environment that includes the multi-environment display data
handling logic 309 achieves the objectives of the embodiments by
communicating with the GPU 315 and memory 311 via the communication
bus 313. In accordance with various embodiments, the
multi-environment display data handling logic 309 combines display
data from at least a first operating system environment and a
second operating system environment. The multi-environment display
data handling logic 309 generates live wallpaper image data
corresponding to the first operating system environment (i.e. op
system 1 environment in FIG. 3), and handles image data from the
other operating system environments as overlay image data, that
hovers above the live wallpaper image. In some embodiments, the
multi-environment display data handling logic 309 may also combine
into a workspace of the second operating system environment,
display data associated with a corresponding home screen of the
first operating system environment, to achieve the combined
display.
[0036] 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 FIG. 3, the multi-environment
display data handling logic 309 may be executable instructions
stored in memory 311, which is a non-volatile, non-transitory
memory. Furthermore, the operating system environments 307, and the
kernel 305, may also consist of executable instructions that are
executed by the programmable processor 303, and that are stored in
memory 311 for access by the programmable processor 303 as
necessary. In some embodiments, the multi-environment display data
handling logic 309 may be object oriented software or firmware that
is executed by processor 303 only when more than one operating
system environment is executed by the processor 303.
[0037] Although the example provided by FIG. 3 illustrates the
operating system environments, kernel 305 and multi-environment
display data handling logic 309 as executed by the programmable
processor 303, which is located on the mobile device 301, this
functionality may also be, partially or collectively, alternatively
located within the peripheral device 327. In other words either the
peripheral device 327 or the mobile device 301 may contain some of,
all of, or various components of, the logic and other functionality
described with respect to FIG. 3 and would still remain in
accordance with the embodiments herein disclosed. In other words,
an apparatus in accordance with the embodiments may be the
apparatus 300, or may be the mobile device 301 individually, or the
peripheral device 327 individually.
[0038] As mentioned briefly above, in some embodiments, the
apparatus 300 may include the peripheral device 327 which may
further have a docking station, such that the mobile device 301 may
be docked within the peripheral device 327 and obtain the benefit
of the larger display 325 as well as other possible peripherals.
One example of such an apparatus is the Motorola Lapdock.RTM.
product.
[0039] Although the communication bus 329, which may be any
appropriate interface, is shown connected directly to the larger
display 325, it is to be understood that various other hardware and
components may exist in the peripheral device intervening between
the hardware 319 and the display 325. In other words, FIG. 3 is an
example diagram and is not to be construed as a complete schematic
diagram of a particular implementation of either a mobile device or
the peripheral device. FIG. 3 provides an example only and for the
purpose of describing to those of ordinary skill how to make and
use the various embodiments. Therefore FIG. 3 is limited to showing
only those components necessary to describe the features and
advantages of the various embodiments to those of ordinary skill.
It is to be understood that various other components, circuitry,
and devices may be necessary in order to implement a complete
functional apparatus and that those various other components,
circuitry, devices, etc., are understood to be present by those of
ordinary skill.
[0040] In some embodiments, the multi-environment display data
handling logic 309 may also map home screens of the first operating
system environment to workspaces of the second operating system
environment to obtain the combined image, which may be displayed on
display 321, or on the larger display 325 of the peripheral device
327. In one example embodiment, the first operating system
environment may be an Android.TM. operating system environment that
provides various home screens. The second operating system
environment maybe a Linux.RTM. based operating system environment
that includes workspaces. The multi-environment display data
handling logic 309 may, in this case, create a mapping between the
home screens of the first operating system environment and the
workspaces of the second operating system environment to create the
combined image. However, in this example, the mapped home
screen/workspaces are handled as overlay display data, that
overlays the live wallpaper 203. Additionally, some portions of the
home screen display data may be fixed to the live wallpaper 203. As
mentioned above, a live widget 209, which may provide real time
data, may be fixed to the live wallpaper 203. In other words,
various mapped home screen/workspaces may hover above the live
wallpaper 203 and any fixed live widgets that are fixed in place on
the live wallpaper 203. The overlay display data may be handled
similar to display data for overlaid windows (i.e. cascading
windows), where windows may be arranged in a manner in which they
overlap one another. However, the multi-environment display data
handling logic 309 may handle the display data for the live
wallpaper as real time data, along with display data from other
operating system environments.
[0041] The multi-environment display data handling logic 309 may
handle display data from any of the operating system environments
307, and send data to shared memory space of memory 311, to the GPU
315, or combinations of both as appropriate. For example, in one
embodiment the multi-environment display data handling logic 309
may determine which of the first display data or the second display
data should be transparent and which should be opaque, etc., and
accordingly provide the configured combined display data to a
shared memory space contained within memory 311. In some instances,
the first (or other) operating system environment may be called
upon to perform graphically intensive application activity such as
for example displaying video. In those instances, the
multi-environment display data handling logic 309 may pass first
display data and/or second display data to the GPU 315 to more
efficiently handle video data processing. In other words, the
multi-environment display data handling logic 309 makes decisions
related to the first display data and second display data, from the
corresponding first operating system environment and second
operating system environment (or N-th display data from the N-th
operating system environment), and acts accordingly to utilize
either shared memory space of the memory 311, or interact with the
GPU 315 to achieve the combined image. In one example, the second
display data associated with the second operating system
environment may be handled as overlay data with respect to the
first display data associated with the first operating system
environment which corresponds to the live wallpaper 203. The
multi-environment display data handling logic 309 may also handle
graphics information in various formats. For example, GDK (GIMP
Drawing Kit) information may be used by one or more operating
system environments, while JAVA graphics objects may be used by
others. In accordance with the embodiments, the multi-environment
display data handling logic 309 utilizes shared memory space of
memory 311 to handle various graphics objects, and/or other such
display data, accordingly, by for example, changing or adjusting
object properties.
[0042] Important to understand is that some graphical objects may
be afforded various attributes including, but not limited to, state
attributes that determine a live or active status of an object, or
data displayed by the object. One example is the live widget 207,
which may be an image object that provides real time information.
In accordance with the embodiment, such image object state
information is preserved, such that the real time information is
accordingly shown on the live wallpaper 203. For example, turning
briefly to FIG. 2, the image object 207 may be a widget associated
with the first operating system environment that provides real time
information. An example of such a widget is a clock application
that shows current time. In accordance with the embodiments, the
clock widget would remain active, even while the user interacts
with another visual image object, such as window 213, associated
with the second operating system environment. As shown, the image
object, window 213, may partially, or completely, obscure the
widget 207 from view. The widget 207 nevertheless remains in an
active state, that is, live, in conjunction with the live wallpaper
203.
[0043] Additionally, in some embodiments, the use may also switch
to a new workspace or home screen, (i.e. a mapped workspace/home
screen in some embodiments). Upon switching back to the current
workspace/home screen the clock widget would have remained in
operation and be shown in its current state (i.e. showing the
current time). The widget 207 may also remain fixed in position on
the live wallpaper 203 such that it does not move with the
workspace/home screens.
[0044] FIG. 4 and FIG. 5 are flowcharts illustrating high level
operation of the various embodiments. For example, in 401, the
programmable processor may generate live wallpaper display data
associated with a first operating system. As shown in 402, overlay
display data associated with a second operating system environment
is generated for overlay onto the live wallpaper. Turning to FIG.
5, in 501 at least one active application window or widget
associated with the first operating system environment may be
generated, as a portion of the live wallpaper display data. In 502,
at least one application window associated with the second
operating system environment may be generated as a portion of the
overlay display data.
[0045] FIG. 6 illustrates high level operation of handling of GUI
input with respect to the live wallpaper and overlay data. In 601,
position input corresponding to positional movement of an active
application window of the second operating system environment is
obtained. This operation may be performed by the multi-environment
display data handling logic 309 in some embodiments. The operation
may be performed in conjunction with the kernel 305. In 603, real
time overlay display data updates are generated that correspond to
the positional movement. In other words, the users can click and
drag an image object across the combined image and see the object
movement. In 605, any active widget portions of the live wallpaper
are maintained in an active or live state, even if covered over
partially or completely by the overlay display data.
[0046] FIG. 7 provides further details of methods of operation in
accordance with the embodiments. The method of operation begins in
block 700. In 701, display data from a first operating system
environment is obtained, and live wallpaper display data is
generated accordingly, as shown in 703. This operation may be
performed by the multi-environment display data handling logic 309
in some embodiments. In one embodiment, the multi-environment
display data handling logic 309 is implemented as executable
instructions, and therefore the operations may also be considered
as being performed by a programmable processor, such as, for
example, processor 303 shown in FIG. 3.
[0047] In 705, display data is obtained from the second operating
system environment, for example, from workspaces. In 707, the
multi-environment display data handling logic 309, determines the
overlay display data and corresponding transparency portions and
accordingly accesses shared memory space, or the GPU, in 709. The
display data is then send to the display hardware as shown in 711.
The user may then interact with the displayed image as a GUI as
illustrated by blocks 713 through 719. That is, user input is
detected in 713 and the input event is handled in 715. This
operation may involve the common kernel 305, and also the
multi-environment display data handling logic 309. Input associated
with the first operating system environment is handled as shown in
719, while input associated with the second operating system
environment is handled as shown in 717. Display data updates are
handled accordingly in blocks 701 and 705, for the first and second
operating system environments, respectively.
[0048] Among other advantages of various embodiments disclosed
herein, the user experience is enhanced when accessing application
data or other data using one or more operating system environments.
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 307 shown in FIG. 3.
Therefore the multi-environment display handling logic 309, in
accordance with the embodiments, may handle display data from any
number of operating system environments, where the operating system
environments all utilize the common kernel 305. Returning briefly
to FIG. 2, the icons 211 shown on the combined image may be
associated with a single operating system environment, or maybe
related to various operating system environments. Likewise the
visual image objects, such as application window 213, and the
window 215, may be associated with any of a number of operating
system environments in accordance with various embodiments herein
disclosed. The first operating system environment will correspond
to the live wallpaper 203, with any other operating system
environments in use being displayed as overlay data, such as window
213 which hovers above the live wallpaper.
[0049] 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 multi-environment
display handling logic 309 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.
[0050] 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.
* * * * *