JP2013542515A - 異環境間リダイレクション - Google Patents
異環境間リダイレクション Download PDFInfo
- Publication number
- JP2013542515A JP2013542515A JP2013531845A JP2013531845A JP2013542515A JP 2013542515 A JP2013542515 A JP 2013542515A JP 2013531845 A JP2013531845 A JP 2013531845A JP 2013531845 A JP2013531845 A JP 2013531845A JP 2013542515 A JP2013542515 A JP 2013542515A
- Authority
- JP
- Japan
- Prior art keywords
- application
- operating system
- mobile
- graphics
- desktop
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000009877 rendering Methods 0.000 claims abstract description 160
- 238000000034 method Methods 0.000 claims description 160
- 239000000872 buffer Substances 0.000 claims description 58
- 230000008569 process Effects 0.000 claims description 46
- 238000004891 communication Methods 0.000 claims description 22
- 239000011230 binding agent Substances 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 21
- 230000033001 locomotion Effects 0.000 description 19
- 238000003860 storage Methods 0.000 description 19
- 241000243320 Hydrozoa Species 0.000 description 12
- ZZUFCTLCJUWOSV-UHFFFAOYSA-N furosemide Chemical compound C1=C(Cl)C(S(=O)(=O)N)=CC(C(O)=O)=C1NCC1=CC=CO1 ZZUFCTLCJUWOSV-UHFFFAOYSA-N 0.000 description 10
- 230000003993 interaction Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000008571 general function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 241001600072 Hydroides Species 0.000 description 1
- 235000009470 Theobroma cacao Nutrition 0.000 description 1
- 208000000260 Warts Diseases 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 244000240602 cacao Species 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000011664 nicotinic acid Substances 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 201000010153 skin papilloma Diseases 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/399—Control of the bit-mapped memory using two or more bit-mapped memories, the operations of which are switched in time, e.g. ping-pong buffers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
- Telephonic Communication Services (AREA)
Abstract
仮想化されることなく共有カーネル上で同時に独立して動作するモバイルオペレーティングシステムとデスクトップオペレーティングシステムを有するモバイルコンピューティングデバイス。異環境間レンダリングは、モバイルオペレーティングシステムのレンダリングエンジンを用いて行なわれ、非拡張または拡張レンダリングコンテキストを作成し得る。透過的な異環境間使用モデルを容易にするために、モバイルオペレーティングシステムのアプリケーション及び/またはミラーリングされたコンテキストへの、デスクトップオペレーティングシステムに関連するユーザ環境からのアクセスが提供される。モバイルオペレーティングシステムのアプリケーション及び/またはミラーリングされたコンテキストへのアクセスは、デスクトップオペレーティングシステムのユーザ環境のメニュー内のメニューアイコンまたはメニューリストアイテムにより提供される。
Description
本願は、概して、モバイルコンピューティング環境の分野、より詳しくは、1つのモバイルコンピューティングデバイスにおいて複数のオペレーティングシステムの使用を通じた複数のユーザ環境をサポートすることに関する。
モバイルコンピューティングデバイスは、今日の社会において遍在化しつつある。例えば、2008年末の時点で、米国人の90パーセントがモバイル無線デバイスを有していた。同時に、モバイルデバイスの能力は急速に進化しており、その一例が、携帯電話機能とともに高度なコンピュータ機能も備えたスマートフォンである。モバイルプロバイダは、過去3年間に数種類のプラットフォームに基づく何百機種もの新型スマートフォンを発売した(例えば、Apple iPhone、Android、BlackBerry、Palm、Windows Mobile)。米国では、スマートフォンの普及率は2010年半ばまでに23%近くに到達し、ある年齢層では35%を超えた。欧州では、スマートフォン市場は2009年から2010年の間に41%成長し、2010年7月現在、欧州主要5カ国だけでも加入件数は6,000万件以上に上った。
スマートフォンはますます人気を博し、コンピューティング能力も向上しつつあるが、それによって提供されるユーザ体験は限定的である。具体的には、これらは一般にモバイルデバイスのハードウェア用に変更されたオペレーティングシステムを搭載しており、変更されたオペレーティングシステムでは限られた数のアプリケーションしか利用できない。例えば、多くのスマートフォンはGoogleのAndroidオペレーティングシステムを実行する。Androidが実行できるのは、Javaベースの仮想マシンランタイム環境内で動作するように特に開発されたアプリケーションだけである。これに加えて、Androidは変更されたLinuxカーネルに基づいているものの、Linuxとは異なる規格のCライブラリ、システムマネージャ及びサービスを使用する。従って、Linux用に書かれたアプリケーションは、変更またはポートしないかぎり、Androidでは動作しない。同様に、AppleのiPhoneではiOSモバイルオペレーティングシステムが採用されている。この場合も、iOSはMac OS Xから派生しているが、OS X用に開発されたアプリケーションはiOSでは動作しない。そのため、AndroidやiOS等のモバイルオペレーティングシステムには多くのアプリケーションを利用できるが、LinuxやMac OS X等、デスクトップオペレーティングシステム用の他の多数の一般的なアプリケーションは、モバイルプラットフォームでは利用できない。
従って、スマートフォンは一般に、限られた数のユーザ体験に適し、主にモバイル環境用に設計されたアプリケーションを提供する。特に、スマートフォンは、適当なデスクトップユーザ体験を提供せず、また、一般的なデスクトップアプリケーションを実行しない。その結果、多くのユーザはスマートフォン、ラップトップ、及び/またはタブレットコンピュータ等、複数のコンピューティングデバイスを持ち、使用する。この場合、デバイスごとにCPU、メモリ、ファイル記憶装置及びオペレーティングシステムが異なる。
スマートフォンと他のコンピューティングデバイスの間の接続とファイル共有を可能にするには、1つのデバイス(例えば、モバイルOSを実行するスマートフォン)を第二の、完全に異種のデバイス(例えば、デスクトップOSを実行するノートブック、デスクトップ、またはタブレット)に無線または有線接続を通じて連結する。情報はデバイス間で、各デバイスで別々に動作するアプリケーション間でデータを同期させることによって共有される。このプロセスは一般に「同期」と呼ばれ、面倒であり、通常、ユーザによる積極的な管理が必要となる。
本発明の実施形態は、1つのモバイルコンピューティングデバイスにおいて、スマートフォンのモバイルコンピューティング体験と第二の端末環境の適切なユーザ体験を提供することに関する。第二の端末環境は、有線(例えば、USB、Firewire、Thunderbolt等)または無線(例えば、Bluetooth、WiFi等)接続によりコンピューティングデバイスに接続された視覚的レンダリングデバイス(例えば、モニタやディスプレイ)、入力デバイス(例えば、マウス、タッチパッド、タッチスクリーン、キーボード等)、及びその他のコンピューティング周辺機器(例えば、HDD、光ディスクドライブ、メモリスティック、カメラ、プリンタ等)のいくつかの組合せであってもよい。実施形態では、モバイル環境のユーザ体験に関連するモバイルオペレーティングシステムと第二の端末環境のユーザ体験に関連するデスクトップオペレーティングシステムが、共有カーネル上で同時に独立して動作する。
各種の実施形態と適合する1つの態様によれば、異環境間リダイレクションは、方法であって、第二の実行環境を有する第二のオペレーティングシステムによって、第一のオペレーティングシステムのためにコンパイルされ、第一のオペレーティングシステムの第一の実行環境内にロードされたアプリケーションのリストを第一のオペレーティングシステムに問い合わせることであって、第一及び第二のオペレーティングシステムが共有カーネル上で同時動作中である、問い合わせること、第二のオペレーティングシステムにおいて、アプリケーションオブジェクトのリストを受け取ることであって、各アプリケーションオブジェクトがアプリケーションパッケージを含む、受け取ること、第二のオペレーティングシステムのメニューにおいて、アプリケーションオブジェクトのリストの中の1つのアプリケーションオブジェクトに対応する第一のメニューアイテムのインスタンスを作成すること、第一のメニューアイテムが、選択された時に、第二のオペレーティングシステムのコンソールアプリケーションを実行するように、第一のメニューアイテムを第二のオペレーティングシステムのコンソールアプリケーションに関連付けること、アプリケーションオブジェクトに対応する第一のOSの中のアプリケーションパッケージを示すパラメータを、第一のメニューアイテムに関連付けること含む、方法により提供される。
各種の実施形態と適合する他の態様によれば、第一のオペレーティングシステムの第一のグラフィクスサーバが、第二のオペレーティングシステムの第二のグラフィクスサーバと非互換的であってもよい。第一のグラフィクスサーバは、Android用グラフィクスサーバであってよく、第二のグラフィクスサーバは、Xウィンドウ型のグラフィクスサーバであってよい。第二のオペレーティングシステムのグラフィクスサーバがXウィンドウ型のグラフィクスサーバであり、第一のオペレーティングシステムの、アプリケーションオブジェクトに対応するアプリケーションが、第二のオペレーティングシステムのXウィンドウ型のグラフィクスサーバと非互換的なグラフィクスライブラリを使用してもよい。
各種の実施形態と適合する他の態様によれば、アプリケーションオブジェクトが、アプリケーション名、アプリケーションパッケージ名、およびアプリケーションアイコンを含んでもよい。第一のメニューアイテムが、選択されると、アプリケーションパッケージ名を実行パラメータとしてコンソールアプリケーションに送ってもよい。第二のオペレーティングシステムのメニューが、第二のアプリケーションに対応する第二のメニューアイテムを含み、第二のアプリケーションが第二の実行環境のためにコンパイルされ、第二の実行環境内にロードされていてもよい。第一のオペレーティングシステムがモバイルオペレーティングシステムを含んでもよく、第二のオペレーティングシステムがデスクトップオペレーティングシステムを含んでもよい。
各種の実施形態と適合する他の態様によれば、アプリケーションまたはグラフィクスコンテキストの異環境間リダイレクションのための方法であって、第一のオペレーティングシステムのためにコンパイルされ、第一のオペレーティングシステムの第一の実行環境内にロードされた第一のアプリケーションを、第一のオペレーティングシステムにおいて起動させるための要求を、第一のオペレーティングシステムによって、第二のオペレーティングシステムから受け取ることであって、第一及び第二のオペレーティングシステムが共有カーネル上で同時動作中である、受け取ること、第一のオペレーティングシステムによって仮想ディスプレイを割り当てること、第一のオペレーティングシステム内のプロセスにおいて第一のアプリケーションを起動させること、第一のアプリケーションのためのリフレッシュ通知を仮想ディスプレイに関連付けること、第一のアプリケーションのためのアプリケーショングラフィクスを、第一のオペレーティングシステムによって、第一のアプリケーションのアプリケーショングラフィクス情報をモニタするステップと、アプリケーショングラフィクス情報が更新された時に、第二のオペレーティングシステムのコンソールアプリケーションに通知するステップとを繰り返し実行することによって維持することを含む、方法が提供される。
各種の実施形態と適合する他の態様によれば、第二のオペレーティングシステムのコンソールアプリケーションに通知するステップが、ファイル記述子をコンソールアプリケーションに送ることを含んでよく、ファイル記述子は、アプリケーショングラフィクス情報が共有メモリ位置において利用可能であることを示しており、共有メモリ位置が第一のオペレーティングシステムと第二のオペレーティングシステムとによってアクセス可能である。ファイル記述子が、プロセス間通信チャネルを通じて送られてもよく、プロセス間通信チャネルは、Unixドメインソケット、またはBinderインタフェースであってよい。アプリケーショングラフィクス情報が、第一のアプリケーションのサーフェス情報を含んでよい。代替的に、アプリケーショングラフィクス情報が、第一のアプリケーションの、レンダリングされたグラフィクス情報を含んでもよい。第二のオペレーティングシステムが、ユーザが第二のオペレーティングシステムのメニューのメニューアイテムを選択したことに応答して、第一のアプリケーションを起動させる要求を発行してもよい。
各種の実施形態と適合する他の態様によれば、アプリケーションまたはグラフィクスコンテキストの異環境間リダイレクションのための方法であって、第一のオペレーティングシステムのためにコンパイルされ、第一のオペレーティングシステムの第一の実行環境内にロードされた第一のアプリケーションを起動させる要求を、第一のオペレーティングシステムによって、第二のオペレーティングシステムのコンソールアプリケーションから受け取ることであって、第一及び第二のオペレーティングシステムが共有カーネル上で同時動作中である、受け取ること、第一のオペレーティングシステム上の第一のプロセス内で第一のアプリケーションを実行することであって、第一のアプリケーションが、第一のオペレーティングシステムのサーフェスマネージャによって維持されるグラフィクス情報を含む、実行すること、第一のオペレーティングシステムによって、コンソールアプリケーションを第一のオペレーティングシステムの仮想ディスプレイ識別子に関連付けること、コンソールアプリケーションを登録して、第一のアプリケーションのグラフィクス情報に関するリフレッシュ通知を受け取ることを含む、方法が提供される。方法は、サーフェスマネージャにより、グラフィクスフレームを第一のオペレーティングシステムのフレームバッファメモリにレンダリングすること、第一のアプリケーションに関するグラフィクス情報が更新されたら、コンソールアプリケーションに通知することをさらに含み得る。
本発明の実施形態が図面の参照図に示されており、図の説明全体を通じて、同様の参照番号は同様の要素を指す。
コンピューティング能力を含む携帯電話機(すなわち、スマートフォン、ハンドセット、モバイルステーション、携帯通信機器等)の人気はますます高まっている。これらのスマートフォンの多くは、モバイルプロセッサ上で動作するモバイルオペレーティングシステム(「OS」)を含む。モバイルプロセッサとモバイルOSによってこれらのデバイスの能力は増大しているが、スマートフォンがデスクトップやノートブックコンピュータのようなパーソナルコンピュータ(「PC」)環境(すなわち、Windows、Mac OS X、Linux)に取って代わる傾向は見られず、これは少なくとも提供されるユーザ体験が限られていることによる。特に、スマートフォンに見られるユーザインタフェースデバイスは一般に、モバイル環境に合わせて作られている。例えば、スマートフォンでは一般に、小さい親指式QWERTYキーボード、タッチスクリーンディスプレイ、クリックホイール、及び/またはスクロールホイールがユーザインタフェースデバイスとして使用される。モバイルOSのほか、モバイルOS用に開発されたアプリケーション(すなわち、「アプリ」)は一般に、モバイルデバイス上にあるモバイルプロセッサとユーザインタフェースデバイスを含むモバイル環境の制約に合わせて設計されている。そのため、PCオペレーティングシステム用に開発された多くのアプリケーションは、モバイルOSでは利用できない(すなわち、モバイルOS用にはコンパイルされず、その上では動作しない)。これに加えて、文書の作成や編集等、一部の作業については、フルサイズのキーボードや大型ディスプレイのほうが、スマートフォンで一般的に見られるユーザインタフェースコンポーネントより使いやすい。
従って、ユーザは一般に、コンピューティング体験ごとに別のコンピューティングデバイス、例えばスマートフォン、タブレットコンピュータ、ラップトップコンピュータ及び/またはデスクトップコンピュータを使用する。この場合、デバイスによってCPU、メモリ、ファイル記憶装置、OSが異なる。スマートフォンと他のデバイスの間の接続とファイル共有のためには、1つのデバイス(例えば、モバイルOSを実行するスマートフォン)を第二の、完全に異種のデバイス(例えば、デスクトップOSを実行するノートブック、デスクトップまたはタブレット)に、無線または有線接続を通じて連結する。情報はデバイス間で、各デバイスで別々に動作するアプリケーション間でデータを同期させることによって共有される。このプロセスは一般に「同期」と呼ばれ、面倒であり、通常、ユーザによる積極的な管理が必要となる。
図1は、各種の実施形態による、別々のユーザ操作空間(すなわち、ユーザ環境)に関連する複数のオペレーティングシステムを含む1つのモバイルデバイスで複数のユーザコンピューティング体験を提供するコンピューティング環境100を示す。コンピューティング環境100の第一のユーザ操作空間115には、モバイルコンピューティングデバイス110のディスプレイ116とI/Oデバイス118が含まれる。モバイルコンピューティングデバイス110が独立したモバイルデバイスとして操作されると、モバイルOS 130は、ユーザ操作空間115を通じて一般的なモバイルコンピューティングユーザ体験を提供する。モバイルOS 130によって提供されるモバイルコンピューティング体験には一般に、携帯電話機能や、ディスプレイ116とI/Oデバイス118とを含むユーザ操作空間115に適したグラフィカルユーザインタフェース(「GUI」)が含まれる。例えば、ティスプレイ116はタッチスクリーンディスプレイであってもよく、モバイルOS 130上で動作するアプリケーションプログラム(すなわち、「アプリ」)は主として、タッチスクリーンディスプレイ116を用いたモバイルOS 130のジェスチャ認識GUIを通じて制御されてもよい。
コンピューティング環境100の中で、モバイルコンピューティングデバイス110は、I/Oデバイス144、146及び/または148を含む第二の端末環境140とドッキングされてもよい。実施形態では、モバイルコンピューティングデバイス110は第二の端末環境140に、モバイルコンピューティングデバイス110のポート120を第二の端末環境140のポート142に接続することによってドッキングされている。この場合、第二の端末環境140はコンピューティング環境100の第二のユーザ操作空間を提供する。いくつかの例において、第二のユーザ操作空間のほうがデスクトップコンピューティング体験により適していてもよい。このような場合、デスクトップOS 160を第二の端末環境140に関連付け、第二のユーザ操作空間を通じて、ノートブック、タブレットまたはデスクトップコンピュータ環境のすべての能力を提供することができる。
実施形態では、モバイルOS 130とデスクトップOS 160は、モバイルコンピューティングデバイス110のプロセッサの共有カーネル上で同時に動作する。共有カーネルでのモバイルOSとデスクトップOSの同時動作は、2011年8月24日に出願された、“MULTI−OPERATING SYSTEM”と題する米国特許出願第13/217,108号明細書においてより詳しく説明されており、同出願を参照によって本願に援用する。このように、1つのモバイルコンピューティングデバイスは、第一のユーザ操作空間を通じたモバイルコンピューティング体験と第二のユーザ操作空間を通じたデスクトップコンピューティング体験を提供できる。別々のユーザ操作空間を通じて複数のオペレーティングシステムを同時に実行可能な1台のモバイルデバイスを携帯できることは、ユーザにとっての多くの問題を解決するが、(同時動作するモバイルOSとデスクトップOSを通じた)各ユーザ操作空間により通常提供される利用可能なアプリケーションとユーザ機能の集合は、それぞれ異なる。
本発明の実施形態は、第一のOS(例えば、モバイルOS 130)で動作するアプリケーションを、見かけ上、第二のOS(例えば、デスクトップOS 160)の中で実行しやすくすることに関し、この場合、第一と第二のOSは共有のカーネル上で同時動作中である。特に、ユーザに第一の(例えば、非互換的な)OSのためにコンパイルされ、その中で動作するアプリケーションに関する、第二のOSにおける入力(例えば、入力デバイス)と出力(例えば、ディスプレイ、オーディオ等)をサポートする中で、多くの問題がアドレスされる。同時動作中の複数のアプリケーションの表示と双方向性に対処する場合は、また別の問題も発生し得る。
例えば、第一と第二のアプリケーションがどちらも第一のOSのためにコンパイルされ、第一のOS上で同時動作中である場合を考える。しかしながら、ユーザは、一方のOSに関連する入力/出力デバイスを通じて(例えば、モバイルコンピューティング環境のタッチスクリーンディスプレイを使って)第一のアプリケーションのグラフィクス出力を見て、その第一のアプリケーションを操作し、また第二のOSに関連する入力/出力デバイスを通じて(例えば、デスクトップコンピューティング環境のディスプレイ、キーボード、マウスを使って)第二のアプリーションのグラフィクス出力を見て、その第二のアプリケーションを操作したいと望む。このようなシナリオに対処するには、複数のディスプレイ環境でのグラフィクスの同時操作と、異なるアプリケーションに関する複数の入力/出力ストリームの同時処理を、すべて別々の(例えば、非互換性の)オペレーティングシステム上で行う必要がある。
従って、実施形態は、第二のOSのユーザ操作空間内で第一のOSのアプリケーションにアクセスし、第二のOSのユーザ操作空間内で第一のOSで実行中のアプリケーションを表示し、第二のOSのユーザ操作空間を通じてこれらのアプリケーションのユーザ操作を扱うための各種の新規な方式を提供する。実施形態は、異環境間アプラケーションの各種のディスプレイとユーザ操作機能をサポートする第二のOSのコンソールアプリケーションを含む。
1つの実施形態群は、いわゆる「非拡張」レンダリングコンテキストを使って、複数のOSによるコンピューティング環境間の同時ユーザインタフェースをサポートするための技術を提供する。別の実施形態群は、いわゆる「拡張」レンダリングコンテキストを使って、複数のOSによるコンピューティング環境間の同時ユーザインタフェースをサポートするための技術を提供する。また別の実施形態群は、いわゆる「ミラーリングされた」コンテキストを使って、複数のOSによるコンピューティング環境間の同時ユーザインタフェースをサポートするための技術を提供する。さらに別の実施形態群は、第二のOSのユーザ操作空間から第一のOS上で利用可能なアプリケーションにアクセスできるようにする。これらの実施形態群の各々を、以下により詳しく説明する。
前述のように、コンピューティング環境100は、複数のオペレーティングシステムを同時に実行しているモバイルデバイスに関連する複数のユーザ操作空間を通じて、複数のユーザコンピューティング体験を提供する。具体的には、モバイルコンピューティングデバイス110が、各々特定のコンピューティング環境に適した複数のOSを含んでいるため、モバイルコンピューティングデバイス110を、1つのモバイルコンピューティングデバイスで様々なユーザ体験を提供するための外部I/Oデバイスに適合させてもよい。例えば、ユーザは、モバイルコンピューティングデバイス110と、キーボード、ディスプレイ及び/またはポインティングデバイスをラップトップ型筐体の中に有する第二の端末環境140を有し得る。モバイルコンピューティングデバイス110がこのラップトップ型の第二の端末環境にドッキングされると、デスクトップOS 160のすべての機能が第二の端末環境140を通じて利用可能となる。
図2は、各種の実施形態による、モバイルコンピューティングデバイス110のためのハードウェアシステムアーキテクチャの一例を示す。モバイルコンピューティングデバイスハードウェア112は、1つまたは複数のCPUコア204と外部ディスプレイインタフェース220を内蔵するモバイルプロセッサ114を含む。通常、モバイルコンピューティングデバイスハードウェア112はまた、I/Oデバイス118、メモリ206、記憶デバイス208、タッチスクリーンディスプレイ116に接続されたタッチスクリーンディスプレイコントローラ210、バッテリ216に接続された電源管理IC 214、セルラーモデム218、通信デバイス222及び/または、各種の通信信号やインタフェースを通じてプロセッサ114に接続されたその他のデバイス224を含む。I/Oデバイス118は通常、ボタン及び、モバイルコンピューティングデバイス110で使用可能なその他のユーザインタフェースコンポーネントを含む。例えば、I/Oデバイス118は、1組のボタン(例えば、後退、メニュー、ホーム、検索等)、オフスクリーンジェスチャエリア、クリックホイール、スクロールホイール、QWERTYキーボード等を含んでいてもよい。その他のデバイス224は、例えばGPSデバイス、LAN接続、マイクロフォン、スピーカ、カメラ、加速度計及び/またはMS/MMC/SD/SDIOカードインタフェース等であってもよい。外部ディスプレイインタフェース220は、何れの適当なディスプレイインタフェース(例えば、VGA、DVI、HDMI等)であってもよい。
プロセッサ114は、ARMベースのモバイルプロセッサであってもよい。実施形態では、モバイルプロセッサ114は、Texas Instruments OMAP3430、Marvell PXA320、Freescale iMX51、またはQualcomm QSD8650/8250等のモバイルARMベースプロセッサである。しかしながら、モバイルプロセッサ114は、他の好適なARMベースのモバイルプロセッサや、別のプロセッサアーキテクチャ、例えばx86ベースのプロセッサアーキテクチャまたはその他のRISCベースのプロセッサアーキテクチャ等に基づくプロセッサであってもよい。
図2はモバイルコンピューティングデバイス110の1つの例示的なハードウェア実装112を示しているが、これ以外のアーキテクチャも本発明の範囲内として考えられる。例えば、図2ではモバイルプロセッサ114の外部に示されている各種のコンポーネントは、モバイルプロセッサ114の中に統合してもよい。任意選択的には、図2にモバイルプロセッサ114に統合された状態で示されている外部ディスプレイインタフェース220は、モバイルプロセッサ114の外にあってもよい。これに加えて、システムバス、ディスクリートグラフィクスプロセッサ及び/またはその他のアーキテクチャ面の変化形を使用する、他のコンピュータアーキテクチャも、本発明の態様を利用するのに適している。
図3は、各種の実施形態による、モバイルコンピュータデバイス110でモバイルOS 130とデスクトップOS 160を同時に実行するために利用可能なOSアーキテクチャ300を示す。図3に示されるように、モバイルOS 130とデスクトップOS 160は、独立したオペレーティングシステムである。具体的には、モバイルOS 130とデスクトップOS 160は、相互に独立した、非互換的なユーザライブラリ、グラフィクスシステム及び/またはフレームワーク層を有していてもよい。OSアーキテクチャ300のための機能と命令は、モバイルコンピューティングデバイス110の有形のコンピュータ読取可能媒体上にコンピュータプログラムコードとして記憶されていてもよい。例えば、OSアーキテクチャ300のための命令は、モバイルコンピューティングデバイスハードウェア112の記憶デバイス208の中に記憶されていてもよい。
OSアーキテクチャ300において、モバイルOS 130とデスクトップOS 160は、共有カーネル320で同時に動作する。これは、モバイルOS 130とデスクトップOS 160が共有カーネル320上で同じ時点で動作中であることを意味する。具体的には、モバイルOS 130とデスクトップOS 160はどちらも、同じカーネルインタフェース322を通じて、例えば共有カーネル320にシステムコールを行うことによって、共有カーネル320とインタフェースする。共有カーネル320は、モバイルOS 130とデスクトップOS 160の両方のプロセスに関するタスクスケジューリングを管理する。この点で、モバイルOS 130とデスクトップOS 160は、共有カーネル320で独立して、同時に動作中である。これに加えて、共有カーネル320は、ハードウェアインタフェース312により示されているように、直接、モバイルコンピューティングデバイスハードウェア112のモバイルプロセッサ114で動作する。具体的には、共有カーネル320はモバイルコンピューティングデバイスハードウェア112のコンピューティングリソース、例えばCPUスケジューリング、メモリアクセス、I/Oを直接管理する。この点で、ハードウェアリソースは仮想化されず、すなわち、モバイルOS 130とデスクトップOS 160は、仮想化されたメモリまたはI/Oアクセスを使用せずに、カーネルインタフェース322を通じてシステムコールを行う。
図3に示されるように、モバイルOS 130は、ライブラリ層330、アプリケーションフレームワーク層340、アプリケーション層350を有する。モバイルOS 130では、アプリケーション352と354が、モバイルOS 130のアプリケーションフレームワーク層340によってサポートされるアプリケーション層350の中で動作する。アプリケーションフレームワーク層340には、モバイルOS 130上で動作するアプリケーションにより使用されるマネージャ342とサービス344が含まれる。例えば、アプリケーションフレームワーク層340には、ウィンドウマネージャ、アクティビティマネージャ、パッケージマネージャ、リソースマネージャ、電話マネージャ、ジェスチャコントローラ及び/または、モバイル環境のためのその他のマネージャとサービスが含まれていてもよい。アプリケーションフレームワーク層340には、モバイルOS 130のために開発されたアプリケーションを実行するモバイルアプリケーションランタイム環境が含まれていてもよい。モバイルアプリケーションランタイム環境は、より低い処理能力及び/または限られたメモリスペース等、モバイルコンピューティングリソースに合わせて最適化されていてもよい。モバイルアプリケーションランタイム環境では、プロセス分離、メモリ管理、スレッディングサポートがカーネルに依存して行われてもよい。ライブラリ層330には、I/Oとストリング操作等の一般的な機能、グラフィクス機能、データベース能力、通信能力及び/またはその他の機能や能力を実行するユーザライブラリ332が含まれる。
図3に示されているように、デスクトップOS 160は、ライブラリ層360、フレームワーク層370、アプリケーション層380を有する。デスクトップOS 160では、アプリケーション382と384が、デスクトップOS 160のアプリケーションフレームワーク層370によってサポートされるアプリケーション層380の中で動作する。アプリケーションフレームワーク層370には、デスクトップOS 160上で動作するアプリケーションにより使用されるマネージャ372とサービス374が含まれる。例えば、アプリケーションフレームワーク層370には、ウィンドウマネージャ、アクティビティマージャ、パッケージマネージャ、リソースマネージャ及び/または、デスクトップ環境に一般的なその他のマネージャとサービスが含まれていてもよい。ライブラリ層360には、I/Oとストリング操作等の一般的な機能、グラフィクス機能、データベース能力、通信能力及び/またはその他の機能や能力を実行するユーザライブラリ362が含まれていてもよい。
本発明の各種の実施形態において、デスクトップOS 160は、モバイルOS 130とは別の実行環境で動作する。例えば、モバイルOS 130はルート実行環境で動作してもよく、デスクトップOS 160は、ルート実行環境下で確立された第二の実行環境で動作してもよい。モバイルOS 130上で動作するプロセスとアプリケーションは、ルート実行環境の中でユーザライブラリ332、マネージャ342及びサービス344にアクセスする。デスクトップOS 160上で動作するプロセスとアプリケーションは、第二の実行環境の中で、ユーザライブラリ362、マネージャ372及びサービス374にアクセスする。
実施形態では、モバイルOS 130とデスクトップ160は、非互換性のユーザライブラリ、グラフィクスシステム及び/またはアプリケーションフレームワークを有する独立したオペレーティングシステムである。従って、モバイルOS 130のために開発されたアプリケーションは、直接、デスクトップOS 160では動作できず、デスクトップOS 160のために開発されたアプリケーションは、直接、モバイルOS 130上では動作できない。例えば、モバイルOS 130のアプリケーション層350で動作するアプリケーション352は、デスクトップOS 160と非互換的であってもよく、すなわち、アプリーション352をデスクトップOS 160で実行できない。具体的には、アプリケーション352は、デスクトップOS 160のマネージャ372、サービス374及び/またはライブラリ362では利用できない、またはこれらと互換性のないモバイルOS 130のマネージャ342、サービス344及び/またはライブラリ332に依存していてもよい。
その結果、モバイルOS 130とデスクトップOS 160で利用できるアプリケーションの集合はそれぞれ異なっていてもよい。この点で、OSアーキテクチャ300のモバイルOS 130とデスクトップOS 160は、別々のユーザ操作空間からアクセス可能な別々のアプリケーション集合を通じて、別々のユーザ体験を提供する。ユーザは、モバイルOS 130に関連する第一のユーザ操作空間を通じて、モバイルOS 130上で利用可能な(すなわち、そのためにコンパイルされ、その実行環境内にロードされた)アプリケーションにアクセスし、デスクトップOS 160に関連する第二のユーザ操作空間を通じて、デスクトップOS 160上で利用可能なアプリケーションにアクセスしてもよい。
前述のように、モバイルオペレーティングシステムは一般に、デスクトップオペレーティングシステムと同じグラフィクス環境を使用しない。デスクトップOS用のグラフィクス環境は、フレキシビリティと高性能性のために設計された。例えば、一部のデスクトップOSで使用されるXウィンドウシステムは、処理及びシステムリソースをより多く使用することと引き換えに、プラットフォームとネットワークの独立性を提供する。これに対して、モバイルOS用のグラフィクス環境の設計は、効率性とモバイルコンピューティング環境の特定のユーザ入力デバイスのほうにより重点を置き、フレキシビリティはそれより軽視されている。モバイル及びデスクトップOSのグラフィクス環境は異なることが多いため、モバイルOS上で動作するアプリケーションは、モバイルOSのグラフィクスサーバからデスクトップOSのグラフィクスサーバにグラフィクス情報をリダイレクトすることによって、デスクトップOSのユーザ空間内で表示されるようにリダイレクトできない。
最も広く採用されているモバイルOSはGoogleのAndroidである。AndroidはLinuxに基づいているが、モバイル環境とモバイルプロセッサのために、カーネル及びその他のOS層に変更が加えられている。特に、LinuxカーネルはPC(すなわち、x86)CPUアーキテクチャ用に設計されているが、AndroidカーネルはARMベースのモバイルプロセッサに合わせて変更されている。Androidデバイスドライバはまた、タッチスクリーン、モバイル接続(GSM/EDGE、CDMA、Wi−Fi等)、バッテリ管理、GPS、加速度計及びカメラモジュール等、モバイルハードウェアアーキテクチャの中に一般的にあるデバイスやその他のデバイスに特に合わせて作られている。これに加えて、AndroidはネイティブのX Window Systemを持っていなければ、フルセットの標準GNUライブラリもサポートしておらず、これによって、既存のGNU/LinuxアプリケーションまたはライブラリをAndroidにポートすることが難しい。
AppleのiOSオペレーティングシステム(iPhoneで動作)とMicrosoftのWindows Phone 7も同様に、モバイル環境とモバイルハードウェアアーキテクチャ用に変更されている。例えば、iOSはMac OS XデスクトップOSから派生しているが、一般的なMac OS X用アプリケーションは、iOS上ではネイティブとして動作しない。具体的には、iOS用アプリケーションは、標準開発キット(「SDK」)を通じて、iOSの「Cocoa Touch」ランタイム環境で動作するように開発されており、これによってタッチベースの入力、プッシュ通知及びシステムサービス等の重要なiOS機能のための基本的なアプリケーションインフラストラクチャとサポートが提供される。そのため、Mac OS Xのために書かれたアプリケーションは、ポートしないとiOSで動作しない。これに加えて、Mac OS X用アプリケーションをiOSにポートすることは、2つのOS間のユーザライブラリ及び/またはアプリケーションフレームワークの違い、及び/またはモバイルとデスクトップハードウェアのシステムリソースの違いによって、難しいかもしれない。
OSアーキテクチャ300に適合する1つの実施形態において、AndroidモバイルOSとフルLinux OSは、変更されたAndroidカーネル上で独立して、同時に動作する。この実施形態では、Android OSは変更型Androidディストリビューションであってもよく、その一方で、Linux OS(「Hydroid」)は変更型Debian LinuxデスクトップOSであってもよい。図4〜6は、各種の実施形態による、OSアーキテクチャ300で使用可能なAndroidモバイルOS 430、Androidカーネル520、Hydroid OS 660をより詳細に示す。
図4に示されるように、Android OS 430は、ライブラリ層432の中にC/C++ライブラリの集合を含み、これらはアプリケーションフレームワーク層440を通じてアクセスされる。ライブラリ層432には、「glibc」Linux Cライブラリより小型で高速となるようにAndroidのために特に開発された「bionic」システムCライブラリ439が含まれる。ライブラリ層432にはまた、プロセス間通信(IPC)ライブラリ436が含まれ、これにはAndroid OSの「Binder」IPCメカニズムの基本クラスが含まれる。Binderは特にAndroidのために、プロセス間及びサービス間の通信を可能にするために開発された。図4のライブラリ層432に示されている他のライブラリとしては、媒体フォーマットの記録と再生をサポートするメディアライブラリ435、ディスプレイサブシステムへのアクセスを管理し、複数のアプリケーションからのグラフィクス層を合成するサーフェスマネージャ434、2D及び3Dグラフィクスエンジン438、軽量リレーショナルデータベースエンジン437がある。ライブラリ層432に含めることができるが、図4には示されていないその他のライブラリには、ビットマップ及びベクトルフォントレンダリングライブラリ、ユーティリティライブラリ、ブラウザツール(すなわち、WebKit等)及び/または秘匿通信ライブラリ(すなわち、SSL等)がある。
Android OS 430のアプリケーションフレームワーク層440は、開発者がデバイスハードウェアのコンポーネントを使用し、位置情報にアクセスし、背景サービスを実行し、アラームをセットし、ステイタスバーに通知を加えること等を可能にする開発プラットフォームを提供する。フレームワーク層440により、アプリケーションがその能力を公開し、他のアプリケーションの公開された能力を利用することも可能となる。AndoroidモバイルOS 430のアプリケーションフレームワーク層440のコンポーネントは、アクティビティマネージャ441、リソースマネージャ442、ウィンドウマネージャ443、ドックマネージャ444、ハードウェア及びシステムサービス445、デスクトップモニタサービス446、マルチディスプレイマネージャ447及びリモート通信サービス448を含む。AndroidモバイルOS 430のフレームワーク層440に含めることのできるその他のコンポーネントには、ビューシステム、電話マネージャ、パッケージマネージャ、位置マネージャ及び/または通知マネージャのほか、その他のマネージャとサービスがある。
Android OS 430で動作するアプリケーションは、Androidオブジェクト指向アプリケーションフレームワークの上のAndroidランタイム環境433のDalvik仮想マシン431の中で動作する。Dalvik仮想マシン431はレジスタベースの仮想マシンであり、メモリ使用量と処理要求を削減するために設計されたコンパクトな実行可能フォーマットを実行する。Android OS 430で動作するアプリケーションには、ホーム画面451、電子メールアプリーション452、写真アプリケーション453、ブラウザアプリケーション454、及び/またはその他のアプリケーション(「アプリ」)455がある。
Android OSグラフィクスシステムは、クライアント/サーバモデルを使用する。サーフェスマネージャ(「SurfaceFlinger」)はグラフィクスサーバであり、アプリケーションはクライアントである。SurfaceFlingerは、ディスプレイIDのリストを維持し、ディスプレイIDへのアプリケーションの割当を常に追跡する。1つの実施形態では、モバイルコンピューティングデバイス110は複数のタッチスクリーンディスプレイ116を有する。この実施形態において、ディスプレイID 0がタッチスクリーンディスプレイ116の1つに関連付けられ、ディスプレイID 1が他方のタッチスクリーンディスプレイ116に関連付けられる。ディスプレイID 2は両方のタッチスクリーンディスプレイ116に関連付けられる(すなわち、このアプリケーションが両方のディスプレイで同時に表示される)。2より大きいディスプレイIDは仮想ディスプレイであり、すなわち、これらはモバイルコンピューティングデバイスハードウェア112の上に物理的に存在するディスプレイには関連付けられない。
Androidアプリケーション用のグラフィクス情報には、ウィンドウ、ビュー、及びキャンバスがある。各ウィンドウ、ビュー及び/またはキャンバスには、基本となるサーフェスオブジェクトが含められる。サーフェスオブジェクトは、2つのバッファ(フロント及びバックバッファ)に格納され、描画のためのプロセス間で同期される。SurfaceFlingerは、すべてのサーフェスを共通のメモリプールの中に維持し、これによって、Android内のすべてのプロセスがこれらにアクセスし、その中に描画することができ、コストのかかるコピー動作が不要となり、またXウィンドウ等のサーバ側の描画プロトコルを使用する必要もない。アプリケーションは、SurfaceFlingerがフロントバッファから読み出している間は常にバックバッファの中に描画する。SurfaceFlingerは、各サーフェスオブジェクトを作成し、すべてのサーフェスオブジェクトを維持し、また、各アプリケーションに関するサーフェスオブジェクトリストを維持する。アプリケーションは、バックバッファへの描画を完了すると、SurfaceFlingerにイベントをポストし、これがバックバッファをフロントバッファにスワップして、サーフェス情報をフレームバッファにレンダリングする作業を待ち行列に入れる。
SurfaceFlingerは、すべてのウィンドウ変更イベントをモニタする。1つまたは複数のウィンドウ変更イベントが発生すると、SurfaceFlingerはサーフェス情報を1つまたは複数のディスプレイのためのフレームバッファにレンダリングする。レンダリングには、サーフェスを合成すること、すなわちサーフェスの寸法、透明度、Zオーダ、可視性に基づいて最終的な画像フレームを構成することが含まれる。レンダリングはまた、ハードウェア加速(例えば、グラフィクス処理ハードウェアのためのOpenGL 2D及び/または3Dインタフェース)を含んでいてもよい。SurfaceFlingerは、すべてのサーフェスオブジェクトをループさせて、それらのフロントバッファをそのZオーダでフレームバッファにレンダリングする。
図5は、各種の実施形態による変更型Androidカーネル520をより詳しく示す。変更型Androidカーネル520には、タッチスクリーンディスプレイドライバ521、カメラドライバ522、Bluetoothドライバ523、共有メモリアロケータ524、IPCドライバ525、USBドライバ526、WiFiドライバ527、I/Oデバイスドライバ528及び/または電源管理モジュール530が含まれる。I/Oデバイスドライバ528には、ポート120を通じてモバイルコンピューティングデバイス110に接続可能な外部I/Oデバイスのためのデバイスドライバが含まれる。変更型Androidカーネル520には、low memory killer、カーネルデバッガ、ログ機能及び/またはその他のハードウェアデバイスドライバを含むその他のドライバや機能ブロックが含まれていてもよい。
図6は、各種の実施形態によるHydroid OS 660をより詳しく示す。HydroidはフルLinux OSであり、標準的なLinuxディストリビューション用に開発されたほとんどすべてのアプリケーションを実行できる。特に、Hydroid OS 660のライブラリ層662には、ネットワーキング、グラフィクス処理、データベース管理及びその他の一般的なプログラム機能をサポートするLinuxライブラリが含まれる。例えば、ユーザライブラリ662には、「glibc」Linux Cライブラリ664、Linuxグラフィクスライブラリ662(例えば、GTK、OpenGL等)、Linuxユーティリティライブラリ661、Linuxデータベースライブラリ、及び/またはその他のLinuxユーザライブラリが含まれていてもよい。アプリケーションは、Hydroid上では、Xサーバ674、ウィンドウマネージャ673及び/またはデスクトップ環境672を用いてX Window Linuxグラフィカル環境内で動作する。図のアプリケーションには、ワードプロセッサ681、電子メールアプリケーション682、スプレッドシートアプリケーション683、ブラウザ684及びその他のアプリケーション685が含まれている。
Linux OSグラフィクスシステムは、Xウィンドウ(または「X11」)グラフィクスシステムに基づいている。Xウィンドウは、プラットフォームに依存しないネットワーク式のグラフフィクスフレームワークである。Xウィンドウはクライアント/サーバモデルを利用しており、Xサーバがグラフィクスサーバ、アプリケーションがクライアントである。Xサーバは、ディスプレイ、タッチスクリーンディスプレイ、キーボード、ポインティングデバイス等、Linux OSに関連する入力/出力ハードウェアを制御する。この点で、Xウィンドウはサーバ側の描画グラフィクスアーキテクチャを提供し、すなわち、Xサーバがウィンドウやピクセルマップを含むDrawableのためのコンテンツを維持する。XクライアントはXサーバと、通信チャネル上で描画動作を説明するデータパケットを交換することによって通信する。Xクライアントは、標準ルーチンのライブラリ(「Xlib」)を通じてX通信プロトコルにアクセスする。例えば、XクライアントはXサーバに対し、クライアントウィンドウに三角形を描画するように要求を送信してもよい。XサーバはXクライアントに入力イベント、例えばキーボードまたはポインティングデバイスの入力、及び/またはウィンドウの移動またはリサイジングを送信する。入力イベントはクライアントウィンドウに関連しており、例えば、ユーザがあるウィンドウ内にあるポインタをクリックすると、Xサーバはその入力イベントを含むパケットを、そのウィンドウに関連するXクライアントに送り、その中にはそのウィンドウに関係のあるイベントの動作と位置が含まれる。
オペレーティングシステムのフレームワーク、グラフィクスシステム及び/またはライブラリの違いによって、Android用に書かれたアプリケーションは通常、Hydroid OS 660では動作せず、標準的なLinuxディストリビューション用に書かれたアプリケーションは通常、Android OS 430では動作しない。この点に関して、Android OS 430とHydroid OS 660のためのアプリケーションにはバイトコード互換性がなく、すなわち、一方のためにコンパイルされた実行可能なプログラムは、他方では動作しない。
1つの実施形態において、Hydroid OS 660は、共有カーネル520を通じてAndroid OS 430との通信を容易にする異環境間通信フレームワークのコンポーネントを含む。これらのコンポーネントとしては、Android OSのBinder IPCメカニズムのための基本クラスと遠隔通信サービス671を含むIPCライブラリ663がある。
1つの実施形態において、Hydroid OS 660は、Androidルート環境内で作られた、chrootされた(「chroot」コマンドで作られた)第二の実行環境の中で実行される。Hydroid OS 660の中のプロセスとアプリケーションは、第二の実行環境の中で、これらのプロセスとアプリケーションから見た見かけ上のルートディレクトリが第二の実行環境のルートディレクトリとなるように実行される。このようにして、Hydroid OS 660は、標準Linuxディストリビューションのために書かれたプログラムを変更せずに実行でき、それは、chrootされた第二の実行環境においてHydroid OS 660上で実行されるプロセスにLinuxユーザライブラリ662を利用できるからである。
図3に戻ると、モバイルOS 130とデスクトップ160は、モバイルデバイスの共有カーネル320上でアクティブに同時動作中である。モバイルOS 130とデスクトップOS 160は、ユーザライブラリ、グラフィクスシステム及び/またはアプリケーションフレームワークに関して非互換的であってもよい。そのため、モバイルOS 130とデスクトップOS 160で利用可能なアプリケーションの集合はそれぞれ異なり、すなわち、モバイルOS 130上で利用可能な少なくとも一部のアプリケーションはデスクトップOS 160では利用できず、またその逆でもある。従って、OSアーキテクチャ300のモバイルOS 130とデスクトップOS 160は、別々のユーザ操作空間からアクセス可能な別々のアプリケーション集合を通じて、別々のユーザ体験を提供する。ユーザは、モバイルOS 130に関連するユーザ操作空間を通じてモバイルOS 130上で利用可能な(すなわち、そのためにコンパイルされ、その実行環境内にロードされた)アプリケーションにアクセスし、デスクトップOS 160に関連するユーザ操作空間を通じてデスクトップOS 160上で利用可能なアプリケーションにアクセスしてもよい。
本発明の実施形態は、OSアーキテクチャ300の機能性を拡張して、複数のOSに基づくコンピューティング環境における、よりシームレスなコンピューティング体験を提供する。実施形態には、第二のオペレーティングシステムのユーザ操作空間内におけるアプリケーション及び/または第一のオペレーティングシステムのユーザ操作空間の異環境間レンダリングが含まれ、これは第一と第二のオペレーティングシステムのグラフィクス環境に互換性がなくても行われる。実施形態にはさらに、異環境間アプリケーションのためのユーザ操作のサポートと、第二のオペレーティングシステムのユーザ操作空間からの第一のオペレーティングシステムのアプリケーションへのアクセスが含まれる。この機能によって、例えば、モバイルOS 130上で動作するモバイルOS用アプリケーションを、デスクトップOS 160に関連するユーザ操作空間を通じて表示し、操作することが可能となる。例えば、ユーザがデスクトップOS 160に関連するユーザ操作空間を通じてデスクトップOS 160を操作している間に、そのユーザは、デスクトップOS 160では利用できない(すなわち、そのためにコンパイルされておらず、そこでは実行されない)モバイルOS 130の特定のアプリケーションにアクセスしたいと希望してもよい。後述の各種の実施形態を用いれば、ユーザは、デスクトップOS 160に関連するユーザ操作空間を通じて、モバイルOS 130のためにコンパイルされ、その上で実行されるアプリケーションにアクセスし、これを表示し、操作できる。特に、実施形態は、モバイルOSの何れのアプリケーションでの異環境間操作もサポートしており、すなわち、モバイルOS用アプリケーションを下記の実施形態を使用するのに、特定の異環境間サポートを含めるように変更する必要がない。
第二のOS(例えば、デスクトップOS 160)のユーザ操作空間内からアプリケーション及び/または第一のOS(例えば、モバイルOS 130)のユーザ操作空間への、シームレスな異環境間ユーザ操作をサポートするために、アプリケーション及び/またはユーザ操作空間のグラフィクスデータ(すなわち、グラフィクスコンテキストまたはアクティブディスプレイ)を、第二のOSのユーザ操作空間の中にリアルタイムで表示されるようにレンダリングすることが望ましいかもしれない。リアルタイム(または即時)レンダリングとは、この文脈において、アプリケーションのグラフィクスデータが第二のOSのユーザ操作空間に十分に素早くレンダリングされ、グラフィクス情報の伝送に伴う遅延によってアプリケーションのパフォーマンスに気付くほどの、または実質的な低下を発生させずに、ユーザがそのアプリケーションを操作できることを意味する。この点に関して、本明細書に記載されているようなリアルタイム(または即時)異環境間レンダリングの技術により、例えばグラフィクス情報が迅速に転送され、第一のOSから第二のOSにグラフィクス情報をコピーまたは転送することに伴うフレーム遅延やその他の遅延が減る。しかしながら、これはグラフィクスの転送にまったく時間がかからないことを意味するのではなく、本明細書に記載の異環境間レンダリング方式は、グラフィクス情報が第二のOSのユーザ操作空間上で表示されるまでに限定的な時間がかかったとしても、即時またはリアルタイムとみなしてよい。
アプリケーションの異環境間レンダリングを実現するために、第一のオペレーティングシステムで動作中のアプリケーションから第二のオペレーティングシステムのグラフィクスシステムに、おそらく大量のグラフィクスデータが転送されることがある。既存のメカニズムでは、必要なグラフィクスデータを転送すると、ディスプレイの更新またはフレームレートに必ず影響が及ぶ。例えば、グラフィクスデータを直接転送することは、モバイルコンピューティング環境の制約の中では現実的ではないであろう。圧縮技術を使って転送データの総量を減らすことは可能であるが、その代わりに、情報の圧縮と解凍に必要な処理が増える。リモートのデスクトップ型システムを使って、ベクトルグラフィクスやグラフィクス更新情報を送ることはできるが、この場合もまた一般に、大量のグラフィクスデータを転送する際、またはグラフィクスコンテンツの急速な変化の際に速度が低下する。
図7は各種の実施形態によるOSアーキテクチャ構成300aを示し、これは第二のOSのユーザ操作空間内でアプリケーション及び/または第一のOSのユーザ操作空間を異環境間レンダリングするために使用でき、この場合、第一と第二のOSは共有カーネル上で同時動作中であり、別々のディスプレイデバイスを含む別々のユーザ操作空間に関連付けられている。OSアーキテクチャ構成300aのコンポーネントにより、モバイルOS 130上で動作するアプリケーションとモバイルOS 130のグラフィクスコンテキストを、デスクトップOS 160のユーザ操作空間内にレンダリングすることができ、OS 130とデスクトップOS 160は共有カーネル320上で同時動作する。各種の実施形態において、アプリケーションは、デスクトップOS 160のコンソールアプリケーション782を通じて、デスクトップOS 160のユーザ操作空間内のコンソールウィンドウに表示される。1つの実施形態において、コンソールアプリケーション782は、Xウィンドウ型アプリケーションであり、これはデスクトップOS 160のXウィンドウ型グラフィクスシステムを通じてデスクトップOS 160のユーザ操作空間内に表示される。
OSアーキテクチャ構成300aにおいて、モバイルOS 130には、グラフィクスサーバ734が含まれ、これはモバイルOS 130のアプリケーション(例えば、アプリケーション752と754)に関するサーフェス情報(例えば、サーフェス726、727、728)の割当と管理を行う。1つの実施形態において、グラフィクスサーバ734は、匿名共有メモリ(すなわち、そのカーネルを解放できるプロセス間で共有される名前付きメモリブロック)を使ってグラフィクスサーフェスのメモリを割り当てる。グラフィクスサーバ734はまた、モバイルOS 130のディスプレイの割当と追跡も行い、これにはモバイルコンピューティングデバイスハードウェア112(すなわち、ローカルディスプレイ)に内蔵されるディスプレイと、モバイルOS 130が遠隔的に(すなわち、他のOSのユーザ操作空間内で)表示されるかもしない、いわゆる仮想ディスプレイが含まれる。モバイルOS 130はまた、モバイルOS 130に関連するディスプレイ画面上に同時に複数のアプリケーションを表示するためのウィンドウシステムを含んでいてもよい。1つの実施形態において、モバイルOS 130には、デスクトップOS 160からモバイルOS 130のコンポーネントにアクセスするための遠隔通信チャネルを提供するサービスが含まれる。
OSアーキテクチャ構成300aには、モバイルOS 130上で動作中であり、モバイルOS 130に関連する第一のユーザ操作空間内に表示される第一のアプリケーション752が含まれる。OSアーキテクチャ構成300aには、やはりモバイルOS 130上で動作中であるが、後述の実施形態による異環境間レンダリングを通じて、デスクトップOS 160に関連する第二のユーザ操作空間内に表示される第二のアプリケーション754が含まれる。1つの実施形態において、アプリケーション754は、デスクトップOS 160上で動作するコンソールアプリケーション782を通じて第二のユーザ操作空間のコンソールウィンドウ内に表示される。
通常、モバイルOS 130のアプリケーションは、ユーザがアプリケーションを操作する際に使用するビューのインスタンスを作成する。例えば、アプリケーションは、アプリケーションウィンドウを構成する1つのビューを有し得る。ビューの中で、アプリケーションは、アプリケーションインタフェースの特定の領域に関する描画オブジェクトのインスタンスを作る。描画オブジェクトは、キャンバスまたは描画層と呼ばれることがあり、アプリケーションがグラフィクス情報を描画する際に使用するオブジェクトである。アプリケーションがキャンバスまたは層のインスタンスを作成すると、グラフィクスサーバ734がそのキャンバスまたは層に関連するサーフェス情報にメモリを割り当て、その描画オブジェクトをアプリケーションに戻し、すると、アプリケーションがこれを使ってキャンバスまたは層のサーフェスに関するグラフィクス情報を描画する。その後、グラフィクスサーバ734はサーフェス情報をモニタし、サーフェス情報が更新されると、このサーフェス情報をフレームバッファ(例えば、フレームバッファ716)にレンダリングする。一般に、ユーザはまた、ビューオブジェクトを通じてアプリケーションを操作する。ビューンオブジェクトはイベントリスナを含み、これは、ユーザがそのビューオブジェクトに対して動作を起こした際に、モバイルOSの入力待ち行列736によりコールされる。
OSアーキテクチャ300aに示されているように、サーフェス726、727及び/または728は、グラフィクスサーバ734によって共有メモリ724に割り当てられる。共有メモリ724は、共有カーネル320によって管理され、モバイルOS 130とデスクトップOS 160上で動作中のすべてのプロセスによりアクセス可能である。前述のように、共有メモリ724は名前付き共有メモリであってもよい。名前付き共有メモリは、共有カーネル320上で動作中のすべてのプロセスによってアクセス可能であるが、それ以外のプロセスは名前によって名前付き共有メモリの領域にアクセスすることができない。従って、名前付き共有メモリの各領域に関するファイル記述子を、プロセス間通信メカニズムを通じて送り、プロセスの境界を越えて名前付き共有メモリを参照できるようにしなければならない。共有カーネル320にはまた、IPCドライバ725が含まれ、これによって、モバイルOS 130とデスクトップOS 160の中のプロセスはプロセスの境界を越えて相互に通信できる。IPCドライバ725は、例えば、Unixドメインソケットドライバ、Android Binderドライバ、及び/またはネットワークソケットドライバであってもよい。
OSアーキテクチャ構成300aのデスクトップOS 160には、コンソールアプリケーション782とウィンドウシステム774が含まれる。コンソールアプリケーション782は、デスクトップOS 160のためにコンパイルされ、その上で動作し、デスクトップOS 160に関連するユーザ操作空間のコンソールウィンドウの中に表示される。ウィンドウシステム774には、ウィンドウマネージャ、グラフィクスサーバ及び/または、グラフィクスオブジェクトを表現し、デスクトップOSフレームバッファ718を通じてこれらをディスプレイデバイスに転送するための基盤となるグラフィクスデバイスインタフェースが含まれる。例えば、ウィンドウシステム774は、デスクトップOSフレームバッファ718を通じて、デスクトップOS 160のユーザ操作空間内にコンソールアプリケーション782を表示してもよい。ウィンドウシステム774はまた、コンソールアプリケーション782に関連するデスクトップOS 160のユーザ環境からの入力イベントをコンソールアプリケーション782に提供する。例えば、ウィンドウシステム774は、デスクトップOS 160に関連するユーザ操作空間からのポインティングデバイスの位置またはジェスチャ情報をコンソールアプリケーション782に提供してもよい。
図7において、共有メモリ724、モバイルOSフレームバッファ716、デスクトップOSフレームバッファ718を含むメモリブロックが、わかりやすいように、共有カーネル320の中にあるように示されている。しかしながら、これらのメモリブロックは、モバイルコンピュータデバイス110の有形のメモリ要素の中に物理的に設置され、共有カーネル320によって管理される。例えば、これらのメモリブロックは、図2に示されるように、プロセッサ114のRAMの中、及び/またはモバイルコンピューティングデバイスハードウェア112のメモリデバイス206のRAMの中に設置されてもよい。
OSアーキテクチャ構成300aは、第二のオペレーティングシステムに関連するユーザ操作空間内に共有カーネル上で動作中の第一のオペレーティングシステムのアプリケーションを異環境間レンダリングすることをサポートし、この場合、第一と第二のオペレーティングシステムは共有カーネル上で同時動作中である。OSアーキテクチャ構成300aは、複数のユーザ操作空間を通じて複数のユーザコンピューティング体験を提供するコンピューティング環境における異環境間レンダリングをサポートするために使用してもよい。例えば、OSアーキテクチャ構成300aは、図1に示されるようなコンピューティング環境100の中で使用してもよい。
図8は、各種の実施形態によるコンピューティング環境800を示す。コンピューティング環境800は、モバイルコンピューティングデバイスハードウェア112のタッチスクリーンディスプレイ116とその他のI/Oデバイス118を含む第一のユーザ環境を有する。このユーザ環境は第一のユーザ操作空間を提供し、ユーザはここからモバイルOS 130を操作する。コンピューティング環境800の第二のユーザ環境は、ディスプレイモニタ844、キーボード846及び/またはポインティングデバイス848を含む。ユーザ環境840は、ドックコネクタ841とドックケーブル843を通じて、モバイルコンピューティングデバイス110に接続されてもよい。ドックコネクタ841とドックケーブル843は、図1に示されるように、ドックインタフェース122を通じてモバイルコンピューティングデバイス110のポート120とインタフェースするポートを含んでいてもよい。この点に関して、ユーザ環境840は、モバイルコンピューティングデバイス110に対して、ドッキングされた第二の端末環境を提供する。コンピューティング環境800において、デスクトップOS 160はドッキングされた第二の端末環境840に関連付けられてもよく、これによって、ユーザは第二の端末環境840によって提供されるユーザ操作空間を通じてデスクトップOS 160を操作できる。第二の端末環境840は、一般的なデスクトップ型コンピューティング環境として示されているが、デスクトップOS 160は、他のタイプのコンピューティング環境、例えばラップトップ、タブレット及び/またはその他のタイプのコンピューティング環境を通じて第二のユーザ操作空間を提供してもよい。
OSアーキテクチャ構成300aをコンピューティング環境800で使用して、第一のOS(すなわち、モバイルOS)上で動作し、第二のOSのユーザ環境(すなわち、デスクトップOS 160に関連するユーザ環境840)の中に表示されるアプリケーションの異環境間レンダリングを提供してもよい。例えば、モバイルOS 130上で動作中のアプリケーション754は、デスクトップOS 160のユーザ操作空間880のコンソールウィンドウ882の中に表示されてもよい。ウィンドウ884と886を含む、ユーザ操作空間880内のその他のウィンドウは、デスクトップOS 160で動作中の他のアプリケーションのウィンドウであってもよい。ユーザに対しては、コンピューティング環境800はアプリケーション754に関するシームレスなコンピューティング体験を提供し、これは、アプリケーション754がデスクトップOS 160のユーザ操作空間の中で、実際にはアプリケーション754はモバイルOS 130で動作しているが、デスクトップOS 160上で実行されているかのように使用できるからである。
図8は、デスクトップ型の第二の端末環境840を示している。この例では、ユーザは、第二の端末環境840のキーボード846とマウス848を使うことにより、コンソールウィンドウ882を通じて(すなわち、主としてポインティングデバイスに基づくGUI)、モバイルOSのアプリケーション及び/またはユーザ操作空間を操作してもよい。しかしながら、アプリケーションの異環境間レンダリング及び/またはモバイルOSユーザ操作空間のミラーリングを、他の第二の端末環境で使用してもよい。例えば、デスクトップOS 160は、タッチスクリーンディスプレイを含むタブレット型の第二の端末環境に関連付けることができる。この場合、ユーザは、ユーザが一般的にモバイルOS 130のユーザ操作空間を操作するのとほとんど同じ方法で(すなわち、主としてジェスチャベースのGUI)、モバイルOS 130の異環境間アプリケーションまたはミラーリングされたユーザ操作空間を操作してもよい。
前述のように、本発明の実施形態は、複数のOSに基づくコンピューティング環境において、異環境間アプリケーション及び/またはミラーリングされたユーザ操作空間のユーザによる同時インタフェースをサポートすることに関する。一例において、ユーザインタフェースのサポートは、異環境間アプリケーションのために提供され、それによって第一のOS上で動作中のアプリケーションを、実質的にもともと第二のオペレーティングシステム上で動作しているかのように、第二のOSのユーザ操作空間を通じて表示し、操作することができる。
非拡張レンダリングコンテキストによる実施形態
いくつかの実施形態は、第一のオペレーティングシステムのグラフィクスレンダリングコンテキストを拡張せずに、複数のOSにわたる同時ユーザインタフェースをサポートすることに関する。第一のOS(例えば、モバイルOSであるAndroid)は一般に、単独の、アクティブなユーザ操作空間となるように構成される。このユーザ操作空間には、アクティブディスプレイ(例えば、解像度等、関連する特徴を有する)と、ユーザがアクティブディスプレイ上で表示される要素を操作できるような1つまたは複数のアクティブ入力デバイスが含まれる。従って、第一のOSは、アクティブディスプレイに表示するために実行されるアプリケーションに関するサーフェス情報をレンダリングする際に使用できるレンダリングコンテキストを作成する。
非拡張レンダリングコンテキストによる実施形態
いくつかの実施形態は、第一のオペレーティングシステムのグラフィクスレンダリングコンテキストを拡張せずに、複数のOSにわたる同時ユーザインタフェースをサポートすることに関する。第一のOS(例えば、モバイルOSであるAndroid)は一般に、単独の、アクティブなユーザ操作空間となるように構成される。このユーザ操作空間には、アクティブディスプレイ(例えば、解像度等、関連する特徴を有する)と、ユーザがアクティブディスプレイ上で表示される要素を操作できるような1つまたは複数のアクティブ入力デバイスが含まれる。従って、第一のOSは、アクティブディスプレイに表示するために実行されるアプリケーションに関するサーフェス情報をレンダリングする際に使用できるレンダリングコンテキストを作成する。
しかしながら、前述のように、本明細書には同時に使用中の複数のユーザ操作空間中に第一のOSを有効にフーリングするための新規の技術が記載される。さらに、この技術によれば、複数のユーザ操作空間を、複数のコンピューティング環境上の異なる(例えば、非互換性の)オペレーティングシステムに関連付けることが可能となる。いくつかの実施形態には、異環境間リモートレンダリングを通じてディスプレイ出力を処理するための技術が関わる。その他の実施形態は、このような場合のユーザの操作を扱うための技術に関する。
異環境間リモートレンダリングにおいて、第一のOS上で動作し、第二のOSに関連するコンピューティング環境内で表示されるアプリケーションに関するアプリケーショングラフィクスは、第二のOS内からレンダリングされる。1つの実施形態において、第二のOS上で動作中のコンソールアプリケーションは、共有メモリからのそのアプリケーションに関するサーフェス情報にアクセスし、第二のOSに関連するコンピューティング環境のコンソールウィンドウ内にこのアプリケーションをレンダリングする。
カレンダアアプリケーションとワードプロセシングアプリケーションがどちらもモバイルデバイス上の第一のOS(例えば、モバイルOS 130)用にコンパイルされ、同時動作していると仮定する。第二のOS(例えば、デスクトップOS 160のようなノンモバイルOS)が共有カーネルを使ってモバイルデバイス上で同時に動作している。ユーザは、モバイルデバイスを第二の、デスクトップコンピューティング環境にドッキングしており、このデスクトップコンピューティング環境を通じてワートプロセシングアプリケーションを操作したいと望んでいる。モバイルコンピューティング環境(すなわち、モバイルデバイス)の第二のOSを使って、デスクトップコンピューティング環境のユーザ操作空間を、ユーザにとってよくわかる方法で扱うことが望ましい。
図9は、各種の実施形態による異環境間リモートレンダリングの態様を示す。図9に示されるアプリケーションレンダリングの概略図900において、第一のアプリケーション910(例えば、カレンダアプリケーション)は第一のOS内の第一のサーフェス912に関する更新を計算する。第一のサーフェス912は、第一のオペレーティングシステムによって共有メモリ空間内の第一のメモリ位置に格納される。例えば、第一のメモリ位置は、名前付きの共有メモリの1領域であってもよい。第一のアプリケーション910は、第一のサーフェス912のバックバッファ914を更新する。同様に、第二のアプリケーション930(例えば、ワードプロセシングアプリケーション)は、第一のOSを使って、第二のサーフェス932の更新を計算する。第二のサーフェス932は、第一のOSによって共有メモリ空間の第二のメモリ位置(例えば、名前付きの共有メモリの第二の領域)に格納される。
第一のOSは、いつレンダリングシーケンスを開始するか判断する。例えば、第一のOSは、サーフェス912及び/または932に関するサーフェス情報が変更された時にレンダリングシーケンスを開始してもよい。第一のOSは、特定のアプリケーションに関連するサーフェス情報が変化したかどうかを判断し、第一のサーフェス912と第二のサーフェス932を含むすべてのサーフェスについて1ループを実行してもよい。レンダリングシーケンスの中で、サーフェス912に関するサーフェス情報が変化すると、第一のOSはフロントバッファ916とバックバッファ914をスワップして、バックバッファ914の中にあったサーフェス情報が今度はフロントバッファ916にあるようにする。第一のオペレーティングステムは、第一のサーフェス912を第三のメモリ位置920にレンダリングして、第一のOSに関連する第一のユーザ操作空間内で表示されるべき最終画像918を作る。
第二のサーフェス932に関するサーフェス情報が変化すると、第一のOSは第二のOSに対し、第二のサーフェス932に関するサーフェス情報が変化したことを通知する。具体的には、第一のOSは第二のOSのコンソールアプリケーションに対し、サーフェス932がアップデートされたことを示す描画通知を、プロセス間通信チャネルを通じて送信する。描画通知は、フロント画像936のファイル記述子及び/またはフロント画像936のための共有メモリ空間に関するその他の特徴、例えばバッファの大きさ、層の順序等を含んでいてもよい。コンソールアプリケーションは、ファイル記述子をそのプロセス空間にマッピングして、第二のメモリ位置の参照を取得する。第二のメモリ位置の参照を通じて、第二のOSのコンソールアプリケーションは、フロント画像バッファ936からサーフェス情報を直接読み出し、第二のサーフェス932のフロント画像936に関するサーフェス情報を、第二のOSに関連する第二のユーザ操作空間内のコンソールウィンドウ940にレンダリングする。このようにして、コンソールアプリケーションは、第二のアプリケーション930をリアルタイムでコンソールウィンドウ940の中にレンダリングすることができ、プロセス間でグラフィクスフレームまたはサーフェス情報をコピーすることは不要となる。その代わりに、コンソールアプリケーションは、プロセス間通信を通じて送られたファイル記述子を使って、第二のサーフェス932の共有メモリをそれ自身のプロセス空間にマッピングすることにより、サーフェス情報を直接読み出す。
図10は、各種の実施形態による、非拡張レンダリングコンテキストでの異環境間リモートレンダリングの例示的方法のフロー1000を示す。実施形態では、どちらも第一のオペレーティングシステムのためにコンパイルされ、その中でアクティブに同時動作中の第一のアプリケーション(例えば、カレンダアプリケーション)と第二のアプリケーション(例えば、ワードプロセシングアプリケーション)のアプリケーショングラフィクスの表示が維持される。
方法1000はブロック1004で、第一のオペレーティングシステムを使って第一のアプリケーションのサーフェスの更新を計算することから始まる。サーフェスの更新の計算では、アプリケーションデータを使って、どのサーフェスがどのように変化したかが判断される。例えば、ユーザの操作により、いくつかのサーフェスが位置、順序(例えば、1つの層が部分的に他の層の前にあっても、他の層により完全に隠れていても、その他でもよい)、大きさ、色、テクスチャ等が変化した可能性がある。
ブロック1008で、第一のアプリケーションのこれらの更新後のサーフェスが、第一のオペレーティングシステムを使ってレンダリングされ、第一のメモリ位置に第一のグラフィクスフレームが生成される。例えば、第一のOSのレンダリングエンジンはそれ以前に、ディスプレイに関連するレンダリングコンテキストを作成した。すると、グラフィクスフレームは、更新されたサーフェス情報を繰り返し処理することによってレンダリングし、そのレンダリングコンテキストに関連するディスプレイの特徴(例えば、解像度)に従って、第一のアプリケーションから見えるサーフェス部分の全体または部分画像が有効に描画される。このグラフィクスフレームは第一のメモリ位置にレンダリングされる。メモリ位置は、フレームバッファメモリ、共有メモリ、またはその他の有益なメモリ位置とすることができる。
いくつかの実施形態において、ブロック1012では、レンダリングされた第一のグラフィクスフレームが、第一のメモリ位置から第一のオペレーティングシステムに関連する第一のコンピューティング環境のディスプレイに表示される。例えば、第一のグラフィクスフレームは、モバイルデバイスのフレームバッファのバックバッファ部分にレンダリングされる。その後、フレームバッファが反転し(すなわち、バックバッファ部分がフロントバッファ部分となる)、フレームバッファの、新たにフロントになったバッファ部分がモバイルデバイスのディスプレイに表示される。
ブロック1016で、第一のオペレーティングシステムを使って、第二のアプリケーションのサーフェスの更新が計算される。これは、ブロック1004の第一のアプリケーションのサーフェスに関する計算と実質的に同じように行われてもよい。しかしながら、第一のアプリケーションの更新後のサーフェスデータと異なり、第二のアプリケーションの更新後のサーフェス情報は第一のOSではレンダリングされない。そうではなく、ブロック1020で、第二のアプリケーションの更新後のサーフェスは第二のメモリ位置に格納される。第二のメモリ位置は、モバイルデバイスの共有カーネル上で同時動作中の第一と第二のOSの両方によりアクセス可能な共有メモリ位置である。
ブロック1024で、第二のアプリケーションの更新後のサーフェスは、第二のオペレーティングシステムのコンソールアプリケーションを使ってレンダリングされ、第三のメモリ位置の中に第二のグラフィクスフレームが生成される。例えば、図7のコンソールアプリケーション782は、アプリケーション754の更新後のサーフェスを第二のOSのフレームバッファメモリ(例えば、第二のコンピューティング環境のディスプレイに関連付けられている)にレンダリングしてもよい。いくつかの実施形態において、ブロック1028で、第二のグラフィクスフレームは、第三のメモリ位置から第二のオペレーティングシステムに関連する第二のコンピューティング環境のディスプレイに表示される。例えば、デスクトップコンピューティング環境のディスプレイドライバは、そのフレームバッファメモリにアクセスし、第二のグラフィクスフレームにアクセスしてこれを表示する。特定の実施例においては、コンソールアプリケーションがコンソール操作空間を有し、第二のグラフィクスフレームがコンソール操作空間の中にレンダリングされる。例えば、コンソールアプリケーションは、デスクトップディスプレイ上に1つまたは複数のウィンドウをレンダリングし、第二のアプリケーションのグラフィクスがこれらのウィンドウの1つに表示される。
いくつかの実施形態において、方法1000はブロックを繰り返し処理して、両方のアプリケーションのグラフィクス環境を同時に維持する。例えば、モバイルOSは、第一のアプリケーションのグラフィクスの更新を計算して、これらの更新をモバイルフレームバッファメモリにレンダリングする。その後、モバイルOSは第二のアプリケーションのグラフィクスの更新を計算し、これらの更新を共有メモリに格納し、そこから、デスクトップOSのコンソールアプリケーションがこれらの更新をデスクトップのフレームバッファメモリにレンダリングする。その後、方法1000が次の一連の更新について繰り返される。特にいくつかの実施例は、特定のステップを異なる順序で、及び/または並行して行う。例えば、第一と第二のアプリケーションのサーフェスの更新を実質的に同時に計算することも可能である(すなわち、ブロック1004と1016を実質的に並行して行う)が、これらの更新後のサーフェスは、一部だけがローカルでレンダリングされ(例えば、ブロック1008)、更新後のサーフェスの他の部分は、リモートレンダリングのために格納される(例えば、ブロック1020と1024)。
1つの実施形態において、AndroidモバイルOSとフルLinux OS(例えば、Hydroid)は、モバイルデバイス上の共有カーネルで同時動作中である。AndroidアプリケーションがHydroid OS 660から起動されると、コンソールアプリケーションがHydroid OS 660上で起動し、Android OS 430がAndroidアプリケーションを起動させて、Androidアプリケーションに関する描画通知をコンソールアプリケーションに送信するように要求する。Andoid OS 430はAndoroidアプリケーションを起動させ、このアプリケーションを仮想ディスプレイIDに関連付けて、コンソールアプリケーションを登録し、そのアプリケーションに関する描画通知を受け取るようにする。例えば、Androidグラフィクスサーバ(すなわち、SurfaceFlinger)は、使用されていない仮想ディスプレイIDを割り当てて、アプリケーションオブジェクトリストを通じてそのアプリケーションを仮想ディスプレイIDに関連付ける。SurfaceFlingerは、共有メモリの中でAndroidアプリケーションのサーフェス情報のためのメモリを割り当て、コンソールアプリケーションを登録して、Androidアプリケーションに関する描画通知を受け取るようにする。
SurfaceFlingerが、サーフェス情報が更新されたと判断すると、SurfaceFlingerはプロセス間通信チャネルを通じてコンソールアプリケーションに描画通知を送信する。例えば、SurfaceFlingerはunixドメインソケット、Binderインタフェース及び/またはネットワークソケットを通じて描画通知を送信してもよい。描画通知には、サーフェス情報の第一の記述子が含まれる。ファイル記述子は、SurfaceFlingerにより、そのサーフェスの名前付き共有メモリ領域に関する名前空間に基づいて生成されてもよい。描画通知にはまた、データフォーマット、バッファサイズ、サーフェス位置情報が含まれていてもよい。コンソールアプリケーションは、ファイル記述子をそのプロセス空間にマッピングし、マッピングされたファイル記述子を通じて、共有メモリから読み出す。コンソールアプリケーションは次に、そのアプリケーションに関する他のグラフィクスフレームを、サーフェス情報から直接レンダリングする。すると、レンダリングされたグラフィクスフレームはデスクトップOSグラフィクスシステムによって(すなわち、Hydroid OS 660のXウィンドウグラフィクスシステムを通じて)表示される。
図11は、各種の実施形態による、異環境間リモートレンダリングのための登録及び描画プロセスフロー1100をより詳しく示している。まず、Hydroid OS 660上で動作中のコンソールアプリケーション1102は、ステップ1106で、共有カーネル520のIPCチャネル525を通じて、AndroidアプリケーションがHydroid OS 660のユーザ環境で起動され、表示されるか、Android OS 430のユーザ環境からHydroid OS 660のユーザ環境に移動されるように要求する。Androidは、ステップ1108、1110、1112で、SufaceFlinger 434にそのアプリケーションのための仮想ディスプレイIDを要求し、アプリケーションを起動させ、仮想ディスプレイのパラメータを設定する。ステップ1114で、Androidは、IPCチャネル525を通じてディスプレイIDをコンソールアプリケーションに返す。ステップ1116で、アプリケーションは新しいサーフェスを要求し、ステップ1118でこれがSurfaceFlinger 434により、サーフェスクラス1104のインスタンスを作ることによって作成される。
ステップ1120で、コンソールアプリケーション1102はレンダラオブジェクトのインスタンスを作り、これがHydroid OS 660のXウィンドウシステムを通じてAndroid サーフェス情報をレンダリングする。ステップ1122で、コンソールアプリケーション1102は、レンダラオブジェクト1124のリモート処理可能なインタフェースをSurfaceFligner 434に登録し、Androidアプリケーションに関するサーフェス情報の描画通知を受け取るようにする。1つの実施形態において、レンダラオブジェクトとリモート処理可能なインタフェースには、draw()及びclear()メソッドが含まれ、これはIPCチャネル525を通じてコールすることができる。ステップ1126と1128で、SurfaceFlingerは、IPCオブジェクトをサーフェスに貼付し、サーフェス情報が更新された時に、リモート処理可能なインタフェースを通じてコンソールアプリケーション1102に通知が行われるようにする。
ステップ1130と1132は、プロセスフロー1100のレンダリングループの一部である。レンダリングループの中で、SurfaceFlingerはコンソールアプリケーション1102に対し、サーフェス情報が更新されたことを通知し、IPCチャネル525を通じて、そのサーフェス情報のファイル記述子を送る。例えば、コンソールアプリケーションレンダラの描画メソッドがコールされ、そのサーフェスのファイル記述子が送られてもよい。コンソールアプリケーション1102は、ファイル記述子をそのプロセス空間にマッピングし、参照された共有メモリ位置にアクセスして、サーフェス情報を読み出し、Hydroid OS 660に関連する第二のコンピューティング環境のディスプレイ上に表示されるべきグラフィクスフレームをレンダリングする。
図12は、各種の実施形態による、非拡張レンダリングコンテキストでの異環境間レンダリングの他の例示的方法のフロー1200を示す。図10の方法1000と同様に、実施形態では、どちらも第一のオペレーティングシステムのためにコンパイルされ、その中でアクティブに同時動作中の第一のアプリケーションと第二のアプリケーションのアプリケーショングラフィクスの表示が維持される。
方法1200はブロック1204で、第一のオペレーティングシステムの第一のレンダリングコンテキストを作成することから始まる。レンダリングコンテキストは、それが関連するディスプレイに固有のものであってもよい。例えば、モバイルOSの実行は、特定の解像度を有するモバイルデバイスディスプレイに関連付けることができる。レンダリングコンテキストは、関連するディスプレイの解像度にマッチするように作成してもよく、それによってグラフィクスはその解像度に合わせて適正にレンダリングされる。ブロック1208で、方法1200は、第一のオペレーティングシステムを使って、第一のアプリケーションのサーフェスの更新を計算する。前述のように、サーフェスの更新を計算するには、アプリケーションのデータを使って、どのサーフェスがどのように変化したかが判断される。
第一のアプリケーションの更新後のサーフェスは、次にブロック1212で、第一のオペレーティングシステムを使ってレンダリングされ、第一のメモリ位置に第一のグラフィクスフレームが生成される。レンダリングでは一般に、グラフィクスプリミティブが、表示されるグラフィクスフレームを形成するビット(例えば、ビットマップ)に変換される。例えば、サーフェス情報は形状、大きさ、色、層の重なり順(すなわち、その前または後ろに、他の何れのサーフィスがあるか)、透明度等、各サーフェスの特性を数学的に定義する。OSのレンダリングエンジンは、サーフェスデータを解釈し、レンダリングコンテキストの中の各位置(例えば、「X、Y」位置)においてどのビットを表示するかを、全サーフェス情報のレンダリングに応じて(例えば、繰り返しによる合成、レイトレーシング、及び/またはその他の手法を使用して)判断できる。第一のアプリケーションの更新後のサーフェスを、第一のレンダリングコンテキストを使ってビットマップの中にレンダリングし、第一のメモリ位置(例えば、フレームバッファメモリ、共有メモリ、またはその他の有益なメモリ位置)の中に格納されるようにすることができる。
いくつかの実施形態において、ブロック1216で、第一のグラフィクスフレームが第一のメモリ位置から第一のオペレーティングシステムに関連する第一のコンピューティング環境のディスプレイに表示される。例えば、モバイルデバイスディスプレイのためのディスプレイドライバが、関連するフレームバッファメモリにアクセスして、第一のレンダリングコンテキストで生成されたビットマップを表示する。ブロック1220において、第一のレンダリングコンテキストは解体される(例えば、破壊される)。
ブロック1224で、第一のオペレーティングシステムの第二のレンダリングコンテキストが作成される。いくつかの実施例で、第二のレンダリングコンテキストは、第一のレンダリングコンテキストと同じである。しかしながら、第二のレンダリングコンテキストはまた、第二のコンピューティング環境のディスプレイ(例えば、デスクトップディスプレイ)の特徴に応じて作成されてもよい。ブロック1228で、第二のアプリケーションのサーフェスの更新が、第一のオペレーティングシステムを使って計算される。ブロック1232で、これらの更新が次に第一のオペレーティングシステムの第二のレンダリングコンテキストでレンダリングされ、第二のメモリ位置に第二のグラフィクスフレームが生成される。特に、第二のメモリ位置は、モバイルデバイスの共有カーネル上で同時動作中の第一のオペレーティングシステムと第二のオペレーティングシステムの両方によりアクセス可能な共有メモリ位置である。
いくつかの実施形態において、ブロック1236で、第二のグラフィクスフレームが第二のメモリ位置から第二のオペレーティングシステムに関連する第二のコンピューティング環境のディスプレイに表示される。特筆すべき点として、図10とは異なり、両方のアプリケーションの更新されたグラフィクスフレームは、第一のOSのレンダリングエンジンを使ってレンダリングされる。例えば、第二のOSのコンソールアプリケーションは、第二の共有メモリ位置にアクセスして、第二のコンピューティング環境のディスプレイに表示するためにレンダリングされたビットマップを直接呼び出すことができる。ブロック1240で、第二のレンダリングコンテキストが解体される。
いくつかの実施形態において、方法1200はブロックを繰り返し処理して、両方のアプリケーションのためのグラフィクス環境を同時に維持する。例えば、モバイルOSは、第一のアプリケーションに関するレンダリングコンテキストの作成、使用、破壊を繰り返し、その後、第二のアプリケーションに関するレンダリングコンテキストを作成し、使用し、破壊する。この技術を使用して、すべてのレンダリングを1つのOSによって(すなわち、第一のOSのレンダリングエンジンによって)実行することができ、もう一方のOSのレンダリング機能を提供または使用する必要がない。しかしながら、この技術では、レンダリングコンテキストを繰り返し作成し、破壊することに伴う追加の間接費が発生する。
異環境間レンダリングの上記の実施形態は、非拡張レンダリングコンテキストを使用して、第一のOS上で動作中のアプリケーションに関するグラフィクスフレームが、複数のOSに基づくコンピューティング環境の中の第二のOSのユーザ操作空間のコンソールウィンドウに表示される方法を説明している。このような異環境間アプリケーションのユーザ操作をサポートするために、実施形態では、入力イベントを第二のOSのユーザ操作空間から第一OSにリダイレクトし、異環境間アプリケーションが入力イベントを、それが第一のOSのユーザ操作空間から送られているかのように受け取るようにする(すなわち、アプリケーションは入力イベントを、それが第一のOSのユーザ操作空間内で表示された場合にユーザ入力の受け取りに使用するものと同じイベントハンドラ及び/またはビューを通じて受け取る)。
図7と8に戻ると、デスクトップOS 160は、デスクトップコンピューティング体験に適した第二の端末環境840を通じて、第二のユーザ操作空間を提供するように構成される。前述のように、上記の異環境間レンダリングの実施形態を用いれば、アプリケーション752はモバイルOS 130のユーザ操作空間に表示されてもよく、その一方で、モバイルOS 130上で動作中のアプリケーション754は、デスクトップOS 160上で動作中のコンソールアプリケーション782を通じて第二のユーザ操作空間のコンソールウィンドウ882に表示される。特に、アプリケーション752と754は、モバイルOSランタイム環境内で動作中であり、モバイルOSフレームワークを通じて入力イベントを受け取る、モバイルOS 130のためにコンパイルされたどのようなアプリケーションであってもよく、表示するため、または遠隔的に(モバイルOS 130のユーザ操作空間以外で)操作するために変更を加える必要がない。
図13は、各種の実施形態による、異環境間アプリケーションのユーザ操作をサポートするためのOSアーキテクチャ構成300bを示す。OSアーキテクチャ構成300bにおいて、共有カーネル320のデバイスドライバは、第二の端末環境840を構成するI/Oデバイス844、846及び/または848のためのハードウェアインタフェースを実装する。デバイスドライバを通じて、これらのデバイスの入力イベントが、共有カーネル320のI/Oデバイス1360のデバイス1364、1366及び/または1368に現れる。共有カーネル320のシステムリソースは、モバイルOS 130とデスクトップOS 160の両方で利用できることから、モバイルOSは、入力デバイス1364、1366及び/または1368の入力イベントがモバイルOS 130に対するものであるか否かを判断する。デスクトップOS 160が第二のユーザ操作空間を提供するように構成されている(すなわち、モバイルコンピューティングデバイス110が第二の端末環境840にドッキングされている)場合、モバイルOS 130は、第二のユーザ操作空間に関連する入力デバイスからの入力イベントを無視する。OSアーキテクチャ構成300bにおいて、モバイルOS 130は、デバイス1364、1366及び/または1368からの入力イベントを無視する。この場合、デスクトップOS 160がデバイス1364、1366及び/または1368からの入力イベントを受け入れる。
デスクトップOS 160は、デバイス1364、1366及び/または1368からの入力イベントを処理し、このイベントをデスクトップOS 160内の各種のウィンドウまたはGUI要素にどのように分配するかを判断する。例えば、デスクトップOS 160のウィンドウシステム774は、デバイス1364、1366及び/または1368からの入力イベントを受け入れてもよい。1つの実施形態において、デスクトップOS 160のグラフィクスシステムは、Xウィンドウグラフィクスシステムである。
1つの例において、ユーザは、コンソールアプリケーション782のコンソールウィンドウ882の中の画面位置でポインティングデバイスのボタンをクリックする。これに対応する入力イベントがデバイス1368に現れ、デスクトップOS 160はこの入力イベントを受け取って、処理する。ウィンドウシステム774は、入力イベントをコンソールアプリケーション782に送り、これを通じて、モバイルOS 130上で動作中のアプリケーション754が、異環境間レンダリングの実施形態を使って表示される。前述のように、アプリケーション754はモバイルアプリケーションであり、モバイルOS 130の入力待ち行列736からの入力を受け取るモバイルOS 130のライブラリを使って、ビューとその他のイベントハンドラのインスタンスを作成し、ユーザ入力を受け取る。入力イベントをアプリケーション754に、アプリケーション754がその入力イベントを適正に解釈できるような方法で提示するために、コンソールアプリケーション782は、入力イベントをモバイルOS 130のグラフィクスコンテキストにマッピングし、仮想入力デバイス1370を通じてこのイベントをモバイルOS 130の入力待ち行列736に送る。仮想入力デバイス1370はモバイルOS 130にとって、モバイルOS 130のための適正な入力イベントプロトコルを有する入力デバイスに見える。これに加えて、入力イベントは、コンソールアプリケーション782によって、モバイルOS 130のグラフィクスコンテキストに関連するようにフォーマットされる。モバイルOS 130は、仮想入力デバイス1370をアプリケーション754に関連付け、アプリケーション754がモバイルOSのイベント待ち行列から入力イベントを受け取るようにする。例えば、モバイルOS 130は、仮想入力デバイス1370をアプリケーション754の仮想ディスプレイIDに関連付けてもよい。このようにして、アプリケーション754は、アプリケーション754がモバイルOS 130のユーザ操作空間を通じて表示、操作されるかのように、入力イベントを受け取り、処理する。
図14は、各種の実施形態による、非拡張グラフィクスコンテキストを使ってレンダリングされる異環境間アプリケーションのためのユーザ操作をサポートする態様を示す。方法1400は、ブロック1402で、入力イベントをモバイルコンピューティングデバイス110に接続された入力デバイス(例えば、キーボード846、ポインティングデバイス848)から受け取ることから始まる。前述のように、入力イベントは共有カーネル内の入力デバイスに現れてもよい。ブロック1404で、モバイルOSは、モバイルコンピューティングデバイス110がドッキングされ、デスクトップOSが入力デバイスに関連付けられているか否かを判断する。例えば、モバイルコンピューティングデバイス110が第二の端末環境にドッキングされておらず、デスクトップOSが一時停止している場合、モバイルOSは、デスクトップが入力デバイスに関連付けられていないと判断することができる。デスクトップOSが一時停止しているか、入力デバイスがデスクトップOSに関連する第二の端末環境の一部ではない場合、ブロック1406で、モバイルOSが入力デバイスからの入力コマンドを受け入れる。
デスクトップOSが一時停止しておらず、入力デバイスがデスクトップOSに関連する第二の端末環境の一部である場合、ブロック1408で、モバイルOSは入力デバイスの入力イベントを無視し、デスクトップOSがその入力イベントを受け入れる。ブロック1410で、デスクトップOSは入力イベントを、デスクトップOS内の適当なウィンドウかGUI要素に分配する。入力イベントがコンソールウィンドウに送られなければ、ブロック1412で、この入力イベントは他のウィンドウまたはGUI要素に送られる。入力イベントがコンソールウィンドウに送られた場合(例えば、ユーザがポインティングデバイスをコンソールウィンドウ領域の中でクリックする)、ブロック1414で、この入力イベントが入力イベントとしてコンソールアプリケーションに送られる。
ブロック1416で、仮想入力デバイスが、コンソールアプリケーションからの入力イベントのために生成される。仮想入力デバイスは共有カーネルの中に生成されてもよく、または入力イベントがモバイルOS入力デバイスの中に直接書き込まれてもよい。ブロック1418で、コンソールアプリケーションは入力イベントをモバイルOSのグラフィクスコンテキストにマッピングする。例えば、コンソールアプリケーションは、コンソールアプリケーションのコンソールウィンドウの中の入力イベントの位置を、モバイルOSのグラフィクスコンテキストの中の位置にマッピングしてもよい。コンソールアプリケーションは、その入力イベントを、モバイルOSのための入力フォーマットまたは入力モードステートに変換してもよい。例えば、入力フォーマットは、デスクトップOSとモバイルOSの間で異なっていてもよい。共通の入力フォーマットであっても、デスクトップOSとモバイルOSは異なる入力モードステートを有していてもよい。例えば、デスクトップOSは、ノンタッチモードの入力ステートを使って入力イベントを処理していてもよく、その一方で、モバイルOSはタッチモード入力ステートである。この場合、デスクトップOSのユーザ操作空間内でポインティングデバイスにより生成された入力イベントは、仮想入力デバイスにジェスチャベースイベントとして現れるように変換されてもよい。
ブロック1420で、仮想入力デバイスは、モバイルOSの中で、コンソールウィンドウに表示されるそのアプリケーションのための仮想ディスプレイデバイスに関連付けられる。例えば、複数のアプリケーションがモバイルOS上で動作中であり、デスクトップOSのユーザ操作空間の異なるコンソールウィンドウに表示されていてもよい。デスクトップOSのユーザ操作空間の中の別々のコンソールウィンドウに表示された各アプリケーションには、モバイルOS内の仮想ディスプレイIDが割り当てられる。そのため、モバイルOSが仮想デバイスを通じてデスクトップOSのコンソールアプリケーションから入力イベントを受け取ると、モバイルOSは、仮想ディスプレイIDを通じて、その仮想デバイスを正しいアプリケーションにマッピングすることができる。ブロック1422で、入力イベントは仮想ディスプレイに関連するアプリケーションに送られ、このアプリケーションはその入力イベントを、それがモバイルOSのユーザ空間を通じて発生したかのように処理することができる。特に、上記の方法は、モバイルOS 130の何れのアプリケーションにも利用でき、アプリケーションは、デスクトップOSのコンソールアプリケーションを通じて入力イベントを受け入れるように特に設計されている必要がない。
拡張レンダリングコンテキストによる実施形態
いくつかの実施形態は、第一のオペレーティングシステムの中で拡張レタリングコンテキストを作成することによって、複数のOSにまたがる同時ユーザインタフェースのサポートを扱う。前述のように、第一のOS(例えば、モバイルOSであるAndroid)は一般に、単独のアクティブレンダリングコンテキストで、単独のアクティブユーザ操作空間を定義するように構成される。本明細書では、多数のいわゆる「コンテキスト空間」を1つの拡張レンダリング空間にタイリングし、各コンテキスト空間を異なるディスプレイに関連付けることによって、第一のOSを、同時に扱われる複数のユーザ操作空間に有効にフーリングするための新規な技術を説明する。実施形態には、複数のユーザ操作空間へのディスプレイ出力を処理するための技術と、これらのコンテキストでユーザ操作を処理する技術が含まれる。
拡張レンダリングコンテキストによる実施形態
いくつかの実施形態は、第一のオペレーティングシステムの中で拡張レタリングコンテキストを作成することによって、複数のOSにまたがる同時ユーザインタフェースのサポートを扱う。前述のように、第一のOS(例えば、モバイルOSであるAndroid)は一般に、単独のアクティブレンダリングコンテキストで、単独のアクティブユーザ操作空間を定義するように構成される。本明細書では、多数のいわゆる「コンテキスト空間」を1つの拡張レンダリング空間にタイリングし、各コンテキスト空間を異なるディスプレイに関連付けることによって、第一のOSを、同時に扱われる複数のユーザ操作空間に有効にフーリングするための新規な技術を説明する。実施形態には、複数のユーザ操作空間へのディスプレイ出力を処理するための技術と、これらのコンテキストでユーザ操作を処理する技術が含まれる。
非拡張レンダリングコンテキストによる実施形態に関して上述した例に戻り、再び、カレンダアプリケーションとワードプロセシングアプリケーションがどちらも第一のOS(例えば、モバイルOSであるAndroid OS)のためにコンパイルされ、どちらもモバイルデバイスの第一のOS内で同時動作中であると仮定する。第二のOS(例えば、Hydroidのような非モバイルOS)は、共有カーネルを使って、モバイルデバイス上で同時に動作している。ユーザは、モバイルデバイスを第二のデスクトップコンピューティング環境にドッキングしており、デスクトップコンピューティング環境は、第二のOSのためのユーザ操作空間に関連付けられ、このユーザ操作空間を表示している。ユーザは、第二のOSのデスクトップコンピューティング環境を通じて、第一のOS上で動作中のワードプロセシングアプリケーションを操作したいと希望する。デスクトップコンピューティング環境のユーザ操作空間を、モバイルコンピューティング環境(例えば、モバイルデバイス)の第二のOSを使って、ユーザにとってわかりやすい方法で扱うことが望ましい。
図15は、各種の実施形態による、拡張レンダリングコンテキストを使って複数のOSにまたがる同時ユーザインタフェースをサポートする態様を示す。図15に示されるアプリケーションレンダリングの概略図1500において、第一のアプリケーション1510(例えば、カレンダアプリケーション)は、第一のOS内の第一のサーフェス1512の更新を計算する。第一のサーフェス1512は、第一のOSによって共有メモリ空間内の第一メモリ位置に格納される。具体的には、第一のアプリケーション1510は、第一のサーフェス1512のバックバッファ1514を更新する。同様に、第二のアプリケーション1530(例えば、ワードプロセシングアプリケーション)は、第一のオペレーティングシステムを使って第二のサーフェス1532の更新を計算する。ここでも、第二のアプリケーション1530による第二のサーフェス1532への更新がバックバッファ1534に対して行われる。第二のサーフェス1532は、第一のOSによって共有のメモリ空間の中の第二のメモリ位置に格納される。
第一のOSは、いつサーフェス情報が変化したかを判断し、レンダリングシーケンスを開始する。第一のOSは、特定のアプリケーションに関連するサーフェス情報がいつ変化したかを判断して、第一のサーフェス1512と第二のサーフェス1532を含む全サーフェスについて1ループを実行してもよい。レンダリングシーケンスの中で、第一のOSは、いつサーフェス情報が変化したかを判断し、第一のサーフェス1512のフロントバッファ1516とバックバッファ1514及び第二のサーフェス1532のフロントバッファ136とバックバッファ1534をスワップする。第一のOSは、共有メモリ空間の中の第三のメモリ位置で拡張レンダリングコンテキスト1520を作成し、第一のサーフェス1512を拡張レンダリングコンテキスト1520の第一のコンテキスト空間1522の中にレンダリングする。第一のOSは、第二のサーフェス1533を拡張レンダリングコンテキスト1520の第二のコンテキスト空間1524の中にレンダリングする。
実施形態において、拡張レンダリングコンテキスト1520は、メモリ空間の中で第一のOSのフレームバッファと重複してもよい。例えば、拡張レンダリングコンテキスト1520の第一のコンテキスト空間1522のメモリ位置は、第一のOSのフレームバッファと同じ範囲を占めていてもよい。第一のOSは、最終的な画像が第三のメモリ位置にレンダリングされたという通知を第二のOSに送る。例えば、第一のOSは、拡張コンテキスト1520の第二のコンテキスト空間1524の共有メモリ位置のファイル記述子を、プロセス間通信チャネルを通じて第二のOSのコンソールアプリケーションに送ってもよい。第二のOSは第三のメモリ位置の拡張グラフィクスコンテキストの第二の部分にアクセスして、レンダリングされたグラフィクスフレーム1538を呼び出し、第二のOSのコンソールウィンドウ1540の中に表示されるようにする。例えば、第二のOSのコンソールアプリケーションは、ファイル記述子をそのプロセス空間にマッピングし、第三のメモリ位置からレンダリングされたグラフィクスフレームを読み出し、第二のOSのユーザ操作空間内で表示されるようにする。このようにして、第二のOSは、第二のアプリケーションのレンダリングされたグラフィクスフレームを、そのユーザ操作空間内にリアルタイムで表示する。
図16は、各種の実施形態による、拡張レンダリングコンテキストを用いて異環境間レンダリングを行う例示的な方法のフロー1600を示す。実施形態では、第一のアプリケーション(例えば、カレンダアプリケーション)と第二のアプリケーション(例えば、ワードプロセシングアプリケーション)のアプリケーショングラフィクスの表示が維持される。どちらのアプリケーションも、第一のオペレーティングシステム(例えば、Android OS)のためにコンパイルされ、その中でアクティブに同時動作中であるが、ユーザは、第二のOSに関連する第二のコンピューティング環境を通じて、第二のアプリケーションを操作したいと望んでいると仮定する。特に、これらの技術は、2つのOSが非互換的である(例えば、第一のOS用にコンパイルされたアプリケーションは、直接第二のOSで実行できない)環境に利用できる。いくつかの実施例では、前述のように、2つのOSはモバイルデバイスの共有カーネル上で独立して、同時に動作している。
方法1600は、ブロック1604で、第一のOSの拡張レンダリングコンテキストを作成することから始まる。前述のように、レンダリングコンテキストは一般に、1つのアクティブディスプレイの特徴に合わせて作成される。しかしながら、拡張レンダリングコンテキストは、第一のアプリケーションに関連する第一のコンテキスト空間と第二のアプリケーションに関連する第二のコンテキスト空間を有するように作成される。第一と第二のコンテキスト空間は重複しない。
いくつかの実施形態において、拡張レンダリングコンテキストは、ローカルデバイスのアクティブディスプレイ(例えば、共有カーネルを有するモバイルデバイスのティスプレイ)と何れかの仮想ディスプレイ(すなわち、第二のOSのユーザ操作空間内で表示されるコンソールウィンドウに関連する第一のOSのディスプレイ)をタイリングして、第一のOSにとって、1つの大きなディスプレイに見えるものを形成することによって生成される。拡張レンダリングコンテキストの中の領域は、重複しないコンテキスト空間として指定され、その各々の物理的または仮想ディスプレイとの関連付けが維持される。特に、いくつかの実施形態において、異なるコンテキスト空間は、異なる解像度またはその他の特徴を有していてもよい。また、特定の実施形態において、コンテキスト空間は連続していない。例えば、拡張レンダリングコンテキストは、各コンテキスト空間の間に、どのコンテキスト空間にも割り当てられない空間が残されるような方法で作成される。
ブロック1608で、第一のオペレーティングシステムを使って、第一のアプリケーションと第二のアプリケーションのサーフェスの更新が計算される。更新後のサーフェスは次に、ブロック1612で、第一のオペレーティングシステムを使ってレンダリングされ、第一のオペレーティングシステムと第二のオペレーティングシステム(例えば、共有カーネル上で同時動作中であってもよい)によってアクセス可能な共有メモリ位置で拡張グラフィクスフレームが生成される。拡張グラフィクスフレームの第一の部分は(第一のアプリケーションに関連する)第一のコンテキスト空間に関連付けられ、拡張グラフィクスフレームの第二の部分は(第二のアプリケーションに関連する)第二のコンテキスト空間に関連付けられる。ブロック1608でレンダリングが行われる際、第一のアプリケーションの更新後のサーフェスは、拡張グラフィクスフレームの第一の部分にレンダリングされ、第二のアプリケーションの更新後のサーフェスは、拡張グラフィクスフレームの第二の部分にレンダリングされる。特筆すべき点として、このようにして、拡張グラフィクスフレームには、その適当なコンテキスト空間の中にタイリングされた両方のアプリケーションのレンダリングされたサーフェスが有効に含まれる。
いくつかの実施形態において、ブロック1616で、拡張グラフィクスフレームのうち、第一のコンテキスト空間に関連する第一の部分が、共有メモリ位置から第一のOSに関連する第一のコンピューティング環境のディスプレイに表示される。例えば、前述のように、共有メモリ位置はモバイルデバイスのフレームバッファメモリであり(またはフレームバッファメモリにコピーされ)、モバイルデバイスのディスプレイデバイスドライバがそのフレームバッファメモリにアクセスして、拡張グラフィクスフレームの第一の部分をそのディスプレイに表示する。さらに、いくつかの実施形態において、ブロック1620で、拡張グラフィクスフレームのうち、第二のモーション空間に関連する第二の部分が、共有メモリ位置から第二のオペレーティングシステムに関連する第二のコンピューティングデバイスのディスプレイに表示される。例えば、前述のように、共有メモリ位置は第二の(例えば、デスクトップ)コンピューティング環境に関連する第二のOSのフレームバッファメモリの中にコピーされ、ディスプレイデバイスドライバは、拡張グラフィクスフレームの第二の部分を第二のコンピューティング環境のディスプレイに表示する。
図12に関して説明した実施形態において、第二のアプリケーションの更新後のグラフィクスのレンダリングは、第二のOSによって遠隔的に行われる。図15に関して説明した実施形態において、両方のアプリケーションのレンダリングがモバイルデバイスのレンダリングエンジンによってローカルで実行されるが、レンダリングコンテキストは継続的に作成され、解体される。図16に関して説明した実施形態によれば、両方のアプリケーションのレンダリングがモバイルデバイスのレンダリングエンジンによってローカルで実行され、その一方で、拡張はされているが、単独のレンダリングコンテキストが維持される(すなわち、レンダリングコンテキストが解体されない)。
図17は、各種の実施形態による、拡張レンダリングコンテキストを使用する異環境間レンダリングの他の例示的な方法のフロー1700を示す。図16の方法1600と同様に、実施形態では、どちらも第一のオペレーティングシステムのためにコンパイルされ、アクティブに同時動作中の第一のアプリケーションと第二のアプリケーションのためのアプリケーショングラフィクスのディスプレイが維持される。方法1700は、ブロック1704で、第一のオペレーティングシステムの拡張レンダリングコンテキストを作成することから始まり、ブロック1708で、第一のオペレーティングシステムを使って、第一のアプリケーションと第二のアプリケーションのサーフェスの更新が計算される。前述のように、拡張レンダリングコンテキストは、第一のアプリケーションに関連する第一のコンテキスト空間と第二のアプリケーションに関連する第二のコンテキスト空間を有するように作成される。第一と第二のコンテキスト空間は重複しない。いくつかの実施例では、ブロック1704と1708はそれぞれ、ブロック1604と1608と実質的に同じ方法で実行される。
ブロック1712で、第一のアプリケーションの更新後のサーフェスが、第一のオペレーティングシステムを使って、第一のコンテキスト空間に従ってレンダリングされ、第一のオペレーティングシステムのフレームバッファに第一のグラフィクスフレームが生成される。たとえは、第一のコンテキスト空間は、特定の解像度、特定のタイリングオフセット(例えば、「X」位置から始まる)等に関連付けられてもよい。いくつかの実施形態において、第一のグラフィクスフレームは、図16の方法1600の拡張グラフィクスフレームのそれぞれの部分の生成と実質的に同じ方法で生成される。いくつかの実施形態において、ブロック1716で、第一のコンテキスト空間に関連する第一のグラフィクスフレームが、フレームバッファから第一のオペレーティングシステムに関連する第一のコンピューティング環境のディスプレイに表示される。
ブロック1720で、第二のアプリケーションの更新後のサーフェスが、第一のオペレーティングシステムを使ってレンダリングされ、共有メモリ位置に第二のグラフィクスフレームが生成される。前述のように、共有メモリ位置は第一のオペレーティングシステムと第二のオペレーティングシステム(例えば、これらは共有カーネル上で同時動作中であってもよい)によってアクセス可能である。いくつかの実施形態において、ブロック1724で、第二のモーション空間に関連する第二のグラフィクスフレームが、共有メモリ位置から第二のオペレーティングシステムに関連する第二のコンピューティング環境のディスプレイに表示される。
特に、図16と17の両方の実施形態では、各アプリケーションのコンテキスト空間を有する拡張レンダリングコンテキストが作成される。しかしながら、図16の方法1600は、すべてのグラフィクスの更新を1つの拡張ビットマップにレンダリングするが、図17の方法1700は、グラフィクスの更新を別のビットマップにレンダリングする。一方または他方の技術のどちらが望ましいかは、例えばメモリの管理及び/またはアクセス方法によって異なる。
図12の実施形態と同様に、図16と17の実施形態においては、両方のアプリケーションの更新後のグラフィクスフレームが第一のOSのレンダリングエンジンを使ってレンダリングされる。第一のOSのレンダリングエンジンを使用することにより、両方のアプリケーションに第一のOSで利用可能なモバイルデバイスのハードウェア加速機能を使用できる。例えば、図12、16及び/または17の実施形態において、第一と第二のアプリケーションの何れかまたは両方を、2Dまたは3Dハードウェア支援レンダリングを使って、第一のOSによりレンダリングしてもよい。
拡張レンダリングコンテキストを使って第一のOS(すなわち、モバイルOSであるAndroid)上で動作するアプリケーションのためのグラフィクスフレームを遠隔的に表示することにより、第一のOSが1つのレンダリングコンテキストを使って、複数のユーザ操作空間内で表示するように、複数のアプリケーションのためのレンダリングを提供できる。しかしながら、拡張レンダリングコンテキストでは、拡張レンダリングコンテキストを通じて表示されるアプリケーションに関する入力イベントの取扱いに関する問題が発生する。具体的には、第一のOSの入力待ち行列は、拡張レンダリングコンテキストの別の仮想ディスプレイを通じて表示される複数のアプリケーションからの複数の入力イベントを取り扱うように構成しなければならない。
異環境間ユーザ操作のサポートの実施形態は、第一のOS上で動作し、第一のOSの拡張レンダリングコンテキストを通じて複数の別々のユーザ操作空間(すなわち、モバイルデバイスユーザ操作空間とデスクトップOSのユーザ操作空間)で表示される複数のアプリケーションに関するユーザ入力イベントを処理することに関する。実施形態には拡張入力待ち行列が含まれ、そこでは遠隔的に表示されるアプリケーションのための仮想入力デバイスからの入力イベントがその入力待ち行列の中の別々のモーション空間にマッピングされる。例えば、第一のアプリケーション(例えば、カレンダアプリケーション)が第一のOS上で動作中であり、第一のデバイスに関連する第一のディスプレイ(例えば、第一のOSが動作中のモバイルデバイスのディスプレイ)に表示されている。第二のアプリケーション(例えば、ワードプロセシングアプリケーション)も、第一のアプリケーションと同時動作中であるが、拡張レンダリングコンテキストのコンテキスト空間(例えば、仮想ディスプレイ)の中でレンダリングされ、モバイルデバイスの共有カーネル上で第一のOSと同時動作中の第二のOSの第二のユーザ操作空間に表示されている。第一のOSは、第一のコンテキスト空間(すなわち、モバイルデバイスディスプレイ)の中の第一のアプリケーションと第二のコンテキスト空間の第二のアプリケーションの両方に関するアプリケーショングラフィクスを含む拡張レンダリングコンテキストを通じて、グラフィクスフレームをレンダリングする。第二のコンテキスト空間は、第二のOS上で動作中のコンソールアプリケーションを通じて第二のOSのユーザ操作空間に表示される。
拡張レンダリングコンテキストを通じて遠隔的に表示されるアプリケーションに関する入力イベントは、非拡張グラフィクスコンテキストに関して上述したものと同じ方法で、第二のOS(すなわち、デスクトップOSであるHydroid)によって受け取られ、第二のOSのコンソールアプリケーションによって仮想入力デバイスに送られる。しかしながら、前述のように、仮想入力デバイスからモバイルOSで受け取られた入力イベントは、第二のOSのユーザ操作空間内に表示されるコンソールウィンドウに関係する。仮想入力デバイスは、拡張入力待ち行列の中の、遠隔的に表示されたアプリケーションに対応する仮想ディスプレイに関連するモーション空間にマッピングされる。拡張入力待ち行列によって、第一のOSは、1つの入力待ち行列を使って、同時動作する複数のアプリケーション用として意図された複数のローカル及び仮想入力デバイスからの入力を正しく処理することができる。
図18aと18bは、各種の実施形態による、拡張レンダリングコンテキストを用いた異環境間アプリケーションのユーザ操作サポートの態様を示す。図18aは、第一のOS上で動作中のアプリケーションを遠隔的に表示しているユーザ操作空間1810(例えば、第一のOSで動作中のアプリケーションを表示している第二のOSのGUI)を示している。例えば、第一と第二と第三のアプリケーションが第一のOS上で動作していても(すなわち、第一のOSでアクティブに同時動作中であっても)よい。第一のOSは、上述の実施形態により、第一と第二と第三のアプリケーションを、第一のOSの拡張レンダリングコンテキストの第一と第二と第三のコンテキスト空間に表示してもよい。ユーザ操作空間1810のコンソールウィンドウ1812と1814はそれぞれ、第一のOSの中で動作中の第二のアプリケーションと第三のアプリケーションを表示していてもよい。
図18bは、第一のOS上で動作中の各アプリケーションのためのユーザ操作をサポートする、第一のOSの拡張入力待ち行列1840を示す。拡張入力待ち行列1840には、第一のモーション空間1842、第二のモーション空間1844、第三のモーション空間1846が含まれる。第一のモーション空間は第一のOSの拡張レンダリングコンテキストの第一のコンテキスト空間に関連付けられ、これは一般に、第一のOSの非仮想ディスプレイ1852を表示するために使用される(すなわち、モバイルコンピューティングデバイス110のディスプレイ116に関連するコンテキスト空間)。第二と第三のモーション空間はそれぞれ、仮想ディスプレイ1854、1856に関連付けられ、これらは第二と第三のコンテキスト空間を通じてレンダリングされる。
遠隔的に表示されているアプリケーションのコンソールウィンドウに送られる入力イベントが発生すると、この入力イベントは、そのアプリケーションが表示される仮想ディスプレイに関連するモーション空間へと送られる。例えば、ユーザが、入力イベント1820によって示されるように、ユーザ操作空間1810のコンソールウィンドウ1812でポインティングデバイスをクリックすると、第二のOSのウィンドウシステムがその入力イベントを、コンソールウィンドウ1812に関連するコンソールアプリケーションに送る。前述のように、コンソールアプリケーションは入力デバイスを仮想入力デバイスにマッピングする。しかしながら、この入力イベントはコンソールウィンドウ1812に関係している。この入力イベントが第一のOSの入力待ち行列に直接供給された場合、この入力イベントは正しいアプリケーションイベントハンドラに送られないであろう。そのため、仮想入力デバイスからの入力イベント1820は第二のモーション空間1844にマッピングしなおされる。このようにして、拡張入力待ち行列はその入力イベントを第二のアプリケーションのイベントハンドラに送り、これが入力イベント1820を受け取り、処理する。
実施形態において、仮想ディスプレイはモバイルOSの入力待ち行列の中でオフセットされる。例えば、図18bにおいて、仮想ディスプレイ1854と1856は、モバイルOSの入力待ち行列1840の中の仮想ディスプレイオフセット1858の分だけオフセットされる。仮想ディスプレイオフセット1858は、仮想ディスプレイが入力待ち行列内で隣接して現れるのを防止するものであり、隣接して現れた場合、1つの仮想ディスプレイ用として意図されたある入力イベントが、別のアプリケーションに関連するモーション空間内で解釈される可能性がある。仮想ディスプレイのオフセットは、実際の仮想ディスプレイの解像度のパラメータとして使用されないように、十分に大きくするべきである。1つ実施形態において、仮想ディスプレイのオフセット1858は10000ピクセルと選択される。
図19は、各種の実施形態による、拡張レンダリングコンテキストを通じて表示される異環境間アプリケーションに関する入力イベントを受け取る方法1900を示す。例えば、方法1900は、第一のOS内で動作中の第一のアプリケーションと第二のアプリケーションに関する入力イベントを処理するために使用してもよく、第一のOSの拡張レンダリングコンテキストを通じて、第一のアプリケーションは第一のOSのユーザ操作空間にローカルで表示され、第二のアプリケーションは第二のOSのユーザ操作空間に遠隔的に表示される。
方法1900は、ブロック1902で、第一のユーザ入力が第一のOSで受け取られることから始まり、この時、第一のアプリケーションと第二のアプリケーションは第一のOS内でアクティブに同時動作中であり、第一のアプリケーションが第一のOSに関連する第一のユーザ環境内で表示され、第二のアプリケーションが第二のOSに関連する第二のユーザ環境内で表示され、第一と第二のオペレーティングシステムは共有カーネル上で同時動作中であり、第一のOSは、拡張レンダリングコンテキストの第一の仮想ディスプレイを通じて第二のアプリケーションに関するグラフィクスフレームをレンダリングすることにより、第二のアプリケーションに関するアプリケーショングラフィクスを維持する。ブロック1904で、第一のOSは第一のモーション空間と第二のモーション空間を含む拡張入力待ち行列を作成し、第二のモーション空間は第一の仮想ディスプレイに対応する。例えば、第一のオペレーティングシステムは第二のアプリケーションのための第一の仮想ディスプレイを割り当て、第一のコンテキスト空間と第二のコンテキスト空間を有する拡張レンダリングコンテキストを作成し、第一の仮想ディスプレイを第二のコンテキスト空間に関連付け、上述の方法を用いて、拡張レンダリングコンテキストの第二のコンテキスト空間を通じて、第二のアプリケーションに関するグラフィクスフレームをレンダリングする。
ブロック1906で、第一のユーザ入力イベントが、第一のOSにより、第一の仮想入力デバイスにおいて、第二のOSを通じて第二のアプリケーションに関するレンダリングされたグラフィクスフレームを表示している、第二のOSで動作中の第一のコンソールアプリケーションから受け取られる。ブロック1908で、第一の仮想入力デバイスは、第一のオペレーティングシステムの拡張入力待ち行列の第二のモーション空間にマッピングされる。第一の仮想入力デバイスを第二のモーション空間にマッピングすることによって、第一のOSの拡張入力待ち行列は、第一の仮想入力デバイスからの入力イベントを第二のアプリケーションのビューの中のイベントハンドラに正しく関連付けることができる。具体的には、入力イベントが第二のモーション空間にマッピングされると、第一のOSはこの入力イベントを、拡張入力待ち行列の中の第二のアプリケーションに関連する位置で発生したものとして扱う。ブロック1910で、第一のOSは第一のユーザ入力イベントを、マッピングされた第一の仮想入力デバイスから第二のアプリケーションに送る。拡張入力待ち行列は、拡張レンダリングコンテキストがタイリングされるという性質を利用して、入力待ち行列が複数のユーザ操作空間からの複数の入力イベントを処理し、入力イベントを所期のアプリケーションの適当なイベントハンドラに送ることができるようにする。
ミラーリングされたコンテキストによる実施形態
拡張及び非拡張レンダリングコンテキストの実施形態を、複数のオペレーティングシステム上の複数のアプリケーションにわたる同時ユーザ操作空間を維持するという内容で説明した。多くの場合、1つのユーザ操作空間のためにコンテキストをミラーリングすることが望ましい。第二のOSに関連する第二のコンピューティング環境(例えば、Hydroid OSに関連するデスクトップ環境)の中で同時に第一のOSを見て、これを操作すること(すなわち、操作空間を「ミラーリング」すること)が望ましい。ミラーリングされたユーザ操作空間を通じて、ユーザは第一のOSを、ローカルデバイスを通じて操作するかのように操作できる(すなわち、ユーザは、利用可能なアプリケーションをブラウズし、アプリケーションを開始、停止し、第一のOSの検索機能を使用すること等ができる)。
ミラーリングされたコンテキストによる実施形態
拡張及び非拡張レンダリングコンテキストの実施形態を、複数のオペレーティングシステム上の複数のアプリケーションにわたる同時ユーザ操作空間を維持するという内容で説明した。多くの場合、1つのユーザ操作空間のためにコンテキストをミラーリングすることが望ましい。第二のOSに関連する第二のコンピューティング環境(例えば、Hydroid OSに関連するデスクトップ環境)の中で同時に第一のOSを見て、これを操作すること(すなわち、操作空間を「ミラーリング」すること)が望ましい。ミラーリングされたユーザ操作空間を通じて、ユーザは第一のOSを、ローカルデバイスを通じて操作するかのように操作できる(すなわち、ユーザは、利用可能なアプリケーションをブラウズし、アプリケーションを開始、停止し、第一のOSの検索機能を使用すること等ができる)。
第一のOS(例えば、モバイルOSであるAndroid)は一般に、単独のアクティブなユーザ操作空間を画定するように構成される。ユーザ操作空間は、アクティブディスプレイ(例えば、解像度等、関連する特徴を有する)と、ユーザがアクティブディスプレイ上に表示された要素を操作できるようにする1つまたは複数のアクティブ入力デバイスを含む。異環境間レンダリングを使って、複数のOSにわたって1つまたは複数のミラーリングされたユーザ操作空間を提供する新規な方法を提示する。前述のように、実施形態は、複数のOSが非互換的であり、及び/または共有カーネル上で独立して、並行動作している場合も動作できる。
ミラーリングされたコンテキストにより同時ユーザ操作のサポートを維持することは、異環境間アプリケーションのための同時ユーザ操作をサポートすることに関して上述したものと同じシステム要素の多くを用いて実現できる。例えば、図7を参照すると、モバイルOS 130のためのグラフィクスコンテキストは、モバイルOS130のアプリケーション(例えば、アプリケーション752及び/または754)及び/またはホーム画面(例えば、Android OS 430のホーム画面アプリケーション451)をアクティブに表示していてもよい。アクティブに表示されるモバイルOSのアプリケーション及び/またはホーム画面に関するサーフェス情報は、共有メモリ724の中に格納されてもよい。モバイルOS 130のミラーリングされたコンテキストは、コンソールアプリケーション782を通じて、デスクトップOS 160のユーザ操作空間に表示されてもよい。
図20は、様々な実施形態による、ミラーリングされたユーザ操作空間を提供するためのグラフィクスコンテキストの異環境間レンダリングの例示的な方法のフロー2000を示す。方法2000はブロック2004で、第一のオペレーティングシステムを使って、第一のオペレーティングシステムのためにコンパイルされ、その中でアクティブに動作中の第一のアプリケーションのサーフェス集合の更新を計算することから始まる。例えば、計算は、サーフェスの形状、大きさ、テクスチャ、レイヤリング等の変化を判断するために行われる。次に、ブロック2008で、サーフェスの更新が第一のオペレーティングシステムを使ってレンダリングされ、グラフィクスフレームが生成される。グラフィクスフレームは、そのアプリケーションに関する更新後のグラフィクス情報を反映するビットマップであってもよい。
ブロック2012で、グラフィクスフレームは、第一のオペレーティングシステムと第二のオペレーティングシステムの両方によりアクセス可能な共有メモリ位置に格納される。いくつかの実施形態において、第一と第二のOSは、共有カーネル上で同時動作中である。ブロック2016で、グラフィクスフレームは第一のオペレーティングシステムを使って、第一のコンピューティング環境の第一のディスプレイ上の第一のアプリケーションの第一のアプリケーションディスプレイに表示されてもよい。例えば、共有メモリの位置はフレームバッファメモリであってもよく、または第一のオペレーティングシステムのフレームバッファにコピーされてもよい。ローカルデバイス(例えば、共有カーネル上で動作中)のディスプレイデバイスドライバは、そのフレームバッファメモリにアクセスし、ビットマップを表示する。
ブロック2012で共有メモリ位置にグラフィクスフレームを格納した後、第二のOSに、更新されたグラフィクス情報が利用可能であると知らせることが望ましい。ブロック2020で、共有メモリ位置を特定するファイル記述子が、第二のOSのためにコンパイルされ、その中でアクティブに動作中のコンソールアプリケーションに送られる。いくつかの実施例において、ファイル記述子には、共有メモリ位置の識別が含まれる。他の実施例では、ファイル記述子には、ミラーリングされるアプリケーションに関する更新後のグラフィクス情報が利用可能であることを示すフラッグのような追加の情報が含まれる。
前述のように、コンソールアプリケーションは、Xウィンドウまたは、第二のコンピューティング環境のディスプレイのウィンドウ内に表示されるその他の種類のアプリケーションであってもよい。ブロック2024で、コンソールアプリケーションは、ファイル記述子による共有メモリ位置の更新後のグラフィクス情報(例えば、ビットマップ)にアクセスし、そのグラフィクスフレームを共有メモリ位置から第二のコンピューティング環境の第二のディスプレイ上の第一のアプリケーションの第二のアプリケーションディスプレイに表示する。いくつかの実施形態において、アプリケーションに関する更新後のグラフィクス情報は、第一と第二のコンピューティング環境の両方のディスプレイで実質的に同時に表示される。
図21は、様々な実施形態による、ミラーリングされたユーザ操作空間を提供するためのグラフィクスコンテキストの異環境間レンダリングの他の例示的な方法のフロー2100を示す。図20と同様に、方法2100はブロック2104で、第一のオペレーティングシステムを使って、第一のオペレーティングシステムのためにコンパイルされ、その中でアクティブに動作中の第一のアプリケーションのサーフェス集合の更新を計算することから始まる。フロック2108で、更新後のサーフェス集合が、第一のオペレーティングシステムと第二のオペレーティングシステム(例えば、共有カーネル上で同時動作中)の両方によってアクセス可能な共有メモリ位置に格納される。
ブロック2112で、更新後のサーフェス集合は第一のオペレーティングシステムでレンダリングされ、第一のグラフィクスフレームが生成される。次に、ブロック2116で、第一のグラフィクスフレームを、第一のオペレーティングシステムを使って、第一のコンピューティング環境の第一のディスプレイ上の第一のアプリケーションの第一のアプリケーションディスプレイに表示することができる。例えば、モバイルOS 130は、更新後のアプリケーショングラフィクスをレンダリングして、更新後のグラフィクスをモバイルデバイス110のディスプレイ116に表示する。
ブロック2108で更新後のサーフェス集合を共有メモリに格納した後、何れかの時点で、第二のOSに対して、更新後のグラフィクス情報が利用可能であると通知することが望ましい。ブロック2120で、共有メモリ位置を特定するファイル記述子が、第二のオペレーティングシステムのためにコンパイルされ、その中でアクティブに動作中のコンソールアプリケーションに送られる。特に、共有メモリ内に格納された情報は、図20の方法2000のようなレンダリングされたビットではなく、レンダリングされていないサーフェス情報(例えば、幾何プリミティブ)である。
従って、ブロック2124で、更新後のサーフェス集合は、第二のオペレーティングシステムによって(例えば、ファイル記述子によるコンソールアプリケーションを介して)共有メモリ位置からレンダリングされ、第一のグラフィクスフレームと実質的に同じ第二のグラフィクスフレームが生成される。ブロック2128で、第二のグラフィクスフレームは、第二のオペレーティングシステムのコンソールアプリケーションを介して、第二のコンピューティング環境の第二のディスプレイ上の第一のアプリケーションの第二のアプリケーションディスプレイに表示され、それによって、第二のアプリケーションディスプレイは第一のアプリケーションディスプレイと実質的に同じとなる。
特筆すべき点として、第一と第二のオペレーティングシステムシステムの両方でレンダリングを複製することから、追加の間接費が発生し得る。しかしながら、このような追加の間接費には、数多くの状況において、相応の価値がある可能性がある。例えば、異なるコンピューティング環境のディスプレイの特徴が顕著に異なる場合、各々がそれぞれのディスプレイに適した別々のレンダリングコンテキストで更新後のグラフィクス情報をレンダリングすることが望ましい場合がある。
図20と21の方法は、ミラーリングされたグラフィクスコンテキストの中での、第一のOSで動作中のアプリケーションのアクティブディスプレイによるグラフィクスコンテキストの異環境間ミラーリングを説明している。しかしながら、この方法は、グラフィクスコンテキストの中でアクティブに表示されているアプリーションがない場合にも使用できる。例えば、グラフィクスコンテキストは、第一のOSのホーム画面またはその他の機能(例えば、検索画面等)を表示していてもよい。このような場合、グラフィクスコンテキストに関するサーフェス情報は第一のOSのコンポーネントによって更新され、図20と21の方法のその他のステップは、第二のアプリケーションディスプレイの中にミラーリングされたグラフィクスコンテキストを提供するために実行されてもよい。
特に、グラフィクスコンテキストの異環境間ミラーリングは、アプリケーションの異環境間レンダリングと同時に利用してもよい。例えば、図20または21による方法は、前述のアプリケーションの異環境間レンダリングの方法を使って、第一のOSで動作中のアプリケーションが第二のユーザ環境内で表示されるのと同時に、モバイルデバイスのユーザ操作空間のアクティブグラフィクスコンテキストを第二のユーザ環境にミラーリングするために使用してもよい。説明のために図8を参照すると、モバイルOS用アプリケーションがディスプレイ844の上のデスクトップOSのユーザ操作空間内の第二のコンソールウィンドウ884に表示されている間に、モバイルOSのユーザ操作空間を第一のコンソールウィンドウ882の中に表示してもよい。
ミラーリングされたグラフィクスコンテキストのためのユーザ操作のサポートは、図13、14、18及び/または19に示される異環境間アプリケーションのためのユーザインタフェースをサポートするのと実質的に同じ方法で行われてもよい。具体的には、入力イベントは、第二のOSのコンソールアプリケーションから仮想入力デバイスに提供されてもよい。第一のOSは、拡張または非拡張入力待ち行列を通じて、仮想入力デバイスからの入力イベントを受け入れてもよい。
異環境間レンダリングの実施形態
上記の方法は、第二のオペレーティングシステムのユーザ操作空間を通じた第一のオペレーティングシステムのアプリケーションとグラフィクスコンテキストのための異環境間ユーザ操作をサポートする。わかりやすい異環境間使用モデルとするために、実施形態は、第二のオペレーティングシステムのユーザ操作空間から、第一のオペレーティングシステムのアプリケーション及び/またはミラーリングされたコンテキストにアクセスできるようにすることに関する。
異環境間レンダリングの実施形態
上記の方法は、第二のオペレーティングシステムのユーザ操作空間を通じた第一のオペレーティングシステムのアプリケーションとグラフィクスコンテキストのための異環境間ユーザ操作をサポートする。わかりやすい異環境間使用モデルとするために、実施形態は、第二のオペレーティングシステムのユーザ操作空間から、第一のオペレーティングシステムのアプリケーション及び/またはミラーリングされたコンテキストにアクセスできるようにすることに関する。
再び図8を参照すると、ユーザは、モバイルデバイス上の操作コンポーネント(すなわち、タッチスクリーンディスプレイ116、その他のI/Oデバイス118)を含む第一のユーザ操作空間を通じて、第一のOS(すなわち、モバイルOSであるAndroid)を操作できる。ユーザはまた、第二のOS(すなわち、デスクトップOSであるHydroid)を、第二の端末環境840のディスプレイ844を含む第二のユーザ操作空間を通じて操作できる。前述のように、デスクトップOS 160で利用可能な(すなわち、そのためにコンパイルされ、その実行環境内にロードされた)アプリケーションの集合は、モバイルOS 130で利用可能なものとは異なるかもしれない。実施形態は、デスクトップOS 160のユーザ操作空間のメニューの中にモバイルOS 130で利用可能なアプリケーションのためのメニューアイコンまたはメニューリストアイテムを設けることによって、モバイルOS 130のアプリケーションにデスクトップOS 160のユーザ操作空間内でアクセスできるようにすることに関する。
図22は、各種の実施形態による異環境間リダイレクションの態様を示す。図22に示されるコンピューティング環境2200の中で、ユーザは、デスクトップOSのユーザ操作空間2202を通じてデスクトップOS 160を操作する。デスクトップOSのユーザ操作空間2202の中で、メニューバー2220には、利用可能なアプリケーションのアイコンまたはリストが含まれる。あるアプリケーションを起動させるには、ユーザはそのアプリケーションの名前またはアイコンをメニューバーから、またはメニューバー2220のドロップダウンまたはポップアップリストから選択する。従来、メニューバー2220には、デスクトップOS 160で利用可能なアプリケーションのメニューアイテムまたはアイコンのみが含まれている。例えば、メニューアイテム2222、2224、2226及び/または2228は、デスクトップOS 160で利用可能な(すなわち、そのためにコンパイルされ、その実行環境の中にロードされた)アプリケーションであってもよい。本発明の実施形態は、デスクトップOSのユーザ操作空間2202からのモバイルOS 130のアプリケーション及び/またはグラフィクスコンテキストへの異環境間アクセスを提供することに関する。例えば、メニューアイテム2232、2234、2236、2237及び/または2238はモバイルOS 130で利用可能なアプリケーション及び/またはモバイルOS 130のグラフィクスコンテキストを示していてもよい。
デスクトップOSのユーザ操作空間2202は、デスクトップOS 160に関連するユーザ操作空間(例えば、第二の端末環境840)の中のディスプレイに表示される。デスクトップOS 160のメニューバー2220には、デスクトップOS 160のためにコンパイルされ、そこにロードされた(例えば、Hydroid/Linuxのためにコンパイルされ、Hydroid OSの実行環境内にロードされた)アプリケーションに関連するメニューアイテム2222、2224、2226及び/または2228が含まれる。メニューバー2220はまた、モバイルOS 130のためにコンパイルされ、そこにロードされた(例えば、Androidのためにコンパイルされ、Androidの実行環境内にロードされた)アプリケーションに関連するメニューアイテム2234、2236、2237及び/または2238が含まれる。ユーザがメニューアイテム2234、2236及び/または2238の1つを選択すると、関連するアプリケーションがモバイルOS 130上で起動され、デスクトップOS 160のコンソールウィンドウ内、例えばデスクトップOSのユーザ操作空間2202のウィンドウ2216の中に表示される。メニューアイテム2232は、モバイルOSグラフィクスコンテキストに関連付けられていてもよく、これによって、メニューアイテム2232が選択されると、モバイルOSのグラフィクスコンテキストがデスクトップOS 160のコンソールウィンドウ内に表示される。
図23は、デスクトップOS 160のメニューバー2220を構築するために使用できるプロセスフロー2300を示す。プロセスフロー2300のステップ2302で、デスクトップOS 160は、モバイルOS 130に利用可能なアプリケーションのリストを問い合わせる。一実施形態において、デスクトップOS 160のシステムサービスまたは起動アプリケーションは、モバイルOS 130のサービスにすべての起動可能なモバイルOS用アプリケーションのショートカットを問い合わせる。モバイルOS 130は、利用可能なアプリケーションのリスト(すなわち、利用可能なモバイルOS用アプリケーションの起動可能なショートカット)を返す。利用可能なアプリケーションのリストには、モバイルOS 130で利用可能なすべてのアプリケーション(モバイルOS 130にロードされ、実行可能なすべてのアプリケーション)または、利用可能なモバイルOS用アプリケーションのサブセットが含まれていてもよい。例えば、リストには、モバイルOS GUIのアプリケーションメニュー画面上に現れるすべてのアプリケーションが含まれていてもよい。ステップ2304で、デスクトップOS 160は、モバイルOS 130からアプリケーションのリストを受け取る。モバイルOS 130から返されたアプリケーションのリストには、リストに挙げられた各アプリケーションのアプリケーションパッケージ名が含まれ、また、リストに挙げられた各アプリケーションのアプリケーション名とアイコンが含まれていてもよい。
デスクトップOS 160は、メニューバー2220の中に、アプリケーションのリストの中の各アプリケーションのメニューアイテムを、ブロック2306、2308、2310を繰り返すことによって作成する。各アプリケーションについて、デスクトップOS 160は、ブロック2306でメニューバー2220の中にアプリケーションのアイコンのインスタンスを作成し、ブロック2308でそのアイコンをデスクトップOS 160のコンソールアプリケーションに関連付け、ブロック2310でそのアプリケーションのパッケージ名を示すパラメータをそのアイコンに関連付ける。コンソールアプリケーションはデスクトップOS 160上で動作し、上述の異環境間レンダリングの実施形態を使って、デスクトップOS 160内にそのアプリケーションに関するグラフィクス情報を表示する。このようにして、ユーザがメニューアイテムを選択すると、コンソールアプリケーションがデスクトップOS 160上で動作し、そのアプリケーションのパッケージ名がコンソールアプリケーションに送られる。
デスクトップOS 160は、多様な方法で、モバイルOS 130のアプリケーションに関連するメニューアイテムを表示してもよい。メニューアイテムは、メニューバー2220または、そのモバイルOS用アプリケーションが利用可能であることを示すメニューアイテムが選択された時に現れるドロップダウンメニューの中に表示されてもよい。メニューアイテムは、メニューバー2220またはドロップダウンメニューの中でアイコンまたはアプリケーション名のみを使って表示されてもよい。1つの実施形態において、デスクトップOS 160は、モバイルOS用アプリケーションごとに別のメニューバーを表示する。他の実施形態では、モバイルOS用アプリケーションに関連するメニューアイテムが、デスクトップOS用アプリケーションのメニューアイテムに沿って、または混ざって、デスクトップOSのメニューバー2220の中に表示される。任意選択的に、モバイルOSのメニューアイテムは、メニューバー2220の中の、デリミタ2240によって仕切られた、またはその他の方法でモバイルOSのメニューアイテムが含まれることを特定できるようにされた領域2230の中に表示されてもよい。メニューバー2220は、モバイルデバイスそのもののアクティブディスプレイ用のメニューアイテム、すなわちユーザが、図20及び/または21の方法に従ってデスクトップOSのユーザ環境内でモバイルOSのユーザ操作空間を表示するために選択できるメニューアイテムを含んでいてもよい。1つの実施形態において、モバイルOSのホーム画面のアプリケーションは、利用可能なアプリケーションのリストの中に返され、関連するメニューアイテムが提供される。
ユーザがモバイルOS用アプリケーションに関連するメニューアイテムを選択すると、デスクトップOS 160がそのニューアイテムに関連するコンソールアプリケーションを起動させ、そのアプリケーションのパッケージ名をコンソールアプリケーションに送る。コンソールアプリケーションは、デスクトップOSのユーザ操作空間2202の中にウィンドウを1つ表示する(すなわち、デスクトップOSのグラフィクスシステムの中のコンソールアプリケーションディスプレイ)。コンソールアプリケーションは、モバイルOS 130に、そのアプリケーションを起動させる要求を送り(すなわち、モバイルOS 130に対して、実行パラメータとしてコンソールアプリケーションに提供されたアプリケーションパッケージ名を起動するように要求し)、コンソールアプリケーションを通じてそのアプリケーションに関するグラフィクスフレームを表示する。アプリケーションは、その時点でモバイルOS 130で動作中であっても、そうでなくてもよい。アプリケーションがモバイルOS 130上で動作中であれば、そのアプリケーションの表示はモバイルOS 130からデスクトップOSのユーザ操作空間2202に移動されても、またはモバイルデバイスのディスプレイとユーザ操作空間2202の両方で同時に表示されてもよい。アプリケーショングラフィクスの表示とユーザ操作のサポートは、上述の異環境間レンダリングと異環境間ユーザインタフェースのサポートの方法の何れを使用したアプリケーションについても実行できる。
図24は、ユーザがデスクトップOSのGUI 880のメニューバー2220でモバイルOS用アプリケーションに関するメニューアイテムを選択したことに応答して、モバイルOS 130がアプリケーションを起動させるために実行するプロセスフロー2400を示す。プロセスフロー2400はブロック2402で、モバイルOS 130がデスクトップOS 160から、モバイルOSのためにコンパイルされ、モバイルOSの実行環境内にロードされたアプリケーションを、デスクトップOSで表示するように起動させる要求を受け取ることから始まる。ブロック2404で、モバイルOSは使用されていない仮想ディスプレイIDを割り当てる。例えば、モバイルOSのグラフィクスシステムは、仮想ディスプレイIDのリストをつけておき、使用されていない仮想ディスプレイIDを第一のアプリケーションのプロセスに割り当ててもよい。ブロック2406で、モバイルOSはモバイルOS内で第一のアプリケーションを起動させる(すなわち、モバイルOS上で動作中となる)。ブロック2408で、モバイルOS 130は、第一のアプリケーションに関するリフレッシュ通知を仮想ディスプレイに関連付ける。例えば、モバイルOSのグラフィクスサーバは、アプリケーションとそれに関連する仮想ディスプレイのリストをつけていてもよい。ブロック2410と2412で、モバイルOSは、第一のアプリケーションに関するアプリケーショングラフィクスをモニタし、第一のアプリケーションに関するアプリケーショングラフィクス情報が更新された時にデスクトップOSのコンソールアプリケーションに通知することによって、第一のアプリケーションに関するグラフィクス情報を維持する。ブロック2410と2412は、図10、12、16及び/または17の方法によって異環境間アプリケーションに関するアプリケーショングラフィクスを維持することに対応していてもよい。
上記の説明は、例示と説明を目的としている。さらに、この説明は本発明の実施形態を本明細書で開示されている形態に限定することを意図していない。多数の例示的な態様と実施形態を上で説明したが、当業者であれば、そのいくつかの変更、改良、置換、追加、サブコンビネーションに気付くであろう。
上述の方法の各種の操作は、それに対応する機能を果たすことのできる、どのような適当な手段で実行してもよい。この手段としては、各種のハードウェア及び/またはソフトウェアコンポーネント及び/またはモジュール等があり、これには回路、特定用途集積回路(ASIC)またはプロセッサが含まれるが、これらに限定されない。
前述の種々の例示的な論理ブロック、モジュール、回路は、本明細書に記載の機能を実行するように設計された、汎用プロセッサ、デジタル信号プロセッサ(DSP)、ASIC、フィールドプログラマブルゲートアレイ信号(FPGA)またはその他のプログラム可能論理デバイス(PLD)、ディスクリートゲート、またはトランジスタロジック、ディスクリートハードウェアコンポーネントまたはこれらのどのような組合せにより実装または実行されてもよい。汎用プロセッサは、マイクロプロセッサであってもよく、あるいは、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラまたはステートマシンであってもよい。プロセッサまた、コンピューティングデバイスの組合せ、例えばDSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと併用される1つまたは複数のマイクロプロセッサ、またはその他の同様の構成として実装されてもよい。
本明細書に関連して説明した方法またはアルゴリズムのステップは、ハードウェアで直接でも、プロセッサにより実行されるソフトウェアモジュールでも、またはこれら2つの組合せでも実施してよい。ソフトウェアモジュールは、どのような形態の有形記憶媒体の中に記憶されてもよい。使用できる記憶媒体の例としては、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、フラッシュメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM等がある。記憶媒体はプロセッサに、プロセッサがその記憶媒体から情報を読み出し、そこに情報を書き込むことができるように接続されてもよい。あるいは、記憶媒体はプロセッサに内蔵されてもよい。ソフトウェアモジュールは1つの命令でも、多くの命令でもよく、いくつかの異なるコードセグメント上で、異なるプログラム間で、及び複数の記憶媒体間で分散されていてもよい。
本明細書に記載の方法は、記載された方法を実現するための1つまたは複数の動作を含む。この方法及び/または動作は、他の方法や動作と交換してもよく、特許請求の範囲から逸脱しない。換言すれば、動作の特定の順序が明示されていないかぎり、特定の動作の順序及び/または用途を変更でき、これも本特許請求の範囲から逸脱しない。
説明した機能は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せによって実施してもよい。ソフトウェアで実行される場合、その機能は1つまたは複数の命令として有形のコンピュータ読取可能媒体に記憶されてもよい。記憶媒体は、コンピュータがアクセス可能な任意の利用可能な有形の記憶媒体であってもよい。例えば、これらに限定されないが、このようなコンピュータ読取可能媒体は、RAM、ROM、EEPROM、CD−ROMまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または、命令またはデータ構造の形態で所望のプログラムコードを担持または記憶するために使用可能であり、コンピュータによりアクセス可能な任意の有形の媒体であってもよい。本明細書において、ディスク(disk,disc)とは、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、Blu−ray(登録商標)ディスクを含み、diskは通常、磁気的にデータを再生するのに対し、discはレーザを使って光学的にデータを再生する。
それゆえ、コンピュータプログラム製品が本明細書に記載された動作を実行してもよい。例えば、このようなコンピュータブログラム製品はコンピュータ読取可能な有形の媒体であってもよく、そこに命令が有形の状態で格納され(及び/または暗号され)、命令は1つまたは複数のプロセッサによって実行可能で、本明細書に記載された動作が行われる。コンピュータプログラム製品には、パッケージング材料が含まれていてもよい。
ソフトウェアまたは命令はさらに、伝送媒体上で伝送されてもよい。例えば、ソフトウェアは、ウェブサイト、サーバまたは、同軸ケーブル、光ファイバケーブル、ツイストペアケーブル、デジタル加入者線(DSL)等の伝送媒体または、赤外線、無線またはマイクロ波等の無線技術を用いて他の遠隔提供源から伝送されてもよい。
さらに、本明細書に記載された方法と方式を実行するためのモジュール及び/またはその他の適当な手段は、場合に応じてユーザ端末及び/または基地局によりダウンロードし、及び/またはその他の方法で取得することが可能である。例えば、このようなデバイスをサーバにつないで、本明細書に記載された方法を実行するための手段を伝送しやすくすることができる。あるいは、本明細書に記載された各種の方法は、記憶手段(例えば、RAM、ROM、CDやフロッピーディスク等の物理的記憶媒体等)を介して提供することができ、それによってユーザ端末及び/または基地局は、記憶手段をデバイスにつなぐか提供した時に、各種の方法を取得できる。さらに、本明細書に記載された方法と方式をデバイスに提供するために、他の適当な技術を利用することができる。
その他の例及び実施例も、本明細書と付属の特許請求の範囲の範囲及び主旨の中に含まれる。例えば、ソフトウェアの性質から、上述の機能は、プロセッサ、ハードウェア、ファームウェア、ハードワイヤリングまたはそれらの組み合わせによって実行されるソフトウェアを使って実施できる。機能を実施する特徴はまた、様々な位置に物理的に配置されていてもよく、例えば、機能の各部分が異なる物理的場所で実行されるように分散される。また、特許請求の範囲を含む本明細書において、「少なくとも」に続いて羅列される項目の中で使用される「または」という用語は、離接的な一覧を示しており、例えば、「少なくともA、BまたはC」とは、AまたはBまたはCまたはABまたはACまたはBCまたはABC(すなわち、AとBとC)を意味する。さらに、「例示的」という用語は、説明された例が他の例より好ましい、またはよりよいこと意味しない。
本明細書で説明した方式について、各種の変更、代替、改良を行うことができ、これも付属の特許請求の範囲により定義される教示内容の方式から逸脱しない。さらに、明細書と特許請求の範囲の範囲は、上述の工程、機械、製品、物体の組成、手段、方法、動作の特定の態様に限定されない。本明細書で説明したものと実質的に同じ機能を果たし、あるいはそれと実質的に同じ結果を達成する、既存の、または今後開発される工程、機械、製品、物体の組成、手段、方法または動作を利用してもよい。従って、付属の特許請求の範囲は、このような工程、機械、製品、物体の組成、手段、方法または動作をその範囲内に包含する。
Claims (19)
- 方法であって、
第二の実行環境を有する第二のオペレーティングシステムによって、第一のオペレーティングシステムのためにコンパイルされ、前記第一のオペレーティングシステムの第一の実行環境内にロードされたアプリケーションのリストを前記第一のオペレーティングシステムに問い合わせることであって、前記第一及び第二のオペレーティングシステムが共有カーネル上で同時動作中である、前記問い合わせること、
前記第二のオペレーティングシステムにおいて、アプリケーションオブジェクトのリストを受け取ることであって、各アプリケーションオブジェクトがアプリケーションパッケージを含む、前記受け取ること、
前記第二のオペレーティングシステムのメニューにおいて、前記アプリケーションオブジェクトのリストの中の1つのアプリケーションオブジェクトに対応する第一のメニューアイテムのインスタンスを作成すること、
前記第一のメニューアイテムが、選択された時に、前記第二のオペレーティングシステムのコンソールアプリケーションを実行するように、前記第一のメニューアイテムを前記第二のオペレーティングシステムの前記コンソールアプリケーションに関連付けること、
前記アプリケーションオブジェクトに対応する前記第一のOSの中の前記アプリケーションパッケージを示すパラメータを、前記第一のメニューアイテムに関連付けること
含む、方法。 - 請求項1に記載の方法であって、前記第一のオペレーティングシステムの第一のグラフィクスサーバが、前記第二のオペレーティングシステムの第二のグラフィクスサーバと非互換的である、方法。
- 請求項1に記載の方法であって、第一のグラフィクスサーバがAndroid用グラフィクスサーバを含み、第二のグラフィクスサーバがXウィンドウ型のグラフィクスサーバを含む、方法。
- 請求項1に記載の方法であって、前記第二のオペレーティングシステムのグラフィクスサーバがXウィンドウ型のグラフィクスサーバであり、前記第一のオペレーティングシステムの、前記アプリケーションオブジェクトに対応するアプリケーションが、前記第二のオペレーティングシステムの前記Xウィンドウ型のグラフィクスサーバと非互換的なグラフィクスライブラリを使用する、方法。
- 請求項1に記載の方法であって、前記アプリケーションオブジェクトが、アプリケーション名、アプリケーションパッケージ名、およびアプリケーションアイコンを含む、方法。
- 請求項1に記載の方法であって、前記第一のメニューアイテムが、選択されると、アプリケーションパッケージ名を実行パラメータとして前記コンソールアプリケーションに送る、方法。
- 請求項1に記載の方法であって、前記第二のオペレーティングシステムのメニューが、第二のアプリケーションに対応する第二のメニューアイテムを含み、前記第二のアプリケーションが前記第二の実行環境のためにコンパイルされ、前記第二の実行環境内にロードされている、方法。
- 請求項1に記載の方法であって、前記第一のオペレーティングシステムがモバイルオペレーティングシステムを含み、前記第二のオペレーティングシステムがデスクトップオペレーティングシステムを含む、方法。
- 方法であって、
第一のオペレーティングシステムのためにコンパイルされ、前記第一のオペレーティングシステムの第一の実行環境内にロードされた第一のアプリケーションを、前記第一のオペレーティングシステムにおいて起動させるための要求を、前記第一のオペレーティングシステムによって、第二のオペレーティングシステムから受け取ることであって、前記第一及び第二のオペレーティングシステムが共有カーネル上で同時動作中である、前記受け取ること、
前記第一のオペレーティングシステムによって仮想ディスプレイを割り当てること、
前記第一のオペレーティングシステム内のプロセスにおいて前記第一のアプリケーションを起動させること、
前記第一のアプリケーションのためのリフレッシュ通知を前記仮想ディスプレイに関連付けること、
前記第一のアプリケーションのためのアプリケーショングラフィクスを、
前記第一のオペレーティングシステムによって、前記第一のアプリケーションのアプリケーショングラフィクス情報をモニタするステップと、
前記アプリケーショングラフィクス情報が更新された時に、前記第二のオペレーティングシステムのコンソールアプリケーションに通知するステップと
を繰り返し実行することによって維持すること
を含む、方法。 - 請求項9に記載の方法であって、前記第二のオペレーティングシステムのコンソールアプリケーションに通知するステップが、ファイル記述子を前記コンソールアプリケーションに送ることを含み、前記ファイル記述子は、前記アプリケーショングラフィクス情報が共有メモリ位置において利用可能であることを示しており、前記共有メモリ位置が前記第一のオペレーティングシステムと前記第二のオペレーティングシステムとによってアクセス可能である、方法。
- 請求項10に記載の方法であって、前記ファイル記述子が、プロセス間通信チャネルを通じて送られる、方法。
- 請求項11に記載の方法であって、前記プロセス間通信チャネルが、ローカルソケットを含む、方法。
- 請求項11に記載の方法であって、前記プロセス間通信チャネルが、Unixドメインソケットを含む、方法。
- 請求項11に記載の方法であって、前記プロセス間通信チャネルが、Binderインタフェースを含む、方法。
- 請求項14に記載の方法であって、前記アプリケーショングラフィクス情報が、前記第一のアプリケーションのサーフェス情報を含む、方法。
- 請求項14に記載の方法であって、前記アプリケーショングラフィクス情報が、前記第一のアプリケーションの、レンダリングされたグラフィクス情報を含む、方法。
- 請求項14に記載の方法であって、前記第二のオペレーティングシステムが、ユーザが前記第二のオペレーティングシステムのメニューのメニューアイテムを選択したことに応答して、前記第一のアプリケーションを起動させる要求を発行する、方法。
- 方法であって、
第一のオペレーティングシステムのためにコンパイルされ、前記第一のオペレーティングシステムの第一の実行環境内にロードされた第一のアプリケーションを起動させる要求を、前記第一のオペレーティングシステムによって、第二のオペレーティングシステムのコンソールアプリケーションから受け取ることであって、前記第一及び第二のオペレーティングシステムが共有カーネル上で同時動作中である、前記受け取ること、
前記第一のオペレーティングシステム上の第一のプロセス内で前記第一のアプリケーションを実行することであって、前記第一のアプリケーションが、前記第一のオペレーティングシステムのサーフェスマネージャによって維持されるグラフィクス情報を含む、前記実行すること、
前記第一のオペレーティングシステムによって、前記コンソールアプリケーションを前記第一のオペレーティングシステムの仮想ディスプレイ識別子に関連付けること、
前記コンソールアプリケーションを登録して、前記第一のアプリケーションの前記グラフィクス情報に関するリフレッシュ通知を受け取ること
を含む、方法。 - 請求項18に記載の方法であって、
前記サーフェスマネージャにより、グラフィクスフレームを前記第一のオペレーティングシステムのフレームバッファメモリにレンダリングすること、
前記第一のアプリケーションに関するグラフィクス情報が更新されたら、前記コンソールアプリケーションに通知すること
をさらに含む、方法。
Applications Claiming Priority (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38911710P | 2010-10-01 | 2010-10-01 | |
US61/389,117 | 2010-10-01 | ||
US201161507206P | 2011-07-13 | 2011-07-13 | |
US201161507209P | 2011-07-13 | 2011-07-13 | |
US201161507199P | 2011-07-13 | 2011-07-13 | |
US201161507201P | 2011-07-13 | 2011-07-13 | |
US201161507203P | 2011-07-13 | 2011-07-13 | |
US61/507,199 | 2011-07-13 | ||
US61/507,203 | 2011-07-13 | ||
US61/507,201 | 2011-07-13 | ||
US61/507,206 | 2011-07-13 | ||
US61/507,209 | 2011-07-13 | ||
US13/247,166 US8683496B2 (en) | 2010-10-01 | 2011-09-28 | Cross-environment redirection |
US13/247,166 | 2011-09-28 | ||
PCT/US2011/053909 WO2012044784A2 (en) | 2010-10-01 | 2011-09-29 | Cross-environment redirection |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013542515A true JP2013542515A (ja) | 2013-11-21 |
Family
ID=45889363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013531845A Withdrawn JP2013542515A (ja) | 2010-10-01 | 2011-09-29 | 異環境間リダイレクション |
Country Status (7)
Country | Link |
---|---|
US (9) | US8963939B2 (ja) |
EP (3) | EP2622462A4 (ja) |
JP (1) | JP2013542515A (ja) |
CN (7) | CN107122168A (ja) |
BR (1) | BR112013007809A2 (ja) |
MX (1) | MX2013003427A (ja) |
WO (13) | WO2012044546A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016035705A (ja) * | 2014-08-04 | 2016-03-17 | パナソニックIpマネジメント株式会社 | 表示装置、表示制御方法、及び表示制御プログラム |
JP2016035706A (ja) * | 2014-08-04 | 2016-03-17 | パナソニックIpマネジメント株式会社 | 表示装置、表示制御方法、及び表示制御プログラム |
JP2017027366A (ja) * | 2015-07-22 | 2017-02-02 | キヤノン株式会社 | 情報処理装置及びイベント管理方法 |
Families Citing this family (325)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9678624B2 (en) | 2011-09-27 | 2017-06-13 | Z124 | Unified desktop triad control user interface for a phone manager |
US20130076592A1 (en) | 2011-09-27 | 2013-03-28 | Paul E. Reeves | Unified desktop docking behavior for visible-to-visible extension |
US8726294B2 (en) | 2010-10-01 | 2014-05-13 | Z124 | Cross-environment communication using application space API |
US9715252B2 (en) | 2011-08-24 | 2017-07-25 | Z124 | Unified desktop docking behavior for window stickiness |
US9529494B2 (en) | 2011-09-27 | 2016-12-27 | Z124 | Unified desktop triad control user interface for a browser |
US9268518B2 (en) | 2011-09-27 | 2016-02-23 | Z124 | Unified desktop docking rules |
US20130024778A1 (en) | 2011-07-13 | 2013-01-24 | Z124 | Dynamic cross-environment application configuration/orientation |
US8990712B2 (en) | 2011-08-24 | 2015-03-24 | Z124 | Unified desktop triad control user interface for file manager |
US9405459B2 (en) | 2011-08-24 | 2016-08-02 | Z124 | Unified desktop laptop dock software operation |
US8819705B2 (en) | 2010-10-01 | 2014-08-26 | Z124 | User interaction support across cross-environment applications |
US8990713B2 (en) | 2011-09-27 | 2015-03-24 | Z124 | Unified desktop triad control user interface for an application manager |
US8966379B2 (en) | 2010-10-01 | 2015-02-24 | Z124 | Dynamic cross-environment application configuration/orientation in an active user environment |
US9047102B2 (en) | 2010-10-01 | 2015-06-02 | Z124 | Instant remote rendering |
US20130104062A1 (en) | 2011-09-27 | 2013-04-25 | Z124 | Unified desktop input segregation in an application manager |
US20130024812A1 (en) | 2011-07-13 | 2013-01-24 | Z124 | Foreground/background assortment of hidden windows |
US8933949B2 (en) | 2010-10-01 | 2015-01-13 | Z124 | User interaction across cross-environment applications through an extended graphics context |
US9026709B2 (en) | 2010-10-01 | 2015-05-05 | Z124 | Auto-waking of a suspended OS in a dockable system |
US9348633B2 (en) | 2009-07-20 | 2016-05-24 | Google Technology Holdings LLC | Multi-environment operating system |
US9367331B2 (en) | 2009-07-20 | 2016-06-14 | Google Technology Holdings LLC | Multi-environment operating system |
US9389877B2 (en) | 2009-07-20 | 2016-07-12 | Google Technology Holdings LLC | Multi-environment operating system |
US9372711B2 (en) | 2009-07-20 | 2016-06-21 | Google Technology Holdings LLC | System and method for initiating a multi-environment operating system |
KR101263217B1 (ko) * | 2009-10-15 | 2013-05-10 | 한국전자통신연구원 | 모바일 클라우드 서비스 제공을 위한 모바일 단말 및 그의 동작 방법 |
US8719776B2 (en) * | 2009-12-30 | 2014-05-06 | Foneclay, Inc. | System for creation and distribution of software applications usable on multiple mobile device platforms |
US11410129B2 (en) * | 2010-05-01 | 2022-08-09 | Monday.com Ltd. | Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems |
WO2021161104A1 (en) | 2020-02-12 | 2021-08-19 | Monday.Com | Enhanced display features in collaborative network systems, methods, and devices |
CN107122168A (zh) | 2010-10-01 | 2017-09-01 | Z124 | 多操作系统 |
US9405444B2 (en) | 2010-10-01 | 2016-08-02 | Z124 | User interface with independent drawer control |
JP2013539137A (ja) | 2010-10-01 | 2013-10-17 | ゼット124 | ユーザインタフェースにおけるドラッグ移動ジェスチャ |
US8761831B2 (en) | 2010-10-15 | 2014-06-24 | Z124 | Mirrored remote peripheral interface |
US9622278B2 (en) | 2010-10-26 | 2017-04-11 | Kingston Digital Inc. | Dual-mode wireless networked device interface and automatic configuration thereof |
US20120113091A1 (en) * | 2010-10-29 | 2012-05-10 | Joel Solomon Isaacson | Remote Graphics |
KR101027971B1 (ko) * | 2010-12-10 | 2011-04-13 | (주)헬릭스테크 | 애플리케이션 검사 가능한 이동통신 단말기 및 그 검사 방법 |
US8682962B2 (en) * | 2010-12-24 | 2014-03-25 | Levono (Singapore) Pte. Ltd. | Systems and methods for communicating and switching between components in a hybrid computing environment |
US20120173986A1 (en) * | 2011-01-04 | 2012-07-05 | Motorola-Mobility, Inc. | Background synchronization within a multi-environment operating system |
US8782258B2 (en) * | 2011-01-04 | 2014-07-15 | Motorola Mobility Llc | Transferring web data between operating system environments |
US8689235B2 (en) * | 2011-01-18 | 2014-04-01 | Gbc Industries | System and method for enabling interaction between a cloud application and a local application |
US9218217B1 (en) | 2011-03-28 | 2015-12-22 | Google Inc. | Opportunistic job processing in distributed computing resources with an instantiated native client environment with limited read/write access |
US9354900B2 (en) | 2011-04-28 | 2016-05-31 | Google Technology Holdings LLC | Method and apparatus for presenting a window in a system having two operating system environments |
US8171137B1 (en) | 2011-05-09 | 2012-05-01 | Google Inc. | Transferring application state across devices |
US8812601B2 (en) * | 2011-05-09 | 2014-08-19 | Google Inc. | Transferring application state across devices with checkpoints |
US8224894B1 (en) | 2011-05-09 | 2012-07-17 | Google Inc. | Zero-click sharing of application context across devices |
US8924958B1 (en) | 2011-05-24 | 2014-12-30 | BlueStack Systems, Inc. | Application player |
US10089093B1 (en) * | 2011-05-24 | 2018-10-02 | BlueStack Systems, Inc. | Apparatuses, systems and methods of switching operating systems |
US8706860B2 (en) | 2011-06-30 | 2014-04-22 | Amazon Technologies, Inc. | Remote browsing session management |
US8577963B2 (en) | 2011-06-30 | 2013-11-05 | Amazon Technologies, Inc. | Remote browsing session between client browser and network based browser |
US9621406B2 (en) | 2011-06-30 | 2017-04-11 | Amazon Technologies, Inc. | Remote browsing session management |
US8799412B2 (en) | 2011-06-30 | 2014-08-05 | Amazon Technologies, Inc. | Remote browsing session management |
US10791538B1 (en) | 2011-07-06 | 2020-09-29 | BlueStack Systems, Inc. | Cloud-based data synchronization |
US9448825B2 (en) * | 2011-08-05 | 2016-09-20 | Vmware, Inc. | Unified notification bar between virtual mobile device and physical mobile device |
US9037696B2 (en) | 2011-08-16 | 2015-05-19 | Amazon Technologies, Inc. | Managing information associated with network resources |
US20160124698A1 (en) | 2011-08-24 | 2016-05-05 | Z124 | Unified desktop triad control user interface for an application launcher |
US20130104051A1 (en) | 2011-09-27 | 2013-04-25 | Z124 | Unified desktop big brother application pools |
WO2013028202A1 (en) | 2011-08-25 | 2013-02-28 | Intel Corporation | Collaborative graphics rendering using mobile devices to support remote display |
US9195768B2 (en) | 2011-08-26 | 2015-11-24 | Amazon Technologies, Inc. | Remote browsing session management |
US10089403B1 (en) | 2011-08-31 | 2018-10-02 | Amazon Technologies, Inc. | Managing network based storage |
KR101295428B1 (ko) * | 2011-09-09 | 2013-08-23 | 주식회사 팬택 | 스마트 단말기에서 어플리케이션의 권한정보 관리 장치 및 제어 방법 |
US10601810B2 (en) | 2011-09-09 | 2020-03-24 | Kingston Digital, Inc. | Private cloud routing server connection mechanism for use in a private communication architecture |
US11863529B2 (en) | 2011-09-09 | 2024-01-02 | Kingston Digital, Inc. | Private cloud routing server connection mechanism for use in a private communication architecture |
US9203807B2 (en) | 2011-09-09 | 2015-12-01 | Kingston Digital, Inc. | Private cloud server and client architecture without utilizing a routing server |
US9781087B2 (en) | 2011-09-09 | 2017-10-03 | Kingston Digital, Inc. | Private and secure communication architecture without utilizing a public cloud based routing server |
US10237253B2 (en) | 2011-09-09 | 2019-03-19 | Kingston Digital, Inc. | Private cloud routing server, private network service and smart device client architecture without utilizing a public cloud based routing server |
US11683292B2 (en) | 2011-09-09 | 2023-06-20 | Kingston Digital, Inc. | Private cloud routing server connection mechanism for use in a private communication architecture |
US9935930B2 (en) | 2011-09-09 | 2018-04-03 | Kingston Digital, Inc. | Private and secure communication architecture without utilizing a public cloud based routing server |
US9182935B2 (en) | 2011-09-27 | 2015-11-10 | Z124 | Secondary single screen mode activation through menu option |
US11416131B2 (en) | 2011-09-27 | 2022-08-16 | Z124 | Unified desktop input segregation in an application manager |
US20130080899A1 (en) | 2011-09-27 | 2013-03-28 | Paul E. Reeves | Unified desktop big brother applications |
US8849802B2 (en) | 2011-09-27 | 2014-09-30 | Amazon Technologies, Inc. | Historical browsing session management |
US8589385B2 (en) | 2011-09-27 | 2013-11-19 | Amazon Technologies, Inc. | Historical browsing session management |
US9178955B1 (en) | 2011-09-27 | 2015-11-03 | Amazon Technologies, Inc. | Managing network based content |
US9383958B1 (en) | 2011-09-27 | 2016-07-05 | Amazon Technologies, Inc. | Remote co-browsing session management |
US10693991B1 (en) | 2011-09-27 | 2020-06-23 | Amazon Technologies, Inc. | Remote browsing session management |
US20160054757A1 (en) | 2012-02-29 | 2016-02-25 | Z124 | Unified desktop docking flow |
US9641637B1 (en) | 2011-09-27 | 2017-05-02 | Amazon Technologies, Inc. | Network resource optimization |
US9703468B2 (en) | 2011-09-27 | 2017-07-11 | Z124 | Unified desktop independent focus in an application manager |
US8914514B1 (en) | 2011-09-27 | 2014-12-16 | Amazon Technologies, Inc. | Managing network based content |
US9298843B1 (en) * | 2011-09-27 | 2016-03-29 | Amazon Technologies, Inc. | User agent information management |
US9152970B1 (en) | 2011-09-27 | 2015-10-06 | Amazon Technologies, Inc. | Remote co-browsing session management |
US8966004B2 (en) | 2011-09-29 | 2015-02-24 | Comcast Cable Communications, LLC. | Multiple virtual machines in a mobile virtualization platform |
US8615431B1 (en) | 2011-09-29 | 2013-12-24 | Amazon Technologies, Inc. | Network content message placement management |
US9804864B1 (en) | 2011-10-07 | 2017-10-31 | BlueStack Systems, Inc. | Method of mapping inputs and system thereof |
US9313100B1 (en) | 2011-11-14 | 2016-04-12 | Amazon Technologies, Inc. | Remote browsing session management |
US9173100B2 (en) | 2011-11-16 | 2015-10-27 | Autoconnect Holdings Llc | On board vehicle network security |
DE112012004781T5 (de) * | 2011-11-16 | 2014-08-07 | Flextronics Ap, Llc | Versicherungsverfolgung |
US9116786B2 (en) | 2011-11-16 | 2015-08-25 | Flextronics Ap, Llc | On board vehicle networking module |
KR101844512B1 (ko) * | 2011-11-18 | 2018-05-21 | 삼성전자주식회사 | 어플리케이션 이용 방법, 그를 이용한 게이트웨이, 그를 이용한 단말기, 및 그를 이용한 통신 시스템 |
US8972477B1 (en) | 2011-12-01 | 2015-03-03 | Amazon Technologies, Inc. | Offline browsing session management |
JP5514794B2 (ja) * | 2011-12-05 | 2014-06-04 | パナソニック株式会社 | 情報処理システム |
US9009334B1 (en) | 2011-12-09 | 2015-04-14 | Amazon Technologies, Inc. | Remote browsing session management |
US9117002B1 (en) | 2011-12-09 | 2015-08-25 | Amazon Technologies, Inc. | Remote browsing session management |
US9164544B2 (en) | 2011-12-09 | 2015-10-20 | Z124 | Unified desktop: laptop dock, hardware configuration |
US9330188B1 (en) | 2011-12-22 | 2016-05-03 | Amazon Technologies, Inc. | Shared browsing sessions |
GB201200080D0 (en) * | 2012-01-04 | 2012-02-15 | Talaris Ltd | Automated banking machines |
US9342181B2 (en) | 2012-01-09 | 2016-05-17 | Nvidia Corporation | Touch-screen input/output device touch sensing techniques |
US8938518B2 (en) | 2012-01-16 | 2015-01-20 | International Business Machines Corporation | Transferring applications and session state to a secondary device |
US8839087B1 (en) | 2012-01-26 | 2014-09-16 | Amazon Technologies, Inc. | Remote browsing and searching |
US9092405B1 (en) | 2012-01-26 | 2015-07-28 | Amazon Technologies, Inc. | Remote browsing and searching |
US9509783B1 (en) | 2012-01-26 | 2016-11-29 | Amazon Technlogogies, Inc. | Customized browser images |
US8627195B1 (en) | 2012-01-26 | 2014-01-07 | Amazon Technologies, Inc. | Remote browsing and searching |
US9336321B1 (en) | 2012-01-26 | 2016-05-10 | Amazon Technologies, Inc. | Remote browsing and searching |
US9087024B1 (en) | 2012-01-26 | 2015-07-21 | Amazon Technologies, Inc. | Narration of network content |
US9037975B1 (en) | 2012-02-10 | 2015-05-19 | Amazon Technologies, Inc. | Zooming interaction tracking and popularity determination |
US9183258B1 (en) | 2012-02-10 | 2015-11-10 | Amazon Technologies, Inc. | Behavior based processing of content |
CN103246463A (zh) * | 2012-02-13 | 2013-08-14 | 联想(北京)有限公司 | 使用输入设备进行信息输入的方法、处理系统及电子设备 |
US9137210B1 (en) | 2012-02-21 | 2015-09-15 | Amazon Technologies, Inc. | Remote browsing session management |
US9374244B1 (en) | 2012-02-27 | 2016-06-21 | Amazon Technologies, Inc. | Remote browsing session management |
US9208316B1 (en) | 2012-02-27 | 2015-12-08 | Amazon Technologies, Inc. | Selective disabling of content portions |
US10296558B1 (en) | 2012-02-27 | 2019-05-21 | Amazon Technologies, Inc. | Remote generation of composite content pages |
US20130244579A1 (en) * | 2012-03-16 | 2013-09-19 | Rapidblue Solutions | Method of enabling proximity based connectivity between mobile devices using different operating systems |
US9460220B1 (en) | 2012-03-26 | 2016-10-04 | Amazon Technologies, Inc. | Content selection based on target device characteristics |
US9307004B1 (en) | 2012-03-28 | 2016-04-05 | Amazon Technologies, Inc. | Prioritized content transmission |
EP2648096A1 (en) | 2012-04-07 | 2013-10-09 | Samsung Electronics Co., Ltd | Method and system for controlling display device and computer-readable recording medium |
US9417753B2 (en) | 2012-05-02 | 2016-08-16 | Google Technology Holdings LLC | Method and apparatus for providing contextual information between operating system environments |
US20130298140A1 (en) * | 2012-05-02 | 2013-11-07 | Motorola Mobility, Inc. | Method and Apparatus for Displaying Data from a Plurality of Concurrent Operating System Environments |
US20130311888A1 (en) * | 2012-05-17 | 2013-11-21 | Motorola Mobility, Inc. | Arranging a Set of Panels in a First Application Environment Via Arrangement of the Set of Panels in a Second Application Environment for a Multi-Modal Device |
US9342325B2 (en) * | 2012-05-17 | 2016-05-17 | Google Technology Holdings LLC | Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device |
US9177533B2 (en) | 2012-05-31 | 2015-11-03 | Microsoft Technology Licensing, Llc | Virtual surface compaction |
US9804740B2 (en) * | 2012-06-06 | 2017-10-31 | Apple Inc. | Generating context-based options for responding to a notification |
US9099031B2 (en) * | 2012-06-15 | 2015-08-04 | Apple Inc. | Layout synchronization |
JP2014010691A (ja) * | 2012-06-29 | 2014-01-20 | Canon Inc | 情報処理装置、画面表示方法、およびプログラム |
CN103544027B (zh) * | 2012-07-13 | 2017-05-24 | 联想(北京)有限公司 | 控制应用更新的方法及电子设备 |
US9743017B2 (en) * | 2012-07-13 | 2017-08-22 | Lattice Semiconductor Corporation | Integrated mobile desktop |
US9798508B2 (en) | 2012-07-16 | 2017-10-24 | Microsoft Technology Licensing, Llc | Implementing previously rendered frame buffer information in a customized GUI display |
US9184800B2 (en) | 2012-07-16 | 2015-11-10 | Google Inc. | Automated sharing of application data over a near field communication link |
US9823935B2 (en) * | 2012-07-26 | 2017-11-21 | Nvidia Corporation | Techniques for latching input events to display flips |
US9772979B1 (en) | 2012-08-08 | 2017-09-26 | Amazon Technologies, Inc. | Reproducing user browsing sessions |
US8943197B1 (en) | 2012-08-16 | 2015-01-27 | Amazon Technologies, Inc. | Automated content update notification |
US20140075377A1 (en) * | 2012-09-10 | 2014-03-13 | Samsung Electronics Co. Ltd. | Method for connecting mobile terminal and external display and apparatus implementing the same |
US9307026B2 (en) * | 2012-09-20 | 2016-04-05 | Amazon Technologies, Inc. | Fulfillment of applications to devices |
US9390473B2 (en) | 2012-09-21 | 2016-07-12 | Google Inc. | Displaying applications on a fixed orientation display |
US9772668B1 (en) | 2012-09-27 | 2017-09-26 | Cadence Design Systems, Inc. | Power shutdown with isolation logic in I/O power domain |
US9389884B2 (en) * | 2012-10-11 | 2016-07-12 | Google Technology Holdings LLC | Method and apparatus for providing adaptive wallpaper display for a device having multiple operating system environments |
US20140115606A1 (en) * | 2012-10-24 | 2014-04-24 | OpenMobile World Wide, Inc. | Multi-platform mobile and other computing devices and methods |
US10942735B2 (en) * | 2012-12-04 | 2021-03-09 | Abalta Technologies, Inc. | Distributed cross-platform user interface and application projection |
US9513979B2 (en) * | 2013-01-11 | 2016-12-06 | Sap Se | Mobile communication device providing interconnectivity between apps based on storage scope |
CN103984532B (zh) * | 2013-02-07 | 2016-06-22 | 腾讯科技(深圳)有限公司 | 一种移动终端功能设置键的位置设置方法和装置 |
US10313345B2 (en) | 2013-03-11 | 2019-06-04 | Amazon Technologies, Inc. | Application marketplace for virtual desktops |
US9148350B1 (en) | 2013-03-11 | 2015-09-29 | Amazon Technologies, Inc. | Automated data synchronization |
US9002982B2 (en) | 2013-03-11 | 2015-04-07 | Amazon Technologies, Inc. | Automated desktop placement |
US10142406B2 (en) | 2013-03-11 | 2018-11-27 | Amazon Technologies, Inc. | Automated data center selection |
US9526120B2 (en) | 2013-03-15 | 2016-12-20 | Google Inc. | Techniques for context-based application invocation for short-range wireless communication interactions |
US9569161B2 (en) * | 2013-03-21 | 2017-02-14 | Nec Corporation | Remote visualization and control for virtual mobile infrastructure |
US9342842B2 (en) * | 2013-04-01 | 2016-05-17 | Apple Inc. | Context-switching taxonomy for mobile advertisement |
US9325581B2 (en) * | 2013-04-02 | 2016-04-26 | International Business Machines Corporation | Context-aware management of applications at the edge of a network |
EP2984559B1 (en) | 2013-04-09 | 2019-06-12 | Citrix Systems Inc. | Providing a native desktop using cloud-synchronized data |
CN103197533A (zh) * | 2013-04-11 | 2013-07-10 | 华为终端有限公司 | 电子设备中闹钟的实现方法、装置及电子设备 |
US20140316841A1 (en) * | 2013-04-23 | 2014-10-23 | Kofax, Inc. | Location-based workflows and services |
KR102210995B1 (ko) | 2013-04-24 | 2021-02-02 | 삼성전자 주식회사 | 전자 장치에서 보안 정보를 통지하기 위한 장치와 방법 및 이를 위한 컴퓨터로 판독 가능한 기록 매체 |
CN103281186B (zh) * | 2013-05-08 | 2016-02-03 | 上海众人网络安全技术有限公司 | 一种基于android系统的动态令牌、交易系统及方法 |
CN103309657A (zh) * | 2013-05-17 | 2013-09-18 | 北京小米科技有限责任公司 | 一种更换移动设备响铃音频的方法、装置和设备 |
US9225799B1 (en) * | 2013-05-21 | 2015-12-29 | Trend Micro Incorporated | Client-side rendering for virtual mobile infrastructure |
US9300720B1 (en) * | 2013-05-21 | 2016-03-29 | Trend Micro Incorporated | Systems and methods for providing user inputs to remote mobile operating systems |
US20140351833A1 (en) * | 2013-05-26 | 2014-11-27 | Min-Lee Teng | Multi-computing environment operating on a single native operating system |
US10021180B2 (en) | 2013-06-04 | 2018-07-10 | Kingston Digital, Inc. | Universal environment extender |
US9578137B1 (en) | 2013-06-13 | 2017-02-21 | Amazon Technologies, Inc. | System for enhancing script execution performance |
US10152463B1 (en) | 2013-06-13 | 2018-12-11 | Amazon Technologies, Inc. | System for profiling page browsing interactions |
US10686646B1 (en) | 2013-06-26 | 2020-06-16 | Amazon Technologies, Inc. | Management of computing sessions |
US10623243B2 (en) | 2013-06-26 | 2020-04-14 | Amazon Technologies, Inc. | Management of computing sessions |
KR102112605B1 (ko) * | 2013-07-01 | 2020-05-19 | 삼성전자 주식회사 | 모바일 단말 및 모바일 단말의 네트워크 전송 제어 방법 |
CN103401896B (zh) * | 2013-07-15 | 2016-06-22 | 四川公用信息产业有限责任公司 | 一种多Android客户端服务共享方法及系统 |
CN103401941B (zh) * | 2013-08-09 | 2017-02-08 | 广东威创视讯科技股份有限公司 | 一种gis场景信息处理方法、系统、节点机和服务端 |
KR102144553B1 (ko) * | 2013-08-30 | 2020-08-13 | 삼성전자주식회사 | 다중 디스플레이 방법, 저장 매체 및 전자 장치 |
US9823728B2 (en) | 2013-09-04 | 2017-11-21 | Nvidia Corporation | Method and system for reduced rate touch scanning on an electronic device |
US10437903B2 (en) * | 2013-09-20 | 2019-10-08 | Jesse Lakes | Redirection service profiling |
CN104516703B (zh) * | 2013-09-30 | 2018-02-16 | 中国电信股份有限公司 | 在安卓终端上实现虚拟桌面屏幕分辨率自动适配的方法和系统 |
US9881592B2 (en) | 2013-10-08 | 2018-01-30 | Nvidia Corporation | Hardware overlay assignment |
GB2520041A (en) * | 2013-11-07 | 2015-05-13 | Ibm | Automated multimedia content editing |
US9507470B2 (en) | 2013-12-16 | 2016-11-29 | Nvidia Corporation | Method and system for reduced power touch input detection on an electronic device using reduced scanning |
KR101548228B1 (ko) * | 2013-12-27 | 2015-08-28 | 주식회사 케이티 | 사용자 상태에 기반하여 사용자 인터페이스를 동기화하는 동기화 기기 및 동기화 방법 |
TWI526849B (zh) * | 2013-12-31 | 2016-03-21 | Insyde Software Corp | Portable electronic device, dual heterogeneity operating system sharing file, recording media and computer program products |
US9658870B2 (en) | 2014-02-27 | 2017-05-23 | OpenMobile World Wide, Inc. | In-process trapping for service substitution in hosted applications executing on mobile devices with multi-operating system environment |
CN103902390B (zh) * | 2014-03-12 | 2017-04-19 | 深圳创维-Rgb电子有限公司 | 基于Android的应用层的进程间通信方法及基础应用通信系统 |
CN104885055B (zh) * | 2014-03-19 | 2020-12-15 | 华为终端有限公司 | 一种应用数据同步的方法及装置 |
US9898520B2 (en) | 2014-03-25 | 2018-02-20 | Open Text Sa Ulc | Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents |
US10860366B2 (en) * | 2014-04-30 | 2020-12-08 | Hewlett-Packard Development Company, L.P. | Multi architecture manager |
US9785309B2 (en) * | 2014-05-08 | 2017-10-10 | Socialtopias, Llc | Method and apparatus for providing a layered webpage |
US9189264B1 (en) * | 2014-06-09 | 2015-11-17 | Western Digital Technologies, Inc. | Notification propagation in virtual computing environment |
US9635041B1 (en) | 2014-06-16 | 2017-04-25 | Amazon Technologies, Inc. | Distributed split browser content inspection and analysis |
US20150373483A1 (en) * | 2014-06-23 | 2015-12-24 | Qualcomm Incorporated | Methods, apparatus, and computer-readable medium for providing alternate visualization via wireless docking |
US10303531B2 (en) * | 2014-07-28 | 2019-05-28 | Red Hat, Inc. | Console application through web service |
CN106462369B (zh) | 2014-07-31 | 2020-01-03 | 惠普发展公司,有限责任合伙企业 | 用于管理多个实例的方法、系统和介质 |
TWI502296B (zh) * | 2014-08-27 | 2015-10-01 | Hiwin Tech Corp | 機器人的教導裝置 |
CN105487845B (zh) * | 2014-09-18 | 2018-08-31 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
US20160088079A1 (en) * | 2014-09-21 | 2016-03-24 | Alcatel Lucent | Streaming playout of media content using interleaved media players |
US20160085348A1 (en) * | 2014-09-23 | 2016-03-24 | UV Networks, Inc. | Application host with distributed remote input and output interfaces |
US20160085738A1 (en) * | 2014-09-24 | 2016-03-24 | Microsoft Technology Licensing, Llc | Cloud-Based Parallel Computation Using Actor Modules |
CN104317414A (zh) * | 2014-09-25 | 2015-01-28 | 北京云巢动脉科技有限公司 | 一种在移动端虚拟机内实现中文输入的方法和系统 |
JP6078515B2 (ja) * | 2014-11-13 | 2017-02-08 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびプログラム |
CN104410909B (zh) * | 2014-11-28 | 2018-01-09 | 江苏银河电子股份有限公司 | Linux系统软件模块在TVOS系统中的使用方法 |
CN107360310B (zh) * | 2014-12-12 | 2019-12-13 | 华为技术有限公司 | 移动终端及其资源管理方法 |
EP3240714B1 (en) * | 2014-12-29 | 2023-08-30 | Robert Bosch GmbH | Systems and methods for operating autonomous vehicles using personalized driving profiles |
CN104572943B (zh) * | 2014-12-30 | 2018-05-08 | 北京奇虎科技有限公司 | 免安装程序清理方法及装置 |
US9928021B2 (en) | 2014-12-30 | 2018-03-27 | Qualcomm Incorporated | Dynamic selection of content for display on a secondary display device |
CN107111570A (zh) * | 2015-01-30 | 2017-08-29 | 惠普发展公司有限责任合伙企业 | 在显示设备机械地连接和断开时持续维持用户会话的计算机系统 |
CN104731721B (zh) * | 2015-02-10 | 2019-07-16 | 深圳酷派技术有限公司 | 一种显示用内存的共享方法及装置 |
CN104657213B (zh) * | 2015-02-13 | 2018-04-10 | 深圳酷派技术有限公司 | 一种系统间应用切换的方法和终端 |
US20160239168A1 (en) * | 2015-02-18 | 2016-08-18 | Screenovate Technologies Ltd. | Method and system of gui functionality management |
US9572104B2 (en) | 2015-02-25 | 2017-02-14 | Microsoft Technology Licensing, Llc | Dynamic adjustment of user experience based on system capabilities |
CN104796529B (zh) * | 2015-03-05 | 2018-05-15 | 宇龙计算机通信科技(深圳)有限公司 | 基于双系统的未处理事件的提醒方法及系统 |
CN104750492B (zh) * | 2015-03-31 | 2018-01-19 | 广东欧珀移动通信有限公司 | 基于嵌入式操作系统的移动设备的开机控制方法及装置 |
CN105577906B (zh) * | 2015-04-08 | 2019-06-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种多系统终端通知消息的提示方法及装置 |
US11159603B2 (en) * | 2015-04-15 | 2021-10-26 | Hyland Switzerland Sàrl | Cross-platform module for loading across a plurality of device types |
US10922148B2 (en) * | 2015-04-26 | 2021-02-16 | Intel Corporation | Integrated android and windows device |
CN106327139A (zh) * | 2015-06-17 | 2017-01-11 | 派斡信息技术(上海)有限公司 | 工作空间中对统一化元素进行组合工作的方法以及产品 |
US9920219B2 (en) | 2015-06-22 | 2018-03-20 | Awi Licensing Llc | Soil and dirt repellent powder coatings |
US10261985B2 (en) | 2015-07-02 | 2019-04-16 | Microsoft Technology Licensing, Llc | Output rendering in dynamic redefining application |
WO2017003007A1 (ko) * | 2015-07-02 | 2017-01-05 | 엘지전자 주식회사 | 영상표시장치 및 이동 단말기 |
US10198252B2 (en) | 2015-07-02 | 2019-02-05 | Microsoft Technology Licensing, Llc | Transformation chain application splitting |
KR102403338B1 (ko) * | 2015-07-02 | 2022-05-27 | 엘지전자 주식회사 | 이동 단말기 |
KR102444150B1 (ko) * | 2015-07-02 | 2022-09-15 | 엘지전자 주식회사 | 영상표시장치 |
US20170010758A1 (en) * | 2015-07-08 | 2017-01-12 | Microsoft Technology Licensing, Llc | Actuator module for building application |
US10198405B2 (en) | 2015-07-08 | 2019-02-05 | Microsoft Technology Licensing, Llc | Rule-based layout of changing information |
US10031724B2 (en) | 2015-07-08 | 2018-07-24 | Microsoft Technology Licensing, Llc | Application operation responsive to object spatial status |
US10565026B2 (en) * | 2015-07-29 | 2020-02-18 | Microsoft Technology Licensing, Llc | Containing an application in an immersive non-windowed environment |
CN108367796A (zh) * | 2015-08-26 | 2018-08-03 | 博洛斯股份公司 | 用于自行车的控制设备 |
CN117849979A (zh) * | 2015-09-08 | 2024-04-09 | Lg伊诺特有限公司 | 双相机模块及光学装置 |
US10083614B2 (en) | 2015-10-22 | 2018-09-25 | Drone Traffic, Llc | Drone alerting and reporting system |
KR102320810B1 (ko) | 2015-11-11 | 2021-11-02 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
CN105426191B (zh) * | 2015-11-23 | 2019-01-18 | 深圳创维-Rgb电子有限公司 | 用户界面显示处理方法及装置 |
US10326822B2 (en) | 2015-12-03 | 2019-06-18 | Google Llc | Methods, systems and media for presenting a virtual operating system on a display device |
CN105404558B (zh) * | 2015-12-11 | 2019-07-09 | 北京元心科技有限公司 | 多系统中事件处理的方法及装置 |
CN105763453B (zh) * | 2016-02-04 | 2019-05-07 | 新华三技术有限公司 | 一种报文处理方法和装置 |
CN105791567B (zh) * | 2016-02-29 | 2019-05-14 | 宇龙计算机通信科技(深圳)有限公司 | 一种信息存储方法及多系统移动终端 |
CN105704341A (zh) * | 2016-03-28 | 2016-06-22 | 努比亚技术有限公司 | 一种铃音播放方法及终端 |
CN107291561B (zh) * | 2016-03-31 | 2020-11-24 | 阿里巴巴集团控股有限公司 | 一种图形合成方法、信息交互方法及系统 |
KR102507114B1 (ko) * | 2016-06-08 | 2023-03-07 | 삼성전자주식회사 | 복수의 운영체제들의 화면을 통합하여 표시하는 방법 및 그 전자 장치 |
CN107515790A (zh) * | 2016-06-16 | 2017-12-26 | 成都鼎桥通信技术有限公司 | 电子设备的系统 |
WO2017219362A1 (zh) * | 2016-06-24 | 2017-12-28 | 阿贝尔环球国际有限公司 | 终端装置及其终端操作系统与云端装置及其云端操作系统 |
US10313404B2 (en) * | 2016-06-30 | 2019-06-04 | Microsoft Technology Licensing, Llc | Sharing user context and preferences |
US20180046425A1 (en) * | 2016-08-11 | 2018-02-15 | International Business Machines Corporation | Preserving an external display configuration |
CN106445702A (zh) * | 2016-09-21 | 2017-02-22 | 乐视控股(北京)有限公司 | 多系统通信方法及终端 |
WO2018065057A1 (en) * | 2016-10-06 | 2018-04-12 | Vestel Elektronik Sanayi Ve Ticaret A.S. | Mobile virtualization |
KR102597036B1 (ko) | 2016-10-11 | 2023-11-02 | 삼성전자주식회사 | 듀얼 디스플레이를 가지는 전자 장치 및 이의 운용 방법 |
KR20180046791A (ko) * | 2016-10-28 | 2018-05-09 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 데이터 전송 방법 |
US10542120B2 (en) * | 2016-11-10 | 2020-01-21 | Microsoft Technology Licensing, Llc | Wirelessly providing operating system specific features |
CN108121607A (zh) * | 2016-11-28 | 2018-06-05 | 厦门雅迅网络股份有限公司 | 事件的上报方法及上报系统 |
US11003632B2 (en) | 2016-11-28 | 2021-05-11 | Open Text Sa Ulc | System and method for content synchronization |
CN106547628B (zh) * | 2016-11-29 | 2020-05-01 | 北京元心科技有限公司 | 多系统的资源释放方法及装置 |
US10498843B2 (en) * | 2016-12-06 | 2019-12-03 | Bank Of America Corporation | Tool for providing actionable functionality on a website |
US11537272B2 (en) * | 2016-12-21 | 2022-12-27 | Aon Global Operations Se, Singapore Branch | Content management system extensions |
KR102661703B1 (ko) * | 2016-12-23 | 2024-04-29 | 삼성전자주식회사 | 전자 장치 및 그의 제어 방법 |
EP3355188B1 (en) | 2017-01-31 | 2021-08-25 | OpenSynergy GmbH | Instrument display on a car dashboard by checking frames of a gui by a realtime os |
US10503237B2 (en) | 2017-02-13 | 2019-12-10 | Gbs Laboratories, Llc | Mobile device virtualization solution based on bare-metal hypervisor with optimal resource usage and power consumption |
CN106873932B (zh) * | 2017-02-17 | 2020-03-03 | 浙江大学 | 一种Android系统服务端、远程桌面图像重定向方法及系统 |
US11327706B2 (en) | 2017-02-23 | 2022-05-10 | Autodesk, Inc. | Infrastructure model collaboration via state distribution |
CN106951294B (zh) * | 2017-03-28 | 2020-07-10 | 北京奇虎科技有限公司 | 一种用于为跨系统应用提供服务的方法及设备 |
US10467796B2 (en) * | 2017-04-17 | 2019-11-05 | Intel Corporation | Graphics system with additional context |
US10567442B2 (en) | 2017-05-10 | 2020-02-18 | Microsoft Technology Licensing, Llc | Automatic forwarding of incoming calls based on user interaction with devices |
US11301431B2 (en) | 2017-06-02 | 2022-04-12 | Open Text Sa Ulc | System and method for selective synchronization |
EP3617869B1 (en) | 2017-06-13 | 2024-02-28 | Huawei Technologies Co., Ltd. | Display method and apparatus |
US10757748B2 (en) | 2017-07-19 | 2020-08-25 | Hewlett-Packard Development Company, L.P. | Device and display device having attached mode and detached mode |
CN109426571B (zh) * | 2017-08-28 | 2022-05-13 | 阿里巴巴集团控股有限公司 | 函数调用和数据访问的方法、系统、存储介质、处理器和装置 |
US10664538B1 (en) | 2017-09-26 | 2020-05-26 | Amazon Technologies, Inc. | Data security and data access auditing for network accessible content |
US10726095B1 (en) | 2017-09-26 | 2020-07-28 | Amazon Technologies, Inc. | Network content layout using an intermediary system |
CN109669764B (zh) * | 2017-10-13 | 2023-08-01 | 斑马智行网络(香港)有限公司 | 处理方法、装置、设备和机器可读介质 |
CN107832203B (zh) * | 2017-11-08 | 2020-11-13 | 浙江大学 | 一种移动终端渲染性能诊断方法 |
CN107943606B (zh) * | 2017-11-22 | 2023-12-15 | 博泰车联网科技(上海)股份有限公司 | 双操作系统下的故障处理方法及装置、存储器及电子设备 |
CN108133453A (zh) * | 2017-12-13 | 2018-06-08 | 北京奇虎科技有限公司 | 一种基于OpenGL的图像处理器及其功能扩展方法 |
CN108279963B (zh) * | 2018-01-05 | 2020-11-20 | 郑州信大捷安信息技术股份有限公司 | 一种单Linux内核多Android系统的智能终端显示虚拟化方法 |
CN108280020B (zh) * | 2018-01-23 | 2021-09-14 | 广州视源电子科技股份有限公司 | 计算机设备的监控方法、装置、终端及计算机存储介质 |
CN108345438A (zh) * | 2018-02-06 | 2018-07-31 | 深圳市恒晨电器有限公司 | 手机平台应用于车载平台的物理横屏显示方法 |
CN108304209B (zh) * | 2018-02-28 | 2021-01-15 | 联想(北京)有限公司 | 固件升级方法及固件升级系统 |
EP3570164B1 (de) * | 2018-05-14 | 2023-04-26 | Schneider Electric Industries SAS | Verfahren und system zum generieren einer mobilen applikation aus einer desktop-anwendung |
CN108762815B (zh) * | 2018-05-16 | 2021-01-01 | 北京麟卓信息科技有限公司 | 一种基于非虚拟化体系架构的Android运行环境实现方法 |
US10684871B2 (en) * | 2018-06-03 | 2020-06-16 | Apple Inc. | Multi-process model for cross-platform applications |
US11698890B2 (en) | 2018-07-04 | 2023-07-11 | Monday.com Ltd. | System and method for generating a column-oriented data structure repository for columns of single data types |
US11436359B2 (en) | 2018-07-04 | 2022-09-06 | Monday.com Ltd. | System and method for managing permissions of users for a single data type column-oriented data structure |
KR20200014128A (ko) * | 2018-07-31 | 2020-02-10 | 삼성전자주식회사 | 전자 장치의 디스플레이 및 외부 디스플레이 전부를 이용하여 어플리케이션을 실행하기 위한 전자 장치 및 방법 |
CN109254858B (zh) * | 2018-08-31 | 2021-07-23 | 武汉斗鱼网络科技有限公司 | 活动窗口的数据共享方法、装置、设备及存储介质 |
KR102631745B1 (ko) * | 2018-10-16 | 2024-02-01 | 삼성전자주식회사 | 이종 운영체제의 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체 |
CN109375955A (zh) * | 2018-11-01 | 2019-02-22 | 无锡市同芯恒通科技有限公司 | 一种同种cpu适配不同操作系统的方法 |
CN109582453A (zh) * | 2018-11-29 | 2019-04-05 | 北京元心科技有限公司 | 多系统间协调调度的方法、装置及电子设备 |
US20200174814A1 (en) * | 2018-11-30 | 2020-06-04 | Nutanix, Inc. | Systems and methods for upgrading hypervisor locally |
US10650776B1 (en) * | 2018-12-28 | 2020-05-12 | Lenovo (Singapore) Pte. Ltd. | Information processing device and controlling method for multiple operating systems |
CN109714642B (zh) * | 2018-12-29 | 2022-03-08 | 深圳Tcl数字技术有限公司 | Linux应用复用于智能系统的方法、智能电视及存储介质 |
BR102019000921A2 (pt) * | 2019-01-16 | 2020-08-04 | Samsung Eletrônica da Amazônia Ltda. | Sistema para habilitar uma experiência de desktop completa com base em um dispositivo móvel |
US20200233548A1 (en) * | 2019-01-21 | 2020-07-23 | Promethean Limited | Connected computing device software integration systems and methods |
US10852901B2 (en) | 2019-01-21 | 2020-12-01 | Promethean Limited | Systems and methods for user interface adjustment, customization, and placement |
US11880422B2 (en) | 2019-02-04 | 2024-01-23 | Cloudflare, Inc. | Theft prevention for sensitive information |
US10558824B1 (en) | 2019-02-04 | 2020-02-11 | S2 Systems Corporation | Application remoting using network vector rendering |
US10452868B1 (en) | 2019-02-04 | 2019-10-22 | S2 Systems Corporation | Web browser remoting using network vector rendering |
US10552639B1 (en) | 2019-02-04 | 2020-02-04 | S2 Systems Corporation | Local isolator application with cohesive application-isolation interface |
CN110618876B (zh) * | 2019-03-21 | 2023-05-23 | 麒麟软件有限公司 | 一种基于飞腾平台与共享内核的Linux与Android并存和交互方法 |
US10986089B2 (en) | 2019-04-11 | 2021-04-20 | Kas Kasravi | Virtual mobile device system and method thereof |
US11372965B2 (en) * | 2019-05-10 | 2022-06-28 | Microsoft Technology Licensing, Llc | Application with self-configuring accessibility settings |
US11786694B2 (en) | 2019-05-24 | 2023-10-17 | NeuroLight, Inc. | Device, method, and app for facilitating sleep |
US11323449B2 (en) * | 2019-06-27 | 2022-05-03 | Citrix Systems, Inc. | Unified accessibility settings for intelligent workspace platforms |
CN110427251A (zh) * | 2019-07-25 | 2019-11-08 | 吉旗(成都)科技有限公司 | 一种针对iOS CoreData数据库存储的优化方法 |
US11347756B2 (en) * | 2019-08-26 | 2022-05-31 | Microsoft Technology Licensing, Llc | Deep command search within and across applications |
CN110515667B (zh) * | 2019-08-26 | 2023-04-11 | 武汉蓝星科技股份有限公司 | 一种基于linux内核的终端双系统显示切换方法及终端双系统 |
US11194699B2 (en) * | 2019-09-17 | 2021-12-07 | Red Hat, Inc. | Compatibility testing with different environment configurations |
CN110781528B (zh) * | 2019-09-26 | 2022-03-22 | 深圳金澜汉源科技有限公司 | 协同安全操作系统和电子设备 |
WO2021088309A1 (zh) * | 2019-11-04 | 2021-05-14 | 海信视像科技股份有限公司 | 一种显示设备及信息提示方法 |
EP4062313A1 (en) | 2019-11-18 | 2022-09-28 | Monday.com Ltd. | Collaborative networking systems, methods, and devices |
US11526661B2 (en) | 2019-11-18 | 2022-12-13 | Monday.com Ltd. | Digital processing systems and methods for integrated communications module in tables of collaborative work systems |
CN110769320B (zh) * | 2019-11-19 | 2021-10-15 | 三星电子(中国)研发中心 | 一种智能设备分享内容的方法、系统及装置 |
WO2021134069A1 (en) | 2019-12-27 | 2021-07-01 | Abalta Technologies, Inc. | Projection, control, and management of user device applications using a connected resource |
KR20210116733A (ko) * | 2020-03-12 | 2021-09-28 | 삼성전자주식회사 | 네트워크 연결 방법 및 이를 지원하는 전자 장치 |
US20240184989A1 (en) | 2020-05-01 | 2024-06-06 | Monday.com Ltd. | Digital processing systems and methods for virtualfile-based electronic white board in collaborative work systems systems |
IL297858A (en) | 2020-05-01 | 2023-01-01 | Monday Com Ltd | Digital processing systems and methods for improved networking and collaborative work management systems, methods and devices |
CN112346792B (zh) * | 2020-06-11 | 2021-09-21 | 广州锦行网络科技有限公司 | 一种基于Linux系统的端口复用方法 |
US11520598B2 (en) * | 2020-07-01 | 2022-12-06 | Anthony Donte Ebron | Multi-processor mobile computing device |
KR20220017193A (ko) * | 2020-08-04 | 2022-02-11 | 삼성전자주식회사 | 전자 장치 및 전자 장치가 외부 장치 디스플레이 상에 어플리케이션 화면을 제공하는 방법 |
US11900046B2 (en) | 2020-08-07 | 2024-02-13 | Microsoft Technology Licensing, Llc | Intelligent feature identification and presentation |
US11019106B1 (en) | 2020-09-22 | 2021-05-25 | Netskope, Inc. | Remotely accessed controlled contained environment |
EP3992795A1 (en) * | 2020-10-29 | 2022-05-04 | Jolla Ltd. | Computer system executing multiple operating systems |
CN112379941B (zh) * | 2020-11-13 | 2023-05-09 | 武汉蓝星科技股份有限公司 | 一种基于Linux内核的双系统设置项管理系统及其管理方法 |
CN112416629B (zh) * | 2020-12-10 | 2023-07-25 | 深圳市富途网络科技有限公司 | 数据互通方法、系统及存储介质 |
CN112631538A (zh) * | 2020-12-30 | 2021-04-09 | 安徽鸿程光电有限公司 | 显示方法、装置、设备及计算机存储介质 |
US11893213B2 (en) | 2021-01-14 | 2024-02-06 | Monday.com Ltd. | Digital processing systems and methods for embedded live application in-line in a word processing document in collaborative work systems |
CN113220474B (zh) * | 2021-04-21 | 2022-08-30 | 麒麟软件有限公司 | 一种基于Android-EMUGL的安卓应用共享Linux系统屏幕数据的方法 |
US11604657B2 (en) * | 2021-04-30 | 2023-03-14 | Ncr Corporation | Containerized point-of-sale (POS) system and technique for operating |
US11665638B2 (en) | 2021-08-26 | 2023-05-30 | Apple Inc. | Application and service context aware cell selection |
US11599235B1 (en) * | 2021-09-21 | 2023-03-07 | Salesforce, Inc. | Mobile-generated desktop reminders |
CN113852718B (zh) * | 2021-09-26 | 2022-11-15 | 北京字节跳动网络技术有限公司 | 语音通道建立方法、装置、电子设备及存储介质 |
CN113867988A (zh) * | 2021-09-29 | 2021-12-31 | 展讯通信(深圳)有限公司 | 通用远程通信调用架构及方法 |
CN113900754B (zh) * | 2021-10-09 | 2023-10-31 | 深圳技德智能科技研究院有限公司 | 共享桌面方法、装置、计算机设备和存储介质 |
KR102664915B1 (ko) * | 2021-12-06 | 2024-05-17 | 엘지전자 주식회사 | 디스플레이 장치 및 그의 동작 방법 |
CN114253648B (zh) * | 2021-12-24 | 2024-02-09 | 武汉噢易云计算股份有限公司 | 一种远程应用虚拟化方法与装置 |
WO2023143099A1 (zh) * | 2022-01-29 | 2023-08-03 | 华为技术有限公司 | 一种数据聚合方法及计算系统 |
WO2023194938A1 (en) * | 2022-04-06 | 2023-10-12 | New York University In Abu Dhabi Corporation | System, method and computer-accessible medium for a zero-copy data-coherent shared-memory inter-process communication system |
US20230409357A1 (en) * | 2022-05-25 | 2023-12-21 | Citrix Systems, Inc. | Asymmetric workspace application notification and interaction |
WO2024102208A1 (en) * | 2022-11-11 | 2024-05-16 | Microsoft Technology Licensing, Llc | Interoperability between actor frameworks and asynchronous frameworks |
US11741071B1 (en) | 2022-12-28 | 2023-08-29 | Monday.com Ltd. | Digital processing systems and methods for navigating and viewing displayed content |
US11886683B1 (en) | 2022-12-30 | 2024-01-30 | Monday.com Ltd | Digital processing systems and methods for presenting board graphics |
US11893381B1 (en) | 2023-02-21 | 2024-02-06 | Monday.com Ltd | Digital processing systems and methods for reducing file bundle sizes |
Family Cites Families (264)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4207551A (en) * | 1976-03-12 | 1980-06-10 | Hans Kautzky | Pressure transducer |
US5396630A (en) * | 1992-10-06 | 1995-03-07 | International Business Machines Corporation | Method and system for object management across process boundries in a data processing system |
US5673403A (en) | 1992-11-13 | 1997-09-30 | International Business Machines Corporation | Method and system for displaying applications of different operating systems on a single system using the user interface of the different operating systems |
JPH06301555A (ja) * | 1993-02-26 | 1994-10-28 | Internatl Business Mach Corp <Ibm> | マイクロカーネル上の複数の共存オペレーティング・システム・パーソナリティ用のシステム |
US5956030A (en) | 1993-06-11 | 1999-09-21 | Apple Computer, Inc. | Computer system with graphical user interface including windows having an identifier within a control region on the display |
JP3437238B2 (ja) * | 1994-02-04 | 2003-08-18 | キヤノン株式会社 | コンピュータ、コンピュータシステム及びその制御方法 |
JPH08212086A (ja) * | 1994-09-30 | 1996-08-20 | Microsoft Corp | オフィスマシンのオペレーティングシステム及び方法 |
JPH08115144A (ja) * | 1994-10-17 | 1996-05-07 | Toshiba Corp | 分離型ワークステーション装置 |
US6108715A (en) | 1994-12-13 | 2000-08-22 | Microsoft Corporation | Method and system for invoking remote procedure calls |
CA2173695A1 (en) | 1995-04-14 | 1996-10-15 | Panagiotis Kougiouris | Method and system for providing interoperability among processes written to execute on different operating systems |
US6260075B1 (en) | 1995-06-19 | 2001-07-10 | International Business Machines Corporation | System and method for providing shared global offset table for common shared library in a computer system |
US5874960A (en) * | 1995-07-05 | 1999-02-23 | Microsoft Corporation | Method and system for sharing applications between computer systems |
JPH0926769A (ja) | 1995-07-10 | 1997-01-28 | Hitachi Ltd | 画像表示装置 |
US6477585B1 (en) | 1995-08-18 | 2002-11-05 | International Business Machines Corporation | Filter mechanism for an event management service |
US5874928A (en) | 1995-08-24 | 1999-02-23 | Philips Electronics North America Corporation | Method and apparatus for driving a plurality of displays simultaneously |
US6091414A (en) * | 1996-10-31 | 2000-07-18 | International Business Machines Corporation | System and method for cross-environment interaction in a computerized graphical interface environment |
US6018340A (en) | 1997-01-27 | 2000-01-25 | Microsoft Corporation | Robust display management in a multiple monitor environment |
US6157959A (en) | 1997-07-03 | 2000-12-05 | Tandem Computers, Incorporated | Method and apparatus for providing portable kernel-mode support for fast interprocess communication |
US5846257A (en) * | 1997-08-15 | 1998-12-08 | Nexus Medical System, Inc. Llc | Pressure sensor for a surgical system |
US6381682B2 (en) | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
US6178503B1 (en) | 1998-09-11 | 2001-01-23 | Powerquest Corporation | Managing multiple operating systems on a single computer |
US6507336B1 (en) | 1999-02-04 | 2003-01-14 | Palm, Inc. | Keyboard for a handheld computer |
US7334235B2 (en) | 1999-06-16 | 2008-02-19 | Microsoft Corporation | Operating system application programming interfaces and methods of using operating systems |
US6460136B1 (en) * | 1999-07-12 | 2002-10-01 | Hewlett-Packard Co., | Method and apparatus for loading an operating system kernel from a shared disk memory |
US7284203B1 (en) | 1999-07-27 | 2007-10-16 | Verizon Laboratories Inc. | Method and apparatus for application sharing interface |
US7007240B1 (en) | 1999-08-03 | 2006-02-28 | Gateway Inc. | Method and system for displaying non-overlapping program and auxiliary windows |
AU7357900A (en) | 1999-09-20 | 2001-04-24 | Neopoint, Inc. | Automatic device synchronization apparatus and method using battery pack for data exchange |
JP4395223B2 (ja) | 1999-09-24 | 2010-01-06 | 株式会社日立製作所 | 表示装置、表示方法、および、ナビゲーション装置 |
US6917963B1 (en) | 1999-10-05 | 2005-07-12 | Veritas Operating Corporation | Snapshot image for the application state of unshareable and shareable data |
US20080062625A1 (en) | 1999-10-18 | 2008-03-13 | Jeffrey Batio | Portable computer for dual, rotatable screens |
KR100679809B1 (ko) | 1999-12-28 | 2007-02-07 | 주식회사 케이티 | 분산객체간 통신장치 및 방법 |
JP2001209466A (ja) * | 2000-01-26 | 2001-08-03 | Internatl Business Mach Corp <Ibm> | コンピュータの制御方法、コンピュータ、及び記録媒体 |
US20100005396A1 (en) | 2000-02-18 | 2010-01-07 | Nason D David | Method and system for controlling a comlementary user interface on a display surface |
JP4402797B2 (ja) | 2000-03-02 | 2010-01-20 | 株式会社日立製作所 | 情報処理装置 |
AU2001253702A1 (en) | 2000-04-19 | 2001-10-30 | Broadcom Corporation | Apparatus and method for persistent display interface |
US20020158811A1 (en) | 2000-06-02 | 2002-10-31 | Davis Terry Glenn | Dual-monitor duo-workpad TM device |
US7210099B2 (en) | 2000-06-12 | 2007-04-24 | Softview Llc | Resolution independent vector display of internet content |
JP5081345B2 (ja) | 2000-06-13 | 2012-11-28 | 富士フイルム株式会社 | 光電変換素子の製造方法 |
CN101284525A (zh) | 2000-06-20 | 2008-10-15 | 株式会社日立制作所 | 车辆行驶控制装置 |
US6728722B1 (en) | 2000-08-28 | 2004-04-27 | Sun Microsystems, Inc. | General data structure for describing logical data spaces |
US20030020954A1 (en) | 2001-07-26 | 2003-01-30 | Charlie Udom | Versatile printing from portable electronic device |
GB0028890D0 (en) | 2000-11-27 | 2001-01-10 | Isis Innovation | Visual display screen arrangement |
US20030017417A1 (en) | 2001-07-23 | 2003-01-23 | Goodin Jonathan William | Method for obtaining a lithographic printing surface using a metal complex |
US6608629B2 (en) | 2001-03-16 | 2003-08-19 | Mitsubishi Electric Research Laboratories, Inc. | Distance based constraints for adaptively sampled distance fields |
TW502210B (en) * | 2001-04-19 | 2002-09-11 | Asustek Comp Inc | Computer system capable of switching operating system |
US6961941B1 (en) | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
US7173627B2 (en) | 2001-06-29 | 2007-02-06 | Intel Corporation | Apparatus, method and system with a graphics-rendering engine having a graphics context manager |
US8933949B2 (en) | 2010-10-01 | 2015-01-13 | Z124 | User interaction across cross-environment applications through an extended graphics context |
US8819705B2 (en) | 2010-10-01 | 2014-08-26 | Z124 | User interaction support across cross-environment applications |
US9047102B2 (en) | 2010-10-01 | 2015-06-02 | Z124 | Instant remote rendering |
US20130024778A1 (en) | 2011-07-13 | 2013-01-24 | Z124 | Dynamic cross-environment application configuration/orientation |
US8726294B2 (en) | 2010-10-01 | 2014-05-13 | Z124 | Cross-environment communication using application space API |
US20130024812A1 (en) | 2011-07-13 | 2013-01-24 | Z124 | Foreground/background assortment of hidden windows |
US8966379B2 (en) | 2010-10-01 | 2015-02-24 | Z124 | Dynamic cross-environment application configuration/orientation in an active user environment |
US9026709B2 (en) | 2010-10-01 | 2015-05-05 | Z124 | Auto-waking of a suspended OS in a dockable system |
US6970173B2 (en) | 2001-09-14 | 2005-11-29 | Ati Technologies, Inc. | System for providing multiple display support and method thereof |
CN1282924C (zh) | 2001-10-17 | 2006-11-01 | Bep技术公司 | 通过操作系统进行通信的方法 |
US20030079205A1 (en) | 2001-10-22 | 2003-04-24 | Takeshi Miyao | System and method for managing operating systems |
JP2003196096A (ja) * | 2001-12-07 | 2003-07-11 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、その起動制御方法及びプログラム |
US20030115443A1 (en) | 2001-12-18 | 2003-06-19 | Cepulis Darren J. | Multi-O/S system and pre-O/S boot technique for partitioning resources and loading multiple operating systems thereon |
US7143417B2 (en) | 2002-01-10 | 2006-11-28 | International Business Machines Corporation | Notification services within a unified communications service |
CN1610874A (zh) | 2002-03-08 | 2005-04-27 | 三菱电机株式会社 | 移动通信装置、移动通信装置的显示控制方法及其程序 |
US20030226116A1 (en) | 2002-03-08 | 2003-12-04 | Katie Kuwata | Method and system for implementing a historical buffer |
US20030179541A1 (en) | 2002-03-21 | 2003-09-25 | Peter Sullivan | Double screen portable computer |
FR2840082B1 (fr) * | 2002-05-24 | 2006-04-07 | Bull Sa | Procede d'echange d'informations entre systemes d'exploitation cohabitant sur un meme ordinateur |
GB2394799B (en) | 2002-07-31 | 2006-01-25 | Hewlett Packard Co | Improvements relating to mobile printing |
US20070022155A1 (en) | 2002-08-22 | 2007-01-25 | Owens David H | Method and system for integrating enterprise software applications with desktop software applications |
WO2004028010A1 (en) | 2002-09-17 | 2004-04-01 | Si Han Kim | Multi display device |
US7176943B2 (en) | 2002-10-08 | 2007-02-13 | Microsoft Corporation | Intelligent windows bumping method and system |
CN1262921C (zh) * | 2002-12-27 | 2006-07-05 | 联想(北京)有限公司 | 一种计算机操作系统的启动方法 |
US8508643B2 (en) | 2003-01-17 | 2013-08-13 | Hewlett-Packard Development Company, L.P. | Method and system for processing an image |
US7266774B2 (en) | 2003-01-23 | 2007-09-04 | International Business Machines Corporation | Implementing a second computer system as an interface for first computer system |
US6990573B2 (en) * | 2003-02-05 | 2006-01-24 | Dell Products L.P. | System and method for sharing storage to boot multiple servers |
US7461080B1 (en) * | 2003-05-09 | 2008-12-02 | Sun Microsystems, Inc. | System logging within operating system partitions using log device nodes that are access points to a log driver |
US7389512B2 (en) | 2003-05-09 | 2008-06-17 | Sun Microsystems, Inc. | Interprocess communication within operating system partitions |
US7167974B2 (en) * | 2003-05-19 | 2007-01-23 | Hewlett-Packard Development Company, L.P. | Multiple saved kernel configurations |
EP1503286B1 (en) * | 2003-07-30 | 2014-09-03 | Jaluna SA | Multiple operating system networking |
US7152186B2 (en) | 2003-08-04 | 2006-12-19 | Arm Limited | Cross-triggering of processing devices |
US7808549B2 (en) | 2003-08-21 | 2010-10-05 | Alps Electric Co., Ltd. | Electronic device |
US7181251B2 (en) | 2003-10-22 | 2007-02-20 | Nokia Corporation | Mobile communication terminal with multi orientation user interface |
TW200525421A (en) | 2004-01-30 | 2005-08-01 | Intervideo Digital Technology Corp | Structure of shared application program in operating system and method thereof |
US7483991B2 (en) | 2004-03-25 | 2009-01-27 | Microsoft Corporation | Instant messaging communications channel for transporting data between objects executing within a managed code environment |
JP2005305867A (ja) | 2004-04-22 | 2005-11-04 | Seiko Epson Corp | 画像処理システム、画像表示装置、プリンタおよび印刷方法 |
US7478204B2 (en) | 2004-04-29 | 2009-01-13 | International Business Machines Corporation | Efficient sharing of memory between applications running under different operating systems on a shared hardware system |
US20060031572A1 (en) | 2004-05-18 | 2006-02-09 | Microsoft Corporation | Event broker |
WO2005119404A1 (en) | 2004-06-01 | 2005-12-15 | Beech Technology Incorporated | Portable, folding and separable multi-display computing system |
JP2005346244A (ja) | 2004-06-01 | 2005-12-15 | Nec Corp | 情報表示装置及びその操作方法 |
KR100578592B1 (ko) * | 2004-06-23 | 2006-05-12 | 공정배 | 서버/클라이언트 기반에서 온라인 이기종 운영 체제 제공 시스템 및 방법 |
US7996785B2 (en) | 2004-06-30 | 2011-08-09 | Microsoft Corporation | Systems and methods for integrating application windows in a virtual machine environment |
CN100576175C (zh) * | 2004-07-06 | 2009-12-30 | 茵姆拜迪欧有限公司 | 用于多个内核的并行执行的方法和系统 |
US7424601B2 (en) * | 2004-07-07 | 2008-09-09 | Yongyong Xu | Methods and systems for running multiple operating systems in a single mobile device |
US20060058658A1 (en) * | 2004-09-13 | 2006-03-16 | Siemens Medical Solutions Usa, Inc. | Communications between co-located operating systems for medical diagnostic ultrasound and other systems |
EP1860522A3 (en) | 2004-09-21 | 2008-07-02 | Nokia Corporation | Foldable electronic device |
US20060082581A1 (en) | 2004-10-14 | 2006-04-20 | Microsoft Corporation | Encoding for remoting graphics to decoder device |
EP1811750A4 (en) | 2004-11-09 | 2009-07-08 | Sharp Kk | PORTABLE INFORMATION TERMINAL |
US7290114B2 (en) | 2004-11-17 | 2007-10-30 | Intel Corporation | Sharing data in a user virtual address range with a kernel virtual address range |
US20060111921A1 (en) | 2004-11-23 | 2006-05-25 | Hung-Yang Chang | Method and apparatus of on demand business activity management using business performance management loops |
EP1662760A1 (en) | 2004-11-30 | 2006-05-31 | Sony Ericsson Mobile Communications AB | Method for providing alerts in a mobile device and mobile device therefor |
JP4738805B2 (ja) | 2004-12-16 | 2011-08-03 | 株式会社リコー | 画面共有システム、画面共有方法、画面共有プログラム |
US20060139862A1 (en) | 2004-12-23 | 2006-06-29 | Yajun Wang | Hinged electronic device with hinged screen |
KR100616157B1 (ko) | 2005-01-11 | 2006-08-28 | 와이더댄 주식회사 | 애플리케이션 연동 방법 및 그 시스템 |
TWI267752B (en) * | 2005-01-17 | 2006-12-01 | Lite On Technology Corp | Multi-mode computer system and operating method thereof |
US20060183505A1 (en) | 2005-02-15 | 2006-08-17 | Willrich Scott Consulting Group, Inc. | Digital mobile planner |
US7289084B2 (en) | 2005-02-22 | 2007-10-30 | John Michael Lesniak | Computer display apparatus |
GB0504326D0 (en) | 2005-03-02 | 2005-04-06 | Symbian Software Ltd | Dual mode operating system for a computing device |
US20060248471A1 (en) | 2005-04-29 | 2006-11-02 | Microsoft Corporation | System and method for providing a window management mode |
US7565535B2 (en) | 2005-05-06 | 2009-07-21 | Microsoft Corporation | Systems and methods for demonstrating authenticity of a virtual machine using a security image |
US8195624B2 (en) | 2005-06-30 | 2012-06-05 | Phoenix Technologies Ltd. | Shared file system management between independent operating systems |
US7950008B2 (en) | 2005-07-06 | 2011-05-24 | International Business Machines Corporation | Software installation in multiple operating systems |
US7870558B2 (en) | 2005-07-15 | 2011-01-11 | Microsoft Corporation | Handle passing using an inter-process communication |
US20070050765A1 (en) * | 2005-08-30 | 2007-03-01 | Geisinger Nile J | Programming language abstractions for creating and controlling virtual computers, operating systems and networks |
US20070050770A1 (en) * | 2005-08-30 | 2007-03-01 | Geisinger Nile J | Method and apparatus for uniformly integrating operating system resources |
US20070067769A1 (en) | 2005-08-30 | 2007-03-22 | Geisinger Nile J | Method and apparatus for providing cross-platform hardware support for computer platforms |
US20070283324A1 (en) * | 2005-08-30 | 2007-12-06 | Geisinger Nile J | System and method for creating programs that comprise several execution layers |
US20070074191A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Software executables having virtual hardware, operating systems, and networks |
US20070074192A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Computing platform having transparent access to resources of a host platform |
US20070050751A1 (en) | 2005-08-31 | 2007-03-01 | Microsoft Corporation | Automatic interoperation with legacy POS service and control objects |
US7844301B2 (en) | 2005-10-14 | 2010-11-30 | Lg Electronics Inc. | Method for displaying multimedia contents and mobile communications terminal capable of implementing the same |
US9189291B2 (en) * | 2005-12-12 | 2015-11-17 | International Business Machines Corporation | Sharing a kernel of an operating system among logical partitions |
US20070136356A1 (en) | 2005-12-12 | 2007-06-14 | Microsoft Corporation | Mechanism for drivers to create alternate namespaces |
US8140997B2 (en) | 2005-12-26 | 2012-03-20 | International Business Machines Corporation | Manipulating display of multiple display objects |
KR20070082691A (ko) * | 2006-02-17 | 2007-08-22 | 삼성전자주식회사 | 디지털 멀티미디어 장치 |
JP2007226413A (ja) * | 2006-02-22 | 2007-09-06 | Hitachi Ltd | メモリダンプ方法、メモリダンププログラム、及び、計算機システム |
US7595810B2 (en) * | 2006-03-22 | 2009-09-29 | Apple Inc. | Methods of manipulating a screen space of a display device |
FR2899755B1 (fr) | 2006-04-10 | 2008-10-10 | Streamezzo Sa | Procede de restitution adaptative d'au moins un contenu multimedia sur un dispositif de visualisation orientable d'un terminal |
US20090278806A1 (en) | 2008-05-06 | 2009-11-12 | Matias Gonzalo Duarte | Extended touch-sensitive control area for electronic device |
US7987432B1 (en) * | 2006-04-25 | 2011-07-26 | Parallels Holdings, Ltd. | Seamless integration and installation of non-native application into native operating system |
US20080282181A1 (en) | 2006-05-02 | 2008-11-13 | Siemens Medical Solutions Usa, Inc. | Executable Application Configuration Information Processing System |
KR100772875B1 (ko) | 2006-05-22 | 2007-11-02 | 삼성전자주식회사 | 사용자 선호도에 따른 사용자 인터페이스를 설정하는 장치및 그 방법 |
US9201703B2 (en) | 2006-06-07 | 2015-12-01 | International Business Machines Corporation | Sharing kernel services among kernels |
US7880728B2 (en) | 2006-06-29 | 2011-02-01 | Microsoft Corporation | Application switching via a touch screen interface |
US20080024388A1 (en) | 2006-07-29 | 2008-01-31 | Oscar Bruce | Two-sided display monitor apparatus |
US9019300B2 (en) | 2006-08-04 | 2015-04-28 | Apple Inc. | Framework for graphics animation and compositing operations |
KR100811794B1 (ko) | 2006-10-12 | 2008-03-10 | 삼성전자주식회사 | 휴대단말기의 블루투스 기능을 이용하여 프린터를 제어하는방법 |
JP4933304B2 (ja) | 2006-10-16 | 2012-05-16 | キヤノン株式会社 | 画像処理装置、その制御方法及びプログラム |
CN101529364A (zh) | 2006-10-27 | 2009-09-09 | 诺基亚公司 | 用于促进三维图形用户界面内的移动的方法和装置 |
KR101144423B1 (ko) | 2006-11-16 | 2012-05-10 | 엘지전자 주식회사 | 휴대 단말기 및 휴대 단말기의 화면 표시 방법 |
US20080119731A1 (en) | 2006-11-20 | 2008-05-22 | North American Medical Corporation | Portable ultrasound with touch screen interface |
US8332866B2 (en) | 2006-11-29 | 2012-12-11 | Qualcomm Incorporated | Methods, systems, and apparatus for object invocation across protection domain boundaries |
US8839105B2 (en) | 2006-12-01 | 2014-09-16 | International Business Machines Corporation | Multi-display system and method supporting differing accesibility feature selection |
US20080155103A1 (en) | 2006-12-21 | 2008-06-26 | Kimberly Tekavec Bailey | AF UNIX Socket Across Systems in the Same Computer on Computer Systems that Support Multiple Operating System Images |
US20090197641A1 (en) * | 2008-02-06 | 2009-08-06 | Broadcom Corporation | Computing device with handheld and extended computing units |
JP5246388B2 (ja) | 2007-03-08 | 2013-07-24 | 日本電気株式会社 | 仮想装置構成システム、及びその方法 |
WO2008115012A1 (en) * | 2007-03-20 | 2008-09-25 | Sanggyu Lee | Movable virtual machine image |
US8789063B2 (en) | 2007-03-30 | 2014-07-22 | Microsoft Corporation | Master and subordinate operating system kernels for heterogeneous multiprocessor systems |
JP5596343B2 (ja) | 2007-04-13 | 2014-09-24 | 日本電気株式会社 | 仮想計算機システムおよびその最適化方法 |
US20100049775A1 (en) | 2007-04-26 | 2010-02-25 | Hewlett-Packard Development Company, L.P. | Method and System for Allocating Memory in a Computing Environment |
US8285259B2 (en) | 2007-05-29 | 2012-10-09 | Microsoft Corporation | Resource aggregation in an opportunistic network |
US8004493B2 (en) | 2007-06-08 | 2011-08-23 | Apple Inc. | Methods and systems for providing sensory information to devices and peripherals |
KR101320504B1 (ko) | 2007-07-10 | 2013-10-22 | 엘지전자 주식회사 | 휴대 단말기 |
US8458612B2 (en) | 2007-07-29 | 2013-06-04 | Hewlett-Packard Development Company, L.P. | Application management framework for web applications |
TWI362612B (en) * | 2007-09-05 | 2012-04-21 | Htc Corp | System and electronic device using multiple operating systems and operating method thereof |
WO2009039376A2 (en) * | 2007-09-20 | 2009-03-26 | C & S Operations, Inc. | Computer system with tunneling |
US9003173B2 (en) | 2007-09-28 | 2015-04-07 | Microsoft Technology Licensing, Llc | Multi-OS (operating system) boot via mobile device |
GB2454033A (en) | 2007-10-24 | 2009-04-29 | Plastic Logic Ltd | Portable paperless electronic printer |
US20090158299A1 (en) * | 2007-10-31 | 2009-06-18 | Carter Ernst B | System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed |
KR100883208B1 (ko) | 2007-12-13 | 2009-02-13 | 성균관대학교산학협력단 | 가상화 기술을 기반으로 하여 소프트웨어의 업데이트가가능한 이동통신 단말기 및 그 업데이트 방법 |
TWI358028B (en) | 2007-12-25 | 2012-02-11 | Htc Corp | Electronic device capable of transferring object b |
US20090176571A1 (en) | 2008-01-07 | 2009-07-09 | Ippasa, Llc | System for and method of operating video game system with control actuator-equipped stylus |
US7960945B1 (en) | 2008-01-30 | 2011-06-14 | Google Inc. | Estimating remaining use time of a mobile device |
AU2009209018B2 (en) | 2008-01-30 | 2014-03-20 | Google Llc | Notification of mobile device events |
US8151100B2 (en) * | 2008-02-06 | 2012-04-03 | Broadcom Corporation | Operating system for a computing device with handheld and extended computing units |
US20090196280A1 (en) * | 2008-02-06 | 2009-08-06 | Broadcom Corporation | Extension unit and handheld computing unit |
US8195860B2 (en) * | 2008-02-06 | 2012-06-05 | Broadcom Corporation | Computing device with handheld and extended computing devices |
US20090198798A1 (en) * | 2008-02-06 | 2009-08-06 | Broadcom Corporation | Handheld computing unit back-up system |
US8064952B2 (en) * | 2008-02-06 | 2011-11-22 | Broadcom Corporation | A/V control for a computing device with handheld and extended computing units |
US7895365B2 (en) * | 2008-02-06 | 2011-02-22 | Broadcom Corporation | File storage for a computing device with handheld and extended computing units |
US20090198989A1 (en) * | 2008-02-06 | 2009-08-06 | Broadcom Corporation | Bios for a computing device with handheld and extended computing units |
US7870321B2 (en) * | 2008-02-06 | 2011-01-11 | Broadcom Corporation | Extended computing unit with stand-alone application |
CN101520745B (zh) | 2008-02-27 | 2012-03-28 | 联想(北京)有限公司 | 数据处理设备及其状态切换方法 |
CN101526836A (zh) | 2008-03-03 | 2009-09-09 | 鸿富锦精密工业(深圳)有限公司 | 双屏笔记本电脑 |
US20100164836A1 (en) | 2008-03-11 | 2010-07-01 | Truview Digital, Inc. | Digital photo album, digital book, digital reader |
US7930328B2 (en) | 2008-03-31 | 2011-04-19 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system, and method for file system sharing |
EP2109080A1 (en) | 2008-04-09 | 2009-10-14 | IBBT vzw | A method and device for processing and presenting medical images |
US9286027B2 (en) | 2008-04-11 | 2016-03-15 | T-Mobile Usa, Inc. | Digital picture frame having communication capabilities |
US7949633B1 (en) | 2008-05-12 | 2011-05-24 | Adobe Systems Incorporated | Shared edit access of electronic content |
DE602008005865D1 (de) | 2008-05-29 | 2011-05-12 | Lg Electronics Inc | Transparente Anzeige und Betriebsverfahren dafür |
US8230180B2 (en) | 2008-06-11 | 2012-07-24 | Samsung Electronics Co., Ltd. | Shared memory burst communications |
WO2009152335A1 (en) | 2008-06-12 | 2009-12-17 | Estari Inc. | Dual screen display system |
US8359372B2 (en) | 2008-06-29 | 2013-01-22 | Microsoft Corporation | Automatic transfer of information through physical docking of devices |
US20090322690A1 (en) | 2008-06-30 | 2009-12-31 | Nokia Corporation | Screen display |
EP2309368A4 (en) | 2008-06-30 | 2013-05-01 | Nec Corp | INFORMATION PROCESSING DEVICE, DISPLAY CONTROL METHOD, AND RECORDING MEDIUM |
US20100007603A1 (en) | 2008-07-14 | 2010-01-14 | Sony Ericsson Mobile Communications Ab | Method and apparatus for controlling display orientation |
EP2309369B1 (en) | 2008-07-25 | 2016-09-28 | NEC Corporation | Information processing device, information processing program, and display control method |
US8191004B2 (en) | 2008-08-06 | 2012-05-29 | Microsoft Corporation | User feedback correlated to specific user interface or application features |
US20100046026A1 (en) | 2008-08-21 | 2010-02-25 | Samsung Electronics Co., Ltd. | Image forming apparatus and image forming method |
US8613394B2 (en) | 2008-08-29 | 2013-12-24 | The Invention Science Fund I, Llc | Bendable electronic interface external control system and method |
US8860632B2 (en) | 2008-09-08 | 2014-10-14 | Qualcomm Incorporated | Multi-panel device with configurable interface |
US9009984B2 (en) | 2008-09-08 | 2015-04-21 | Qualcomm Incorporated | Multi-panel electronic device |
US8933874B2 (en) | 2008-09-08 | 2015-01-13 | Patrik N. Lundqvist | Multi-panel electronic device |
US8866840B2 (en) | 2008-09-08 | 2014-10-21 | Qualcomm Incorporated | Sending a parameter based on screen size or screen resolution of a multi-panel electronic device to a server |
US8803816B2 (en) | 2008-09-08 | 2014-08-12 | Qualcomm Incorporated | Multi-fold mobile device with configurable interface |
US8165558B2 (en) * | 2008-09-08 | 2012-04-24 | Celio Technology Corporation | Client device for cellular telephone as server |
US8836611B2 (en) | 2008-09-08 | 2014-09-16 | Qualcomm Incorporated | Multi-panel device with configurable interface |
US20100060572A1 (en) * | 2008-09-11 | 2010-03-11 | Ely Tsern | Display device for interfacing with a handheld computer device that dynamically generates a different user environment for the display device |
US8896632B2 (en) | 2008-09-12 | 2014-11-25 | Qualcomm Incorporated | Orienting displayed elements relative to a user |
KR101501167B1 (ko) | 2008-10-20 | 2015-03-10 | 삼성전자주식회사 | 다중 모뎀을 구비한 이동통신 단말기에서 다중 운용 체제를운용하기 위한 장치 및 방법 |
JP4935796B2 (ja) | 2008-10-30 | 2012-05-23 | 富士ゼロックス株式会社 | 表示制御装置、画像形成装置及びプログラム |
US8352967B2 (en) | 2008-11-10 | 2013-01-08 | Google Inc. | Safe browser plugins using native code modules |
US9075457B2 (en) | 2008-12-12 | 2015-07-07 | Maxim Integrated Products, Inc. | System and method for interfacing applications processor to touchscreen display for reduced data transfer |
US7864524B2 (en) | 2008-12-24 | 2011-01-04 | Research In Motion Limited | Multiple-fold portable electronic device |
CN101770399B (zh) * | 2009-01-05 | 2014-04-23 | 联想(北京)有限公司 | 一种电子设备及切换其操作系统桌面的方法、装置 |
US8300022B2 (en) | 2009-01-09 | 2012-10-30 | International Business Machines Corporation | Dynamically reconfigurable touch screen displays |
KR101569776B1 (ko) | 2009-01-09 | 2015-11-19 | 삼성전자주식회사 | 접히는 표시부를 가지는 휴대 단말기 및 이의 운용 방법 |
KR20100083640A (ko) | 2009-01-14 | 2010-07-22 | 삼성전자주식회사 | 디스플레이 장치, 스캐너, 디스플레이 시스템 및 이를 이용한 디스플레이 방법 |
KR101608748B1 (ko) | 2009-02-18 | 2016-04-21 | 삼성전자주식회사 | 탈부착 가능한 서브 디스플레이부를 구비하는 휴대 단말기 |
US20100211769A1 (en) * | 2009-02-19 | 2010-08-19 | Subramonian Shankar | Concurrent Execution of a Smartphone Operating System and a Desktop Operating System |
US7987309B2 (en) * | 2009-02-26 | 2011-07-26 | Broadcom Corporation | Dockable handheld computing device with graphical user interface and methods for use therewith |
US8090890B2 (en) * | 2009-02-26 | 2012-01-03 | Broadcom Corporation | Dockable handheld computing device with video application and methods for use therewith |
US20100217835A1 (en) * | 2009-02-26 | 2010-08-26 | Broadcom Corporation | Dockable handheld computing device with file transfer and methods for use therewith |
US8355755B2 (en) | 2009-03-03 | 2013-01-15 | Lg Electronics Inc. | Mobile terminal |
US8446377B2 (en) | 2009-03-24 | 2013-05-21 | Microsoft Corporation | Dual screen portable touch sensitive computing system |
US20100251233A1 (en) | 2009-03-25 | 2010-09-30 | Honeywell International Inc. | Embedded computing system user interface emulated on a separate computing device |
US8707061B2 (en) * | 2009-03-27 | 2014-04-22 | Qualcomm Incorporated | System and method of providing scalable computing between a portable computing device and a portable computing device docking station |
US8194001B2 (en) | 2009-03-27 | 2012-06-05 | Microsoft Corporation | Mobile computer device display postures |
US8630088B2 (en) * | 2009-03-27 | 2014-01-14 | Qualcomm Incorporated | Portable docking station for a portable computing device |
US7864517B2 (en) | 2009-03-30 | 2011-01-04 | Microsoft Corporation | Mobile computer device binding feedback |
US8776088B2 (en) * | 2009-03-30 | 2014-07-08 | Microsoft Corporation | Operating system distributed over heterogeneous platforms |
CN102369504B (zh) | 2009-03-31 | 2016-10-26 | 日本电气株式会社 | 便携终端装置、其控制程序以及多个显示画面的控制方法 |
TWI400652B (zh) | 2009-06-11 | 2013-07-01 | Insyde Software Corp | Dual operating system parallel processing methods, recording media and computer program products |
US20100321275A1 (en) | 2009-06-18 | 2010-12-23 | Microsoft Corporation | Multiple display computing device with position-based operating modes |
US8839422B2 (en) | 2009-06-30 | 2014-09-16 | George Mason Research Foundation, Inc. | Virtual browsing environment |
US8868899B2 (en) | 2009-07-20 | 2014-10-21 | Motorola Mobility Llc | System and method for switching between environments in a multi-environment operating system |
US9389877B2 (en) | 2009-07-20 | 2016-07-12 | Google Technology Holdings LLC | Multi-environment operating system |
US9348633B2 (en) * | 2009-07-20 | 2016-05-24 | Google Technology Holdings LLC | Multi-environment operating system |
US9367331B2 (en) | 2009-07-20 | 2016-06-14 | Google Technology Holdings LLC | Multi-environment operating system |
US9372711B2 (en) | 2009-07-20 | 2016-06-21 | Google Technology Holdings LLC | System and method for initiating a multi-environment operating system |
US8847984B2 (en) | 2009-07-27 | 2014-09-30 | Disney Enterprises, Inc. | System and method for forming a composite image in a portable computing device having a dual screen display |
JP2011028673A (ja) | 2009-07-29 | 2011-02-10 | Kyocera Corp | 携帯端末装置 |
US20110102314A1 (en) | 2009-10-30 | 2011-05-05 | Xerox Corporation | Dual-screen electronic reader with tilt detection for page navigation |
US20110113329A1 (en) | 2009-11-09 | 2011-05-12 | Michael Pusateri | Multi-touch sensing device for use with radiological workstations and associated methods of use |
US8797268B2 (en) | 2009-11-18 | 2014-08-05 | Qualcomm Incorporated | Folding mobile device |
KR20110092802A (ko) | 2010-02-10 | 2011-08-18 | 삼성전자주식회사 | 복수개의 표시부를 가지는 단말기의 데이터 운용 방법 및 이를 지원하는 단말기 |
US9454304B2 (en) | 2010-02-25 | 2016-09-27 | Microsoft Technology Licensing, Llc | Multi-screen dual tap gesture |
US20110210922A1 (en) | 2010-02-26 | 2011-09-01 | Research In Motion Limited | Dual-screen mobile device |
JP5800501B2 (ja) | 2010-03-12 | 2015-10-28 | 任天堂株式会社 | 表示制御プログラム、表示制御装置、表示制御システム、及び、表示制御方法 |
US20110239142A1 (en) | 2010-03-25 | 2011-09-29 | Nokia Corporation | Method and apparatus for providing content over multiple displays |
CN102918490B (zh) | 2010-04-01 | 2014-07-23 | 思杰系统有限公司 | 与在平板计算装置的虚拟桌面内显示的远程应用交互 |
US9213480B2 (en) | 2010-04-08 | 2015-12-15 | Nokia Technologies Oy | Method, apparatus and computer program product for joining the displays of multiple devices |
JP4865053B2 (ja) | 2010-04-22 | 2012-02-01 | 株式会社東芝 | 情報処理装置およびドラッグ制御方法 |
US8400564B2 (en) | 2010-05-03 | 2013-03-19 | Microsoft Corporation | Image capture |
US9851747B2 (en) | 2010-05-21 | 2017-12-26 | Peter G. Winsky | Electronic book reader with closely juxtaposed display screens |
US20110291964A1 (en) | 2010-06-01 | 2011-12-01 | Kno, Inc. | Apparatus and Method for Gesture Control of a Dual Panel Electronic Device |
US8954099B2 (en) | 2010-06-16 | 2015-02-10 | Qualcomm Incorporated | Layout design of proximity sensors to enable shortcuts |
US8589952B2 (en) * | 2010-06-30 | 2013-11-19 | Palm, Inc. | Dual operating system operation and configuration |
US20120005602A1 (en) | 2010-07-02 | 2012-01-05 | Nokia Corporation | Methods and apparatuses for facilitating task switching |
US8397245B2 (en) | 2010-07-12 | 2013-03-12 | International Business Machines Corporation | Managing loading and unloading of shared kernel extensions in isolated virtual space |
KR101688942B1 (ko) | 2010-09-03 | 2016-12-22 | 엘지전자 주식회사 | 다중 디스플레이에 기반한 사용자 인터페이스 제공 방법 및 이를 이용하는 이동 단말기 |
US8700987B2 (en) | 2010-09-09 | 2014-04-15 | Sony Corporation | Annotating E-books / E-magazines with application results and function calls |
US20120066624A1 (en) | 2010-09-13 | 2012-03-15 | Ati Technologies Ulc | Method and apparatus for controlling movement of graphical user interface objects |
US8724696B2 (en) | 2010-09-23 | 2014-05-13 | Vmware, Inc. | System and method for transmitting video and user interface elements |
CN107122168A (zh) | 2010-10-01 | 2017-09-01 | Z124 | 多操作系统 |
JP2013539137A (ja) | 2010-10-01 | 2013-10-17 | ゼット124 | ユーザインタフェースにおけるドラッグ移動ジェスチャ |
US20130312106A1 (en) | 2010-10-01 | 2013-11-21 | Z124 | Selective Remote Wipe |
US9430122B2 (en) | 2010-10-01 | 2016-08-30 | Z124 | Secondary single screen mode activation through off-screen gesture area activation |
US9405444B2 (en) | 2010-10-01 | 2016-08-02 | Z124 | User interface with independent drawer control |
US8761831B2 (en) | 2010-10-15 | 2014-06-24 | Z124 | Mirrored remote peripheral interface |
US8369893B2 (en) | 2010-12-31 | 2013-02-05 | Motorola Mobility Llc | Method and system for adapting mobile device to accommodate external display |
US20120176413A1 (en) | 2011-01-11 | 2012-07-12 | Qualcomm Incorporated | Methods and apparatuses for mobile device display mode selection based on motion direction |
US9354900B2 (en) | 2011-04-28 | 2016-05-31 | Google Technology Holdings LLC | Method and apparatus for presenting a window in a system having two operating system environments |
US20120278747A1 (en) | 2011-04-28 | 2012-11-01 | Motorola Mobility, Inc. | Method and apparatus for user interface in a system having two operating system environments |
US8810533B2 (en) | 2011-07-20 | 2014-08-19 | Z124 | Systems and methods for receiving gesture inputs spanning multiple input devices |
US9182935B2 (en) | 2011-09-27 | 2015-11-10 | Z124 | Secondary single screen mode activation through menu option |
DE112012004781T5 (de) | 2011-11-16 | 2014-08-07 | Flextronics Ap, Llc | Versicherungsverfolgung |
-
2011
- 2011-09-23 CN CN201710164946.5A patent/CN107122168A/zh active Pending
- 2011-09-23 CN CN201180057951.7A patent/CN103262057B/zh active Active
- 2011-09-23 WO PCT/US2011/053037 patent/WO2012044546A2/en active Application Filing
- 2011-09-23 EP EP20110829766 patent/EP2622462A4/en not_active Withdrawn
- 2011-09-23 WO PCT/US2011/052988 patent/WO2012044539A2/en active Application Filing
- 2011-09-23 WO PCT/US2011/053130 patent/WO2012044558A2/en active Application Filing
- 2011-09-23 CN CN201180057862.2A patent/CN103282875B/zh active Active
- 2011-09-23 WO PCT/US2011/053127 patent/WO2012044557A2/en active Application Filing
- 2011-09-23 EP EP11829775.3A patent/EP2622490B1/en active Active
- 2011-09-23 CN CN201180057432.0A patent/CN103229156B/zh active Active
- 2011-09-27 US US13/246,671 patent/US8963939B2/en active Active
- 2011-09-27 US US13/246,133 patent/US9049213B2/en active Active
- 2011-09-27 US US13/246,128 patent/US9060006B2/en active Active
- 2011-09-27 US US13/246,118 patent/US9077731B2/en active Active
- 2011-09-28 WO PCT/US2011/053665 patent/WO2012044676A2/en active Application Filing
- 2011-09-28 WO PCT/US2011/053585 patent/WO2012044645A2/en active Application Filing
- 2011-09-28 US US13/247,170 patent/US8957905B2/en active Active
- 2011-09-28 WO PCT/US2011/053691 patent/WO2012044687A2/en active Application Filing
- 2011-09-28 US US13/247,166 patent/US8683496B2/en active Active
- 2011-09-29 CN CN201180058005.4A patent/CN103329094B/zh active Active
- 2011-09-29 EP EP11829880.1A patent/EP2622464A4/en not_active Ceased
- 2011-09-29 WO PCT/US2011/054105 patent/WO2012044872A2/en active Application Filing
- 2011-09-29 BR BR112013007809A patent/BR112013007809A2/pt not_active IP Right Cessation
- 2011-09-29 WO PCT/US2011/053923 patent/WO2012044792A2/en active Application Filing
- 2011-09-29 MX MX2013003427A patent/MX2013003427A/es active IP Right Grant
- 2011-09-29 JP JP2013531845A patent/JP2013542515A/ja not_active Withdrawn
- 2011-09-29 WO PCT/US2011/053909 patent/WO2012044784A2/en active Application Filing
- 2011-09-30 US US13/250,764 patent/US9071625B2/en active Active
- 2011-10-03 WO PCT/US2011/054601 patent/WO2012045073A2/en active Application Filing
- 2011-10-03 US US13/251,427 patent/US9160796B2/en active Active
- 2011-10-03 WO PCT/US2011/054623 patent/WO2012045078A2/en active Application Filing
- 2011-10-03 US US13/251,434 patent/US8819180B2/en active Active
- 2011-10-03 CN CN201180057454.7A patent/CN103370689B/zh active Active
- 2011-10-03 WO PCT/US2011/054605 patent/WO2012045074A2/en active Application Filing
- 2011-10-03 CN CN201180057364.8A patent/CN103493010B/zh active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016035705A (ja) * | 2014-08-04 | 2016-03-17 | パナソニックIpマネジメント株式会社 | 表示装置、表示制御方法、及び表示制御プログラム |
JP2016035706A (ja) * | 2014-08-04 | 2016-03-17 | パナソニックIpマネジメント株式会社 | 表示装置、表示制御方法、及び表示制御プログラム |
JP2017027366A (ja) * | 2015-07-22 | 2017-02-02 | キヤノン株式会社 | 情報処理装置及びイベント管理方法 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8819705B2 (en) | User interaction support across cross-environment applications | |
US8683496B2 (en) | Cross-environment redirection | |
US9047102B2 (en) | Instant remote rendering | |
US8933949B2 (en) | User interaction across cross-environment applications through an extended graphics context | |
US10503344B2 (en) | Dynamic cross-environment application configuration/orientation | |
US8966379B2 (en) | Dynamic cross-environment application configuration/orientation in an active user environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20141202 |