(57)【要約】【課題】  増大した画素密度を有する表示装置とのアプリケーションプログラムの互換性を可能する方法および装置を提供すること。【解決手段】  １または複数のパラメータを含む呼出しが、画面入力または出力機能を実行するためのアプリケーションプログラムインタフェースに向けられる。呼出しを受け取ったことに応答して、アプリケーションプログラムが、より低い画素密度の表示装置と共に使用するように構成されたか、それともより高い画素密度の表示装置と共に使用するように構成されたか判定が行われる。アプリケーションプログラムが、より低い画素密度の表示装置と共に使用するように構成されていると判定したことに応答して、パラメータは、より高い画素密度の表示装置に合うようにスケーリングされ、スケーリングされたパラメータを使用してアプリケーションプログラミングインタフェースが呼び出される。【選択図】  図４Ａ
2005276189.tif 000002
【特許請求の範囲】
【請求項１】
より低い画素密度の表示装置と共に使用するように構成されたアプリケーションプログラムが、より高い画素密度の表示装置を利用するのを可能にする方法であって、
画面入力または出力機能を実行するためのアプリケーションプログラミングインタフェースに向けられた呼出しを、アプリケーションプログラムから受け取ることであって、前記呼出しは、１または複数のパラメータを含むこと、
前記呼出しを受け取ったことに応答して、前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するように構成されているか、または前記より高い画素密度の表示装置と共に使用するように構成されているかを判定すること、および、
前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するように構成されていると判定したことに応答して、前記より高い画素密度の表示装置に合うように前記パラメータをスケーリングし、前記スケーリングされたパラメータを用いて前記アプリケーションプログラムインタフェースを呼び出すこと
を備えたことを特徴とする方法。
【請求項２】
前記アプリケーションプログラムが、より高い画素密度の前記表示装置と共に使用するように構成されていると判定したことに応答して、前記アプリケーションプログラミングインタフェースを、前記パラメータを用いて呼び出すことをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するよう構成されているか、またはより高い画素密度の前記表示装置と共に使用するよう構成されているかを判定することは、
前記アプリケーションプログラムのプロパティを検査して、前記アプリケーションプログラムがコンパイルされたソフトウェア開発キットのバージョン番号を判定すること、および、
前記バージョン番号に基づいて、前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するよう構成されているか、またはより高い画素密度の前記表示装置と共に使用するよう構成されているかを判定すること
を備えたことを特徴とする請求項２に記載の方法。
【請求項４】
前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するように構成されていると判定したことに応答して、１または複数の戻りパラメータを前記アプリケーションプログラミングインタフェースから受け取ること、前記より低い画素密度の表示装置に合うように前記戻りパラメータをスケーリングすること、および、前記スケーリングされた戻りパラメータを前記アプリケーションプログラムに返すことをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項５】
前記より低い画素密度の表示装置は、９６ｄｐｉの画素密度を有することを特徴とする請求項４に記載の方法。
【請求項６】
前記より高い画素密度の表示装置は、１９２ｄｐｉの画素密度を有することを特徴とする請求項５に記載の方法。
【請求項７】
コンピュータによって実行されると、前記コンピュータに請求項１乃至６のいずれかに記載の方法を実施させるコンピュータ実行可能命令を格納していることを特徴とするコンピュータ読取り可能媒体。
【請求項８】
請求項１乃至６のいずれかに記載の方法を実施することができることを特徴とするコンピュータ制御の装置。
【請求項９】
より低い画素密度の表示装置と共に使用するように作成されたアプリケーションプログラムが、より高い画素密度の表示装置を利用することを可能にするように構成されたコンピュータシステムであって、
中央処理装置と、
より高い画素密度の表示装置と、
前記中央処理装置上で実行するためのオペレーティングシステム、
より低い画素密度の表示装置と共に使用するように作成され、前記オペレーティングシステム上で実行するためのアプリケーションプログラム、
前記表示装置に対する入力および出力動作を行うためのアプリケーションプログラミングインタフェース、および、
前記アプリケーションプログラムによる前記アプリケーションプログラミングインタフェースに対する呼出しをインタセプトし、前記表示装置に合うように前記呼出しをスケーリングし、前記スケーリングされたパラメータを用いて前記アプリケーションプログラミングインタフェースを呼び出すための変換層を格納する働きをするメモリと
を備えたことを特徴とするコンピュータシステム。
【請求項１０】
前記変換層は、前記アプリケーションプログラムがより高い画素密度の前記表示装置と共に使用するように構成されているかどうか判定し、前記アプリケーションプログラムがより高い画素密度の前記表示装置と共に使用するように構成されていると判定したことに応答して、前記パラメータをスケーリングせずに、前記アプリケーションプログラミングインタフェースを呼び出す操作をすることを特徴とする請求項９に記載のコンピュータシステム。
【請求項１１】
より高い画素密度の前記表示装置は、１９２ｄｐｉの画素密度を有し、より低い画素密度の表示装置と共に使用するように作成された前記アプリケーションプログラムは、９６ｄｐｉの画素密度を有する表示装置と共に使用するように構成されていることを特徴とする請求項１０に記載のコンピュータシステム。
【請求項１２】
前記変換層がさらに、前記アプリケーションプログラミングインタフェースから１または複数の戻りパラメータを受け取り、前記より低い画素密度の表示装置に合うように前記戻りパラメータをスケーリングし、前記スケーリングされた戻りパラメータを、より低い画素密度の表示装置と共に使用するように作成された前記アプリケーションプログラムに返す操作をすることを特徴とする請求項１１に記載のコンピュータシステム。
【請求項１３】
前記アプリケーションプログラムが、より高い画素密度の前記表示装置と共に使用するように構成されているかどうか判定することは、前記アプリケーションプログラムのプロパティを検査して、前記アプリケーションプログラムがコンパイルされたソフトウェア開発キットのバージョン番号を決定すること、および、前記バージョン番号に基づいて、前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するように構成されているか、それともより高い画素密度の前記表示装置と共に使用するように構成されているか判定することを備えたことを特徴とする請求項１２に記載のコンピュータシステム。
【請求項１４】
より低い画素密度の表示装置と共に使用するように構成されたアプリケーションプログラムが、より高い画素密度の表示装置を利用するのを可能にする方法であって、
画面入力または出力機能を実行するためのアプリケーションプログラミングインタフェースに向けられた呼出しを、アプリケーションプログラムから受け取ることであって、前記呼出しは、１または複数のパラメータを含むこと、
前記呼出しを受け取ったことに応答して、前記アプリケーションプログラムが、コンパイルされたソフトウェア開発キットバージョン番号を指定する前記アプリケーションプログラムのプロパティを検査することにより、前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するように構成されているか、それともより高い画素密度の前記表示装置と共に使用するように構成されているか判定すること、
前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するように構成されていると判定したことに応答して、前記より高い画素密度の表示装置に合うように前記パラメータをスケーリングし、前記スケーリングされたパラメータを用いて前記アプリケーションプログラミングインタフェースを呼び出すこと、および、
前記アプリケーションプログラミングが、前記より高い画素密度の表示装置と共に使用するように構成されたと判定したことに応答して、前記パラメータをスケーリングせずに前記アプリケーションプログラミングインタフェースを呼び出すこと
を備えたことを特徴とする方法。
【請求項１５】
前記アプリケーションプログラムが、前記より低い画素密度の表示装置と共に使用するように構成されていると判定したことに応答して、１または複数の戻りパラメータを前記アプリケーションプログラミングインタフェースから受け取ること、前記より低い画素密度の表示装置に合うように前記戻りパラメータをスケーリングすること、および、前記スケーリングされた戻りパラメータを前記アプリケーションプログラムに返すことをさらに備えたことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記より低い画素密度の表示装置は、９６ｄｐｉの画素密度を有することを特徴とする請求項１５に記載の方法。
【請求項１７】
前記より高い画素密度の表示装置は、１９２ｄｐｉの画素密度を有することを特徴とする請求項１６に記載の方法。
【請求項１８】
コンピュータで実行されると、前記コンピュータに、請求項１４乃至１７のいずれかに記載の方法を実施させるコンピュータ実行可能な命令を格納していることを特徴とするコンピュータ読取り可能媒体。
【請求項１９】
請求項１４乃至１７のいずれかに記載の方法を実施することができることを特徴とするコンピュータ制御の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、アプリケーションプログラムの後方互換性（backward compatibility）の分野に関し、より詳細には、改善された画素密度を有する表示装置とのアプリケーションプログラムの後方互換性を可能にする分野に関する。
【背景技術】
【０００２】
ハンドヘルドコンピューティング装置（本明細書では、個人用携帯情報端末「ＰＤＡ」とも呼ばれる）が発展するに従って、このクラスの装置の計算能力は、非常に向上している。特に大きな進歩が見られるＰＤＡのハードウェアコンポーネントは、表示画面である。時が経過するにつれて、ＰＤＡの表示画面の解像度および画素密度の双方は、大幅に増大した。本明細書において、用語「解像度」は、表示画面上で近接することができる水平および垂直方向の画素の数を意味する。例えば、ある種のＰＤＡは、水平画素数２４０および垂直画素数３２０であるのに対し、他のＰＤＡは、水平画素数４８０および垂直画素数６４０である。本明細書では、用語「画素密度」は、指定された測定単位の範囲内の表示画面上において近接することができる画素数を意味する。通常、画素密度は、ドット（またはピクセル）パーインチ（ｄｐｉ）で表される。例えば、ある種のＰＤＡは、９６ｄｐｉの表示画面を利用するのに対し、他のＰＤＡは、１９２ｄｐｉの改善された画素密度の表示画面を使用している。
【０００３】
最近のＰＤＡの解像度および画素密度の改善により、ユーザに恩恵がもたらされている。解像度および画像密度の改善により、画面上でより多くの情報を表示することが可能になり、従って、より容易にドキュメントおよびウェブページを見ることができるようになり、他の機能の実行も可能になる。解像度の改善により、透明度（clarity）および可読性（readability）も改善される。しかし、解像度および画素密度の改善により、ＰＤＡのためのアプリケーションプログラムを書くプログラマには難題がもたらされる。これらの難題は、通常、多くのＰＤＡアプリケーションが、表示画面が特定の画素密度を有すると仮定して書かれていることによって引き起こされる。この問題は、オペレーティングシステムが提供し、画面に関係する機能を実行するためにアプリケーションプログラムが呼び出すアプリケーションプログラムインタフェース（ＡＰＩ）が、しばしば画素をパラメータとして使用することによってさらに複雑になる。従って、例えば、９６ｄｐｉの表示画面で使用されるように構成されたアプリケーションが、画面上で幅２分の１インチ（１．２７ｃｍ）のユーザインタフェースボタンを描く場合、アプリケーションは、ＡＰＩを呼び出して幅４８画素のボタンを作成する。しかし、同じアプリケーションプログラムが、例えば１９２ｄｐｉの改善された画素密度を有するＰＤＡ上で実行される場合、同じ４８画素幅のボタンは、４分の１インチ（０．６４ｃｍ）の幅にしかならない。改善された画素密度を有する装置を導入する前に作成されたアプリケーションプログラムは、このような密度の増加を認識しないので、これらのプログラムによって描かれたすべてのユーザインタフェースオブジェクトは、意図するよりも小さく表示される。画面をタッチセンシティブデバイス（touch sensitive device）として利用する入力操作は、このようなレガシアプリケーションプログラムによって誤入力されるおそれがある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この問題の１つの解決策は、より新しいＰＤＡの改善された画素密度をサポートするために、アプリケーションプログラマが、そのアプリケーションを再プログラムすることが必要となる。しかし、このことは、実際にそのアプリケーションのコーディングをやり直さなければならないプログラマにとって、もどかしく時間がかかり得る。このことは、増大した画素密度を有する新しい装置を用いてアプリケーションを使用するためにアプリケーションが再コーディングされるのを待たなければならないユーザにとっても、もどかしい。場合によっては、プログラマは、より高い密度の表示のために、アプリケーションプログラムを再コーディングしないと単に決定することもできる。そして、プログラムのユーザは、より高い密度の表示画面を利用するために別のプログラムに移行せざるを得なくなる。
【０００５】
この問題の別の解決策では、より高い解像度の画面上で画面に関係する機能を実行するための新しいＡＰＩセットが作られる。しかし、この解決策では、レガシアプリケーションがより高い密度の表示を利用することが可能にならず、また、新しい高密度対応のアプリケーションを作成するプログラマがまったく新しいＡＰＩを利用することが必要なため、やはり望ましいものではない。従って、レガシアプリケーションは、アプリケーションを書き直さずに、改善された画素密度画面に正しく入力および出力ができ、新しい高密度対応アプリケーションがレガシアプリケーションと同じ画面操作用のＡＰＩセットを使用するのを可能にし、画面入力および出力を行うＡＰＩを書き直さずにこの機能を使用可能にすることが望ましい。これらまたは他の問題を考慮して本発明の様々な実施形態が構成される。
【課題を解決するための手段】
【０００６】
本発明によれば、上記および他の問題を、増大した画素密度を有する表示装置とのアプリケーションプログラムの互換性を可能にする方法および装置によって解決する。本発明が提供する機能を利用して、レガシアプリケーションは、修正せずに、改善された画素密度画面に合わせて正しく入力および出力することができる。さらに、高密度表示対応のアプリケーションは、改善された画素密度に対応していないレガシアプリケーションと同じ画面操作用のＡＰＩセットを利用することができる。この機能は、画面入力および出力を行うＡＰＩを書き直す必要なしに提供することができる。
【０００７】
本発明の一態様によると、より低い画素密度の表示装置と共に使用するように構成されたアプリケーションプログラムが、より高い画素密度の表示装置を十分に利用することを可能にする方法が提供される。この方法によると、ＰＤＡまたは他の種類のコンピューティング装置上で実行されているアプリケーションプログラムが、ＡＰＩに要求を発行する、すなわちＡＰＩを呼び出して、画面に描画することやタッチ画面（touch sensitive screen）から入力を受け取ることなどの画面入力または出力機能を実行することができる。このようなＡＰＩの呼出しは、実行される動作を定義する１または複数のパラメータを含み、画素単位を使用して表現することができる。例えば、画面上の４８画素幅のユーザインタフェースボタンを描くための呼出しを、ＡＰＩに対し行うことができる。
【０００８】
このような呼出しが受け取られると、呼出しは、所期のＡＰＩに到達する前にインタセプトされることもある。次に、このアプリケーションプログラムが、より低い画素密度の表示装置と共に用いるように構成されたのか、それとも、より高い画素密度の表示装置と共に用いるように構成されたのか判定が行われる。この判定は、アプリケーションプログラムのプロパティを検査して、アプリケーションプログラムが、コンパイルされたソフトウェア開発キットバージョン番号を判定することによって行われる。所定の数より大きいまたはそれと等しいバージョン番号を有するアプリケーションプログラムは、より高い画素密度の表示をサポートしていると想定される。所定の数より低いバージョン番号を有するアプリケーションプログラムは、より低い画素密度の表示だけをサポートしていると想定される。
【０００９】
アプリケーションプログラムが、より低い画素密度の表示装置と共に使用するように構成されている場合、ＡＰＩによって受け取られるパラメータは、より高い画素密度表示装置の画素密度に合うようにスケーリングされる。例えば、アプリケーションプログラムが９６ｄｐｉの画素密度に対応するように構成されており、その表示装置がより高い画素密度を有しており１９２ｄｐｉの画素密度である場合、そのパラメータが２倍にされる。次に、スケーリングされたパラメータを用いて、所期のアプリケーションプログラムインタフェースを呼び出す。アプリケーションプログラムがより高い画素密度の表示装置と共に使用するように構成されている場合は、ＡＰＩ機能呼出しのパラメータをスケーリングせずに、ＡＰＩ呼出しがＡＰＩに直接渡される。このようにして、より高い画素密度の表示画面と共に使用するように構成されたアプリケーションプログラムが所期の通りに実行される。
【００１０】
パラメータが、ＡＰＩ呼出しから返された場合、例えば、タッチディスプレイからスタイラスの入力を受け取るためにＡＰＩが利用されるとき、これらパラメータは、より低い画素密度に合うようにスケーリングされる。画面入出力操作を実行するネイティブＡＰＩに対する機能呼出しをインタセプトし、パラメータをスケーリングし、スケーリングされたパラメータを用いてネイティブＡＰＩを呼び出すことにより、より高い画素密度の表示画面のサポートを含まないレガシアプリケーションは、そのアプリケーションプログラムまたはＡＰＩを書き直す必要なしに、高い解像度の装置の表示画面全体を利用することができる。
【００１１】
本発明の他の態様によると、より低い画素密度の表示装置と共に使用するように作成されたアプリケーションプログラムが、より高い画素密度の表示装置を十分に利用することを可能にするように構成されたコンピュータシステムが提供される。このコンピュータシステムは、中央処理装置（ＣＰＵ）、より高い画素密度の表示装置、および、１または複数の実行可能なプログラムを格納する働きをするメモリを含む。詳細には、このメモリは、ＣＰＵ上で実行するためのオペレーティングシステム、より低い画素の表示装置と共に使用するように構成されたアプリケーションプログラム、表示装置に対して入出力動作を行うＡＰＩ、および変換層（translation layer）を格納する働きをする。
【００１２】
変換層は、アプリケーションプログラムが行うＡＰＩに対する呼出しをインタセプトする働きをする。このような呼出しが受け取られると、変換層は、呼出しで受け取られた任意のパラメータを、インストールされた表示画面のより高い画素密度に合うようにスケーリングする。次に、変換層は、スケーリングされたパラメータを用いて所期のＡＰＩを呼び出す。パラメータがＡＰＩ呼出しから返された場合、例えば、タッチ画面から入力を受け取るのにＡＰＩが利用されたとき、変換層は、アプリケーションプログラムによって利用されるより低い画素密度に合うようにパラメータ値をスケーリングする。
【００１３】
変換層は、呼び出すアプリケーションプログラムが、より低い画素密度の表示装置と共に使用するように構成されているか、それともより高い画素密度の表示装置と共に使用するように構成されているかを判定する働きをすることができる。アプリケーションプログラムが、より低い画素密度の表示装置と共に使用するように構成されている場合、変換層は、上記のようにパラメータをスケーリングする。しかし、アプリケーションプログラムがより高い画素密度のディスプレイと共に使用するように作成されたと変換層が判定した場合、変換層は、パラメータをスケーリングせずに、所期のＡＰＩを呼び出す。呼び出すアプリケーションプログラムが、より低い画素密度をサポートするか、それともより高い画素密度をサポートするかの判定を、そのアプリケーションがコンパイルされたソフトウェア開発キットのバージョン番号を示すアプリケーションプログラムのプロパティを検査することによって行うことができる。
【００１４】
本発明は、コンピュータプロセス、コンピューティングシステム、あるいは、コンピュータプログラム製品またはコンピュータ読取り可能媒体などの製造品として実装することができる。このコンピュータプログラム製品は、コンピュータシステムで読取り可能なコンピュータ記憶媒体であり、コンピュータプロセスを実行するための命令のコンピュータプログラムをコード化しているものとすることができる。このコンピュータプログラム製品は、コンピューティングシステムで読取り可能な搬送波上の伝搬信号であり、コンピュータプロセスを実行するための命令のコンピュータプログラムをコード化しているものとすることもできる。
【００１５】
本発明を特徴づけるこれらおよび他の様々な特徴および利点は、以下の詳細な説明を読み、関連する図面を検討することにより明らかになろう。
【発明を実施するための最良の形態】
【００１６】
次に、図面を参照して、本発明の様々な態様を説明する。図面において同じ数字は同じ要素を表している。図１および以下の議論は、本発明を実装することができる適切なコンピューティング環境の簡潔かつ概観的な説明を提供するものである。図１のコンピューティング環境は例示にすぎず本発明を限定するものではないことを理解されたい。
【００１７】
図１は、ＰＤＡなどのハンドヘルドコンピューティング装置に見ることができるようなコンピューティング環境を記述している。ただし、本発明はＰＤＡに限定されないことは理解されたい。本発明は、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家庭用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、無線電話、および、ポケットベル（pager）などを含めた他のコンピュータシステム構成によって実施することもできる。本発明を、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、ローカルとリモートの両方のメモリ記憶装置に置くことができる。
【００１８】
一般的に、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データ型を実装している、ルーチン、プログラム、コンポーネント、データ構造、および他のタイプのストラクチャを含む。さらに、本発明を、デスクトップコンピューティングシステム、マルチプロセッサベースまたはプログラム可能である家庭用電子機器、ミニコンピュータ、およびメインフレームコンピュータなどを含めた他のコンピュータシステム構成によって実施することができることを、当業者には理解されよう。本発明は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールを、ローカルとリモートの両方のメモリ記憶装置に置くことができる。
【００１９】
図１を参照すると、本発明を実装するための例示的システムは、ハンドヘルドコンピューティング装置１００を含む。コンピューティング装置１００は、プロセッサ１０２、メモリ１０４、およびディスプレイ１０６を備え、ユーザインタフェースボタンおよび／またはキーボード入力装置１０８を含むことができる。メモリ１０４は、一般に揮発性メモリ（例えばＲＡＭ）と不揮発性メモリ（例えばＲＯＭ、ＰＣＭＣＩＡカードなど）の両方のメモリを含む。オペレーティングシステム１１０は、メモリ１０４に常駐しプロセッサ１０２で実行される。ハンドヘルドコンピューティングデバイス１００は、マイクロソフト社の「Windows（登録商標） Mobile 2003」オペレーティングシステム、ＰａｌｍＳｏｕｒｃｅ社の「Palm OS」、またはハンドヘルドまたはデスクトップのコンピュータを動作させるのに適切な他のオペレーティングシステムなどのオペレーティングシステム１１０を含む。
【００２０】
１または複数のアプリケーションプログラム１１２は、メモリ１０４にロードされ、オペレーティングシステム１１０上で実行される。アプリケーションの例には、電子メールプログラム、スケジューリングプログラム、ＰＩＭ（personal information management）プログラム、ワードプロセッシングプログラム、およびスプレッドシートプログラムなどが含まれる。アプリケーションプログラム１１２の別の例は、マイクロソフト社の「Pocket Internet Explorer」ウェブブラウザアプリケーションプログラムや他のウェブブラウザなどのウェブブラウザのプログラムモジュールである。
【００２１】
ハンドヘルドコンピューティングデバイス１００は、１または複数のバッテリとして実装される電源１１４を備える。電源１１４は、内蔵型電池をオーバライドまたは再充電するＡＣアダプタや充電用クレードル（powered docking cradle）などの外部電力源をさらに含むことができる。ハンドヘルドコンピューティング装置１００は、音声出力を生成するための音声発生器１１６を含むことができ、生成された音声出力は、ハンドヘルド装置１００内に含まれるスピーカで再生される。ハンドヘルドコンピューティングデバイス１００の従来のコンポーネント１０２〜１１６を、データおよび電力信号を伝送するためのバス１１８を介して相互接続することができる。
【００２２】
上述したように、ハンドヘルドコンピューティング装置１００は、ディスプレイ１０６を含む。ディスプレイ１０６は、バックライト付き薄膜トランジスタ液晶（ＴＦＴ：thin-film transistor liquid crystal）ディスプレイ、またはハンドヘルド装置における動作に適した他の種類のディスプレイを含むことができる。上述したように、ディスプレイ１０６は、タッチ画面機能を備えることもできる。ユーザは、スタイラスまたは他のポインティングデバイス１００を用いてディスプレイ１０６の所望の部分に接触することにより、ハンドヘルド装置１００に入力を行うことができる。ユーザが接触した画面の座標が、処理のためオペレーティングシステム１１０に返される。従って、ディスプレイは、ハンドヘルドに対する入力と出力の両方の能力を提供することができることを理解されたい。
【００２３】
図２Ａおよび２Ｂを参照すると、本発明の様々な実施形態に利用されるディスプレイ１０６についてさらに詳細に説明する。図２Ａおよび２Ｂに示すように、ハンドヘルドで利用されるディスプレイ１０６は、利用される表示パネルの種類に応じて異なる画素密度を有するように構成され得る。例えば、図２Ａに示すように、あるパネルは、水平画素２４０および垂直画素３２０の画素解像度のディスプレイ１０６に利用することができる。図２Ａに示すディスプレイ１０６の寸法は、縦３．３３インチ（８．４６ｃｍ）および横２．５インチ（６．３５ｃｍ）とすることができる。このような寸法および画素解像度において、図２Ａに示すディスプレイ１０６の画素密度は、９６ｄｐｉである。
【００２４】
図２Ｂに示すディスプレイ１０６は、図２Ａに示すディスプレイ１０６よりも、より高い画素密度を有する。具体的には、図２Ｂに示すディスプレイ１０６は、図２Ａに示すディスプレイ１０６と同じ寸法であるが、水平画素４８０で垂直画素６４０の解像度を有する。従って、図２Ｂに示すディスプレイ１０６の画素密度は、１９２ｄｐｉである。９６ｄｐｉおよび１９２ｄｐｉの画素密度を有する各ディスプレイは、単に例示的なものであり、本発明の実施形態は、任意の画素密度のディスプレイと共に利用することができることを理解されたい。
【００２５】
図３Ａおよび図３Ｂを参照して、本発明の実施形態に利用されるディスプレイ１０６についてさらに詳細を説明する。図３Ａは、画素密度９６ｄｐｉのディスプレイの画面表示を示す。図３Ａに示すように、画面は、いくつかの画素１２２Ａ〜１２２Ｃからなる。各ピクセルは、表示画面にデータを書くために個々に指定することができる。例えば、図３Ａに示すように、正方形１２０は、該当する画素をアクティブにすることによって表示画面上に表示することができる。
【００２６】
図３Ｂは、１９２ｄｐｉ、すなわち図３Ａに示す表示画面の２倍の画素密度の表示画面１０６を示す。図３Ｂは、図３Ａに示す正方形と同じ正方形１２０の描画を示している。正方形１２０を描くのに利用する画素数が同じであるにもかかわらず、画素密度の増大のため、図３Ｂに示す正方形１２０は、図３Ａに示す正方形のサイズの４分の１である。このようなことは、例えば、（図３Ａに示す）より低い画素密度の画面と共に動作するように特に書かれたアプリケーションプログラムが、（図３Ｂに示す）より高い画素密度の表示画面を備える装置上で実行されるときに起きる。本発明の実施形態により、図３Ａに示す正方形１２０と同じように、図３Ｂに示すディスプレイ上で、正方形１２０または任意の他の画面上のオブジェクトが表示されるようになる。
【００２７】
次に図４Ａおよび４Ｂを参照して、増大した画素密度を有する表示装置とのアプリケーションソフトウェア互換性を可能にするために利用されるソフトウェアコンポーネントのうちいくつかを説明する。詳細には、図４Ａは、より高い画素密度ディスプレイを有する装置と共に使用するように特にプログラムされたアプリケーションプログラム１１２Ａによって、表示画面入出力を実行するためのＡＰＩの呼出しを処理するのに利用されるソフトウェアコンポーネントを示す。アプリケーションプログラム１１２Ａは、より高い画素密度ディスプレイと共に使用するように特に構成されているため、ＡＰＩ１２４への／からの呼出しは、直接行うことができ、追加の処理をせずにオペレーティングシステム１１０によって処理することができる。
【００２８】
より詳細は下記で論じるが、ＡＰＩ呼出しが受け取られたとき、呼出しアプリケーションが、より高い画素密度の表示装置と共に使用するように特に構成されているかどうか判定することができる。そのアプリケーションが、より高い画素密度の表示装置と共に使用されるように構成されている場合、上記のようなより高い画素密度のディスプレイとの互換性を可能にするための追加の処理は必要ない。しかし、そのアプリケーションが、より高い画素密度のディスプレイと共に使用するように特にプログラムされていない場合、入力および出力がより高い密度のディスプレイと確実に互換性があるようにするための追加の処理が必要である。これは図４Ｂに図示されている。
【００２９】
図４Ｂに示すように、より高い画素密度の表示装置と共に使用するように構成されていないレガシアプリケーション１１２Ｂは、画面入力または出力動作を行うためにＡＰＩ１２４を呼び出すことができる。双方向変換層１２６は、ＡＰＩ呼出しをインタセプトし、アプリケーションプログラムが、より高い密度の表示装置と共に使用するように構成されているかどうか判定する。レガシアプリケーション１１２Ｂが、より高い密度の表示装置と共に使用するように構成されていないので、変換層は、より高い画素密度のディスプレイに合うようにＡＰＩ呼出しの画素パラメータをスケーリングする。例えば、レガシアプリケーション１１２Ｂが９６ｄｐｉのディスプレイと共に使用するように構成されており、ハンドヘルド装置１００に実際には１９２ｄｐｉのディスプレイが取り付けられている場合、変換層１２６は、ＡＰＩ呼出しで受け取られる画素座標を２倍にする。変換層１２６は、スケーリングされたパラメータを用いて所期のＡＰＩ１２４を呼び出して、より高い画素密度で要求された操作を行う。同様に、例えば入力動作が行われたときなど、パラメータがＡＰＩ１２４から返された場合、返されたパラメータもやはり適切にスケーリングすることができる。図４Ａおよび図４Ｂに示されるＡＰＩ１２４は同じものであり、ＡＰＩ１２４に変更を加える必要がないことを理解されたい。図５およびそれに関連する議論では、ＡＰＩ呼出しをインタセプトし、受け取ったパラメータをスケーリングするための変換層１２６によって行われるプロセスに関して、さらに詳細を説明する。
【００３０】
図５を参照して、増大した画素密度を有する表示装置とアプリケーションプログラムの互換性を可能にするプロセスを示す例示的ルーチン５００を説明する。本明細書に提示されるルーチンに関する議論を読むとき、本発明の様々な実施形態の論理操作は、（１）一連のコンピュータで実行される処理またはコンピューティングシステム上で実行されているプログラムモジュール、および／または（２）コンピュータシステム内の相互接続された機械論理回路または回路モジュールとして実装されることを理解されたい。実装形態は、本発明を実装しているコンピューティングシステムの性能要件に応じて選択される問題である。従って、図５に示す論理操作、および本明細書に記載の本発明の実施形態を構成することは、操作、構造的装置、動作、またはモジュールと様々に表される。これらの操作、構造的装置、動作、およびモジュールは、本明細書に添付の特許請求の範囲内の本発明の趣旨および範囲から逸脱することなく、ソフトウェア、ファームウェア、専用デジタル論理、およびそれらの任意の組合せで実装することができることが当業者には理解されよう。
【００３１】
ルーチン５００は、操作５０２から始まり、ここで、変換層１２６は、呼出しが、画面入力または出力を行うために、アプリケーションプログラム１１２から受け取られＡＰＩ１２４に向けられたものであるかどうかを判定する。そのような呼出しが受け取られなかった場合、ルーチン５００は、操作５０２に分岐して戻り、このような判定をまた行う。アプリケーションプログラム１１２からＡＰＩ１２４に呼出しが行われた場合、ルーチン５００は、操作５０２から操作５０４に進む。
【００３２】
操作５０４において、変換層１２６がアプリケーション１１２からのＡＰＩ呼出しをインタセプトする。これは、例えば、アドレステーブルにおいてＡＰＩ１２４呼出しの各画面の代わりに、変換層１２６のアドレスを用いることによって達成することができる。このようにして、画面ＡＰＩ１２４機能に対する呼出しは、代わりに変換層１２６に送ることができる。次いで、ルーチンは、操作５０４から操作５０６に進む。
【００３３】
操作５０６において、変換層１２６は、呼出しアプリケーションプログラムが画素密度の増大したディスプレイと共に使用するように構成されているかどうか判定する。変換層は、このプロセスを、例えば、アプリケーションプログラム１１２のプロパティを検査して、アプリケーションプログラム１１２をコンパイルしたソフトウェア開発キット（「ＳＤＫ」）のバージョン番号を決定することによって行うことができる。この情報は、コンパイル時にアプリケーションプログラム１１２に含まれる。ＳＤＫのバージョン番号に基づいて、変換層１２６は、アプリケーションプログラム１１２が、より低い画素密度の表示装置と共に使用するように構成されているか、それともより高い画素密度の表示装置と共に使用するように構成されているか判定することができる。所定の番号よりも大きいかまたは同じバージョン番号を有するアプリケーションプログラムは、より高い画素密度のディスプレイをサポートしていると想定される。所定の番号よりも小さいバージョン番号を有するアプリケーションプログラムは、より低い画素密度のディスプレイのみをサポートしていると想定される。アプリケーションプログラム１１２がより高い画素密度のディスプレイと共に使用するように構成されたかどうか判定するために、他の方法を利用することもできる。
【００３４】
ルーチン５００は、操作５０６から、判定操作５０８に進み、そこで、アプリケーションプログラム１１２が、より高い画素密度の表示装置と共に使用するように構成されたか、それともより低い画素密度の表示装置と共に使用するように構成されたかに応じて分岐が行われる。アプリケーションプログラム１１２が、より高い画素密度のディスプレイと共に使用するように構成されている場合、ルーチン５００は、操作５１０に進み、そこで、渡すパラメータにどのような修正もせずに、ＡＰＩ呼出しを所期のＡＰＩに渡す。アプリケーションプログラム１１２は、より高い画素密度のディスプレイと共に使用するように特に構成されているので、ＡＰＩ１２４への／からの呼出しは、どのような追加の処理もせずに、直接行うことができ、オペレーティングシステム１１０によって処理することができる。ルーチン５００は、操作５１０から操作５０２へ戻り、追加のＡＰＩ呼出しを処理することができる。
【００３５】
判定操作５０８において、呼出しアプリケーション１１２がより高い画素密度のディスプレイと共に使用するように構成されていないと判定された場合、ルーチン５００は、判定操作５０８から操作５１２へ分岐する。操作５１２において、ＡＰＩ呼出しは、双方向変換層１２６によってインタセプトされる。操作５１４において、双方向変換層１２６は、ＡＰＩ呼出しで受け取った画素パラメータをより高い画素密度の表示装置に合うようにスケーリングする。次に、操作５１４において、変換層１２６は、スケーリングしたパラメータを用いて所期のＡＰＩを呼び出す。ＡＰＩ１２４は、より高い画素密度の表示装置上で、スケーリングしたパラメータによって所期の機能を実行する。
【００３６】
ルーチン５００は、操作５１４から操作５１６に進み、そこで、変換層１２６が、例えば、入力操作が行われたときなどに、ＡＰＩ１２４によって、呼出しアプリケーション１１２に、任意の画素値が返されるかどうかを判定する。画素値がアプリケーション１１２に返されない場合、ルーチン５００は、操作５０２に戻り、別のＡＰＩ呼出しをインタセプトし処理することができる。値が返される場合は、ルーチン５００は、操作５１８に進み、そこで、変換層が、返された画素値を、より低い画素密度のディスプレイの画素密度に合うようにスケーリングする。次に、ルーチン５００は、操作５２０に進み、そこで、スケーリングされた戻り値が変換層によってアプリケーション１１２に返される。ルーチン５００は、操作５０２に進み、そこで、別のＡＰＩ呼出しをインタセプトし処理することができる。
【００３７】
本明細書に記載の本発明の実施形態は、ハンドヘルドコンピューティング装置の文脈で示されているが、より高い画素密度のディスプレイとの後方互換性を保証するために、本発明の様々な態様は、デスクトップ、ラップトップ、および他の種類のコンピュータシステムによって利用することができることを理解されたい。さらに、本発明の実施形態はまた、より低い画素密度からより高い画素密度へパラメータをスケーリングする文脈で記述されているが、本発明は、より高い画素密度からより低い画素密度にスケーリングするために利用することもできる。このようにして、より高い画素密度のディスプレイと共に使用するようにのみ構成されたアプリケーションプログラムが、修正せずにより低い画素密度の表示画面上で利用することができる。
【００３８】
上記のことに基づいて、本発明の様々な実施形態が、増大した画素密度を有する表示装置とのアプリケーションプログラム互換性を可能にするための方法、システム、装置、およびコンピュータ読取り可能媒体を含むことを理解されたい。上記の明細書、実施例、およびデータは、本発明の構成の製造および用途の完全な説明を提供する。本発明の趣旨および範囲から逸脱することなく本発明の多くの実施形態を実施することができるので、本発明は添付の特許請求の範囲にある。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態のための動作環境を提供するハンドヘルドコンピューティング装置のアーキテクチャを示すコンピュータシステムの構成図である。
【図２Ａ】本発明の様々な実施形態において利用され得る２つの異なる表示画面の解像度および画素密度を示すブロック図である。
【図２Ｂ】本発明の様々な実施形態において利用され得る２つの異なる表示画面の解像度および画素密度を示すブロック図である。
【図３Ａ】従来技術の方法を利用する２つの異なる画素密度を有する２つの異なるディスプレイ上で同じオブジェクトを表示することの効果を示すブロック図である。
【図３Ｂ】従来技術の方法を利用する２つの異なる画素密度を有する２つの異なるディスプレイ上で同じオブジェクトを表示することの効果を示すブロック図である。
【図４Ａ】本発明の様々な実施形態によって利用される、改善された画素密度を有する表示装置とのアプリケーションプログラム互換性を保証するためのソフトウェアアーキテクチャを示す図である。
【図４Ｂ】本発明の様々な実施形態によって利用される、改善された画素密度を有する表示装置とのアプリケーションプログラム互換性を保証するためのソフトウェアアーキテクチャを示す図である。
【図５】本発明の実施形態による、改善された画素密度を有する表示装置とのアプリケーション互換性を保証するための例示的方法によって実行される論理動作を示す流れ図である。
【符号の説明】
【００４０】
１１０  オペレーティングシステム
１１２Ａ  高解像度対応アプリケーション
１１２Ｂ  レガシアプリケーション（高解像度非対応）
１２４  画面入出力アプリケーションプログラミングインタフェース
１２６  双方向変換層
【図１】
2005276189.tif 000003
【図２Ａ】
2005276189.tif 000004
【図２Ｂ】
2005276189.tif 000005
【図３Ａ】
2005276189.tif 000006
【図３Ｂ】
2005276189.tif 000007
【図４Ａ】
2005276189.tif 000008
【図４Ｂ】
2005276189.tif 000009
【図５】
2005276189.tif 000010
【外国語明細書】
2005276189000001.pdf