(57)【特許請求の範囲】
【請求項１】
無線モバイルデバイスから、無線ネットワークを介して、前記無線モバイルデバイスからリモートに配置されたサーバへ、地理的な位置を識別する情報を提供するステップと、
それに応答して、前記サーバから、前記地理的な位置で地上レベル近くに配置されたイメージングデバイスによって取り込まれたデジタル画像の画像データを受け取るステップと、
前記無線モバイルデバイスのユーザに、前記地理的な位置の周辺の画像空間の一部を提示する第１の画像の少なくとも一部を表示するステップと、
前記無線モバイルデバイスが振られたことに対応する前記無線モバイルデバイスのヘッディングの変化を検出するステップと、
前記無線モバイルデバイスが振られたことに対応する前記無線モバイルデバイスの前記検出されたヘッディングの変化に自動的に従って、変化が、前記第１の画像の少なくとも一部から前記画像空間の第２の画像の表示へ前記画像空間において前進するように見えるように、前記第１の画像の少なくとも一部の表示を前記第２の画像の表示へ変化させるステップと
を含み、
前記第１の画像および前記第２の画像が、前記地理的な位置で地上レベル近くに配置された前記イメージングデバイスによって取り込まれた前記デジタル画像の一部であり、かつ、
前記第１の画像および前記第２の画像が、前記画像空間の異なる部分を提示するコンピュータ実施視覚ナビゲーション方法。
【請求項２】
前記画像空間は、複数の結合された画像ファイルからなる請求項1に記載の方法。
【請求項３】
ユーザから住所情報を受信するステップと、
前記住所情報を受信したことに応答して、前記住所の周辺の地図を表示するステップと、
前記地図上のユーザ選択結果に基づいて、地理的な位置を識別する前記情報を提供するステップと
をさらに含む請求項1に記載の方法。
【請求項４】
前記ユーザから検索クエリを受信するステップと、
前記検索クエリを前記住所情報に対応するものとして識別するステップと、
前記ユーザから前記住所情報を受信する前に、前記ユーザに前記住所情報を提示するステップと
をさらに含む請求項3に記載の方法。
【請求項５】
前記住所情報は、検索結果からのハイパーリンク内に符号化されたデータを含む請求項4に記載の方法。
【請求項６】
前記地理的な位置は、前記無線モバイルデバイスの現在位置と異なる請求項1に記載の方法。
【請求項７】
1つまたは複数の機械にオペレーションを実行させるように動作可能なプログラムコードを格納するコンピュータ可読記憶媒体であって、前記オペレーションは、
無線モバイルデバイスから、前記無線モバイルデバイスからリモートに配置されたサーバへ、地理的な位置を識別する情報を提供するステップと、
それに応答して、前記サーバから、前記地理的な位置で地上レベル近くに配置されたイメージングデバイスによって取り込まれたデジタル画像の画像データを受け取るステップと、
前記無線モバイルデバイスのユーザに、前記地理的な位置の周辺の画像空間の一部を提示する第１の画像の少なくとも一部を表示するステップと、
前記無線モバイルデバイスが振られたことに対応する前記無線モバイルデバイスのヘッディングの変化を検出するステップと、
前記無線モバイルデバイスが振られたことに対応する前記無線モバイルデバイスの前記検出されたヘッディングの変化に自動的に従って、変化が、前記第１の画像の少なくとも一部から前記画像空間の第２の画像の表示へ前記画像空間において前進するように見えるように、前記第１の画像の少なくとも一部の表示を前記第２の画像の表示へ変化させるステップと
を含み、
前記第１の画像および前記第２の画像が、前記地理的な位置で地上レベル近くに配置された前記イメージングデバイスによって取り込まれた前記デジタル画像の一部であり、かつ、
前記第１の画像および前記第２の画像が、前記画像空間の異なる部分を提示する、コンピュータ可読記憶媒体。
【請求項８】
前記オペレーションは、
ユーザから住所情報を受信するステップと、
前記住所情報を受信したことに応答して、前記住所の周辺の地図を表示するステップと、
前記地図上のユーザ選択結果に基づいて、地理的な位置を識別する前記情報を提供するステップと
をさらに含む請求項7に記載のコンピュータ可読記憶媒体。
【請求項９】
コンピュータ実施視覚ナビゲーションシステムであって、
無線モバイルコンピュータの配向方向を感知するためのコンパスモジュールと、
当該システムからリモートに配置されたサーバと通信して、前記サーバから地理的な位置の周辺の複数の画像を受信するための無線インターフェイスと、
前記コンパスモジュールを使用して前記無線モバイルコンピュータの前記配向方向を決定し、前記地理的な位置の周辺の画像を示す画像データを前記サーバから取得し、前記無線モバイルコンピュータの前記配向方向に対応する配向で当該システムのユーザによって識別される地理的な位置の周辺の画像空間の一部を提示する第１の画像を表示し、前記コンパスモジュールを使用して前記無線モバイルコンピュータが振られたことに対応する前記無線モバイルコンピュータの配向方向の変化を検出し、前記無線モバイルコンピュータが振られたことに対応する前記検出された配向方向の変化に自動的に従って、変化が、前記第１の画像の表示から前記ユーザによって識別される地理的な位置の周辺の画像空間の一部を提示する前記画像空間の第２の画像の表示へ前記画像空間において前進するように見えるように、前記第１の画像の表示を前記第２の画像の表示へ変化させるための命令を有するコードを格納するメモリと通信するプロセッサと
を備え、
前記第１の画像および前記第２の画像が、前記ユーザによって識別される前記地理的な位置で地上レベル近くに配置されたイメージングデバイスによって取り込まれ、かつ、
前記第１の画像および前記第２の画像が、前記画像空間の異なる部分を提示する、コンピュータ実施視覚ナビゲーションシステム。
【請求項１０】
前記コードは、前記コンパスモジュールによって感知されたコンパス読み取り値に従って、前記地理的な位置の周辺で表示を横方向にパンするための命令を含む請求項9に記載のコンピュータ実施視覚ナビゲーションシステム。
【請求項１１】
コンピュータ実施視覚ナビゲーションシステムであって、
無線モバイルコンピュータの配向方向を感知するためのコンパスモジュールと、
当該システムからリモートに配置されたサーバと通信して、前記サーバから地理的な位置の周辺の複数の画像を受信するための無線インターフェイスと、
地理的な位置の周辺の画像空間の一部を提示する第１の画像を表示し、かつ、前記無線モバイルコンピュータの振動に対応する前記コンパスモジュールによって検出された配向方向の変化に自動的に従って、変化が、前記第１の画像の表示から前記画像空間の一部を提示する第２の画像の表示へ前進するように見えるように、前記第２の画像へ変化させるための手段と
を備え、
前記第１の画像および前記第２の画像が、前記地理的な位置で地上レベル近くに配置されたイメージングデバイスによって取り込まれ、かつ、
前記第１の画像および前記第２の画像が、前記画像空間の異なる部分を提示する、コンピュータ実施視覚ナビゲーションシステム。
【請求項１２】
コンピュータ実施視覚ナビゲーション法であって、
無線モバイルデバイスから、無線ネットワークを介して、前記無線モバイルデバイスからリモートに配置されたサーバへ、地理的な位置を識別する情報を提供するステップと、
それに応答して、前記サーバから、前記地理的な位置で地上レベル近くに配置されたイメージングデバイスによって取り込まれたデジタル画像の画像データを受け取るステップと、
前記無線モバイルデバイスのユーザに、前記地理的な位置の周辺の画像空間の一部を提示する第１の画像の少なくとも一部を表示するステップと、
前記無線モバイルデバイスの振動に対応する前記無線モバイルデバイスのヘッディングの変化を検出するステップと、
前記無線モバイルデバイスの振動に対応する前記無線モバイルデバイスの前記検出されたヘッディングの変化に自動的に従って、変化が、前記第１の画像の表示から前記画像空間の第２の画像の表示へ前記画像空間において前進するように見えるように、前記第１の画像の表示を前記第２の画像の表示へ変化させる前記画像空間を自動的にパンするステップと、
前記検出されたヘッディングの変化に応答して、パニングコントロールを自動的に生成するステップと、
前記パニングコントロールへのユーザ入力を受け取り、前記画像空間のパニングを行うステップと
を含み、
前記第１の画像および前記第２の画像が、前記地理的な位置で地上レベル近くに配置された前記イメージングデバイスによって取り込まれた前記デジタル画像の一部であり、かつ、
前記第１の画像および前記第２の画像が、前記画像空間の異なる部分を提示する、コンピュータ実施視覚ナビゲーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、内容全体が参照により本明細書に組み込まれている、2008年5月28日に出願した米国特許出願第61/056,823号の米国特許法第119条(e)項に基づく優先権を主張するものである。
【０００２】
本明細書は、グラフィック表示要素およびコントロールを生成するためのシステムおよび技術に関する。
【背景技術】
【０００３】
人々は、電子デバイス（コンピュータ、電話、音楽プレーヤなど）を傍らに何時間も過ごす。人々は、直感的に使えて、しかも機械の動作の仕方に関して期待に最もよくかなうインタラクションを実現するデバイスを最も好む。人々は、デバイスからの入力および出力を通じて電子機器とのインタラクションを行うが、その場合、出力は、一般的に音声および/またはフラットパネルのグラフィックディスプレイを使用して行われ、入力は、タッチスクリーン、ジョイスティック、マウス、4方向キーパッド、および他のそのような入力メカニズムを介して行うことができる。
【０００４】
モバイルデバイスの機能が向上するにつれ、ユーザがアイテムのリスト、地図、画像などのグラフィックオブジェクトを使用することによってモバイルデバイスとのインタラクションを行うことが多くなってきている。このようなオブジェクトによって表される情報は、膨大で非常に大きなものとなる可能性があるが(例えば、米国の詳細地図は数マイルの幅となる)、モバイルデバイス上の表示は非常に小さい。その結果、ユーザにとって十分に詳しい(例えば、オブジェクトの一領域を拡大することによって)グラフィック情報を提供しつつ、ユーザに空間感覚を与え、ユーザがその空間全体にわたって直観的に移動できるようにすることは手強い課題である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第61/056,823号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本明細書では、タッチスクリーンのユーザインターフェイスを備える携帯電話などのコンピューティングデバイスのユーザとのインタラクションを行うために使用できるシステムおよび技術について説明する。一般に、これらの技術は、2つまたはそれ以上の方向で多次元空間内を動き回るための入力に対し特定の仕方で反応することができる。特に、ユーザがリスト内のスクロールまたは地図もしくは画像内のパニングなどによって空間内でパンをする意図を指示した場合、これらの技術は、その空間が大きな空間である(例えば、デバイスのディスプレイの数倍の大きさである)か否かを判定することができ、かつ、空間内のパニングを素早く行えるようにする目に付くが、目障りでないグラフィックコントロール要素を表示することができる。コントロール要素は、例えば、ユーザがタッチスクリーン入力を使用して大きな空間内でパニングを開始するときに必ずディスプレイの縁にそって自動的に生成されるスクロールバーであってもよい。
【課題を解決するための手段】
【０００７】
いくつかの実装では、このようなシステムおよび技術は、1つまたは複数の利点を持ちうる。例えば、デバイスのユーザは、加速パニングコントロールを使用すれば1回の指入力で空間全体にわたって移動することができるため、広い空間内をナビゲートする(さもなければ、タッチスクリーンの表面上で指を繰り返しドラッグしければならないこともある)際に時間を節約することができる。また、ユーザには文脈に応じた表示(より広い空間内のどこに現在置かれているかをユーザに示す)がもたらされる。例えば、スクローリングコントロールを、ディスプレイの縁にそった、その空間内のユーザの現在位置を反映する特定の位置に配置することができる(つまり、ユーザがその空間の最上部近くにいる場合にこのコントロールは画面の最上部にあるものとしてよい)。このようにすると、ユーザとユーザのデバイスとのインタラクションは、より効率的で、より楽しめるものとなり、ユーザは、自分のデバイス上で特定のアプリケーションを使用する機会が多くなり、またその特定のデバイスを購入する可能性も高くなる。
【０００８】
一実装では、コンピュータ実施視覚ナビゲーション方法が開示される。この方法は、無線モバイルデバイスから、公衆無線ネットワークを介して無線モバイルデバイスからリモートに配置されているサーバへ、地理的な位置を識別する情報を提供するステップを含む。この方法はまた、それに応答して、サーバから、その地理的な位置の場所から取り込まれたデジタル画像の画像データを受け取るステップと、画像データをモバイルデバイスのユーザにその地理的な位置の周辺の画像空間の画像として表示するステップと、ユーザが無線モバイルデバイスを動かしたことに応答して画像空間内で画像を自動的にパンするステップとを含む。画像をパンするステップは、ユーザが無線モバイルデバイスを振ったことに応答して画像空間内を前進するステップを含むことができる。また、画像をパンするステップは、無線モバイルデバイスによって感知されたコンパス読み取り値に応じて地理的な位置の周辺で画像を横方向にパンするステップを含むことができる。この方法は、無線モバイルデバイスによって感知されたコンパス読み取り値を地理的な位置のコンパス方向に一致させるステップも含むことができる。
【０００９】
いくつかの態様において、画像は複数の連結された画像ファイルからなる。さらに、画像をパンするステップは、無線モバイルデバイスによって感知された加速度計測定値に応答して画像を上下にパンするステップを含むことができる。画像データは、ストリートビュー画像データと実質的に類似のものとしてもよい。それに加えて、この方法は、ユーザから住所情報を受信するステップと、住所情報を受信したことに応答してその住所の周辺の地図を表示するステップと、地図上のユーザ選択結果に基づいて地理的な位置を識別する情報を提供するステップとをさらに含みうる。この方法は、ユーザから検索クエリを受信するステップと、その検索クエリを住所情報に対応するものとして識別するステップと、ユーザから住所情報を受信する前にユーザに住所情報を提示するステップとをさらに含むことができる。住所情報は、検索結果からのハイパーリンク内に符号化されたデータを含むことができる。また、地理的な位置は、無線モバイルデバイスの現在位置と異なる可能性がある。
【００１０】
他の実装では、プログラムコードを格納する有形なコンピュータ可読データ記憶媒体を備える物品が開示されている。これは、1つまたは複数の機械にオペレーションを実行させるように動作可能なものとすることが可能であり、これらのオペレーションは、無線モバイルデバイスから、無線モバイルデバイスからリモートに配置されているサーバへ、地理的な位置を識別する情報を提供するステップと、それに応答して、サーバから、地理的な位置の周辺のアイテムを表す画像データを受信するステップと、その画像データをモバイルデバイスのユーザに地理的な位置の周辺の画像空間の画像として表示するステップと、ユーザが無線モバイルデバイスを動かすことに応答として画像空間内で画像を自動的にパンするステップとを含む。画像のパニングは、無線モバイルデバイスによって感知されたコンパス読み取り値に応じて地理的な位置の周辺で画像を横方向にパンするステップを含むことができる。他の態様では、画像をパンするステップは、無線モバイルデバイスによって感知されたコンパス読み取り値を地理的な位置のコンパス方向に一致させるステップを含む。
【００１１】
いくつかの態様において、これらのオペレーションは、ユーザから住所情報を受信するステップと、住所情報を受信したことに応答してその住所の周辺の地図を表示するステップと、地図上のユーザ選択結果に基づいて地理的な位置を識別する情報を提供するステップとをさらに含む。
【００１２】
さらに他の実装では、コンピュータ実施視覚ナビゲーションシステムが開示され、これは、無線モバイルコンピュータの配向方向(direction of orientation)を感知するためのコンパスモジュールと、当該システムからリモートに配置されているサーバと通信してサーバから地理的な位置の周辺の複数の画像を受信するための無線インターフェイスとを備える。このシステムは、コンパスモジュールを使用してデバイスの配向方向を決定し、地理的な位置の周辺の画像を示す画像データをサーバから取得し、無線モバイルコンピュータの配向方向に対応する配向で当該システムのユーザによって識別される地理的な位置に対応する1つまたは複数の画像を表示するための命令を有するコードを格納するメモリと通信するプロセッサも備える。コードは、無線モバイルコンピュータの配向方向の変化を感知し、無線モバイルコンピュータの配向方向の変化を画像と一致させるように無線モバイルコンピュータ上の画像の表示を変更するための命令をさらに有することができる。
【００１３】
他の態様では、このシステムは、無線モバイルコンピュータの運動(motion)を感知するための加速度計をさらに備え、コードは、無線モバイルコンピュータ上の画像の表示を変更するための命令をさらに有する。また、無線モバイルコンピュータの配向方向に対応する配向でこのシステムのユーザによって識別される地理的な位置に対応する1つまたは複数の画像を表示するためのコードは、コンパスモジュールによって感知されたコンパス読み取り値に応じて地理的な位置の周辺で表示を横方向にパンするためのコードを含むことができる。
【００１４】
他の実装では、無線モバイルコンピュータの配向方向を感知するためのコンパスモジュールと、システムからリモートに配置されているサーバと通信してサーバから地理的な位置の周辺の複数の画像を受信するための無線インターフェイスと、サーバから取り出された画像を、コンパスモジュールによって感知された方向に対応する地理的な位置の周辺の方向に表示するための手段とを備えるコンピュータ実施視覚ナビゲーションシステムが開示される。
【００１５】
1つまたは複数の実施形態の詳細は、付属の図面および以下の説明で述べられる。他の特徴および利点は、説明および図面、ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１Ａ】広い表示空間向けのナビゲーションメカニズムを示す概念図である。
【図１Ｂ】広い表示空間向けのナビゲーションメカニズムを示す概念図である。
【図２Ａ】タッチスクリーンを有するモバイルデバイス上の長いリストをナビゲートするユーザのために生成されうる順次表示を示す図である。
【図２Ｂ】ユーザ向けに、モバイルデバイスの運動または位置に応じてモバイルデバイスによって生成されうる表示を示す図である。
【図２Ｃ】広い空間内においてパニングおよびズーミングを行うためのユーザインターフェイスを実現する技術の例示的な表示を示す図である。
【図３】タッチスクリーン入力に応答してユーザインタラクションを提供するシステムの概略図である。
【図４Ａ】グラフィカルユーザインターフェイスからユーザ選択を受け取るための例示的なプロセスの流れ図である。
【図４Ｂ】グラフィカルユーザインターフェイスからユーザ選択を受け取るための例示的なプロセスの流れ図である。
【図４Ｃ】モバイルデバイスの運動に応じて表示を更新するための例示的なプロセスの流れ図である。
【図４Ｄ】モバイルデバイスの運動に応じて表示を更新するための例示的なプロセスの流れ図である。
【図５】本明細書で説明されている通知技術の実施形態を実装する例示的なモバイルデバイスの概略表現である。
【図６】図5のデバイスの内部アーキテクチャを例示するブロック図である。
【図７】図5のデバイスによって使用されるオペレーティングシステムの例示的なコンポーネントを例示するブロック図である。
【図８】図7のオペレーティングシステムカーネルによって実装される例示的なプロセスを示すブロック図である。
【図９】本明細書で説明されている技術を実装するために使用されうるコンピュータデバイスおよびモバイルコンピュータデバイスの一例を示す図である。
【発明を実施するための形態】
【００１７】
さまざまな図面内の類似の参照記号は、類似の要素を示す。
【００１８】
本明細書では、モバイルデバイスとモバイルデバイスのユーザとのインタラクションを行うためのシステムおよび技術について説明する。例えば、ユーザに対して、広い仮想空間内のどこに位置するかをユーザに示すアイコンなどの形式のグラフィカルオブジェクトを表示することができ、かつ、その空間内で視覚的に移動するためにユーザが選択できるコントローラを備えることができる。例えば、空間がデジタルメディアプレーヤ上の再生リストに載っている楽曲のタイトルなどのアイテムの長いリストである場合、ユーザがスクロールを開始したときに比例するスクロールバーが画面の縁に表示されうる。ユーザが十分な量の、または十分な速度のスクロールを行うと、大きな文字が画面上に現れ、リストのスクロールにおいて現在置かれている位置にあるアルファベットの文字を表示することができる。したがって、リストが不鮮明であるとしても、ユーザは、とにかくそれらがどこにあるかを示す表示を得ることができる。ディスプレイ上に縦に並ぶ英字の位置は、アルファベット中のその位置に相当するものとしてよく、したがって、英字「A」は、ディスプレイの最上部に現れ、英字「Z」は、底部に現れる。スクロールバーは、ユーザがスクロールするときに外観を変更し、ユーザがさらにスクロールするときに大きくしたり、または他の何らかの形でより目立つようにしたりすることもできる。
【００１９】
他の例では、視覚空間の大部分を示すことが望ましいが、その空間の大部分をユーザに見えるようにするズームレベルで、視覚空間内のアイテムがユーザに完全には見えない場合、仮想拡大鏡の形態のオブジェクトを提供することができる。このようなオブジェクトは、空間の一部が実質的に拡大される画面上の一領域であってもよい。このようなオブジェクトは、例えば、ウェブ閲覧時に使用することができ、これにより、ユーザは、ウェブページのレイアウト全体を見渡すことができ、したがって、そのページの一部を素早く読み取るか、または他の何らかの形でより綿密にレビューすることができる。
【００２０】
さらに他の例では、視覚空間は、よく知られているGOOGLE STREETVIEW(登録商標)サービスで与えられるような、現実世界の中の一点における360度パノラマとすることができる。このようなパノラマは、共通点の近くに据え付けられ半径方向外向に向けられた複数台のカメラでデジタル画像を同時にまたはほぼ同時に撮像することによって生成できる。このような画像は、通常は、GOOGLE MAPSサービスなどを介して、デスクトップパーソナルコンピュータ上でナビゲートすることができる。ここに示されている例では、画像は、デバイス上に備えられているコンパスモジュール内のコンパスなどの、モバイルデバイスそれ自体に備えられている位置検出コンポーネントを使用することによって本質的にナビゲートすることができる。そのため、ユーザは、現在位置でも、異なる位置でもよい地理的な位置を選択することができ、次いで、自分のデバイス上で、現在面している（例えば、モバイルデバイスのコンパスによって決定された）方向に揃えられた位置からビューを表示することができる。ユーザがターンすると、モバイルデバイス上の画像は、ユーザ自身の前で、自分のデバイスを手に持っている場合に現在面している方向に、選択された位置からビューが一致するように変化する。
【００２１】
図1Aおよび1Bは、広い表示空間向けのナビゲーションメカニズムを示す概念図である。図1Aは、一般に、アイテムの長いリスト内のナビゲーションを示し、図1Bは、大きな地図上でのナビゲーションを示している。それぞれの図において、表示される領域(破線で示されている)は、一度に表示することができる領域(実線で示されている)より実質的に広い。したがって、ここでは、ユーザが最終的に所望の領域に達するまで表示しその後に表示しその後に表示しというように繰り返しパンするよりも便利な仕方でユーザが空間を横切るようにナビゲートするのを補助するメカニズムについて説明する。
【００２２】
次に図1Aの例を参照すると、モバイルデバイス上に格納されているアイテムのリスト108を含むグラフィックシステム102が示されている。これらのアイテムは、ユーザに関連する個人連絡先、ユーザのミュージックコレクション内の楽曲もしくは記録、デバイス上に格納されているさまざまなファイル、デバイス上で便利に再生することができるビデオファイル、またはリスト形式で表示可能なアイテムの他の適切なグループなどを含むことができる。個別のアイテム110を、アイテムを示すさまざまな情報とともにユーザに対して表示することができる。例えば、アイテムが連絡先である場合、表示される情報は、連絡先の名前および連絡先の電話番号を含むものとしてよい。アイテム110が、音楽グループであれば、システムは、音楽グループの画像または音楽グループに対するアルバムカバー、そのグループの名前、および楽曲、アルバム、またはそのグループに関する適切なその他の情報の名前を表示することができる。アイテム110が、複数のファイルからなるリスト内の1つのファイルである場合、システムは、ファイル名、ファイルのサイズ、およびファイルの最後に保存された日付を表示することができる。
【００２３】
ディスプレイ106は、リスト108の真ん中近くに重ね合わせて示されている。この例のディスプレイ106は、モバイルデバイスの典型的な縦長フォーマットのビデオ表示を表しており、対角線方向のサイズに関して約3から4インチであってもよい。ディスプレイ106は、実際にはリスト108上のウィンドウとして示され、ユーザがディスプレイ106を使って一度にリスト108のさまざまな異なる部分を見るためにリストをスクロールすることができることを表している。
【００２４】
そこで、概念的には、リスト108は、ディスプレイ106の下方で上下に移動し、ディスプレイ106は、リスト上へのウィンドウとして機能する。一実装では、リスト108が格納される仕方およびディスプレイ106がユーザに提示するためにリスト108からアイテムをフェッチしフォーマットする仕方は、標準的メカニズムに則ったものとすることができる。ディスプレイ106の上部および底部は陰影を持つように表示され、これにより、リスト108内のアイテムがディスプレイ106の上部および底部の近くで黒色にフェードして、ユーザがリストを上下にナビゲートするときにアイテムがまるでユーザによって巻き取られる三次元のリール上にあるような印象をユーザに与えるように示す。
【００２５】
ディスプレイ106は、タッチスクリーン構造の一部として一体化され、これにより、ユーザは、リストの上部で直観的にそれぞれ指を上または下へスライドさせることによってリスト108を上および下にドラッグすることができる。しかし、リスト108が非常に長い場合、ディスプレイ106上で指をスライドさせて、またはディスプレイ106上でフリックして、リスト108の上下のパニングに勢いを付けるのは、ユーザがその運動を何回も繰り返さなければならないため、そのようなパニングを行うには時間のかかる方法であると言ってよい。そこで、長いリスト108の端から端へのそのようなパニングを補助するために視覚コントロール112がディスプレイ106上に表示される。コントロール112は、デスクトップ生産性ソフトウェア(例えば、スプレッドシートおよびワードプロセッサ)などの、スクロールバーを使用する必要があるさまざまなアプリケーションからの、ユーザが慣れ親しんだスライダーボタンの形態を取りうる。コントロール112は、リスト108のサイドのスクロールバーに、またはリスト108内の要素上に視覚的に浮動状態になる要素として表示されうる。
【００２６】
コントロール112は、当技術分野でよく知られているように、リスト108が長い場合にコントロール112が短くなりうるという点で、つり合う形態を取りうる。このような状況では、コントロール112では、ユーザはディスプレイ106内の所定の位置の上部または底部へコントロール112をドラッグすることによってリスト108の上部または底部に至ることができる。特に、より短いコントロール112は、リスト108が非常に長いリストである場合に比較的小さな領域がディスプレイ106によって表示されることを表すことができる。その結果、コントロール112の高さに等しいスパンを通るコントロール112のそれぞれの移動は、1つディスプレイ106上のリスト108の移動を近似することができる。言い換えると、コントロール112のユーザによる移動が等しければ、コントロール112が大きく、またリスト108が、したがって短いときと比べて、コントロール112が小さいときの方が、ディスプレイ106を横切るようなアイテムの移動の対応性がかなり高くなりうる。
【００２７】
コントロール112は、さまざまな他の形態も取りうる。例えば、コントロール112は、ディスプレイ106の真ん中の上に重ねるなど、ディスプレイ106の領域上の別の場所に配置することが可能である。しかし、いくつかの実装では、ユーザの指または他のポインタでディスプレイ106のコンテンツが遮られるのを回避するために、ディスプレイ106から可能な限り遠く離れた位置にコントロール112を配置することが好ましい場合がある。
【００２８】
コントロール112を特定の方向へ移動することで、実装にもよるが、ディスプレイ106上のリスト108の移動を同じ方向に、または反対の方向に行わせることができる。例えば、コントロール112を下方にドラッグすると、リスト108が下方へ視覚的にドラッグされ、したがって、おそらく加速リンケージの形態を取るとしても、ディスプレイ106がリストをよじ登り、またコントロール112がリスト108に直接付着するように見せかけることができる。あるいは、コントロール112を下へ移動すると、リスト108はディスプレイ106を通って上昇し、おそらく加速リンケージを使って、コントロール112がディスプレイ106に接続されている印象を残すようにできる。
【００２９】
図1Bは、大都市圏、ここでは、ミネアポリス・セントポールの大都市圏の地図中にウィンドウを載せる多数の例示的なディスプレイ114、116、118を示している。この例の地図104は、さまざまなディスプレイ114、116、118内のコンポーネントを明確に表せるように高度に簡素化されている。それぞれの場合において、ディスプレイ114、116、118は、一度に地図のごく一部しか表示されえず、したがって、タッチスクリーンを有しているモバイルデバイスなどの、デバイスのユーザ向けに地図104を横切って容易に、かつ直観的にパンすることを可能にするメカニズムを備える。
【００３０】
第1のディスプレイ114では、モバイルデバイスのユーザは南西都市部内のゾーンを表示している。ディスプレイ114は、ディスプレイ114上の地図の表面に4頭矢印114aを生成することを示している。ユーザは、矢印114aを上、または下、または横へドラッグして、地図104の周辺でパンする意図があることを指示することができる。一例において、矢印114aが表示される前にユーザがパンする(例えば、地図を横切るように指をドラッグする)と、ディスプレイ114は大都市圏上で一方向に数マイルしか移動できない。対照的に、4頭矢印114aが表示された後では、ユーザは、矢印114aをディスプレイの右上コーナーにドラッグして、大都市圏の北東ゾーンにおいて、地図104の右上コーナーにディスプレイ114を移動させることができる。他のこのような誇張された、または加速された運動も、矢印114aの操作によって行うことができる。
【００３１】
ディスプレイ114は、地図領域全体の小さな概要地図114bも含む。地図114bは、慣れ親しんだ構成をとり、現在のズームレベルでユーザから利用可能な地図化領域全体を表す大きなボックスと、ユーザの現在のディスプレイ114を表すより小さなボックスを示し、これにより、ユーザは、より大きな地図内の他の場所に関して自分の位置を容易に識別することができる。地図104からの大半の特徴は、地図114bの内側に表示することもできるけれども、地図114bが地図104よりもかなり小さいため、すべての特徴が表示されない可能性がある。
【００３２】
ディスプレイ116は、図1Aのスライダーコントロール112に似た仕方で動作するスライダーコントロール116a、116bを示している。特に、ディスプレイ116を与えられているユーザには、最初に、ディスプレイ116の全体を埋める地図情報しか表示されえない。ユーザが地図104を横切るようにディスプレイ116でパンし始めるか、または長距離をパンしたいことを示すためにフリックしてパンする場合、コントロール116a、116bが生成され、ユーザに対し表示されうる。次いで、ユーザは、コントロール116aをディスプレイ116の左または右までスライドすることによって地図104の左または右までパンすることができる。同様にして、コントロール116bをディスプレイ116の上部または底部までスライドすることによって地図104の上部または底部までディスプレイ116を移動することができる。このようにして、ユーザは、コントロール116a、116bを使用して地図104を横切る動作を加速することで地図104の周辺で素早く移動することができ、したがって、ディスプレイ116上で1回スワイプするだけで、ディスプレイ116は、ディスプレイ116内の地図上で直接、通常のパニング動作を行う場合に比べてかなり遠くまで移動することができ、しかもコントロール116a、116bを使用しない。
【００３３】
ディスプレイ118は、ディスプレイ114に示されているのと似たナビゲーションを行うが、地図104の上に表示される環状リングを備える。ディスプレイ118上のリング118aの位置は、地図104上のディスプレイ118の相対的位置を示す。特に、ここでは、ディスプレイ118は、地図104の上部近くの少し左寄りにあり、同様に、リング118aは、ディスプレイ118の上部近くの少し左寄りにある。次いで、ユーザは、リング118a上ではなく、ディスプレイ118の領域内で指をドラッグすることで、地図を端から端へゆっくりとパンすることができるか、または指をリング118a上に置いて、地図104を端から端へ素早くパンすることができる。
【００３４】
したがって、図1Aおよび1Bのメカニズムは、ユーザが広い仮想空間内で、空間が一次元であろうと二次元であろうとナビゲートできるようにするためのさまざまなメカニズムを示す。これらのメカニズムは、ユーザに対して、広い空間内の現在位置の感覚を与えるだけでなく、空間周りをパンするためにコンピューティングデバイスの制御をユーザに任せる選択可能な1つまたは複数のコントロールを表示することができる。ここに示されているメカニズムは、タッチスクリーンデバイスに対して特に有用であり、またより具体的にはタッチスクリーンを備えるモバイルデバイスにとって特に有用であるものと考えられる。
【００３５】
次に、アイテムの長いリストの表示を再び参照すると、図2Aには、タッチスクリーンを有するモバイルデバイス上の長いリストをナビゲートするユーザのために生成されうる順次表示200〜206を示している。この例では、リストは、概念上図1Aのリスト108と同様に示すことが可能である音楽グループまたは歌手のリストである。
【００３６】
ディスプレイ200は、7つの異なるグループを、グループ名、そのグループについてユーザのデバイス上に格納されているアルバムの個数、およびそれらのアルバムの楽曲の総数とともに表示する。それに加えて、グループ毎にグラフィックアイコンが示され、このアイコンは、単一のアルバムまたは複数のアルバムがそのグループについて利用可能であるか否かを示す。利用可能である場合、アルバムカバーの画像を手動でまたは自動でダウンロードすることができるか、またはそのアイコンに対して他の画像を挿入することができる。
【００３７】
この例では、ディスプレイ200の右縁にそってスライダーコントロール208が示されている。さらに詳しく上述されているように、また後述するように、スライダーコントロール208は、ディスプレイ200にディスプレイに200よりも大きいリストが表示される場合にいつでも表示されるか、または特定の文脈上の状況において(例えば、データの表現上でユーザが長くパンする意図を持つことを示すユーザによる特定のアクションが実行された後のみ)表示されうる。
【００３８】
ディスプレイ202は、画面上で描画されている小さなドットから描画されているより大きなドットとリングまで、上方へユーザがフリックするアクションを示している。ここで示されている特定のグラフィックは、典型的には、ディスプレイ202上には示されないが、代わりに、ディスプレイ202上の典型的なユーザ入力を示すためにここでは与えられる。フリック210が行われると、スライダーコントロールがまだ表示されていない状況において、ディスプレイ202上にスライダーコントロール212が生成されうる。この例では、ユーザは、リスト内のアルファベットの最上位に位置しており、したがって、スライダーコントロール212はディスプレイ202の最上部に示される。スライダーコントロール212のサイズは、ディスプレイ202上に示されているリストの長さに、一般的に比例するか、または反比例するものとしてよい。例えば、ここでは、スライダーコントロール212は、ディスプレイ202の高さの約1/10である。その結果、リストには約60のアーチストが含まれると結論することができる。コントロール212のサイズは、リストの長さに関係するが、必ずしもディスプレイ202に対して比例するサイズを有するわけではない。例えば、スライダーコントロール212に対する最小サイズを指定することができ、これにより、リストが数千個のエントリを含む場合であっても、スライダーコントロール212は、ユーザが十分に確認して、頻繁に誤ることなく選択できるくらいの大きさとなる。
【００３９】
ディスプレイ204は、フリック210を実行した結果である。特に、アーチストのリストは、上方へスクロールしており、さらに2文字下のアルファベットに留まっている。フリック210は2名のアーチストの距離のみにわたっているが、ディスプレイが数十人のアーチストをスクロールダウンしているので、この移動は勢いを伴うことに注意されたい。フリックの特定の速度により、当業者になじみのある仕方で、ユーザがフリックする可能性のある物理的な糸車または類似の物理的な物体のアクションを近似するためにスクロールされる距離を決定することができる。
【００４０】
それに加えて、コントロール212は、2つの関連する方法で変化して、コントロール214になる。第1に、コントロール214はスクロールコントロールであるため、その位置は、ユーザがディスプレイ202と比較してディスプレイ204内のリストのさらに下の方にいることを反映するように、コントロール212としてのその位置からわずかに下方に移動している。それに加えて、コントロール214は、コントロール212より目立ち、ユーザの注意を引きやすい。例えば、コントロール214は、その中央部のところが少し太く、膨らみ始めて、特定の文脈機能に関して選択できることをユーザに知らせる。
【００４１】
この例では、コントロール214は、アーチストのリストの上下へ加速パニングを実行するために使用されうる。例えば、コントロールを、ディスプレイ204のサイドをずっと下までドラッグすることができ、かつ、このような運動は、ディスプレイ上に現在示されているように5人のアーチストのみを範囲に含めるが、結果として、文字Zまで(おそらく数百人のアーチストを超えて)ずっと下にリストを移動させることができる。
【００４２】
コントロール214は、他の仕方でもより目立つようにできる。例えば、コントロール214は、コントロール214のサイズを増やす代わりに、またはコントロール214のサイズを増やすことに加えて、明るくすることも可能である。コントロール214は、ユーザがフリック210などの繰り返しフリックを実行すると引き伸ばされ、圧力が加わっているように見えるようにレンダリングすることもできる。このように、リストそれ自体の上での複数のフリックが、マニュアルフリックを何回も実行しなければならないのではなく、ユーザが本当に加速パニングによって利益を得ることを示すので、ユーザは、コントロール214を使用して加速パニングを実行することへのいっそうの緊急性を理解することができる。それに加えて、コントロール214の色は、ユーザがリストの表面にわたって1回または複数回フリックしたとき、およびコントロール214がディスプレイの縁を上昇、下降するときに変化し、これにより、コントロール214は、ユーザがコントロール214を必要としている可能性のある入力を行うときにユーザの目に付きやすくなる。
【００４３】
ディスプレイ206は、ディスプレイ206に至る矢印においてコントロール214の底部のドットで示されているようなコントロール214のユーザ選択の結果生じる変化を表す。コントロール216上のドットは、ユーザがコントロール216上で圧力を維持しており、ディスプレイ206上のリストをスクロールダウンしようとしていることを示す。このような選択で、コントロールを、再びコントロール214によって示されている形状からコントロール216によって示されている形状に変化させることができる。それに加えて、ユーザに対する付加的なガイドとなるように、リスト内のアイテムに対するインデックス文字が慣れ親しんだ仕方で示される。インデックス文字218は、リスト内の要素の個別グループ化を表し、ここでは、アルファベットの文字でディスプレイ206の上部に示されているアーチストの開始文字を表す。インデックス文字218は、デバイス上に格納されているファイルのサイズを表す数値、またはアイテムのリストを個別グループに分類するための他の指標などの他の形態も取りうる。
【００４４】
インデックス文字218は、さまざまな仕方で表示されうる。この例では、インデックス文字218は、アーチスト名を覆う仕方が最小になるようにディスプレイの縁の近くに配置されるが、インデックス文字218の下に位置するときであっても名前が見えるように部分的にまたは完全に透明にすることもできる。それに加えて、インデックス文字218は、コントロール216の移動とともにディスプレイ206上を上下に移動することができる。例えば、インデックス文字218は、ユーザが指をコントロール216上に置いたままであってもインデックス文字218をユーザが確認できるように十分な距離をとってコントロール206のすぐ左に固定することができる。しかし、インデックス文字218は、コントロール216とともにディスプレイ206のサイドの上および下に移動することができる。このような仕方で、閲覧しつつ、移動している指に合わせて目を移動させることができるので、ユーザは、表示されている文字に簡単に集中することができ、また自分が関心を抱いているアーチストに細かくナビゲートすることができる。
【００４５】
インデックス文字は、ディスプレイ206内のリスト中の文字が変わると変化し、例えば、リスト中で文字Aで始まるアーチストは多数あるが、文字Cで始まるアーチストは少数であった場合に、インデックス文字218として文字Aを通過するのに比べて文字Cを通過するのにはコントロール216をほんの少し動かすだけでよい。あるいは、それぞれのインデックス文字、ここではAからZ(およびおそらく0から9)は、コントロール216の移動と比較して等分割になっており、したがって、例えば、ディスプレイ206の1/26だけ下へ移動すると、常に、インデックス文字218において1文字が変更される。
【００４６】
いくつかの実装では、インデックス文字は、ユーザがコントロール214を上下にスライドさせると変化しうるが、リスト中のアイテムは、そのようなコントロールが出現しているときに移動を停止する可能性がある。したがって、コントロールには、ユーザがパンするのに合わせてリスト内のアイテムが上下にスクロールする通常パニングとアイテムがもはや移動しなくなり、ユーザがコントロールを移動するときにインデックス文字が加速される形で循環する加速パニングの2つのモードがありえる。
【００４７】
本明細書で説明されている技術を使用すると、ユーザは、リストのディスプレイ上で指をドラッグすることによって小さな動きで容易にナビゲートすることができる。ユーザは、指でディスプレイをフリックして仮想的な勢いを与え、リスト内で一度に複数の表示画面分を移動することによってより大きな動きでナビゲートすることができる。また、リストをパンするか、またはスクロールする意図をユーザが示すまで隠されているコントロールの表現を介して、不要なインタラクションを開始することなく、リスト内を加速してスクロールするための便利なオプションをユーザのために用意することができる。
【００４８】
図2Bは、ユーザ向けに、モバイルデバイスの運動または位置に応じてモバイルデバイスによって生成されうる表示を示す図である。一般に、モバイルデバイスはいくつでも、さまざまな種類の運動を検出するように構成することができる。例えば、いくつかの実装では、モバイルデバイスは、地球の磁場(例えば、北極と南極)に応じて、ヘッディングの変化を検出するために使用できる電子コンパスを備えることができる。そのようなものとして、モバイルデバイスを手にしているユーザが北極の方向に関してモバイルデバイスのヘッディングを転回または他の何らかの形で変えたときに、モバイルデバイスは、ヘッディングの変化を検出することができる。他の例として、モバイルデバイスは、運動の変化を検出することができる加速度計を備えることができる。そのようなものとして、モバイルデバイスを手に持っているユーザが、モバイルデバイスを持ち上げたり、落下させたり、振ったり、または他の何らかの形で加速もしくは減速を加えたときに、モバイルデバイスは、加速度の変化を検出することができる。いくつかの実装では、これらの検出された運動を使用して、モバイルデバイス上のディスプレイを自動的に更新することができる。
【００４９】
次に図2Bを参照すると、ユーザ224a〜224cがモバイルデバイス220を3つの異なる配向または方向で手に持っているように示されている。ユーザ224a〜224cは、特定のヘッディングを持つように示されている(「北」矢印に従って)。つまり、同じユーザが、モバイルデバイス220に備えられているコンパスに従って異なるヘッディングを持つように示されている。一般に、モバイルデバイス220は、ウェブブラウザまたはモバイルデバイスのユーザが特定の地域の地図にアクセスすることを可能にする他のソフトウェアアプリケーションを備えているものとしてよい。いくつかの実装では、地図は、通り側の見晴らしの利く地点から取り込まれた領域の画像も含む。このような一例はGOOGLE社(カリフォルニア州マウンテンビュー所在)のSTREETVIEW(登録商標)である。ユーザ224a〜224cは、ウェブブラウザまたは他のソフトウェアアプリケーションに住所を提供し、提供された住所の周辺の地域のビュー(地図、衛星画像、またはこれら2つの組合せの形態)を生成することができる。いくつかの実装では、モバイルデバイス220は、全地球測位システム(GPS)またはモバイルデバイスを自動的に特定するように設計されている他のシステムを使用して住所(ユーザが置かれている現在地住所として)を自動的に提供することができる。
【００５０】
ユーザは、最初に、住所情報(ここでは、Hubert H. Humphrey Metrodomeの住所)を提供し、これにより、「The Dome」の周辺の地域についてなじみのある形で地図タイトルと他の地図データを受け取ることができる。次いで、ユーザは、The Domeの周辺の地域のストリートビューを提示されるようにさらに選択することができる。ユーザが、例えば自宅で位置特定されうる場合、ユーザは時間的に前にドームを通過した自動車によって撮影されたThe Domeの外側からの画像を表示されうる。ユーザは、代替として、構造物の周辺の地域の地図へのリンクを含むOnebox結果として住所を返すことができる、「MetroDome」クエリなどによる検索を使ってビューを取得することができ、次いで、地図の一点から画像を見るように選択することができる。
【００５１】
人がSTREETVIEW(登録商標)を介して仮想方式で見ている方向を、その人専用の基準フレーム内でその人が面しているコンパス方向に合わせることができる。例えば、ユーザ224a〜224cが移動すると、モバイルデバイス220は、地図データ、モバイルデバイスの位置、モバイルデバイスのヘッディング、および/またはモバイルデバイスによって検出されうる他の情報(例えば、モバイルデバイス220に加わる加速度)に従って特定の領域のディスプレイ222a〜222cを生成する。例えば、ユーザ224bは、一般的にSSEを見ており、したがって、類似の方向に向けられたドームの近くの地域内のビューを表示される。
【００５２】
ユーザが左へターンすると(例えば、ユーザ224aとして示されているヘッディングにおいて)、モバイルデバイス220は、ユーザの運動または方向(例えば、ヘッディングの変化)を検出し、ユーザのヘッディングと一致するようにビューを自動的にパンすることができ、これはディスプレイ222aとして例示されている。つまり、モバイルデバイス220は、現在、モバイルデバイス220によって検出された新しいヘッディングに従ってMetrodomeの異なる部分を(ディスプレイ222a内で)表示する。ユーザが右へターンすると(例えば、ユーザ224cで示されているヘッディングにおいて)、モバイルデバイス220は、ユーザの運動(例えば、ヘッディングの変化)を検出し、ユーザの現在のヘッディングと一致するようにビューを自動的にパンすることができ、これはディスプレイ222cとして例示されている。
【００５３】
デバイスのヘッディングは、特定のストリートビューを構成する1つまたは複数の画像の一部分を識別する関連ヘッディングデータと容易に一致させることができる。複数の画像がある場合、これらの画像を連続的に供給し、縁のところでブレンドすることによって、これらの画像をユーザにシームレスに見せることができる。このような仕方により、画像が取り込まれた地点の周辺の地域を、そのような場所から遠く離れている場合であっても、モバイルデバイス上で見ることができるという効果をユーザに提供することができる。
【００５４】
いくつかの実装では、モバイルデバイス220上のコンパスの代わりに、またはそのようなコンパスに加えて、加速度計を使用することができる。例えば、ユーザが歩いているときに、加速度計は運動(例えば、振動、歩行、高度の変化、配向、または他の運動)を検出し、ディスプレイ222a〜222cをそれに従って更新することができる。例えば、モバイルデバイスは、ユーザが検出された加速度に基づいて移動していることを検出することができ、ユーザが通りを歩いているかのようにディスプレイ222a〜222cをパンすることができる。ユーザは、空間内でデバイスを単に振るだけでも、表示される空間内で前進運動を行わせることができるが、これは、GOOGLE STREETVIEW(登録商標)の進行方向矢印の選択でユーザが仮想的に通りを移動するのとまったく同様である。他の例として、モバイルデバイス220は、モバイルデバイスの配向の変化を検出することができ(加速度計によって検出された加速度に応じて)、ユーザ224a〜224cが上を、または下を見ているかのようにディスプレイ222a〜222cを上下にパンすることができるが、ただし、リモートサーバからデバイスに供給されるグラフィック画像がそのようなパノラマ写真を含んでいる場合である。
【００５５】
デバイスによって示されている方向も、絶対方向ではなく相対方向とすることができ、特に、加速度計が使用され、コンパスが使用されていない場合には特にそうである。とりわけ、ユーザに提供されるビューの初期配向は、最初に、ユーザが面している特定の方向ではなくルールによって選択されうる。次いで、左または右へ回転するユーザによる相対運動をデバイス上の加速度計によって感知し、おそらくユーザの運動に完全には比例しない形で、観察者が見ている地理的な場所の画像をそのような運動に対してパンすることができる。例えば、ユーザは、90度回転することができるが、ディスプレイは、ユーザのデバイスが絶対運動を感知する能力に制限があるため同じ方向に60度しか回転できない。
【００５６】
図2Cは、広い空間内においてパニングおよびズーミングを行うためのユーザインターフェイスを実現する技術の例示的な表示を示す。全体として、この図は、ウェブページをズームするためにユーザインターフェイスメカニズムを使用する際の異なる時点を示す4つのスクリーンショット(a)〜(d)を含んでいる。ウェブページは、ディスプレイ(a)の縁の周辺に示されているように、相対的にズームアウトされたレベルで、最初に一段高くすることができる。そのページをズームアウトすることによって、ユーザは、ページを閲覧して文脈内の関連コンテンツをより容易に見つけることができる。ズームインしたいことを示すために、ユーザは、タッチスクリーンの入力メカニズムを使って、ページをダブルタップすることができる。ダブルタップすると、結果として、ユーザの注意を容易に引きつけ、次いでユーザがズームインを選択した場合に示される領域を表すサイズまで縮小するように、大きなフォーマットで表示するプロセスでスクリーンショット(a)内に示される拡大ズームボックスを生成することができる。
【００５７】
スクリーンショット(b)では、ユーザは、指をズームボックスの方へ移動しているように示されており、ユーザは、ボックスを押して、そのボックスをより詳しくレビューしたい領域上に載るまでドラッグすることができる。ズームボックスの内側のコンテンツと外側のコンテンツとの間にコントラストを与えるために、スクリーンショット(b)〜(d)に示されているように、ボックスを動かしながら内側のコンテンツのサイズを少しずつ大きくしてゆくとよい。ズームボックスは、運動が開始したときにわずかにユーザの指の後を追うこともできる(ユーザの指が左下コーナーへ移動している場合の、スクリーンショット(d)の後追いボックスを参照のこと)。次いで、指が移動を停止した後にボックスはバネ仕掛けのように「キャッチアップ」することもできる。これにより、ボックスをドラッグしている感じをうまくユーザに伝えることができ、またあちこち移動している間に指がズームボックスを完全に覆ってしまうのを防ぐこともできる。
【００５８】
ユーザが、より詳しく見たいコンテンツ上にズームボックスを移動した場合、指を持ち上げて、持ち上げた場所にズームボックスを残すことができる。またこのようなアクションを行うと、ディスプレイマネージャは、ズームボックスの内側の領域がディスプレイ全体に広がるまで、ズームボックス内の領域を自動的にズームインする。ユーザは、その後、タッチスクリーン上で指をドラッグするか、またはトラックボールを転がしてページ上でパンし、画面上で再びダブルタップすることによってズームを元に戻す操作を選択することができる。
【００５９】
図3は、タッチスクリーン入力に応答してユーザインタラクションを提供するシステム300の概略図である。システム300は、デバイス302などのモバイルデバイスを使用して実装することもできる。デバイス302は、タッチスクリーンディスプレイ304およびローラーボール306などのさまざまな入力および出力メカニズムを備える。上述のように、デバイス302内の多数のコンポーネントを、ディスプレイ304のサイズを超える広い空間内での移動などのディスプレイ304上のさまざまな選択機能を実現するように構成することができる。
【００６０】
このような一コンポーネントがディスプレイマネージャ312であり、ディスプレイ304上に表現できるようにコンテンツをレンダリングする役割を有するものとしてよい。ディスプレイマネージャ312は、多数のソースからグラフィック関係コンテンツを受け取り、ユーザにコンテンツをどのように提供すべきかを決定することができる。例えば、デバイス304上のさまざまなアプリケーション310に対する多数の異なるウィンドウが表示される必要があり、ディスプレイマネージャ312は、どれを表示し、どれを隠し、さまざまなグラフィックオブジェクト同士の重なりがある場合に何を表示するかまたは何を隠すかを決定することができる。
【００６１】
ディスプレイマネージャ312は、複数のアプリケーションにわたって共有され、例えばデバイス302のオペレーティングシステムによって供給されうる、表示されるコンポーネントとのインタラクションを行うための特定の機能をデバイス302に付与するためのさまざまなコンポーネントを備えることができる。このような機能は、例えば、ディスプレイ304上の要素同士の間を移動することを望んでいるユーザから入力を受け取る役割を持つものとしてよい、インターフェイスナビゲーションモジュール311によって提供することができる。この例では、コントロール305が、ディスプレイ304上に表示されており、図1Bのディスプレイ118上のコントロール118aに似たものとすることができる。特に、ディスプレイ304上のコントロール305の位置決めは、地図全体のうちの南東コーナーにある地図の一部を見ていることをユーザに対して表すことができる。
【００６２】
ユーザがマップ上でドラッグすると、インターフェイスナビゲーションモジュール311によって、最初に、コントロール305が表示させられ、地図がドラッグ動作に関係する量をパンすることができる。その後地図上でドラッグして、コントロール305から離れると、地図のパニングがさらに行われ、コントロール305は、いくつかの状況において、地図上のコントロール305の位置が地図全体に関してディスプレイ304に示されている地図のサブセクションの位置に対応する場合にわずかな距離だけ移動することができる。インターフェイスナビゲーションモジュール311は、同様に、上で説明されている、後述のようなユーザ入力に応答してディスプレイ304の他の変更に対応することができる。
【００６３】
個別のアプリケーション310は、必要と思われる表示要素のソートを指示するためにAPIに従ってディスプレイマネージャ312に登録することができる。例えば、アプリケーションは、データ要素のグループをリストに対応するものとして識別することができ、次いで、インターフェイスナビゲーションモジュール311は、そのような要素をリストとして視覚的に取り扱うことができ、例えば、リストが十分に長く、ユーザ入力がリスト内でスクロールアップまたはスクロールダウンするユーザの意図を示す場合に加速スクローリングコントロールを表示することができる。
【００６４】
入力マネージャ314は、デバイス302のユーザによって与えられるコマンドを翻訳する役割を持つものとしてよい。例えば、このようなコマンドは、キーボード、タッチスクリーンディスプレイ304、トラックボール306、または専用ボタンまたはソフトボタン(例えば、時間の経過とともに機能が変化しうるボタン、特定のボタンに隣接しているディスプレイ304の領域に機能が表示されうるボタン)を含む他のそのようなソースに由来するものとすることができる。入力も、オンボードコンパスまたは加速度計によって供給される信号などからより推論的に行われうる。入力マネージャ314は、例えば、ディスプレイのどのような領域内でコマンドが受け取られるか、したがってディスプレイ上に示されているどのようなアプリケーションにおいてそれらのコマンドが対象となっているかを判定することができる。それに加えて、タッチスクリーン304上の入力動作を解釈して共通フォーマットにし、それらの解釈された動作(例えば、短い押圧、長い押圧、フリック、および直線ドラッグ)を当該アプリケーションに受け渡すことができる。入力マネージャ314は、そのような入力をイベントマネージャ(図示せず)に報告することもでき、次いで、このイベントマネージャは適切なモジュールまたはアプリケーションにそれらの入力を報告する。
【００６５】
さまざまなアプリケーション310は、デバイス302上の、一般的にはふつうのマイクロプロセッサ上で動作しうる。アプリケーション310は、地図作製アプリケーション、電子メールおよび他のメッセージングアプリケーション、ウェブブラウザアプリケーション、音楽およびビデオプレーヤ、ならびにウェブブラウザで実行するか、またはウェブブラウザの拡張機能を実行するさまざまなアプリケーションなどのさまざまな形態を取りうる。
【００６６】
独立して、またはブラウザの一部として実行することができるアプリケーションに、GOOGLE MAPSとGOOGLE STREETVIEW(登録商標)がある。このようなアプリケーションは、電子コンパスならびにコンパスの読み取り値を解釈するための関連回路およびソフトウェアならびに加速度計315を備えることができる、デバイス302上のコンパスモジュール313から読み取り値を受け入れることができる。図2Bに関して上で説明されているようなコンパスモジュール313および加速度計を使用することで、すでにパノラマ写真が撮られており、サーバからデバイス302へデジタル画像が利用可能である、地理的な領域のデバイスのビューを変更する際の、ユーザの運動または配向を感知することができる。
【００６７】
無線インターフェイス308は、音声通信も伝送するデータネットワークであってもよい、無線ネットワークとの通信を管理する。無線インターフェイスは、後述の例などによる、慣れ親しんだ仕方で動作し、テキストメッセージング、電子メール、および電話音声メールメッセージングなどのメッセージングサービスとデバイス302との通信を可能にする。それに加えて、無線インターフェイス308は、無線ネットワーク上でのコンテンツおよびコンピュータコードのダウンロードならびにアップロードをサポートすることができる。無線ネットワークを介して得られるデータの一例は、GOOGLE STREETVIEW(登録商標)などのアプリケーションによって提供される画像であり、この場合、デバイス302上で実行するアプリケーション(デバイス302に表示されるウェブページ上で実行するJava(登録商標)Scriptアプリケーションなど)は、デバイス上のコンパスデータにアクセスすることができ、またデバイス302をユーザが動かしたことに対する応答として特定の地理的な地点の周辺の新しい画像データを自動的に要求することができる。
【００６８】
固定ディスクドライブおよび/またはソリッドステートメモリデバイスなどを使用する、さまざまな形態の永続的記憶を備えることができる。ここでは2つの例を示す。まず第1に、地図/リスト/などの記憶域316は、アプリケーション310によって使用されるあらゆる種類のデータを格納し、またデータ要素のリスト、地図タイトルのようなグラフィックコンポーネント、およびさまざまな他のよく知られているデータ構造を含むことができ、ユーザとデバイス302上のアプリケーションとのインタラクションが可能になる。
【００６９】
他の記憶域は、地図/リンク/などの記憶域316と同じ媒体上に格納されるユーザのプロファイル情報とすることができる、ユーザデフォルト318を含む。ユーザデフォルト318は、デバイス302のユーザに関するさまざまなパラメータを含む。ここで関連する例において、ユーザプロファイルは、デバイス304上に提示されるパニングコントロールに対するユーザの好み(例えば、コントロールがどのように見えるべきか、リストがコントロールと一緒にスクロールすべきか、それともコントロールの方向と反対の方向にスクロールすべきか、コントロールを表示させるユーザによるアクションなど)を定義するデータを含みうる。
【００７０】
描画コンポーネント、および分かりやすくするためにここでは省いた他のコンポーネントを使用することで、デバイス302は、ユーザ入力に対する応答として特定のアクションを実行させることができる。特に、デバイス302は、領域内の加速パニングを許すコントロールを表示することなどによって特定の仕方で広い領域内のパニング入力に応答することができる(つまり、パンされたオブジェクトの端から端へとドラッグするよりも実質的に高速であり、典型的にはコントロールの1回のスワイプを使用して領域の片側から他方の側へのナビゲーションを可能にするパニング)。
【００７１】
図4A〜4Bは、グラフィカルユーザインターフェイスからユーザ選択を受け取るための例示的なプロセスの流れ図である。例えば、図4Aは、モバイルデバイスが広い地理的な領域の比較的小さな部分のみを表示する画面上の入力に応答するために使用されるプロセスを示している。
【００７２】
このプロセスは、この例では、ボックス400から始まり、そこで大きい領域データを表示する要求が受信される。大きな領域データは、ディスプレイがデバイス上の単一画面の縁を十分に超えるさまざまな形式のデータを含みうる。このようなデータは、例えば、情報の長いリスト、および大きな画像、もしくは地図、または情報の類似の表現を含みうる。大きな領域情報を表示する要求は、デバイスに送られる検索要求などの、多くの形態を取ることができ、これらの検索結果は、コンピュータ上のファイルのリスト、インターネット上のファイルのリスト、または検索結果に応答して生成される地図などの形態の大きな領域情報を含む。
【００７３】
ボックス402では、プロセスが、大きな領域データのサブセットを選択し、そのサブセットを表示する。例えば、大きな領域データが地図である場合、表示されるサブセットは、ユーザによって入力された検索クエリに対する結果である住所の周辺のその地図の一部分であってもよい。次いで、このプロセスは、ボックス404でユーザからパニング入力を受け取る。このような入力は、一般的に、タッチスクリーンディスプレイの表面上で指またはスタイラスを移動するユーザが受け取ることができる。
【００７４】
このプロセスは、データの領域全体のサイズと比較してディスプレイの相対的サイズを決定した後に、ディスプレイ上のパニングコントロールを表示することによって、ボックス406でユーザ入力に反応する。コントロールを表示する前のディスプレイの相対的サイズの事前決定により、データの領域がディスプレイのサイズであるか、またはディスプレイよりごくわずかに広い場合には表示されないことを確実にできる。このような状況では、パニングは動作しないか、または簡単にデータ上でぴったり完了することができ、加速パニングを行うために使用できる特別なコントロールを必要としない。
【００７５】
コントロールの表示は、ユーザ入力の速度および仕方にも依存してもよい。例えば、ユーザがディスプレイ上をゆっくりとドラッグする場合、このプロセスでは、ユーザがデータの遠く離れたコーナーへナビゲートすることに関心を持っておらず、コントロールを表示することを拒絶している可能性があると想定することができる。同様に、ユーザがそのアクションが終わってもディスプレイ上に指を置いたままにした場合、そのような入力は、ユーザが非常に遠くまでパンすることに関心を持っていない、したがって加速パニングコントロールを必要としていないという指示として解釈されうる。それとは対照的に、「フリング(fling)」入力を生成するために、ユーザがアクションの終わりに指を素早く動かし、持ち上げる場合、このような入力は、ユーザが遙か遠くまでパンすることを意図しているという合図と受け取ることができ、それによって、このような状況ではコントロールを生成することができる。
【００７６】
ボックス408で、このプロセスは、「フリング」パニング入力などのユーザ入力に反応するか、またはその後のパニング入力の入力によって、入力コントロールの目立ち具合を高めることによって反応する。このようなアクションは、コントロールのサイズもしくは輝度を増大すること、または例えば、コントロールをパルシング(pulsing)させることを伴うことがある。コントロールの目立ち具合は、第2のパニング入力を受け取ったときに1回だけ高めることができるか、または複数の増大段階を通り、最大点にまで至るようにできる。コントロールの目立ち具合を高める意図は、ユーザの気を加速パニングコントロールの使用のオプションに引きつけることであり、ユーザが対象それ自体をパンしようすればするほど、ユーザがパンする可能性が高くなり、コントロールの補助をより必要とすることになる。
【００７７】
ボックス410で、ユーザは、コントロールを通知し、そのディスプレイの加速パニングを行うようにそれを選択する。このプロセスは、ユーザによるコントロールの操作に従って、データを素早くパニングすることで応答する。例えば、ユーザがコントロールを下方へスライドした場合、ディスプレイは、ユーザが見ているときに誇張された速度で地図またはアイテムのリスト上を下方へ移動することができる。インタラクションの時間(ユーザがコントロールを選択しない、および/またはユーザが通常はコントロールを表示するディスプレイ上でパニング動作を行わない)が経過した後、ボックス412に示されているように、コントロールは消失しうる。例えば、ユーザがコントロールの下に置かれている可能性のあるデータを見ることができるようにコントロールをフェードアウトさせることができる。
【００７８】
ユーザが後でフリックアクションを繰り返した場合、コントロールは戻され、これらのステップが繰り返される。しかし、コントロールは、一般に、ユーザのデータ領域の現在ビューを反映する位置に配置される。例えば、ユーザが、現在、自分のデバイス上に格納されているビデオのリストの真ん中あたりを見ている場合、ディスプレイの上部と底部との間の真ん中の、ディスプレイのサイドにコントロールが生成されうる。
【００７９】
図4Bは、連絡先、音楽アーチスト、または異なるデータ要素の他の類似のグループの名前などの、グラフィックスで表されるアイテムのリストに関して加速パニングコントロールを生成するためのプロセスを示している。一般に、プロセスは、図4Aに示されているプロセスに類似しているが、ユーザ入力に対するより詳細な応答を伴う。
【００８０】
プロセスは、ボックス420で始まり、そこで、プロセスは、ユーザから長いリスト上のフリック入力(つまり、高速な動きと、その後に続く指もしくはスタイラスの持ち上げ)を受け取る。次いで、プロセスは、リストの長さをチェックし(ボックス422、424)、リストが長くない(つまり、デバイスのディスプレイより長くないか、またはディスプレイの数倍の長さなど、デバイスのディスプレイより実質的に長くない)場合、プロセスは、ユーザから入力を受け取り続けることができる(ボックス426)。
【００８１】
リストが長い場合、ディスプレイの一方の縁(一般的に、リスト内の左寄せされたテキストが覆われないように、右の縁)にそってスクローリングハンドルなどの形態の、シンパニングコントロール(thin panning control)がデバイスのディスプレイ上に表示されうる(ボックス428)。それに加えて、リストはフリックに応答してスクロールさせることができ、スクロールの速度および距離は、物理的な物体の移動を表すことができるため、リストは、フリックの後もスクロールし続け、摩擦で引きずられているかのように徐々に速度が遅くなってゆく。また、コントロールは、ディスプレイの上部と底部との間の位置によって、リストの上部と底部との間のユーザの位置(つまり、ディスプレイの位置)を反映するようにディスプレイのサイドにそって移動する。
【００８２】
ボックス430で、プロセスは、ユーザから第2のフリック入力を受け取り、リストは、第1のフリック入力の後に実行したように、再びスクロールすることができる。それに加えて、ユーザが2回フリックしたという事実は、ユーザがリストを非常に遠くまで下るか、または上ることを望んでいる可能性のあることを示す。その結果、プロセスは、ボックス432で、コントロールがユーザに目立って見えるようにコントロールの表示を太くする。システムは、ボックス434で、ユーザがそのコントロールを選択したか否かをさらにチェックし(一般的に、コントロールが最初に表示された後にそのような入力をいつでもチェックするが)、ユーザが所定の期間にコントロールを選択しないか、または対象のフリックを実行しない場合にコントロールは徐々に消えてゆく(ボックス436)。ユーザが、コントロールを選択した場合、プロセスは、ユーザがなおいっそう操作しやすいようにコントロールをさらに太くし、次いで、上述のさまざまな仕方などで、コントロールのユーザによる操作に応じてディスプレイをパンする。
【００８３】
図4C〜4Dは、モバイルデバイスの運動に応じて表示を更新するための例示的なプロセスの流れ図である。図4Cは、例えば、モバイルデバイスがモバイルデバイスの感知された運動に応答することができるプロセスを示している。図4Dは、例えば、運動を感知し、モバイルデバイスのディスプレイを更新して検出された運動を反映するために使用されうる、モバイルデバイスの外部の、追加システムによって実行することが可能な例示的なアクションを示すプロセスを示している。一般に、図4Cに示されているプロセスは、モバイルデバイスまたは地図アプリケーションを参照しつつ説明されており、図4Cに示されているプロセスは、モバイルデバイス、地図サーバ、またはストリートビューサーバを参照しつつ説明されており、これに従って、システムはプロセスの特定のステップに関与する。
【００８４】
図4Cを参照すると、プロセスは、地図アプリケーションが起動されると、ボックス440から開始する。いくつかの実装では、地図アプリケーションは、モバイルデバイスが起動されるときに自動的に起動することができる。例えば、地図アプリケーションをモバイルデバイスの初期化ルーチンにブートストラップすることができる。いくつかの実装では、地図アプリケーションは、ユーザによって起動されることもある。例えば、ユーザは、地図アプリケーションを起動するためにモバイルデバイスのディスプレイ上にあるアプリケーションアイコンを選択することができる。いくつかの実装では、他のプロセスもしくはアプリケーションが地図アプリケーションを起動することもできる。例えば、ソーシャルネットワーキングアプリケーションは、このソーシャルネットワークアプリケーションが特定の友人の位置をユーザに通知するときに、地図アプリケーションを起動することができる。
【００８５】
地図アプリケーションが起動されると、ボックス442において、住所が地図アプリケーションに送り届けられる。これは、いく通りもの仕方で実現できる。例えば、ユーザが住所を手動で入力することができる。他の例として、モバイルデバイス上に配置されているGPSデバイスが住所を自動的に送ることもできる。
【００８６】
ボックス444において、地図アプリケーションは、受け取った住所の周辺の地図タイルをフェッチし、表示することができる。例えば、地図アプリケーションは、モバイルデバイスにビル、公園、通り、または他の場所を示す1つまたは複数のタイルを表示することができる。
【００８７】
ボックス446において、地図アプリケーションは、ストリートビュー画像をフェッチし、表示することができる。一般に、ストリートビュー画像は、人、車両、および路上レベルの同様のものの見晴らしの利く地点から撮られた画像である。そのようなものとして、いくつかの実装では、地図アプリケーションのユーザは、地図アプリケーションがストリートビュー画像をフェッチし、表示する際の通りを指定する必要がある場合がある。モバイルデバイスが面している現在の方向に対応する半径方向角度に面している、当該地点でカメラによって撮られたデジタル画像を表す第1の画像を表示することができる。
【００８８】
ボックス448において、地図アプリケーションは、モバイルデバイスの運動を感知することができる。一般に、運動の感知は、運動を検出することができるモバイルデバイス上に備えられている1つまたは複数のシステムもしくはモジュールと通信することによってなされる。例えば、地図アプリケーションは、加速度計、コンパス、またはモバイルデバイスの運動を感知するための他のモジュールと通信することができる。
【００８９】
ボックス450において、地図アプリケーションは、ユーザの配向(つまり、モバイルデバイスの配向)を一致させるために、ストリートビュー画像をパンする。例えば、図2Bを参照すると、ユーザ224a〜224cの配向に従ってモバイルデバイス200のディスプレイ222a〜222c上にストリートビュー画像が表示されている。
【００９０】
したがって、このプロセスによって、モバイルデバイスのユーザは、訪問を予定しているショッピング地区、または予定している旅先となる友人の近所などの、領域のビューを素早く取得することができる。モバイルデバイスを手に持ってぐるりと回り、デバイス上の画像を運動と一致するようにパンさせることによって、その場所にあたかもいるかのような体験をすることができる。その結果、ユーザは、領域がどのような様子なのかを素早く見て取り、そこへ行くべきか否かを決定することができるか、またはそこに到着したときにその領域を容易に認識することができる。
【００９１】
図4Dを参照すると、プロセスは、モバイルデバイスが地図検索ボックスを起動したときにボックス452から開始する。一般に、検索ボックスは、情報をクエリの形式で提供する機能をプロセスのユーザに対して与えるタイプの入力コントロールである。例えば、検索ボックスは、編集可能テキストボックスまたは他のユーザインターフェイスコンポーネントとすることができる。
【００９２】
ボックス454において、モバイルデバイスは、検索ボックスから住所入力を受け取る。いくつかの実装では、ユーザは、住所を検索ボックスに入力することができる(例えば、「HHH Metrodome」または「123 Main Street, Anytown, CA」)。他の実装では、自動化されたプロセスが住所を自動的に供給することができる。例えば、地図アプリケーションは、要求があったときに地図アプリケーションがモバイルデバイスに自動的に供給することができるいくつかの事前定義済み住所(例えば、ユーザの職場、ユーザの自宅、または他の住所)を使用するように構成されうる。他の例として、GPSモジュールが、GPS計算結果に応じてモバイルデバイスの住所を決定することができる。
【００９３】
ボックス456において、モバイルデバイスは、フォーマットされた地図クエリを提出する。一般に、地図クエリは、任意の個数のアプリケーションプログラムインターフェイス(API)に関してフォーマットすることができる。例示的なフォーマットとしては、限定はしないが、任意の個数のデータベースクエリフォーマット、共通ゲートウェイインターフェイス(CGI)リクエストフォーマット、ハイパーテキストマークアップ言語(HTML)フォーマット、またはクエリを提出するための都合のよい任意の他のフォーマットが挙げられる。
【００９４】
ボックス458において、地図サーバが、クエリを受け取り、1つまたは複数の結果を生成する。例えば、状況によっては、住所を解決できない場合がある。つまり、モバイルデバイスから受信した住所と実質的に類似する住所を持つ複数の場所がありうるということである。そのようなものとして、いくつかの実装では、地図サーバは、結果毎に1つずつ、複数の結果を生成し、結果の曖昧さを解消しやすくするためにモバイルデバイス(およびユーザ)にフィードバックを返すことができる。他の実装では、地図サーバは、最初に、住所の曖昧さを解消してから、結果を生成することができる。
【００９５】
地図サーバは、特定の結果を決定した後、ボックス460において、関連する地図タイルおよび他のデータをモバイルデバイスに送信する。例えば、地図サーバは、HHH Metrodomeに関連付けられた地図タイルおよびデータを送信することができる(例えば、画像、広告、または他のデータ)。
【００９６】
ボックス462において、モバイルデバイスは、提出された住所の周辺の地図を表示する。例えば、モバイルデバイスは、HHH Metrodomeの周辺のビル、通り、公園、または地理上の他の景観を表示することができる。
【００９７】
地図が表示された後、ボックス464において、モバイルデバイスは、ストリートビュー位置のユーザ入力を受け取り、位置データを送信することができる。例えば、ユーザは、モバイルデバイス上に表示される特定の通りをストリートビュー位置として選択することができる。他の例として、GPSモジュールは、モバイルデバイスの現在の通りをストリートビュー位置として自動的に供給することができる。この位置データは、クエリとして送信することができる。例えば、モバイルデバイスは、ストリートビュー位置に関連付けられた1つまたは複数の画像に対するクエリをフォーマットすることができる。
【００９８】
ボックス466において、ストリートビューサーバが、クエリを受け取り、結果を生成する。一般に、ストリートビューサーバは、1つまたは複数の画像リポジトリにアクセスし、受信されたクエリに関連付けられた1つまたは複数の画像を含むデータを生成することができる。
【００９９】
ボックス468において、ストリートビューサーバは、関連する現実世界のカメラ画像(場合によっては注釈付きで)を送信する。例えば、図2Bを参照すると、ストリートビューサーバは、HHH Metrodomeの現実世界のカメラ画像を特定の通り(例えば、「Kirby Puckett PI」)および通りが向かう方向(例えば、「NE」および「SW」矢印で表される)の注釈付きで送信する。いくつかの実装において、画像は複数の連結された画像ファイルからなる。
【０１００】
ボックス470において、モバイルデバイスは、運動を感知し、その運動を反映するようにディスプレイを更新する。例えば、ユーザがモバイルデバイスを振ったことに対する応答として、モバイルデバイスは、振りの検出量に応じて画像空間を前進移動することができる。他の例として、モバイルデバイスによって感知されたコンパス読み取り値に応じて、地理的な位置の周辺で画像を横方向にパンすることができる。反映された運動による他の更新も可能であり、そのいくつかについて上で説明されている。いくつかの実装では、モバイルデバイスは、例えば、モバイルデバイスが感知された運動に対応する画像を格納していない場合に、追加の画像を要求することができる。例えば、モバイルデバイスがある点を超えて横方向にパンされた場合、モバイルデバイスは、ストリートビューサーバと通信して追加の画像を受け取る必要がある場合がある。
【０１０１】
ボックス472において、ストリートビューサーバは、モバイルデバイスによって要求されたとおりに追加の画像データを生成して送信する。いくつかの実装では、ストリートビューサーバは、前のクエリを使用して、モバイルデバイスによって感知される追加の運動を予想して画像リポジトリからいくつかの画像をプリフェッチすることができる。つまり、ストリートビューサーバは、モバイルデバイスの現在の運動に応じて将来のある時点においてモバイルデバイスによって使用できる追加の画像を決定し、現在の要求とともに追加の画像データを送信することができる。一般に、ボックス470および472および各通信は、何回でも実行できる。
【０１０２】
次に図5を参照すると、本明細書で説明されているユーザインターフェイスの特徴を実装する例示的なデバイス500の外観が示されている。特に、簡単に言うと、デバイス500は、デバイス500上のイベントに関する通知を表示し、通知に関係するイベントに関する詳細を「プルダウン」してイベントを展開表示にする操作をユーザが都合よく行えるように構成されたプロセッサを備える。
【０１０３】
さらに詳しく述べると、デバイス500のハードウェア環境は、テキスト、画像、およびビデオをユーザに対し表示するためのディスプレイ501、テキストデータおよびユーザコマンドをデバイス500に入力するためのキーボード502、ディスプレイ501上に表示されているオブジェクトをポイントし、選択し、調節するためのポインティングデバイス504、アンテナ505、ネットワーク接続506、カメラ507、マイクロホン509、およびスピーカー510を備える。デバイス500では、外部アンテナ505が示されているけれども、デバイス500は、ユーザからは見えない、内部アンテナを備えることができる。
【０１０４】
ディスプレイ501は、デバイス500により使用されるソフトウェアアプリケーション、およびデバイス500を操作するために使用されるオペレーティングシステムプログラムのためのユーザインターフェイスを構成するビデオ、グラフィックス、画像、およびテキストを表示することができる。ディスプレイ501上に表示することができる可能な要素として、新着メッセージが存在することをユーザにアラートする新着メールインジケータ511、電話呼び出し中であること、電話をかけていること、または通話中であることを示すアクティブ呼インジケータ512、データを送受信するためにデバイス500によって現在使用されているデータ規格を示すデータ規格インジケータ514、信号強度バーなどを使用してアンテナ505を介して受信された信号の強度の測定結果を示す信号強度インジケータ515、電池残量の測定結果を示す電池残量インジケータ516、または現在時刻を出力するクロック517がある。
【０１０５】
ディスプレイ501は、ウェブブラウザアプリケーションアイコン519、電話アプリケーションアイコン520、検索アプリケーションアイコン521、連絡先アプリケーションアイコン522、地図作製アプリケーションアイコン524、電子メールアプリケーションアイコン525、または他のアプリケーションアイコンなどの、ユーザから利用可能なさまざまなアプリケーションを表すアプリケーションアイコンを表示することもできる。例示的な一実装では、ディスプレイ501は、16ビット以上のカラー表示をすることができるクオータービデオグラフィックスアレイ(QVGA)薄膜トランジスタ(TFT)液晶ディスプレイ(LCD)である。
【０１０６】
ユーザは、キーボード(または「キーパッド」)502を使用して、アラートの通知に応答し、またメッセージおよび同様のもの(さらにはタッチスクリーン)に応答するように構成されているオペレーティングシステムおよびアプリケーションを操作し制御するためのコマンドおよびデータを入力する。キーボード502は、単独で選択されたときには英数字「Q」および「W」に関連付けられるか、またはキー529と組み合わせて押されたときには文字「*」および「1」に関連付けられるキー526および527などの英数字に関連付けられている標準のキーボードボタンまたはキーを備える。単一のキーを、オペレーティングシステムの状態に基づいて、またはオペレーティングシステムによって呼び出されるアプリケーションに基づいて、ラベルなし機能を含む、特殊文字または機能に関連付けることもできる。例えば、アプリケーションが数字の入力を必要とする場合、キー527だけを選択すると、「1」が入力されうる。
【０１０７】
英数字キーパッドに従来関連付けられていたキーに加えて、キーボード502は、受け取った呼に応答するか、または新しく発呼する呼確立キー530、アクティブ呼を終了させる呼終了キー531、ディスプレイ501内にメニューを表示させるドロップダウンメニューキー532、すでにアクセスされているネットワークアドレスへの再アクセスを行わせるバックワードナビゲーションキー534、アクティブウェブページをお気に入りサイトのブックマークフォルダに入れさせるか、またはブックマークフォルダを表示させるお気に入りキー535、デバイス500上で呼び出されたアプリケーションを所定のネットワークアドレスへナビゲートするホームページキー536、または多方向ナビゲーション、アプリケーション選択、ならびに電力および音量調節を行う他のキーなどの、他の特殊機能キーも備える。
【０１０８】
ユーザは、デバイス500およびデバイス500上で呼び出されるアプリケーションとのインタラクションおよび制御の一部として、ポインティングデバイス504を使用して、ディスプレイ501上に表示されるグラフィックスおよびテキストオブジェクトを選択し、調節する。ポインティングデバイス504は、任意の適切なタイプのポインティングデバイスであり、ジョイスティック、トラックボール、タッチパッド、カメラ、音声入力デバイス、ディスプレイ501と組み合わせて実装されるタッチスクリーンデバイス、または他の入力デバイスとすることができる。
【０１０９】
外部アンテナもしくは内部アンテナとすることができるアンテナ505は、2地点間無線通信、無線ローカルエリアネットワーク(LAN)通信、または測位を実装する高周波(RF)信号の送受信用に使用される指向性または無指向性アンテナである。アンテナ505を使用すると、特殊化移動体無線(SMR)、セルラー、またはパーソナル通信サービス(PCS)周波数帯を使用する2地点間無線通信が利用しやすくなり、また任意の数のデータ標準を使用してデータの送信を実装することができる。例えば、アンテナ505を使用することで、Wireless Broadband (WiBro)、Worldwide Interoperability for Microwave ACCess (WiMAX)、5GPP Long Term Evolution (LTE)、Ultra Mobile Broadband (UMB)、High Performance Radio Metropolitan Network (HIPERMAN)、iBurst or High Capacity Spatial Division Multiple Access (HC-SDMA)、High Speed OFDM Packet Access (HSOPA)、High-Speed Packet Access (HSPA)、HSPA Evolution、HSPA+、High Speed Upload Packet Access (HSUPA)、High Speed Downlink Packet Access (HSDPA)、Generic Access Network (GAN)、時分割同期符号分割多元接続(TD-SCDMA)、Evolution-Data Optimized (またはEvolution-Data Only) (EVDO)、時分割符号分割多元接続(TD-CDMA)、Freedom Of Mobile Multimedia Access (FOMA)、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、広帯域符号分割多元接続(W-CDMA(登録商標))、Enhanced Data rates for GSM(登録商標) Evolution (EDGE)、Enhanced GPRS (EGPRS)、符号分割多元接続2000 (CDMA2000)、Wideband Integrated Dispatch Enhanced Network (WiDEN)、高速回線交換データシステム(HSCSD)、ジェネラルパケットラジオサービス(GPRS)、簡易型携帯電話(PHS)、回線交換データ(CSD)、パーソナルデジタルセルラー(PDC)、CDMAone、Digital Advanced Mobile Phone System (D-AMPS)、Integrated Digital Enhanced Network (IDEN)、モバイル通信用グローバルシステム(GSM(登録商標))、DataTAC、Mobitex、Cellular Digital Packet Data (CDPD)、Hicap、高度携帯電話システム(AMPS)、Nordic Mobile Phone (NMP)、Autoradiopuhelin (ARP)、AutotelもしくはPublic Automated Land Mobile (PALM)、Mobiltelefonisystem D (MTD)、Offentlig Landmobil Telefoni (OLT)、Advanced Mobile Telephone System (AMTS)、Improved Mobile Telephone Service (IMTS)、移動体電話システム(MIS)、プッシュトゥトーク(PTT)、または他の技術などの技術を使用してデバイス500と基地局との間でデータを送信することができる。W-CDMA(登録商標)、HSUPA、GSM(登録商標)、GPRS、およびEDGEネットワークを介した通信は、例えば、QUALCOMM MSM7200AチップセットをQUALCOMM RTR6285トランシーバおよびPM7540パワーマネージメント回路と一緒に使用することで行うことができる。
【０１１０】
無線または有線コンピュータネットワーク接続506は、モデム接続、Ethernet(登録商標)を含むローカルエリアネットワーク(LAN)接続、またはデジタル加入者回線(DSL)、ケーブル高速インターネット接続、ダイヤルアップ接続、T-1回線、T-3回線、光ファイバ接続、または衛星接続などのブロードバンドワイドエリアネットワーク(WAN)接続であってよい。ネットワーク接続506は、LANネットワーク、企業または政府WANネットワーク、インターネット、電話網、または他のネットワークに接続することができる。ネットワーク接続506は、有線または無線コネクタを使用する。例示的な無線接続としては、例えば、IrDA(赤外線通信協会)無線コネクタ、Wi-Fi無線コネクタ、光無線コネクタ、IEEE(電気電子技術者協会)標準802.11無線コネクタ、BLUETOOTH(登録商標)無線コネクタ(BLUETOOTH(登録商標)バージョン1.2または5.0コネクタなど)、近接場通信(NFC)コネクタ、直交周波数分割多重(OFDM)超広帯域(UWB)無線コネクタ、時間変調超広帯域(TM-UWB)無線コネクタ、または他の無線コネクタが挙げられる。例示的な有線コネクタとしては、例えば、IEEE-1394 FIREWIREコネクタ、ユニバーサルシリアルバス(USB)コネクタ(mini-B USBインターフェイスコネクタを含む)、シリアルポートコネクタ、パラレルポートコネクタ、または他の有線コネクタが挙げられる。他の実装では、ネットワーク接続506およびアンテナ505の機能は、単一コンポーネントに集積化される。
【０１１１】
カメラ507は、デバイス500がデジタル画像を取り込むことを可能にするが、これは、スキャナ、デジタルスチルカメラ、デジタルビデオカメラ、他のデジタル入力デバイスとすることもできる。例示的な一実装において、カメラ507は、相補型金属酸化膜半導体(CMOS)を利用する5メガピクセル(MP)カメラである。
【０１１２】
マイクロホン509は、デバイス500が音声を取り込むことを可能にし、これは、無指向性マイクロホン、単一指向性マイクロホン、両指向性マイクロホン、ショットガンタイプのマイクロホン、または音声を電気信号に変換する他のタイプの装置とすることができる。マイクロホン509は、例えば、ユーザがデバイス500で通話中に別のユーザと話しているときに、ユーザが発する音声を取り込むために使用することができる。逆に、スピーカー510は、デバイスが、電気信号を電話アプリケーションプログラムによって生成される他のユーザからの音声、または着信音アプリケーションプログラムから発せられる着信音などの音に変換することを可能にする。さらに、デバイス500は、図5にハンドヘルドデバイスとして例示されているけれども、他の実装では、デバイス500は、ラップトップ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、埋め込み型システム、電話機、デスクトップPC、タブレット型コンピュータ、PDA、または他のタイプのコンピューティングデバイスであってもよい。
【０１１３】
図6は、デバイス500の内部アーキテクチャ600を例示するブロック図である。このアーキテクチャは、オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理される中央演算処理装置(CPU)601と、ディスプレイ501上にビデオ、グラフィックス、画像、およびテキストをレンダリングするための通信インターフェイスおよび処理機能を備え、一組のビルトインコントロール(ボタン、テキスト、およびリストなど)を備え、多様な画面サイズをサポートする、ディスプレイインターフェイス602と、キーボード502との通信インターフェイスを備えるキーボードインターフェイス604と、ポインティングデバイス504との通信インターフェイスを備えるポインティングデバイスインターフェイス605と、アンテナ505との通信インターフェイスを備えるアンテナインターフェイス606と、コンピュータネットワーク接続506上でネットワークとの通信インターフェイスを備えるネットワーク接続インターフェイス607と、カメラ507からデジタル画像を取り込むための通信インターフェイスおよび処理機能を備えるカメラインターフェイス608と、マイクロホン509を使用して音声を電気信号に変換し、スピーカー510を使用して電気信号を音声に変換するための通信インターフェイスを備えるサウンドインターフェイス609と、CPU 601による処理のためコンピュータ命令およびデータが揮発性メモリデバイスに格納される、ランダムアクセスメモリ(RAM)610と、基本入出力(I/O)、起動、またはキーボード502からのキーストロークを受け取ることなどの基本システム機能の不変な低レベルシステムコードまたはデータが不揮発性メモリデバイス内に格納される、読み取り専用メモリ(ROM)611と、オペレーティングシステム614、アプリケーションプログラム615(必要に応じて、例えば、Webブラウザアプリケーション、ウィジェットまたはガジェットエンジンアプリケーション、および/または他のアプリケーションを含む)、およびデータファイル616を含むファイルが格納される、記憶媒体612または他の好適なタイプのメモリ(例えば、RAM、ROM、プログラム可能読み取り専用メモリ(PROM)、消去可能プログラム可能読み取り専用メモリ(EPROM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク、ハードディスク、取り外し可能カートリッジ、フラッシュドライブなど)と、デバイス500の現実世界もしくは相対的な位置または地理的な位置を供給するナビゲーションモジュール617と、パワーコンポーネントに適切な交流(AC)または直流(DC)を供給する電源619と、デバイス500が電話網を介して音声を送受信することを可能にする電話サブシステム620とを備える。構成要素であるデバイスとCPU 601は、バス621上で互いに通信する。
【０１１４】
CPU 601は、多数のコンピュータプロセッサのうちの1つとすることができる。一配置構成において、コンピュータCPU 601は、複数の処理演算装置である。RAM 610は、オペレーティングシステムのアプリケーションプログラムおよびデバイスドライバなどのソフトウェアプログラムの実行時にCPU 601によるRAMへの格納を高速化するようにコンピュータバス621とインターフェイスする。より具体的には、CPU 601は、ソフトウェアプログラムを実行するために、コンピュータ実行可能プロセスステップを記憶媒体612または他の媒体からRAM 610のフィールド内にロードする。データは、RAM 610に格納され、そこで、実行時にコンピュータCPU 601によってデータがアクセスされる。例示的な一構成では、デバイス500は、少なくとも128MBのRAMおよび256MBのフラッシュメモリを備える。
【０１１５】
記憶媒体612それ自体は、RAID(Redundant Array Of Independent Disks)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、USBフラッシュドライブ、外付けハードディスクドライブ、サムドライブ、ペンドライブ、キードライブ、高密度デジタル多用途ディスク(HD-DVD)光ディスクドライブ、内蔵ハードディスクドライブ、Blu-Ray光ディスクドライブ、またはホログラフィックデジタルデータストレージ(HDDS)光ディスクドライブ、外付けミニデュアルインラインメモリモジュール(DIMM)同期型ダイナミックランダムアクセスメモリ(SDRAM)、または外付けマイクロDIMM SDRAMなどの多数の物理的ドライブユニットを含みうる。このようなコンピュータ可読記憶媒体を使用することで、デバイス500は、取り外し可能および取り外し不可能な記憶媒体に格納されているコンピュータ実行可能プロセスステップ、アプリケーションプログラムなどにアクセスし、デバイス500のデータ負荷を軽減したり、またはデバイス500上にデータをアップロードしたりすることができる。
【０１１６】
コンピュータプログラム製品は、記憶媒体612、つまり機械可読記憶媒体で明確に具現化される。コンピュータプログラム製品は、機械によって読み込まれたときに、データ処理装置にモバイルデバイスへの画像データの格納を行わせるように動作する命令を含む。いくつかの実施形態では、コンピュータプログラム製品は、デバイス上の新着メッセージなどのアラートに関する通知を生成する命令を含む。
【０１１７】
オペレーティングシステム614は、GOOGLEモバイルデバイスプラットフォームなどのLINUX(登録商標)ベースのオペレーティングシステム、APPLE MAC OS X、MICROSOFT WINDOWS(登録商標) NT/WINDOWS(登録商標) 2000/WINDOWS(登録商標) XP/WINDOWS(登録商標) MOBILE、さまざまなUNIX(登録商標)系オペレーティングシステム、またはコンピュータもしくは組み込みシステム向けの専用オペレーティングシステムとすることができる。オペレーティングシステム614用のアプリケーション開発プラットフォームまたはフレームワークは、BINARY RUNTIME ENVIRONMENT FOR WIRELESS (BREW)、SUN MICROSYSTEMS JAVA(登録商標)SCRIPTプログラミング言語を使用するJAVA(登録商標) Platform, Micro Edition (JAVA(登録商標) ME)またはJAVA(登録商標) 2 Platform, Micro Edition (J2ME)、PYTHON FLASH LITE、またはMICROSOFT .NET Compact、または他の適切な環境とすることができる。
【０１１８】
デバイスは、オペレーティングシステム614用のコンピュータ実行可能コード、および電子メール、インスタントメッセージング、ビデオサービスアプリケーション、地図作製アプリケーション、文書処理、表計算、プレゼンテーション、ゲーム、地図作製、Web閲覧、JAVA(登録商標)SCRIPTエンジン、または他のアプリケーションなどのアプリケーションプログラム615を格納する。例えば、一実装は、ユーザがGOOGLE GMAIL電子メールアプリケーション、GOOGLE TALKインスタントメッセージングアプリケーション、YOUTUBE(登録商標)動画サービスアプリケーション、GOOGLE MAPSまたはGOOGLE EARTH地図作製アプリケーション、またはGOOGLE PICASA画像編集およびプレゼンテーションアプリケーションにアクセスすることを可能にする。アプリケーションプログラム615は、TAFRIウィジェットエンジンなどのウィジェットまたはガジェットエンジン、WINDOWS(登録商標) SIDEBARガジェットエンジンまたはKAPSULESガジェットエンジンなどのMICROSOFTガジェットエンジン、KONFABULTORウィジェットエンジンなどのYAHOO!ウィジェットエンジン、APPLE DASHBOARDウィジェットエンジン、GOOGLEガジェットエンジン、KLIPFOLIOウィジェットエンジン、OPERAウィジェットエンジン、WIDSETSウィジェットエンジン、専用ウィジェットまたはガジェットエンジン、またはデスクトップ上に物理的にインスパイアされたアプレットに対するホストシステムソフトウェアを提供する他のウィジェットまたはガジェットエンジンも含むことができる。
【０１１９】
上述の実装を使用してメッセージおよび他のイベントの通知およびインタラクションを提供することも可能であるけれども、本開示による機能をダイナミックリンクライブラリ(DLL)として、またはFOXFIREウェブブラウザ、APPLE SAFARIウェブブラウザ、またはMICROSOFT INTERNET EXPLORERウェブブラウザといったインターネットウェブブラウザなどの他のアプリケーションプログラムのプラグインとして実装することも可能である。
【０１２０】
ナビゲーションモジュール617は、全地球測位システム(GPS)信号、GLObal NAvigation Satellite System(GLONASS)、ガリレオ測位システム、Beidou Satellite Navigation and Positioning System、慣性航法システム、推測航法システムなどを使用して、またはアドレス、インターネットプロトコル(IP)アドレス、またはデータベース内の位置情報を使用して、デバイスの絶対位置または相対位置を判定することができる。ナビゲーションモジュール617は、1つまたは複数の加速度計などを使用することによって、デバイス500の角度変位、配向、または速度を測定するために使用することもできる。
【０１２１】
図7は、オペレーティングシステム614がGOOGLEモバイルデバイスプラットフォームである場合のデバイス500によって使用されるオペレーティングシステム614の例示的なコンポーネントを例示するブロック図である。オペレーティングシステム614は、関連する電話アプリケーションが応答すること、および気まぐれなアプリケーションがオペレーティングシステムのフォルト(または「クラッシュ」)を引き起こさないことを確実にしつつ、複数のプロセスを呼び出す。オペレーティングシステム614では、タスク切り替えを使用することで、それぞれの関連するアプリケーションの状態を失うことなく、電話中にアプリケーションを切り替えることができる。オペレーティングシステム614は、アプリケーションフレームワークを使用してコンポーネントの再利用を推進し、ポインティングデバイス入力とキーボード入力とを組み合わせ、旋回動作を行えるようにすることによって、スケーラブルなユーザエクスペリエンスを実現することができる。そこで、オペレーティングシステムは、高度な標準ベースのウェブブラウザを使用しつつ、高機能なグラフィックスシステムおよびメディアエクスペリエンスをもたらすことができる。
【０１２２】
オペレーティングシステム614は、一般に、カーネル700、ライブラリ701、オペレーティングシステムランタイム702、アプリケーションライブラリ704、システムサービス705、およびアプリケーション706の6つのコンポーネントにまとめることができる。カーネル700は、オペレーティングシステム614およびアプリケーションプログラム615などのソフトウェアとディスプレイインターフェイス602を介したディスプレイ501とのインタラクションを可能にするディスプレイドライバ707と、ソフトウェアとカメラ507とのインタラクションを可能にするカメラドライバ709と、BLUETOOTH(登録商標)ドライバ710と、M-Systemsドライバ711と、バインダ(IPC)ドライバ712と、USBドライバ714と、キーボードインターフェイス604を介したソフトウェアとキーボード502とのインタラクションを可能にするキーパッドドライバ715と、WiFiドライバ716と、サウンドインターフェイス609を介したソフトウェアとマイクロホン509およびスピーカー510とのインタラクションを可能にするオーディオドライバ717と、ソフトウェアと電源719とのインタラクションおよび電源719の管理を可能にするパワーマネージメントコンポーネント719とを備える。
【０１２３】
一実装において、LINUX(登録商標)系オペレーティングシステム用のBlueZ BLUETOOTH(登録商標)スタックに基づく、BLUETOOTH(登録商標)ドライバは、ヘッドセットおよびハンズフリーデバイス、ダイヤルアップネットワーキング、パーソナルエリアネットワーキング(PAN)、またはオーディオストリーミング(A2DP(Advance Audio Distribution Profile)またはAVRCP(Audio/Video Remote Control Profile)など)に対するプロファイルをサポートする。BLUETOOTH(登録商標)ドライバは、スキャニング、ペアリング、およびペアリング解除のためのJAVA(登録商標)バインディング、ならびにサービスクエリを提供する。
【０１２４】
ライブラリ701は、効率的なJAVA(登録商標)アプリケーションプログラミングインターフェイス(API)レイヤ、サーフェスマネージャ721、二次元アプリケーションドローイング用のSGL(Simple Graphics Library)722、ゲームおよび三次元レンダリング用のOpenGL ES(Open Graphics Library for Embedded Systems)724、C標準ライブラリ(LIBC)725、LIBWEBCOREライブラリ726、FreeTypeライブラリ727、SSL 729、SQLiteライブラリ730を使用する、標準のビデオ、オーディオ、および静止フレームフォーマット(MPEG(Moving Picture Experts Group)-4、H.264、MP3(MPEG-1 Audio Layer-3)、AAC(Advanced Audio Coding)、AMR(Adaptive Multi-Rate)、JPEG(Joint Photographic Experts Group)、および他のフォーマットなど)をサポートするメディアフレームワーク720を含む。
【０１２５】
オペレーティングシステムランタイム702は、コアJAVA(登録商標)ライブラリ731およびDalvik仮想マシン732を含む。Dalvik仮想マシン732は、カスタマイズされたファイルフォーマット(.DEX)を実行するカスタム仮想マシンである。
【０１２６】
オペレーティングシステム614は、図7に示されているようなMIDP JSR(JAVA(登録商標) Specification Request)コンポーネント、MIDPランタイム、およびMIDPアプリケーションなどのMIDP(Mobile Information Device Profile)コンポーネントも備えることができる。MIDPコンポーネントは、デバイス500上で実行するMIDPアプリケーションをサポートすることができる。
【０１２７】
グラフィックスレンダリングに関しては、システム規模のコンポーザが、サーフェスおよびフレームバッファを管理し、作成にOpenGL ES 724および二次元ハードウェアアクセラレータを使用して、ウィンドウ遷移を取り扱う。
【０１２８】
Dlavik仮想マシン732は、ランタイムメモリを非常に効率よく使用し、CPU最適化されたバイトコードインタプリタを実装し、デバイス1つにつき複数の仮想マシンプロセスをサポートするので、埋め込み型環境とともに使用することができる。カスタムファイルフォーマット(DEX)は、ランタイム効率を念頭において設計されたもので、共有定数プールを使用してメモリを削減し、読み取り専用構造を使用してクロスプロセス共有を改善し、簡潔な固定幅命令を使用して構文解析時間を短縮しており、それにより、インストールアプリケーションをビルド時にカスタムファイルフォーマットに変換することができる。関連付けられているバイトコードは、スタックベースの命令ではなくレジスタベースの命令を使用してメモリおよびディスパッチオーバーヘッドを低減し、固定幅命令を使用して構文解析を簡素化し、16ビットコードユニットを使用して読み込みを最小限に抑えることで、直ちに解釈できるように設計されている。
【０１２９】
アプリケーションライブラリ704は、ビューシステム734、リソースマネージャ735、およびコンテンツプロバイダ737を含む。システムサービス705は、ステータスバー739、アプリケーションランチャー740、すべてのインストール済みアプリケーションに対する情報を保持するパッケージマネージャ741、アプリケーションレベルのJAVA(登録商標)インターフェイスを電話サブシステム620に提供する電話マネージャ742、すべてのアプリケーションによるステータスバーおよび画面上通知へのアクセスを可能にする通知マネージャ744、複数のウィンドウを備える複数のアプリケーションがディスプレイ501を共有することを可能にするウィンドウマネージャ745、および別のプロセスでそれぞれのアプリケーションを実行し、アプリケーションライフサイクルを管理し、クロスアプリケーション履歴を維持する活動マネージャ746を含む。
【０１３０】
アプリケーション706は、ホームアプリケーション747、ダイヤラアプリケーション749、連絡先アプリケーション750、およびブラウザアプリケーション751を含む。アプリケーションのそれぞれは、長い押圧インタラクションを有するか、または有さないグラフィック要素を生成することができる。上述のように、長い押圧インタラクションを有していないものは、最初に押圧されたときに即時視覚的フィードバックを返さず、そのようなインタラクションを有しているものは、最初に押圧されたときから長い押圧期間の終了時までの間、ハイライト表示することができる。また、ハイライト表示は、押圧した直後には生じないので、アイテムを単にタップしても、ハイライト表示されず、その代わりに、タップに対する期間よりわずかに長いが、長い押圧期間よりもはっきりと短い、短押圧期間の終了時に生じうる。
【０１３１】
電話マネージャ742は、イベント通知(電話状態、ネットワーク状態、加入者識別モジュール(SIM)ステータス、または音声メールステータス)を発し、状態情報(ネットワーク情報、SIM情報、または音声メールの有無)へのアクセスを許可し、呼を開始し、クエリを実行し、呼状態を制御する。ブラウザアプリケーション751は、ウェブページを、ナビゲーション機能を含む、完全なデスクトップに似たマネージャにする。さらに、ブラウザアプリケーション751では、単一カラムの小さな画面をレンダリングすることができ、他のアプリケーションにHTMLビューを埋め込むことができる。
【０１３２】
図8は、オペレーティングシステムカーネル800によって実装される例示的なプロセスを示すブロック図である。一般に、アプリケーションおよびシステムサービスは、別々のプロセスで実行され、活動マネージャ746はそれぞれのアプリケーションを別のプロセスで実行し、アプリケーションライフサイクルを管理する。アプリケーションはそれ専用のプロセスで実行されるが、多くの活動またはサービスも同じプロセスで実行されうる。プロセスは、アプリケーションのコンポーネントを実行するために必要に応じて、起動と停止を行い、またプロセスは、リソースを回収するために終了させることができる。それぞれのアプリケーションは、それ専用のプロセスを割り当てられ、その名前はアプリケーションのパッケージ名であり、アプリケーションの個別の部分には、別のプロセス名を割り当てることができる。
【０１３３】
いくつかのプロセスは、永続的なプロセスとすることができる。例えば、サーフェスマネージャ816、ウィンドウマネージャ814、または活動マネージャ810などのコアシステムコンポーネントに関連するプロセスは、デバイス500に電源が投入されている間、連続的に実行されうる。それに加えて、いくつかのアプリケーション特有のプロセスも永続的なプロセスとすることができる。例えば、ダイヤラアプリケーション821に関連するプロセスも、永続的であってもよい。
【０１３４】
オペレーティングシステムカーネル800によって実装されるプロセスは、一般に、システムサービスプロセス801、ダイヤラプロセス802、ブラウザプロセス804、および地図プロセス805として分類されうる。システムサービスプロセス801は、ステータスバー739に関連付けられているステータスバープロセス806、アプリケーションランチャー740に関連付けられているアプリケーションランチャープロセス807、パッケージマネージャ741に関連付けられているパッケージマネージャプロセス809、活動マネージャ746に関連付けられている活動マネージャプロセス810、グラフィックス、ローカライズされた文字列、およびXMLレイアウト記述にアクセスできるようにするリソースマネージャ811に関連付けられているリソースマネージャプロセス811、通知マネージャ744に関連付けられている通知マネージャプロセス812、ウィンドウマネージャ745に関連付けられているウィンドウマネージャプロセス814、コアJAVA(登録商標)ライブラリ731に関連付けられているコアJAVA(登録商標)ライブラリプロセス815、サーフェスマネージャ721に関連付けられているサーフェスマネージャプロセス816、Dalvik仮想マシン732に関連付けられているDalvik仮想マシンプロセス817、およびLIBCライブラリ725に関連付けられているLIBCプロセス819を含む。
【０１３５】
ダイヤラプロセス802は、ダイヤラアプリケーション749に関連付けられているダイヤラアプリケーションプロセス821、電話マネージャ742に関連付けられている電話マネージャプロセス822、コアJAVA(登録商標)ライブラリ731に関連付けられているコアJAVA(登録商標)ライブラリプロセス824、Dalvik仮想マシン732に関連付けられているDalvik仮想マシンプロセス825、およびLIBCライブラリ725に関連付けられているLIBCプロセス826を含む。ブラウザプロセス804は、ブラウザアプリケーション751に関連付けられているブラウザアプリケーションプロセス827、コアJAVA(登録商標)ライブラリ731に関連付けられているコアJAVA(登録商標)ライブラリプロセス829、Dalvik仮想マシン732に関連付けられているDalvik仮想マシンプロセス830、LIBWEBCOREライブラリ726に関連付けられているLIBWEBCOREプロセス831、およびLIBCライブラリ725に関連付けられているLIBCプロセス832を含む。
【０１３６】
地図プロセス805は、地図アプリケーションプロセス834、コアJAVA(登録商標)ライブラリプロセス835、Dalvik仮想マシンプロセス836、およびLIBCプロセス837を含む。明らかに、Dalvik仮想マシンプロセスなどのいくつかのプロセスは、システムサービスプロセス801、ダイヤラプロセス802、ブラウザプロセス804、および地図プロセス805のうちの1つまたは複数の中に存在しうる。
【０１３７】
図9は、本明細書で説明されている技術とともに使用されうる一般的なコンピュータデバイス900および一般的なモバイルコンピュータデバイス950の一例を示している。コンピューティングデバイス900は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどのさまざまな形態のデジタルコンピュータを表すことが意図されている。コンピューティングデバイス950は、パーソナルデジタルアシスタント、携帯電話、スマートフォン、および他の類似のコンピューティングデバイスなどのさまざまな形態のモバイルデバイスを表すことが意図されている。ここに示されているコンポーネント、それらの接続および関係、ならびにそれらの機能は、例示することのみを意図されており、本明細書において説明され、および/または請求されている発明の実装を制限することを意図されていない。
【０１３８】
コンピューティングデバイス900は、プロセッサ902、メモリ904、記憶装置デバイス906、メモリ904および高速拡張ポート910に接続する高速インターフェイス908、ならびに低速バス914および記憶装置デバイス906に接続する低速インターフェイス912を備える。コンポーネント902、904、906、908、910、および912のそれぞれは、さまざまなバスを使用して相互接続され、共通マザーボード上に取り付けられるか、または適宜他の仕方で取り付けられうる。プロセッサ902は、高速インターフェイス908に結合されているディスプレイ916などの、外部入力/出力デバイス上にGUIのグラフィック情報を表示するためメモリ904内に、または記憶装置デバイス906上に格納されている命令を含む、コンピューティングデバイス900内で実行する命令を処理することができる。他の実装では、複数のプロセッサおよび/または複数のバスを、適宜、複数のメモリおよび複数のタイプのメモリとともに使用することができる。また、複数のコンピューティングデバイス900を、必要なオペレーションの一部を行うそれぞれのデバイスと接続することができる(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【０１３９】
メモリ904は、コンピューティングデバイス900内に情報を格納する。一実装では、メモリ904は、1つまたは複数の揮発性メモリユニットである。他の実装では、メモリ904は、1つまたは複数の不揮発性メモリユニットである。メモリ904は、磁気ディスクまたは光ディスクなどのコンピュータ可読媒体の他の形態のものとすることもできる。
【０１４０】
記憶装置デバイス906は、コンピューティングデバイス900用の大容量記憶装置を構成することもできる。一実装では、記憶装置デバイス906は、ストレージエリアネットワークまたは他の構成のデバイスを含む、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、またはデバイスアレイなどのコンピュータ可読媒体であるか、またはコンピュータ可読媒体を含むことができる。コンピュータプログラム製品は、情報担体で明確に具現化されうる。コンピュータプログラム製品は、実行されると上述のような1つまたは複数の方法を実行する命令も格納することができる。情報担体は、メモリ904、記憶装置デバイス906、プロセッサ902上のメモリ、または伝搬信号などのコンピュータもしくはマシン可読媒体である。
【０１４１】
高速コントローラ908は、コンピューティングデバイス900に対する帯域幅を集中的に使用するオペレーションを管理するが、低速コントローラ912は、帯域幅を集中的に使用する程度の低いオペレーションを管理する。機能のこのような割り振りは例示的なものにすぎない。一実装では、高速コントローラ908は、メモリ904、ディスプレイ916(例えば、グラフィックスプロセッサまたはアクセラレータを通じて)、およびさまざまな拡張カード(図示せず)を受け入れることができる高速拡張ポート910に結合される。この実装では、低速コントローラ912は、記憶装置デバイス906および低速拡張ポート914に結合される。さまざまな通信ポート(例えば、USB、Bluetooth(登録商標)、Ethernet(登録商標)、無線Ethernet(登録商標))を含みうる、低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、または例えば、ネットワークアダプタを通じて、スイッチまたはルーターなどネットワーキングデバイスなどの1つまたは複数の入力/出力デバイスに結合することができる。
【０１４２】
コンピューティングデバイス900は、図に示されているように、数多くの異なる形態で実装されうる。例えば、標準サーバ920として、またはそのようなサーバのグループで何倍もの数で実装されうる。これは、ラックサーバシステム924の一部としても実装することができる。それに加えて、ラップトップコンピュータ922などのパーソナルコンピュータで実装することもできる。あるいは、コンピューティングデバイス900からのコンポーネントをデバイス950などのモバイルデバイス(図示せず)内の他のコンポーネントと組み合わせることができる。このようなデバイスのそれぞれは、コンピューティングデバイス900、950のうちの1つまたは複数を含むことができ、システム全体が、互いに通信する複数のコンピューティングデバイス900、950で構成されうる。
【０１４３】
コンピューティングデバイス950は、プロセッサ952、メモリ964、ディスプレイ954などの入力/出力デバイス、通信インターフェイス966、およびとりわけ、トランシーバ968を備える。デバイス950は、追加の記憶装置を構成するためにマイクロドライブまたは他のデバイスなどの記憶装置デバイスを備えることもできる。コンポーネント950、952、964、954、966、および968のそれぞれは、さまざまなバスを使用して相互接続され、これらのコンポーネントのうちのいくつかは、共通マザーボード上に取り付けられるか、または適宜他の仕方で取り付けられうる。
【０１４４】
プロセッサ952は、メモリ964内に格納されている命令を含む、コンピューティングデバイス950内の命令を実行することができる。プロセッサは、個別の、および複数の、アナログおよびデジタルプロセッサを備えるチップのチップセットとして実装することができる。プロセッサは、例えば、ユーザインターフェイスの制御、デバイス950によるアプリケーション実行、デバイス950による無線通信などの、デバイス950の他のコンポーネントの調整を行うことができる。
【０１４５】
プロセッサ952は、制御インターフェイス958およびディスプレイ954に結合されているディスプレイインターフェイス956を通じてユーザと通信することができる。ディスプレイ954は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)またはOLED(有機発光ダイオード)ディスプレイまたは他の適切なディスプレイ技術とすることができる。ディスプレイインターフェイス956は、グラフィックおよび他の情報をユーザに提示するようにディスプレイ954を駆動するための適切な回路を備えることができる。制御インターフェイス958は、ユーザからコマンドを受け取り、それらをプロセッサ952に送るために変換することができる。それに加えて、外部インターフェイス962は、プロセッサ952と通信するように構成され、デバイス950と他のデバイスと近距離通信を行うことができる。外部インターフェイス962は、例えば、いくつかの実装における有線通信、または他の実装における無線通信を行うことができ、複数のインターフェイスも使用できる。
【０１４６】
メモリ964は、コンピューティングデバイス950内に情報を格納する。メモリ964は、1つまたは複数のコンピュータ可読媒体、1つまたは複数の揮発性メモリユニット、または1つまたは複数の不揮発性メモリユニットのうちの1つまたは複数として実装することができる。拡張メモリ974も、例えば、SIMM(シングルインラインメモリモジュール)カードインターフェイスを含むものとしてよい、拡張インターフェイス972を通じて構成され、デバイス950に接続されうる。このような拡張メモリ974は、デバイス950に対する付加的な記憶領域を設けることができるか、またはデバイス950用のアプリケーションまたは他の情報を格納することもできる。特に、拡張メモリ974は、上述のプロセスを実行するか、または補助する命令を格納することができ、また安全な情報も格納することができる。したがって、例えば、拡張メモリ974は、デバイス950に対するセキュリティモジュールとして構成することができ、デバイス950の安全な使用を可能にする命令でプログラムすることができる。それに加えて、安全なアプリケーションは、SIMMカードを介して、ハッキングできない形でSIMMカード上に識別情報を配置するなど、付加情報とともに提供することもできる。
【０１４７】
メモリとしては、例えば、後述のように、フラッシュメモリおよび/またはNVRAMが挙げられる。一実装では、コンピュータプログラム製品は、情報担体で明確に具現化される。コンピュータプログラム製品は、実行されると上述のような1つまたは複数の方法を実行する命令を格納する。情報担体は、メモリ964、拡張メモリ974、プロセッサ952上のメモリ、または例えば、トランシーバ968もしくは外部インターフェイス962上で受信されうる伝搬信号などのコンピュータもしくはマシン可読媒体である。
【０１４８】
デバイス950は、必要ならば、デジタル信号処理回路を備えることができる、通信インターフェイス966を通じて無線で通信することができる。通信インターフェイス966は、とりわけ、GSM(登録商標)音声電話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの、さまざまなモードもしくはプロトコルの下で通信を行うことができる。このような通信は、例えば、無線周波トランシーバ968を通じて行うことができる。それに加えて、Bluetooth(登録商標)、WiFi、または他のトランシーバ(図示せず)などを使用して、短距離通信を実行することができる。それに加えて、GPS(全地球測位システム)受信機モジュール970は、追加のナビゲーションおよび位置関係無線データをデバイス950に送ることができ、これはデバイス950上で実行するアプリケーションによって適宜使用されうる。
【０１４９】
デバイス950は、オーディオコーデック960を使用して音声で通信することもでき、ユーザから話された情報を受け取り、それを使用可能なデジタル情報に変換することができる。オーディオコーデック960は同様に、例えば、デバイス950のハンドセットのスピーカーなどを通じて、ユーザ向けに可聴音を発生することができる。このような音声は、音声電話からの音声を含み、記録された音声を含み(例えば、音声メッセージ、音楽ファイルなど)、またデバイス950上で動作するアプリケーションによって生成される音声を含むこともできる。
【０１５０】
コンピューティングデバイス950は、図に示されているように、数多くの異なる形態で実装されうる。例えば、携帯電話980として実装することができる。また、スマートフォン982、パーソナルデジタルアシスタント、または他の類似のモバイルデバイスの一部として実装することもできる。
【０１５１】
デバイス950は、運動を感知することが可能な1つまたは複数の異なるデバイスを備えることもできる。例としては、限定はしないが、加速度計およびコンパスが挙げられる。加速度計およびコンパス、または運動または位置を検出することができる他のデバイスが、数多くのベンダーから市販されており、さまざま仕方で運動を感知することができる。例えば、加速度計は、加速度の変化を検出し、コンパスは、磁北極または磁南極に関する配向の変化を検出することができる。運動のこれらの変化は、デバイス950によって検出され、本明細書で説明されているプロセスおよび技術に従って各デバイス950の表示を更新するために使用することができる。
【０１５２】
本明細書で説明されているシステムおよび技術のさまざまな実装は、デジタル電子回路、集積回路、専用設計ASIC(特定用途向け集積回路)、コンピュータのハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せで実現することが可能である。さまざまな実装は、記憶装置システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受け取り、記憶装置システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスにデータおよび命令を送るように結合された、専用または汎用のものとしてよい、少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能であり、および/または解釈可能である1つまたは複数のコンピュータプログラムによる実装を含むことができる。
【０１５３】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラム可能なプロセッサ用の機械語命令を含み、高水準手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械語で実装されうる。本明細書で使用されているように、「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械可読信号として機械語命令を受け取る機械可読媒体を含む、機械語命令および/またはデータをプログラム可能なプロセッサに供給するために使用されるコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラム可能論理デバイス(PLD))を指す。「機械可読信号」という用語は、機械語命令および/またはデータをプログラム可能なプロセッサに供給するために使用される信号を指す。
【０１５４】
ユーザとのインタラクションを行うために、本明細書で説明されているシステムおよび技術は、ユーザに情報を表示するための表示デバイス(例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)およびキーボードおよびユーザがコンピュータに入力を送るために使用できるポインティングデバイス(例えば、マウスもしくはトラックボール)を有するコンピュータ上で実装することができる。他の種類のデバイスも、ユーザとのインタラクションを行うために使用することができ、例えば、ユーザに返されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)とすることができ、ユーザからの入力は、音響、話し声、または触覚入力を含む、任意の形態で受け取ることができる。
【０１５５】
本明細書で説明されているシステムおよび技術は、バックエンドコンポーネントを含む(例えば、データサーバとして)、またはミドルウェアコンポーネントを含む(例えば、アプリケーションサーバとして)、またはフロントエンドコンポーネントを含む(例えば、ユーザと本明細書で説明されているシステムおよび技術の実装とのインタラクションに使用されうるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータ)コンピューティングシステム、またはそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せで実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが挙げられる。
【０１５６】
コンピューティングシステムは、クライアントおよびサーバを備えることができる。クライアントおよびサーバは、一般に、互いに隔てられており、典型的には、通信ネットワークを通じてインタラクションを行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント-サーバ関係を有することによって発生する。
【０１５７】
これで多数の実施形態が説明された。しかしながら、本発明の精神および範囲から逸脱することなくさまざまな修正を加えることができることは理解されるであろう。例えば、本明細書の大半は、メッセージングおよび地図作製アプリケーションに関して説明されており、インタラクティブプログラムガイド、ウェブページナビゲーションおよびズーミング、および他のそのようなアプリケーションなどの、他の形態のグラフィックアプリケーションも取り扱うことができる。
【０１５８】
それに加えて、図に示されている論理の流れは、所望の結果を得るために、図示されている特定の順序、またはシーケンシャルな順序を必要としない。それに加えて、他のステップを与えるか、または説明されている流れからステップを取り除くこともでき、また他のコンポーネントを説明されているシステムに追加するか、または説明されているシステムから取り除くことができる。したがって、他の実施形態は、請求項の範囲内に収まる。
【符号の説明】
【０１５９】
102  グラフィックシステム
106  ディスプレイ
108  アイテムのリスト
110  アイテム
112  視覚コントロール
114、116、118  ディスプレイ
114a  4頭矢印
114b  小さな概要地図
116a、116b  スライダーコントロール
118a  リング
200  ディスプレイ
202  ディスプレイ
204  ディスプレイ
206  ディスプレイ
208  スライダーコントロール
210  フリック
212  スライダーコントロール
214  コントロール
216  コントロール
218  インデックス文字
220  モバイルデバイス
222a〜222c  ディスプレイ
224a〜224c  ユーザ
300  システム
302  デバイス
304  タッチスクリーンディスプレイ
305  コントロール
306  ローラーボール
308  無線インターフェイス
311  インターフェイスナビゲーションモジュール
312  ディスプレイマネージャ
313  コンパスモジュール
314  入力マネージャ
315  加速度計
316  記憶域
318  ユーザデフォルト
500  デバイス
501  ディスプレイ
502  キーボード
504  ポインティングデバイス
505  アンテナ
506  ネットワーク接続
507  カメラ
509  マイクロホン
510  スピーカー
511  新着メールインジケータ
512  アクティブ呼インジケータ
514  データ規格インジケータ
515  信号強度インジケータ
516  電池残量インジケータ
517  クロック
519  ウェブブラウザアプリケーションアイコン
520  電話アプリケーションアイコン
521  検索アプリケーションアイコン
522  連絡先アプリケーションアイコン
524  地図作製アプリケーションアイコン
525  電子メールアプリケーションアイコン
526、527、529  キー
530  呼確立キー
531  呼終了キー
532  ドロップダウンメニューキー
534  バックワードナビゲーションキー
535  お気に入りキー
536  ホームページキー
600  内部アーキテクチャ
601  中央演算処理装置(CPU)
602  ディスプレイインターフェイス
604  キーボードインターフェイス
605  ポインティングデバイスインターフェイス
606  アンテナインターフェイス
607  ネットワーク接続インターフェイス
608  カメラインターフェイス
609  サウンドインターフェイス
610  ランダムアクセスメモリ(RAM)
611  読み取り専用メモリ(ROM)
612  記憶媒体
614  オペレーティングシステム
615  アプリケーションプログラム
616  データファイル
617  ナビゲーションモジュール
619  電源
620  電話サブシステム
621  バス
700  カーネル
701  ライブラリ
702  オペレーティングシステムランタイム
704  アプリケーションライブラリ
705  システムサービス
706  アプリケーション
707  ディスプレイドライバ
709  カメラドライバ
710  BLUETOOTHドライバ
711  M-Systemsドライバ
712  バインダ(IPC)ドライバ
714  USBドライバ
715  キーパッドドライバ
716  WiFiドライバ
717  オーディオドライバ
719  パワーマネージメントコンポーネント
720  メディアフレームワーク
721  サーフェスマネージャ
722  二次元アプリケーションドローイング用のSGL(Simple Graphics Library)
724  ゲームおよび三次元レンダリング用のOpenGL ES(Open Graphics Library for Embedded Systems)
725  C標準ライブラリ(LIBC)
726  LIBWEBCOREライブラリ
727  FreeTypeライブラリ
729  SSL
730  SQLiteライブラリ
731  コアJAVA(登録商標)ライブラリ
732  Dalvik仮想マシン
734  ビューシステム
735  リソースマネージャ
737  コンテンツプロバイダ
739  ステータスバー
740  アプリケーションランチャー
741  パッケージマネージャ
742  電話マネージャ
744  通知マネージャ
745  ウィンドウマネージャ
746  活動マネージャ
747  ホームアプリケーション
749  ダイヤラアプリケーション
750  連絡先アプリケーション
751  ブラウザアプリケーション
800  オペレーティングシステムカーネル
801  システムサービスプロセス
802  ダイヤラプロセス
804  ブラウザプロセス
805  地図プロセス
806  ステータスバープロセス
807  アプリケーションランチャープロセス
809  パッケージマネージャプロセス
810  活動マネージャプロセス
811  リソースマネージャプロセス
812  通知マネージャプロセス
814  ウィンドウマネージャプロセス
815  コアJAVA(登録商標)ライブラリプロセス
816  サーフェスマネージャプロセス
817  Dalvik仮想マシンプロセス
819  LIBCプロセス
821  ダイヤラアプリケーションプロセス
822  電話マネージャプロセス
824  コアJAVA(登録商標)ライブラリプロセス
825  Dalvik仮想マシンプロセス
826  LIBCプロセス
827  ブラウザアプリケーションプロセス
829  コアJAVA(登録商標)ライブラリプロセス
830  Dalvik仮想マシンプロセス
831  LIBWEBCOREプロセス
832  LIBCプロセス
834  地図アプリケーションプロセス
835  コアJAVA(登録商標)ライブラリプロセス
836  Dalvik仮想マシンプロセス
837  LIBCプロセス
900  一般的なコンピュータデバイス
902  プロセッサ
904  メモリ
906  記憶装置デバイス
908  高速インターフェイス
910  高速拡張ポート
912  低速インターフェイス
914  低速バス
916  ディスプレイ
920  標準サーバ
922  ラップトップコンピュータ
924  ラックサーバシステム
950  一般的なモバイルコンピュータデバイス
952  プロセッサ
954  ディスプレイ
956  ディスプレイインターフェイス
958  制御インターフェイス
960  オーディオコーデック
962  外部インターフェイス
964  メモリ
966  通信インターフェイス
968  トランシーバ
970  GPS(全地球測位システム)受信機モジュール
974  拡張メモリ
980  携帯電話
982  スマートフォン
【図１Ａ】
0005658144.tif 000002
【図１Ｂ】
0005658144.tif 000003
【図２Ａ】
0005658144.tif 000004
【図２Ｂ】
0005658144.tif 000005
【図２Ｃ】
0005658144.tif 000006
【図４Ａ】
0005658144.tif 000007
【図４Ｂ】
0005658144.tif 000008
【図４Ｃ】
0005658144.tif 000009
【図４Ｄ】
0005658144.tif 000010
【図５】
0005658144.tif 000011
【図６】
0005658144.tif 000012
【図７】
0005658144.tif 000013
【図８】
0005658144.tif 000014
【図９】
0005658144.tif 000015
【図３】
0005658144.tif 000016