本発明を実施するための形態について図面を参照して詳細に説明する。
まず、本発明の各実施形態に共通する基本的な構成および動作について説明する。
図1は、本発明の実施形態による情報処理端末の正面図である。本発明の実施形態の情報処理端末10は一例として通信機能を備えた携帯情報端末であり、開閉可能に接続された2つの筐体13、14からなり、各筐体13、14のそれぞれにディスプレイ11、12を備えている。2つのディスプレイ11、12は、筐体13と筐体14を開いた状態で表示面が同じ方向を向き、同時にユーザの視界に入るように配置されている。ただし、2つ筐体13、14にそれぞれディスプレイ11、12を備えた情報処理端末10は開閉式である必要はなく他のどのような構成であってもよい。他の例として、2つの筐体13、14が互いに摺動可能に接続されたスライド式であってもよく、あるいは2つの筐体13、14が互いに分離可能であってもよい。
まず、情報処理端末10の概要について説明する。
図2は、本発明の実施形態による情報処理端末の機能ブロック図である。図2を参照すると、情報処理端末10はディスプレイ11、12および制御部15を有している。
ディスプレイ11、12は、それぞれにアプリケーション画面を表示する液晶等の表示装置である。
制御部15は、各種アプリケーションの処理を実行し、実行中のアプリケーションのアプリケーション画面をディスプレイ11、12に表示する処理装置である。制御部15に、アプリケーション等の各種処理の実行を受け持つCPUと、ディスプレイ11、12への画像表示の処理を受け持つGPU(Graphics Processing Unit)とが含まれていてもよい。
制御部15は、2つのアプリケーションを並行して実行し、それらのアプリケーション画面をそれぞれディスプレイ11、12に表示させることが可能である。
また、制御部15は、複数のアプリケーションを1つのディスプレイに重ねて表示するように実行することもできる。その場合、制御部15は、ユーザの意図を考慮し、起動直後のアプリケーションのアプリケーション画面をディスプレイの最も手前(表面)に表示する。
図3は、1つのディスプレイにて複数のアプリケーションを実行した場合の一例を示す概念図である。図3は、アプリケーションA1〜A4の4つのアプリケーションがディスプレイ11にて実行されている例を示している。アプリケーションA1のアプリケーション画面が実際にディスプレイ11に表示されており、アプリケーションA2〜A4は実行されてはいるがアプリケーション画面が見えない状態である。この状態におけるアプリケーションA1を表示アプリケーションと呼び、アプリケーションA2〜A4を潜在アプリケーションと呼ぶことにする。また、潜在アプリケーションA2〜A4にも階層(順位)が存在する。表示アプリケーションA1に最も近い潜在アプリケーションA2から最も遠い潜在アプリケーションA4に向かって階層が深くなっている。例えば表示アプリケーションA1が終了されると最上位の潜在アプリケーションA2が新たに表示アプリケーションになる。
表示アプリケーションは、ユーザ操作が入力されたり、処理を頻繁に実行したりするため、リソースを多く消費する。一方、潜在アプリケーションは基本的にリソースの消費量が少ない。また、制御部15が、潜在アプリケーションを、リソースの消費を意図的に削減した非アクティブ状態にすることにしてもよい。
ここでリソースとは、アプリケーションの実行に利用される、情報処理端末10が有する物理的あるいは仮想的なリソースである。リソースには、例えば、CPUあるいはGPUの処理能力、メモリ容量、通信のスループット、電力あるいはチャネル数のような中間的な消費量をとりうる種類のリソース、カメラ、GPS、センサ、あるいは通信デバイスのデバイス等のように使用の有無が定まる種類(1つのアプリケーションに占有される種類)のリソースが含まれる。アプリケーションが実行されるとき、アプリケーションによってリソースが使用される。
制御部15は、新たなアプリケーションを起動するとき、新たなアプリケーションのアプリケーション画面をどちらのディスプレイに表示するか決定する。
以下、本発明の各実施形態の詳細について説明する。
(第1の実施形態)
第1の実施形態として、中間的な消費量をとりうる種類のリソースだけを想定した場合を例示する。中間的な消費量をとりうるリソースの例として、CPU処理能力、メモリ容量、通信のスループット、チャネル数、電力などがある。
第1の実施形態の情報処理端末10の基本的な構成は図2に示した構成である。
図4は、第1の実施形態の情報処理端末10によるアプリケーションの画面表示制御を示すフローチャートである。この画面表示制御の処理は主に制御部15により実行される。
本実施形態の情報処理端末10は、それぞれにアプリケーションの画面を表示する複数のディスプレイ11及び12と、情報処理端末10のリソース消費量に基づいて複数のディスプレイ11及び12のうちから新たなアプリケーションを起動するディスプレイを決定する制御部15とを有する。したがって、本実施形態の情報端末10は、情報処理端末にかかる負荷を考慮して、新たなアプリケーションを起動するディスプレイを決定することができる。以下により詳細な説明を記載する。
図4の初期状態では、既に何らかのアプリケーションが実行中であっても、いずれのアプリケーションも実行されていなくてもよい。
図4を参照すると、情報処理端末10は、新たなアプリケーションの起動指示を受けると、まず第1の条件により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか、どちらにも起動できないか判定する(ステップ101)。ここで第1の条件は、新たなアプリケーションを一方のディスプレイにて起動した場合に、そのアプリケーションの過去のリソース消費量の統計量と、他方のディスプレイの表面に出ている実行中のアプリケーションの現在のリソース消費量の総和が所定の閾値を超えないという条件である。リソース消費量の統計量は一例として過去の実行時のリソース消費量の平均値である。実行中のアプリケーションのリアルタイムのリソース消費量からアプリケーションを起動すべきでない場合は、この第1の条件で起動できないと判断される。
ディスプレイ11、12のいずれか一方または両方にてアプリケーションを起動できると判断された場合、情報処理端末10は、アプリケーションを起動できると判断されたディスプレイについて、更に第2の条件により新たなアプリケーションを起動できるか否か判定する(ステップ102)。
ここで第2の条件は、新たなアプリケーションを、第1の条件を満たしたディスプレイにて起動するとした場合に、新たなアプリケーションの過去の統計量であるリソース消費量と、他のディスプレイの表面に出ている実行中のアプリケーションの過去の統計量のリソース消費量との総和が所定の閾値を超えないという条件である。リソース消費量の統計量は、やはり一例として過去の実行時のリソース消費量の平均値である。実行中のアプリケーションが平均的なリソース消費量で推移すると仮定した場合に、アプリケーションを起動すべきでなければ、この第2の条件で起動できないと判断される。
第2の条件でもディスプレイ11、12のいずれか一方または両方にてアプリケーションを起動できると判断された場合、情報処理端末10は、アプリケーションを起動できると判断されたディスプレイについて、更に第3の条件により新たなアプリケーションを起動できるか否か判定する(ステップ103)。
ここで第3の条件は、新たなアプリケーションがディスプレイ11、12のいずれかで起動された後に他のディスプイレイの表示アプリケーションが終了されたときの、2つのディスプレイ11、12の表面のアプリケーションのリソース消費量の総和が閾値を超えないという条件である。将来的にディスプレイ11、12の表面に出ているアプリケーションが終了され、その下のアプリケーションが表面に出た場合に、全体のリソース消費量に問題が生じることが想定される場合、この第3の条件で起動できないと判断される。
第3の条件でもディスプレイ11、12のいずれか一方または両方にてアプリケーションを起動できると判断された場合、情報処理端末10は、アプリケーションを起動できると判断されたディスプレイにてアプリケーションを起動する(ステップ104)。これにより、第1〜3の条件の全ての条件を満たすディスプレイを優先してアプリケーションを起動することができる。例えば、ディスプレイ11で新たなアプリケーションを起動した場合、ディスプレイ11のそれまでの表示アプリケーションは最上位の潜在アプリケーションとなる。潜在アプリケーションになるとそのアプリケーションのリアルタイムのリソース消費量は減少する。
なお、第3の条件でディスプレイ11、12のどちらでもアプリケーションを起動できると判断されたのであれば、情報処理端末10はディスプレイ11、12のうち一方を任意に選択し、選択したディスプレイにてアプリケーションを起動すればよい。ただし、これは一例であり、他の例として、更なる条件による判定を行ってもよい。具体的には、新たなアプリケーションをディスプレイ11にて起動した場合とディスプレイ12にて起動した場合とでリソース消費量に差異があれば、リソース消費量がより少なくなる方を選択してもよい。
ステップ101〜103のいずれかにおいて、ディスプレイ11、12のいずれによってもアプリケーションを起動できないと判定された場合、情報処理端末10は強制起動処理を実行する(ステップ105)。強制起動処理とは、リソース消費量の総計が低減するように実行中のアプリケーションの状態を制御した上で、要求された新たなアプリケーションを起動する処理である。強制起動処理の詳細は後述する。ただし、強制起動処理を行うのは一例であり、他の例として、ステップ101〜103のいずれかにおいて、ディスプレイ11、12のいずれによってもアプリケーションを起動できないと判定された場合、情報処理端末10は新たなアプリケーションを起動しないことにしてもよい。
図5は、本実施形態の情報処理端末による強制起動処理を示すフローチャートである。図4のフローチャートにおいて新たなアプリケーションをいずれのディスプレイ11、12にても起動することができないと判断された場合に、この強制起動処理が実行される。
図5を参照すると、情報処理端末10は、まず、実行中のアプリケーションをディスプレイ11、12間で移動すれば、新たなアプリケーションをいずれかのディスプレイにて起動できるか否か判定する(ステップ201)。実行中のアプリケーションをディスプレイ11、12間で移動するとは、そのアプリケーションのアプリケーション画面を表示するディスプレイをディスプレイ11からディスプレイ12へあるいはディスプレイ12からディスプレイ11へ変更することである。実行中のアプリケーションをディスプレイ11、12間で移動すると、2つのディスプレイ11、12の表示アプリケーションと潜在アプリケーションが変化するので、全体のリソース消費量が変化する。
実行中のアプリケーションをディスプレイ11、12間で移動すれば、全体のリソース消費量の変化の結果として新たなアプリケーションをいずれかのディスプレイにて起動できるのであれば、情報処理端末10は、そのように実行中のアプリケーションを移動し(ステップ202)、新たなアプリケーションを起動する(ステップ203)。
実行中のアプリケーションをディスプレイ11、12間で移動しても新たなアプリケーションを起動できないのであれば、情報処理端末10は、新たなアプリケーションをいずれか一方のディスプレイにて起動し、他方のディスプレイの表示アプリケーションを非アクティブ状態にする(ステップ204)。
ここで非アクティブ状態とは、実行中を維持したままリソース消費量を削減した状態である。アプリケーションを非アクティブ状態にする場合、例えば、そのアプリケーションのために確保されているメモリ領域を解放してもよい。または情報処理端末10は、表示アプリケーションを非アクティブ状態にするために、そのアプリケーションのディスプレイ上に、リソース消費量がゼロのダミーアプリケーションを起動することにしてもよい。それにより表示アプリケーションが潜在アプリケーションとなりリソースの消費量が低減される。その際、情報処理端末10は、非アクティブ状態にしたアプリケーションのアプリケーション画面を暗くしてもよく、あるいはサムネイル化してもよい。
また、図5の例では、実行中のアプリケーションをディスプレイ11、12間で移動しても新たなアプリケーションを起動できないとき、新たなアプリケーションを表示する方でないディスプレイの表面に出ているアプリケーションを非アクティブ状態にすることにしたが、本発明はこれに限定されるものではない。他の例として、実行中のアプリケーションをディスプレイ11、12間で移動した場合の判定を行うことなく、新たなアプリケーションをいずれか一方に表示し、他方のディスプレイの表面に出ているアプリケーションを非アクティブ状態にすることにしてもよい。
また、本実施形態では、図4に示したように、第1〜3の条件の全て条件による判定を行う例を示したが、本発明はこれに限定されるものではない。他の例として、第1〜3の条件のうちいずれか1つの条件だけで判定を行うことにしてもよい。更に他の例として、第1〜3のうちいずれか2つの条件で判定を行うことにしてもよい。
また、本実施形態では、図4に示したように、第1〜3の条件をその順序で用いる例を示したが、本発明はこれに限定されるものではなく、第1〜3の条件を任意の順序で用いることができる。
(第2の実施形態)
第1の実施形態として、CPU処理能力やメモリ容量のような消費量が測定できるリソースだけを想定した場合を例示したが、第2の実施形態は、カメラやセンサのように使用の有無が定まる種類のリソースのみを想定した場合を例示する。この種のリソースをここではデバイスと呼ぶことにする。
第2の実施形態では、情報処理端末10は、複数のアプリケーションが同じデバイスを同時に使用することが無いように、2つのディスプレイ11、12の表示アプリケーションが同じデバイスを使用するものにならないように新たなアプリケーションを起動するディスプレイを選択する。
第2の実施形態においても情報処理端末10の基本的な構成は図2に示した構成である。
図6は、第2の実施形態の情報処理端末10によるアプリケーションの画面表示制御を示すフローチャートである。この画面表示制御の処理は主に制御部15により実行される。図6の初期状態では、既に何らかのアプリケーションが実行中であってもよく、いずれのアプリケーションも実行されていなくてもよい。
図6を参照すると、情報処理端末10は、新たなアプリケーションの起動指示を受けると、その新たなアプリケーションがデバイスを使用するものであるか否か判定する(ステップ301)。新たなアプリケーションがデバイスを使用するのであれば、情報処理端末10は、次に、新たなアプリケーションが使用するデバイスと同じデバイスを使用するアプリケーションが表示アプリケーションとしてディスプレイ11、12に表示されているか否か判定する(ステップ302)。
ステップ301の判定にて、新たなアプリケーションがデバイスを使用するものでない場合、またはステップ302の判定にて、新たなアプリケーションと同じデバイスを使用するアプリケーションが表示されていない場合、情報処理端末10は、ディスプレイ11、12から任意に選択したディスプレイにて新たなアプリケーションを起動する(ステップ303)。
ステップ302の判定にて、いずれかのディスプレイに新たなアプリケーションと同じデバイスを使用するアプリケーションが表示されていれば、情報処理端末10は、そのディスプレイにて新たなアプリケーションを起動する(ステップ304)。これにより、同じデバイスを使用する複数のアプリケーションが同時に表示アプリケーションとなることが無くなる。
なお、ここでは、他のアプリケーションとの競合が無い状態でどちらのディスプレイ11、12でも起動できないようなアプリケーションはインストールされていないものとしている。また、初期状態として、同じデバイスを使用する2つのアプリケーションがディスプレイ11、12のそれぞれの表示アプリケーションになっていることは無いものとしている。そのため、図6において、新たなアプリケーションは必ず少なくともいずれかのディスプレイでは起動できるものとする。
本実施形態において、カメラのような使用の有無が定まる種類のリソースについて、アプリケーションがリソースを使用する可能性を数値化して、新たなアプリケーションを起動するディスプレイを選択するための判定に用いることにしてもよい。以下の本実施形態の変形例について説明する。
図7は、第2の実施形態の変形例による情報処理端末10によるアプリケーションの画面表示制御を示すフローチャートである。この画面表示制御の処理は主に制御部15により実行される。図7の初期状態では、既に何らかのアプリケーションが実行中であってもよく、いずれのアプリケーションも実行されていなくてもよい。
図7を参照すると、情報処理端末10は、新たなアプリケーションの起動指示を受けると、その新たなアプリケーションがデバイスを使用する可能性があるか否か判定する(ステップ701)。ここでアプリケーションがデバイスを使用する可能性は、アプリケーションが実行されかつデバイスを使用した回数を、アプリケーションが実行された回数で除算して得られる使用率で表される。アプリケーションがデバイスを使用する可能性があるというのは使用率が閾値を超えていることを言う。閾値は例えばゼロである。
新たなアプリケーションがデバイスを使用する可能性があるものであれば、情報処理端末10は、第4の条件として、新たなアプリケーションが使用するデバイスが、いずれかの表示アプリケーションによって現時点で使用されているか否か判定する(ステップ702)。
新たなアプリケーションが使用するデバイスがいずれの表示アプリケーションによっても現時点で使用されていなければ、情報処理端末10は、次に、第5の条件として、そのデバイスを使用する可能性があるアプリケーションがいずれかのディスプレイの表示アプリケーションとなっているか否か判定する(ステップ703)。そのデバイスを使用する可能性があるアプリケーションがいずれかのディスプレイの表示アプリケーションとなっていなければ、情報処理端末10は、更に、第6の条件として、そのデバイスを使用する可能性があるアプリケーションがいずれかのディスプレイの潜在アプリケーションとなっているか否か判定する(ステップ704)。
潜在アプリケーションがデバイスを使用する可能性があるというのは、そのアプリケーションが潜在アプリケーションとしてデバイスを使用する可能性、またはそのアプリケーションが表示アプリケーションとなったときにデバイスを使用する可能性があることを言う。
ステップ701の判定で、新たなアプリケーションがデバイスを使用する可能性がない場合、またはステップ704の判定で、新たなアプリケーションが使用するデバイスを使用する可能性がある潜在アプリケーションがない場合、情報処理端末10は任意に選択したディスプレイにて新たなアプリケーションを起動する(ステップ705)。
ステップ702の判定で、新たなアプリケーションが使用するデバイスを現時点で使用している表示アプリケーションがあった場合、またはステップ703の判定で、そのデバイスを使用する可能性がある表示アプリケーションがあった場合、情報処理端末10は、その表示アプリケーションと同じディスプレイにて新たなアプリケーションを起動する(ステップ706)。
ステップ704の判定で、新たなアプリケーションが使用するデバイスを使用する可能性がある潜在アプリケーションがある場合、情報処理端末10は、その潜在アプリケーションと同じディスプレイにて新たなアプリケーションを起動する(ステップ707)。
また、本実施形態では、図7に示したように、第4〜6の条件の全て条件による判定を行う例を示したが、本発明はこれに限定されるものではない。他の例として、第4〜6の条件のうちいずれか1つの条件だけで判定を行うことにしてもよい。更に他の例として、第4〜6の条件のうちいずれか2つの条件で判定を行うことにしてもよい。
また、本実施形態では、図7に示したように、第4〜6の条件をその順序で用いる例を示したが、本発明はこれに限定されるものではなく、第4〜6の条件を任意の順序で用いることができる。
(第3の実施形態)
第3の実施形態では、CPU処理能力のように中間的な消費量をとりうるリソースと、カメラのように使用の有無が定まるリソース(デバイス)に両方があることを想定した場合を例示する。
第3の実施形態の情報処理端末の基本的な構成は図2に示したものと同じである。
第3の実施形態の情報処理端末10は、図4に示した第1の実施形態における処理と、図6に示した第2の実施形態の処理とを組み合わせた処理により画面表示制御を行う。
図8は、第3の実施形態の情報処理端末10によるアプリケーションの画面表示制御を示すフローチャートである。この画面表示制御の処理は主に制御部15により実行される。図8の初期状態では、既に何らかのアプリケーションが実行中であってもよく、いずれのアプリケーションも実行されていなくてもよい。
図8を参照すると、情報処理端末10は、新たなアプリケーションの起動指示を受けると、第1の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか、どちらにも起動できないか判定する(ステップ401)。第1の基準は、中間的な消費量をとりうる種類のリソースに関して、あるディスプレイにて新たなアプリケーションを起動できるか否か判定するための基準である。ここで第1の基準は、具体例として、図4に示したステップ101〜103の処理である。ただし、新たなアプリケーションをディスプレイ11、12のどちらでも起動できる場合と、どちらか一方でのみ起動できる場合は区別されるものとする。
第1の基準では新たなアプリケーションをディスプレイ11、12のどちらでも起動できる場合、情報処理端末10は、次に第2の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか判定する(ステップ402)。
第2の基準は、使用の有無が定まる種類のリソースに関して、あるディスプレイにて新たなアプリケーションを起動できるか否か判定するための基準である。ここで第2の基準は、具体例として、図6に示したステップ301〜302の処理である。ただし、新たなアプリケーションをディスプレイ11、12のどちらでも起動できる場合と、どちらか一方でのみ起動できる場合は区別されるものとする。
続いて、情報処理端末10は、ステップ402の判定結果に基づいて、新たなアプリケーションを起動するディスプレイを決定(決定1)する(ステップ403)。第1の基準ではディスプレイ11、12の優劣が付いていないので、決定1においては第2の基準により決定を行えばよい。具体的には、情報処理端末10は、図6に示したステップ303、304の処理を行えばよい。
ステップ401の判定にて、新たなアプリケーションをディスプレイ11、12のいずれか一方にて起動できる場合、情報処理端末10は、次に第2の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか判定する(ステップ404)。
続いて、情報処理端末10は、第1の基準による判断結果と第2の基準による判断結果に相反があるか否か判定する(ステップ405)。ここで、第1の基準にて新たなアプリケーションを起動できると判定されたディスプレイについて、第2の基準でも新たなアプリケーションを起動できると判断されていれば相反は無い。第1の基準にて新たなアプリケーションを起動できると判定されたディスプレイについて、第2の基準では新たなアプリケーションを起動できないと判断され、かつ第2の基準では他方のディスプレイでは新たなアプリケーションを起動できると判定された場合、相反が生じる。
相反が無いのであれば、情報処理端末10は、第1および第2の基準の判断結果に基づいて、新たなアプリケーションを起動するディスプレイを決定(決定2)する(ステップ406)。例えば、第1および第2の基準の両方で新たなアプリケーションを起動できると判定されたディスプレイがあれば、そのディスプレイに新たなアプリケーションを起動することを決定すればよい。
相反があれば、情報処理端末10は、一例として第2の基準を第1の基準よりも優先して、新たなアプリケーションを起動するディスプレイを決定し、そのディスプレイにて新たなアプリケーションを起動する(ステップ407)。具体的には、情報処理端末10は、第2の基準で新たなアプリケーションを起動できると判定されたディスプレイにて新たなアプリケーションを起動することを決定する。新たなアプリケーションを起動するとき、情報処理端末10は、図5に示した強制起動処理を行う。
なお、ここでは、一例として第2の基準を第1の基準よりも優先させる例を示したが、本発明はこれに限定されない。他の例として、第1の基準を第2の基準よりも優先させてもよく、あるいは相反が生じた場合には新たなアプリケーションを起動しないことにしてもよい。
ステップ401の判定にて、新たなアプリケーションをいずれのディスプレイにおいても起動できないと判定された場合、情報処理端末10は、次に、第2の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか判定する(ステップ408)。
情報処理端末10は、ステップ408における第2の基準による判断結果に基づいて新たなアプリケーションを起動するディスプレイを決定し、強制起動処理により起動する(ステップ409)。例えば、第2の基準ではいずれか一方のディスプレイで新たなアプリケーションを起動できると判定されたのであれば、情報処理端末10はそのディスプレイで新たなアプリケーションを起動する。第2の基準では両方のディスプレイ11、12で新たなアプリケーションを起動できると判定されたのであれば、情報処理端末10は、任意に選択したディスプレイで新たなアプリケーションを起動する。
なお、ここでは、ステップ409においていずれかのディスプレイにて新たなアプリケーションを起動する例を示したが、本発明はこれに限定されない。他の例として、ステップ401において、第1の基準でディスプレイ11、12のいずれにおいても新たなアプリケーションを起動できないのであれば、ステップ408の処理を行わず、新たなアプリケーションを起動しないことにしてもよい。
また、ここでは第1の基準よりも第2の基準を優先する例であるため、第2の基準において、どちらのディスプレイにも新たなアプリケーションを起動できないと判断されることは想定していない。しかし、第2の基準よりも第1の基準を優先させた場合、第2の基準において、どちらのディスプレイにも新たなアプリケーションを起動できないと判断される場合が起こりうる。その場合、第1の基準に基づいて、どちらのディスプレイに新たなアプリケーションを起動するか判断すればよい。
また、図8では、第1の基準による判断の後に第2の基準による判断を行う例を示したが、本発明はこれに限定されるものではない。他の例として、第2の基準による判断の後に第1の基準による判断を行うことにしてもよい。
図9は、第3の実施形態の変形例の情報処理端末10によるアプリケーションの画面表示制御を示すフローチャートである。
図9を参照すると、情報処理端末10は、新たなアプリケーションの起動指示を受けると、第2の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか判定する(ステップ501)。
新たなアプリケーションをディスプレイ11、12のどちらでも起動できる場合、情報処理端末10は、次に第1の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか、どちらにも起動できないか判定する(ステップ502)。続いて、情報処理端末10は、ステップ502の判定結果に基づいて、新たなアプリケーションを起動するディスプレイを決定(決定1)する(ステップ503)。第2の基準ではディスプレイ11、12の優劣が付いていないので、決定1においては第1の基準により決定を行えばよい。具体的には、情報処理端末10は、図4に示したステップ104、105の処理を行えばよい。
ステップ501の判定で、ディスプレイ11、12のいずれか一方でのみ新たなアプリケーションを起動できると判定された場合、情報処理端末10は、次に、第1の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか、どちらにも起動できないか判定する(ステップ504)。
続いて、情報処理端末10は、第1の基準による判断結果と第2の基準による判断結果に相反があるか否か判定する(ステップ505)。ここで、第2の基準にて新たなアプリケーションを起動できると判定されたディスプレイについて、第1の基準でも新たなアプリケーションを起動できると判断されていれば相反は無い。また、第1の基準では、どちらのディスプレイにも新たなアプリケーションを起動できないと判定された場合も相反は無い。第2の基準にて新たなアプリケーションを起動できると判定されたディスプレイについて、第1の基準では新たなアプリケーションを起動できないと判断され、かつ第1の基準では他方のディスプレイでは新たなアプリケーションを起動できると判定された場合、相反が生じる。
相反が無いのであれば、情報処理端末10は、第1および第2の基準の判断結果に基づいて、新たなアプリケーションを起動するディスプレイを決定(決定2)する(ステップ506)。例えば、第1の基準では、どちらのディスプレイにも新たなアプリケーションを起動できないと判定されたのであれば、第2の基準で新たなアプリケーションを起動できると判定されたディスプレイに決定すればよい。その場合、情報処理端末10は図5に示した強制起動処理を行う。
相反があれば、情報処理端末10は、一例として第1の基準を第2の基準よりも優先して、新たなアプリケーションを起動するディスプレイを決定し、そのディスプレイにて新たなアプリケーションを起動する(ステップ507)。具体的には、情報処理端末10は、第1の基準で新たなアプリケーションを起動できると判定されたディスプレイにて新たなアプリケーションを起動することを決定する。新たなアプリケーションを起動するとき、情報処理端末10は、図5に示した強制起動処理を行う。
なお、ここでは、一例として第1の基準を第2の基準よりも優先させる例を示したが、本発明はこれに限定されない。他の例として、第2の基準を第1の基準よりも優先させてもよく、あるいは相反が生じた場合には新たなアプリケーションを起動しないことにしてもよい。
また、第3の実施形態では固定的に第1の基準を先に用い、第3の実施形態の変形例では固定的に第2の基準を先に用いる例を示した。しかし、本発明はこれらに限定されるものではない。新たに起動するアプリケーションに応じて第1の条件と第2の条件のいずれを先に用いるかを選択してもよい。アプリケーション毎に、使用の有無が定まるリソース(デバイス)を優先するか、中間的な消費量をとりうるリソースを優先するかを予め設定しておき、その設定に応じて第1の基準と第2の基準のどちらを先に用いるか選択してもよい。例えば、デバイスを優先すると設定されたアプリケーションを起動しようとするときには、まず第1の条件による判定を行い、それに続いて第2の条件による判定を行うことにしてもよい。あるいはその逆の順序でもよい。また、アプリケーション毎に、どのリソースを優先するかを予め定めておいてもよい。その場合、優先するリソースが属する種類に関する基準を先または後に用いることにすればよい。
(第4の実施形態)
第1〜3の実施形態においては2つのディスプレイ11、12が同じデバイス特性である場合を想定したが、ディスプレイ11とディスプレイ12が異なる特性を有する場合もありうる。ディスプレイの特性としては、そのディスプレイのフレームレート、そのディスプレイが搭載されている同じ筐体にカメラやセンサが配置されているか否か等がある。
ディスプレイ11、12毎に特性が異なる場合、情報処理端末10は、そのアプリケーションに適した特性のディスプレイを他のディスプレイより優先するのが好ましい。つまり、情報処理端末10は、上述したように全体のリソース消費量を適正に維持したり、アプリケーション同士が使用するデバイスにおいて競合しないようにしたりするとともに、新たなアプリケーションに適した特性のディスプレイを優先的に選択するのがよい。
第1〜3の実施形態では、情報処理端末10は、リソース消費量に基づく判定またはリソース(デバイス)の使用の有無に基づく判定あるいはそれらを組み合わせた判定の判定結果により選択したディスプレイにて新たなアプリケーションを起動した。第4の実施形態では、情報処理端末10は、更に、アプリケーションが要求する特性をディスプレイ11、12がどれだけ満たすかという条件を加えて、新たなアプリケーションをディスプレイ11、12のいずれに表示するかを判定する。
図10は、第4の実施形態の情報処理端末10によるアプリケーションの画面表示制御を示すフローチャートである。
図10を参照すると、情報処理端末10は、新たなアプリケーションの起動指示を受けると、上述した第1の基準または第2の基準あるいはそれらを組みわせて、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか、どちらにも起動できないか判定する(ステップ601)。この判定は第1〜3の実施形態に示したのと同様に行えばよい。
ステップ601では新たなアプリケーションをディスプレイ11、12のどちらでも起動できる場合、情報処理端末10は、次に第3の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか判定する(ステップ602)。
第3の基準は、ディスプレイ11、12の特性が新たなアプリケーションの要求を満たすか否か判定するための基準である。例えば、新たなアプリケーションがカメラと同じ筐体に実装されているディスプレイに表示することを要求するものであれば、カメラと同じ筐体に実装されているディスプレイは新たなアプリケーションの要求を満たし、カメラとは異なる筐体に実装されているディスプレイは新たなアプリケーションの要求を満たさないということになる。
続いて、情報処理端末10は、ステップ602の判定結果に基づいて、新たなアプリケーションを起動するディスプレイを決定する(ステップ603)。ステップ601ではディスプレイ11、12の優劣が付いていないので、ここでは第3の基準により決定を行えばよい。具体的には、情報処理端末10は、ディスプレイ11、12のいずれか一方がアプリケーションの要求を満たすのであれば、そのディスプレイを選択する。また、ディスプレイ11、12の両方がアプリケーションの要求を満たすのであれば、情報処理端末10はいずれかのディスプレイを任意に選択する。
ステップ601の判定にて、新たなアプリケーションをディスプレイ11、12のいずれか一方にて起動できる場合、情報処理端末10は、次に第3の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか判定する(ステップ604)。
続いて、情報処理端末10は、ステップ601における判断結果と、ステップ604における第3の基準による判断結果に、相反があるか否か判定する(ステップ605)。ここで、ステップ601にて新たなアプリケーションを起動できると判定されたディスプレイについて、第3の基準でも新たなアプリケーションを起動できると判断されていれば相反は無い。ステップ601にて新たなアプリケーションを起動できると判定されたディスプレイについて、第3の基準では新たなアプリケーションを起動できないと判断され、かつ第3の基準では他方のディスプレイでは新たなアプリケーションを起動できると判定された場合、相反が生じる。
相反が無いのであれば、情報処理端末10は、ステップ601、604の判断結果に基づいて、新たなアプリケーションを起動するディスプレイを決定する(ステップ606)。ステップ601、604の両方で新たなアプリケーションを起動できると判定されたディスプレイに新たなアプリケーションを起動することを決定すればよい。
相反があれば、情報処理端末10は、一例として第3の基準の判定をステップ601の判定よりも優先して新たなアプリケーションを起動するディスプレイを決定し、そのディスプレイにて新たなアプリケーションを起動する(ステップ607)。具体的には、情報処理端末10は、第3の基準で新たなアプリケーションを起動できると判定されたディスプレイにて新たなアプリケーションを起動することを決定する。新たなアプリケーションを起動するとき、情報処理端末10は、図5に示した強制起動処理を行う。
なお、ここでは、一例として第3の基準の判定をステップ601の判定よりも優先させる例を示したが、本発明はこれに限定されない。他の例として、ステップ601の判定を第3の基準の判定よりも優先させてもよく、あるいは相反が生じた場合には新たなアプリケーションを起動しないことにしてもよい。
ステップ601の判定にて、新たなアプリケーションをいずれのディスプレイにおいても起動できないと判定された場合、情報処理端末10は、次に、第3の基準により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか判定する(ステップ608)。
情報処理端末10は、ステップ608における第3の基準による判断結果に基づいて新たなアプリケーションを起動するディスプレイを決定し、強制起動処理により起動する(ステップ609)。例えば、第3の基準ではいずれか一方のディスプレイで新たなアプリケーションを起動できると判定されたのであれば、情報処理端末10はそのディスプレイで新たなアプリケーションを起動する。第3の基準では両方のディスプレイ11、12で新たなアプリケーションを起動できると判定されたのであれば、情報処理端末10は、任意に選択したディスプレイで新たなアプリケーションを起動する。
なお、ここでは、ステップ609においていずれかのディスプレイにて新たなアプリケーションを起動する例を示したが、本発明はこれに限定されない。他の例として、ステップ601の判定においてディスプレイ11、12のいずれにおいても新たなアプリケーションを起動できないのであれば、ステップ608の処理を行わず、新たなアプリケーションを起動しないことにしてもよい。
また、図10では、ステップ601の判断の後に第3の基準の判断を行う例を示したが、本発明はこれに限定されるものではない。他の例として、第3の基準の判断の後にステップ601の判断を行うことにしてもよい。
また、アプリケーション毎にディスプレイの特性をどの程度優先させるかを示す優先度を設定し、ステップ605にて相反が生じた場合に優先度に基づく選択を行ってもよい。例えば、ステップ605にて相反が生じたとき、ディスプレイの特性の優先度が閾値以上であれば、第3の基準によりアプリケーションを起動できると判定されたディスプレイにアプリケーションを起動すればよい。また、ディスプレイの特性の優先度が閾値より低ければ、ステップ605によりアプリケーションを起動できると判定されたディスプレイにアプリケーションを起動すればよい。
例えば、アプリケーションが高画質の動画を表示するものであれば、そのアプリケーションには、高画質画像の表示が可能であるという特性を優先させてもよい。
また、カメラを必ず利用するアプリケーションであれば、カメラが配置されているというデバイス特性を必須の優先度(最高の優先度)とし、カメラを適宜利用するアプリケーションであれば、カメラが配置されているという特性を一定の優先度(中程度の優先度)としてもよい。また、過去の実行時における実際のカメラの使用頻度に応じて優先度を変更してもよい。例えば、カメラを利用するアプリケーションであれば、カメラが配置されているという特性を初期値として所定の優先度に設定し、その後のカメラの利用頻度が高ければ優先度を上げ、カメラの利用頻度が低ければ優先度を下げることにしてもよい。
また、加速度センサのようなセンサを利用するアプリケーションであれば、センサが配置されているという特性を必須あるいは一定の優先度としてもよい。図1に示した形状の情報処理端末10における筐体13、14の開閉を何らかの制御に用いるアプリケーションであり、かつ加速度の検出に高い精度が要求されないのであれば、センサが配置されているという特性を、その要求に対応する一定の優先度としてもよい。また、3D(three dimensions)の地図によって現在地や方向を表示するアプリケーションであり、加速度の検出に高い精度が要求されるのであれば、センサが配置されているという特性を必須の優先度としてもよい。あるいは、3Dの地図によって現在地や方向を表示するアプリケーションであっても、過去の実行時にユーザが、センサが配置されていない側のディスプレイに表示することを許容していた場合には、センサが配置されているという特性を必須より少し下げた優先度としてもよい。
(第5の実施形態)
第1〜4の実施形態では、アプリケーション同士に特別な関連付けが無い場合を想定したが、複数のアプリケーション相互に関連付けがある場合がある。例えば、利用者が、あるアプリケーションを利用するとき頻繁に他の特定のアプリケーションも利用するような場合、それらのアプリケーションを関連アプリケーションセットとして関連付けてもよい。第5の実施形態は、そのように複数のアプリケーション相互に関連付けがある場合を想定した例である。
第5の実施形態による情報処理端末の基本的な構成は図2に示したものと同じである。本実施形態では、情報処理端末10は、第3の実施形態に示した処理に加え、関連アプリケーションセットの一方のアプリケーションを新たに起動するとき、他方のアプリケーションが潜在アプリケーションとして実行中であれば表示アプリケーションにし、他方のアプリケーションが実行されていなければ同時に起動するという処理を行う。ただし、そのとき、リソース消費量の総和が閾値を超えず、かつデバイスの使用において競合が生じないことを条件とする。なお、新たに起動するアプリケーションに他のアプリケーションが関連付けられていなければ、情報処理端末10は第3の実施形態と同様の処理を行う。
一例としてアプリケーションA1とアプリケーションA2が関連アプリケーションセットとして関連付けられているとする。情報処理端末10は、その関連アプリケーションセットの関連付け情報を予め保持している。そして、アプリケーションA1の起動が要求されると、情報処理端末10は、関連付け情報を参照して、アプリケーションA1に関連付けられているアプリケーションA2を認識する。そして、情報処理端末10は、全体のリソース消費量が閾値を超えず、かつリソース使用の競合が生じないことを条件として、ディスプレイ11、12にアプリケーションA1、A2を表示する。
なお、情報処理端末10は、全体のリソース消費量が閾値を超えず、リソース使用の競合が生じないという条件を満たすか否かを第3の実施形態で用いた方法と同様の方法で判定する。ただし、関連アプリケーションセットは、全体のリソース消費量およびデバイス使用の競合に関して問題が生じない組み合わせであるべきである。したがって、第1〜3の条件のうち、潜在アプリケーションを考慮した第3の条件を除いた、第1および第2の条件では全体のリソース消費量が閾値を超えないという条件が常に満たされるのが通常である。
情報処理端末10が、アプリケーションA1、A2のどちらをどちらのディスプレイに表示するかは任意であるが、例えば、以下のようにすることが考えられる。
起動が要求されたアプリケーションA1に関連付けられたアプリケーションA2が既にディスプレイ11またはディスプレイ12の表示アプリケーションであれば、情報処理端末10は、アプリケーションA1を他方のディスプレイにて起動する。
また、アプリケーションA2がいずれかのディスプレイの潜在アプリケーションであれば、情報処理端末10は、アプリケーションA2をそのディスプレイの表示アプリケーションに引き上げて、アプリケーションA1を他方のディスプレイにて起動する。また、アプリケーションA2が実行されていなければ、情報処理端末10はアプリケーションA1と共にアプリケーションA2も起動する。その際、どちらのアプリケーションをどちらのディスプレイにて起動するかは任意である。
例えば、動画再生アプリケーションとブラウザとが関連付けられており、ディスプレイ12にブラウザが表示され、ディスプレイ11に電卓アプリケーションが表示されていたとする。その状態から動画再生アプリケーションの実行が要求されたら、情報処理端末10は、リソース消費量の総和が閾値を超えないことを条件として、ディスプレイ11に動画再生アプリケーションを起動すればよい。これにより、互いに関連付けられた動画再生アプリケーションとブラウザをユーザが同時に利用できる状態となる。
また、情報処理端末10は、関連アプリケーションセットとして互いに関連付けられた複数のアプリケーションを新たに起動するとき、いずれのアプリケーションが先に終了されるかを想定して各アプリケーション画面を表示するディスプレイを決定してもよい。
具体的には、情報処理端末10は、関連アプリケーションセットの中で先に終了されることが想定されるアプリケーションを副アプリケーションとし、後から終了されることが想定されるアプリケーションを主アプリケーションとして関連付け情報の中で予め設定しておく。そして、情報処理端末10は、副アプリケーションが終了された場合にリソース消費量の総和が閾値を超えないように、各アプリケーション画面を表示するディスプレイを決定する。具体的には、ディスプレイ11、12のうち表面に出ているアプリケーションのリソース消費量が小さい方に副アプリケーションを起動し、表面に出ているアプリケーションのリソース消費量がより大きい方に主アプリケーションを起動すればよい。
(第6の実施形態)
第1の実施形態では、新たなアプリケーションをディスプレイ11,12のいずれにも起動できないと判定されない限り、第1〜3の全ての条件について判定を行った後に、新たなアプリケーションをどちらのディスプレイにて起動するか決定した。しかしながら、本発明はこれに限定されるものではない。第6の実施形態として、第1〜3の条件を順次判定していく間に、いずれかの条件で片方のディスプレイだけに新たなアプリケーションを起動できるという判定がされたら、新たなアプリケーションをそのディスプレイにて起動することを決定する場合を例示する。この場合、片方のディスプレイだけで新たなアプリケーションを起動できるという判定がされたら、それ以降の条件の判定は行う必要が無く、判定処理の削減が可能である。
第6の実施形態の情報処理端末10の基本的な構成は図2に示した構成である。
図11は、第6の実施形態の情報処理端末10によるアプリケーションの画面表示制御を示すフローチャートである。この画面表示制御の処理は主に制御部15により実行される。図11の初期状態では、既に何らかのアプリケーションが実行中であってもよく、いずれのアプリケーションも実行されていなくてもよい。
図11を参照すると、情報処理端末10は、新たなアプリケーションの起動指示を受けると、まず第1の条件により、新たなアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか、どちらにも起動できないか判定する(ステップ801)。第1の条件は、第1の実施形態のものと同じものであり、新たなアプリケーションを一方のディスプレイにて起動した場合に、そのアプリケーションの過去のリソース消費量の統計量と、他方のディスプレイの表面に出ている実行中のアプリケーションの現在のリソース消費量の総和が所定の閾値を超えないという条件である。リソース消費量の統計量は一例として過去の実行時のリソース消費量の平均値である。実行中のアプリケーションのリアルタイムのリソース消費量からアプリケーションを起動すべきでない場合は、この第1の条件で起動できないと判断される。
ディスプレイ11、12のいずれか一方によりアプリケーションを起動できる場合、情報処理端末10は、そのディスプレイで新たなアプリケーションを起動する(ステップ802)。例えば、ディスプレイ11で新たなアプリケーションを起動した場合、それまでディスプレイ11の表面に出ていたアプリケーションは新たなアプリケーションの下に隠れる。下に隠れたアプリケーションのリアルタイムのリソース消費量は減少する。
ディスプレイ11、12のいずれによってもアプリケーションを起動できない場合、情報処理端末10は強制起動処理を実行する(ステップ803)。ここで強制起動処理は、図5に示した第1の実施形態のものと同じであり、リソース消費量の総計が低減するように実行中のアプリケーションの状態を制御した上で、要求された新たなアプリケーションを起動する処理である。
第1の条件では、ディスプレイ11、12のいずれによってもアプリケーションを起動できる場合、情報処理端末10は、次に第2の条件により、新たにアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか、どちらにも起動できないか判定する(ステップ804)。ここで第2の条件は、第1の実施形態のものと同じであり、新たなアプリケーションを、第1の条件を満たした2つのディスプレイ11、12のいずれかにて起動するとした場合に、新たなアプリケーションの過去の統計量であるリソース消費量と、他のディスプレイの表面に出ている実行中のアプリケーションの過去の統計量のリソース消費量との総和が閾値を超えないという条件である。リソース消費量の統計量は、やはり一例として過去の実行時のリソース消費量の平均値である。実行中のアプリケーションが平均的なリソース消費量で推移すると仮定した場合に、アプリケーションを起動すべきでなければ、この第2の条件で起動できないと判断される。
第2の条件ではディスプレイ11、12のいずれか一方によりアプリケーションを起動できる場合、情報処理端末10は、そのディスプレイで新たなアプリケーションを起動する(ステップ805)。
第2の条件ではディスプレイ11、12のいずれによってもアプリケーションを起動できない場合、情報処理端末10は、いずれか一方のディスプイレイを任意に選択し、そのディスプイレイにて新たなアプリケーションを強制起動する(ステップ803)。
第2の条件でもディスプレイ11、12のいずれによってもアプリケーションを起動できる場合、情報処理端末10は、次に第3の条件により、新たにアプリケーションをディスプレイ11に起動できるか、ディスプレイ12に起動できるか、どちらにも起動できないか判定する(ステップ806)。ここで第3の条件は、第1の実施形態と同じものであり、ディスプレイにアプリケーション画面を重ねて実行される複数のアプリケーションのうちディスプレイの表面に出ているアプリケーションが終了されたときに、2つのディスプレイ11、12の表面のアプリケーションのリソース消費量の総和が閾値を超えないという条件である。ディスプレイ11、12の表面に出ているアプリケーションが終了され、その下のアプリケーションが表面に出た場合に、全体のリソース消費量に問題が生じることが想定される場合、この第3の条件で起動できないと判断される。
第3の条件ではディスプレイ11、12のいずれか一方によりアプリケーションを起動できる場合、情報処理端末10は、そのディスプレイで新たなアプリケーションを起動する(ステップ807)。
第3の条件ではディスプレイ11、12のいずれによってもアプリケーションを起動できない場合、情報処理端末10は、ディスプレイ11、12はいずれか一方のディスプレイを任意に選択し、そのディスプレイにて新たなアプリケーションを強制起動する(ステップ803)。
第3の条件でもディスプレイ11、12のいずれによってもアプリケーションを起動できる場合、情報処理端末10は、第1〜3の全ての条件を満たしたディスプレイ11、12のいずれか一方のディスプレイを任意に選択し、そのディスプレイにて新たなアプリケーションを起動する(ステップ808)。ただし、これは一例であり、他の例として、更なる条件による判定を行ってもよい。具体的には、新たなアプリケーションをディスプレイ11にて起動した場合とディスプレイ12にて起動した場合とでリソース消費量に差異があれば、リソース消費量がより少なくなる方を選択してもよい。
また、本実施形態では、図11に示したように、第1〜3の条件の全ての判定を用いる例を示したが、本発明はこれに限定されるものではない。他の例として、第1〜3の条件のうちいずれか1つの条件だけで判定を行うことにしてもよい。更に他の例として、第1〜3のうちいずれか2つの条件で判定を行うことにしてもよい。
また、本実施形態では、図11に示したように、第1〜3の条件をその順序で用いる例を示したが、本発明はこれに限定されるものではなく、第1〜3の条件を任意の順序で用いてもよい。
(第7の実施形態)
第4の実施形態では、アプリケーションが要求する特性をディスプレイ11、12がどれだけ満たすかという条件(第3の基準)を、各ディスプレイにて新たなアプリケーションを起動した場合のリソースの消費あるいは使用に関する他の条件(第1および第2の基準)と組み合わせて付加的に用いる例を示した。しかしながら、本発明はこれに限定されるものではない。アプリケーションが要求する特性をディスプレイ11、12がどれだけ満たすかという条件自体を主要な条件として用いることも可能であり、それを本実施形態において例示する。本実施形態においては、リソースの消費あるいは使用に関する条件は、新たなアプリケーションをどちらのディスプレイにて起動するかを決定するのに用いるのではなく、装置全体として算出して新たなアプリケーションを起動するときに付加的に用いるものとする。
本実施形態の情報処理端末10は、それぞれにアプリケーションの画面を表示する複数のディスプレイ11及び12と、複数のディスプレイ11及び12のうちから、新たなアプリケーションを起動するディスプレイを決定する制御部15とを有する。制御部15は、実行中のアプリケーションが、新たなアプリケーションが要求するディスプレイに依存しない第1の条件(第1の非依存条件)と競合する場合、実行中のアプリケーションを終了し、新たなアプリケーションが要求するディスプレイに依存する第1の条件(第1の依存条件)又は新たなアプリケーションが要求するディスプレイに依存しない第2の条件(第2の非依存条件)を用いて新たなアプリケーションを起動するディスプレイを決定する。したがって、本実施形態の情報処理端末10は、複数の条件を同時に考慮して、新たなアプリケーションを起動するディスプレイを決定することができる。以下により詳細な説明を記載する。
上述した依存条件や非依存条件といった条件ついて、本実施形態では、アプリケーションに必須とされる条件(必須条件)と、必須ではないが満たすことが好ましい条件(非必須条件)とを規定し、新たなアプリケーションを起動するときの判定に用いる。ここで、必須条件とは、アプリケーションが要求する条件のうち、他の条件に比べて要求の度合いが高い条件を意味するものである。一方、非必須条件とは、必須条件に比べて要求の度合いが低い条件を意味するものである。アプリケーションが要求する度合いは、アプリケーション毎に予め設定されることも、ユーザの操作によって設定されるようすることもできる。また、アプリケーションが要求する度合いは、それぞれの条件の関係するリソースの種類など応じて設定されることも、ユーザがその条件が満たされた状態でアプリケーションの実行する頻度に応じて設定されるようにすることもできる。
また、必須条件は、他の条件よりも要求の度合いが高いものであれば、必ずしもその条件が満たされなければアプリケーションが全く動作しないという条件のみを意味するものではない。したがって、必須条件には、その条件が満たされなければアプリケーションが全く動作しないという条件はもちろん、その条件が満たされないとアプリケーションの動作が不完全になる、パフォーマンスが低下するといった条件も必須条件に含めることができる。
必須条件あるいは非必須条件となりうるディスプレイの性能に関する例として動画再生に必要な一定以上のフレームレートを得るためのハードウェアに関するものがある。また、必須条件あるいは非必須条件となりうるディスプレイの機能に関する例として、タッチパネル機能、タッチペンによる入力機能などがある。また、必須条件あるいは非必須条件となりうるディスプレイの周辺の構成に関する例として、ディスプレイが加速度センサ、地磁気センサ、接触センサ、カメラ等と所定の位置関係(例えば同じ筐体に搭載されている)にあること等がある。
例えば、動画を再生するアプリケーションにとって、ディスプレイが動画を再生するのに必要なハードウェアを備えていることを必須条件として設定することが考えられる。2つのディスプレイ11、12のいずれか一方だけが動画再生に必要なハードウェアを備えているのであれば、その必須条件はディスプレイに依存することになる。
また、タッチ操作を用いるアプリケーションにとって、ディスプレイがタッチパネル式であることを必須条件として設定することが考えられる。2つのディスプレイ11、12のいずれか一方だけがタッチパネル式であれば、その必須条件はディスプレイに依存することになる。なお、本実施形態における必須条件は、ディスプレイに依存するか否かによらず設定されるものであり、ディスプレイに依存する必須条件の他に、ディスプレイに依存しない必須条件もある。
ディスプレイに依存しない必須条件の例として、情報処理端末10が有するリソースが利用可能であることが挙げられる。リソースの例としては、加速度センサ、カメラ、ファイルシステム、通信機能、マイク、音声出力機能、録音機能などがある。通信機能の例としては、音声通話、無線あるいは有線のデータ通信、Bluetooth、赤外線通信などがある。ただし、本発明はこれらの例に限定されるものではない。
また、高画質の動画を再生するアプリケーションにとって、動画に関する所定の性能が必須条件あるいは非必須条件となる場合がある。例えば、高画質の動画再生、カメラ撮影画像のプレビュー、ゲームのアプリケーション処理が考えられる。また、それらの必須条件あるいは非必須条件がディスプレイに依存し、いずれか一方のディスプレイだけが満足するものである場合もある。
動画のアプリケーションやカメラ撮影画像のプレビューでは、一定以上のフレームレートを必須条件に設定することが考えられる。例えば、動画ファイルでは30FPS(Frames Per Second)のようにフレームレートが定められているので、それ以上のフレームレートを再生できることを必須にするのがよい。
また一般に動画ファイルは画像が圧縮されているので、それをデコードする処理が重たい。例えば、ハードウェアにそれだけのデコード処理の能力がなければ、再生される動画は動きが非常に不自然になる。
具体的には、デコード処理のためにDSP(Digital Signal Processor)のような動画再生専用のハードウェアや、カメラ撮影画像のプレビューを表示するための専用のハードウェアが用いられることがある。そして、これらのようなハードウェアがいずれか一方のディスプレイのみで利用可能な構成が採用されることもありうる。その場合、そのようなハードウェアを利用できるディスプレイであることが必須条件であり、またディスプレイに依存する条件でもある。また、専用のハードウェアを用いずに、アプリケーションのソフトウェアだけで所望のデコード処理を実現することも考えられる。その場合、フレームレートはディスプレイに依存しない条件となる。
また、高画質の動画を再生するアプリケーションであっても、ディスプレイのフレームレートが所定値以上であることが望ましいが、フレームレートが所定値より低くても映像品質は低下するが動画再生は不可能ではない場合もある。そのようなアプリケーションについては、ディスプレイのフレームレートが所定値以上であることを非必須条件として設定することが考えられる。
また、ゲームのアプリケーション処理のためにGPU(Graphics Processing Unit)が設けられたり、openGL(Open Graphics Library)が採用されたりする場合がある。GPUは一般にディスプレイに対応して設けられるので、いずれか一方のディスプレイのみで利用可能な場合もある。openGLはディスプレイに依存しないような実装が一般的であると考えられるが、いずれか一方のディスプレイのみで利用可能という実装も考えられる。装置の実装に応じてGPUまたはopenGLを利用できるディスプレイであることを必須条件あるいは非必須条件に設定すればよい。
また、ゲームによっては、装置側が対応できるフレームレートをアプリケーションが計測し、それに合わせたフレームレートで画像を出力するようなアプリケーションにしておくこともできる。その場合、ゲームのアプリケーションが出力できる最大フレームレートを再生できるディスプレイであることが望ましいが必須ではないので、それを非必須条件に設定することが考えられる。
また、装置本体のプロセッサで生成された画像データをディスプレイへ転送するためのバスの速度がフレームレートに影響することがある。例えば、装置本体のプロセッサからディスプレイに1つの画像を転送するのに要する時間が10msecであれば、フレームレートは最大100FPSに制限される。また装置本体のプロセッサからディスプレイに1つの画像を転送するのに要する時間が5msecであれば、フレームレートは最大200FPSとなる。このような場合、装置本体のプロセッサで生成された画像データをディスプレイへ転送するためのバスの速度が所定値以上であることを必須条件あるいは非必須条件に設定することもできる。
非必須条件が複数あれば、アプリケーションにとってどれだけ求められるかの程度(優先度)がそれぞれに異なることもある。また、同じ非必須条件であっても、アプリケーションによって、それをどれだけ求めるかの程度(優先度)が異なることもある。この優先度は、アプリケーション毎に予め設定されることも、ユーザの操作によって設定されるようすることもできる。また、この優先度は、それぞれの条件の関係するリソースの種類など応じて設定されることも、ユーザがその条件が満たされた状態でアプリケーションの実行する頻度に応じて設定されるようにすることもできる。
本具体例では、その程度を考慮してアプリケーションの要求の達成度(要求達成度)を規定し、新たなアプリケーションをいずれのディスプレイにて起動するか決定するときの判定に用いる。具体的には要求達成度の高いディスプレイが優先される。
例えば、各ディスプレイの要求達成度を表すポイントを算出し、そのポイントが高い特性のディスプレイを優先すればよい。ユーザの要求に応じてデバイスを使用するアプリケーションの要求条件には、デバイスがどの程度要求されるかを表す使用要求度が含まれていてもよい。そして、制御部15は、そのアプリケーションにおけるデバイスの使用要求度を、そのアプリケーションが過去に実行されたときのデバイスの使用の有無に基づいて統計的に算出する。例えば、デバイスを使用した場合に実績値を1とし、デバイスを使用しなかった場合に実績値を0とし、過去の実行時の実績値の平均値を算出し、それを使用要求度としてもよい。
また、デバイスを使用するアプケーションの要求条件には、デバイスと同じ筐体に実装されているという特性を有するディスプレイで起動することがどの程度要求されるかを表すデバイス配置要求度が含まれていてもよい。制御部15は、アプリケーションにおけるデバイス配置要求度を、アプリケーションが過去に実行されたとき、デバイスと同じ筐体に実装されているディスプレイ12において、ディスプレイ11と比較して、どの程度実行されたかに基づいて統計的に算出する。
上述した各ディスプレイのポイントを算出するとき、アプリケーションによるデバイスの使用要求度とデバイス配置要求度を乗算した値を、デバイスと同じ筐体に搭載されたディスプレイ12に加算するというような演算が考えられる。
このような必須条件および非必須条件は、第4の実施形態に用いた第3の基準の判定と同様の考え方で、本具体例において新たなアプリケーションをいずれのディスプレイにて起動するか決定するときに用いられる。
ここでは、アプリケーションの例としてレーシングゲームを想定し、必須条件および非必須条件の設定および算出の例を示す。ただし、ここに示す装置の構成や条件の設定は例示であり、本発明がこれに限定されるものではない。
このレーシングゲームは、操作によってコース上にレーシングカーを走行させるゲームであり、背景等の速い動きが高画質の動画によって再現されるものとする。タッチパネルで操作するモードと加速度センサで操作するモードがあるものとする。また、情報処理端末10同士がBluetoothによって通信することにより複数のユーザが対戦できる。
また、情報処理端末において加速度センサは一方の筐体にのみ実装されているが、どちらのディスプレイの表示も加速度センサによって操作できるものとする。ただし、加速度センサと同じ筐体に実装されているディスプレイの操作の方が他方のディスプレイの操作よりも精度が高いものとする。Bluetoothはディスプレイへの依存性は無いが、あるアプリケーションが使っている場合には他のアプリケーションは使えないものとする。
以上のような想定において、情報処理端末が有する2つのディスプレイのうち一方のみが画像専用ハードウェアに対応しているのであれば、必須条件として、一定以上のフレームレートの画像を再生できること、つまり画像専用ハードウェアに対応していることを設定することが考えられる。画像再生専用のハードウェアはGPUやOpenGLアクセラレータである。
また、2つのディスプレイがどちらもレーシングゲームに利用できる程度の高画質の画像つまりフレームレートが高い画像を再生できるが、一方のディスプレイは他方のディスプレイよりも画質の高い画像を再生できるのであれば、非必須条件として、よりフレームレートの高い画像を再生できるディスプレイであることを設定することが考えられる。
また、加速度センサと同じ筐体に実装されたディスプレイであることを非必須条件として設定することが考えられる。他方のディスプレイでレーシングゲームを実行すると、加速度センサで操作するモードにおいて操作の精度が低下するからである。
また、ディスプレイに固定的に対応する条件ではないがBluetoothに関連する非必須条件を設定することも考えられる。対戦型プレイを利用する場合にBluetoothが必要となるため、Bluetoothが使用できる状態でレーシングゲームを起動することが望ましい。Bluetoothを使用している、あるいは現在使用していないが使用する可能性のあるアプリケーションが実行されているディスプレイであることを非必須条件とすればよい。Bluetoothを使用している、あるいは現在使用していないが使用する可能性のあるアプリケーションが実行されていれば、そのアプリケーションが実行されているディスプレイにレーシングゲームが起動されることになる。
複数の非必須条件が存在するので、それらに優先順位を付けることにしてもよい。各非必須条件について優先度を示すポイントを算出し、そのポイントが高いものに高い優先順位を与えることにすればよい。ポイントの算出方法として、画像専用ハードウェア、加速度センサ、Bluetoothなどのリソース(デバイス)毎に付与した重みと、そのリソースの使用頻度の積または和をポイントにすることが考えられる。リソース毎の重みは予め設定された固定値であってもよい。使用頻度は、例えば、アプリケーションを実行したときにそのリソースを使用した回数を、そのアプリケーションを実行した回数で除算して求めればよい。
例えば、ユーザが加速度センサで操作するモードをよく使用するのであれば、加速度センサの使用頻度が高くなり、その結果、加速度センサと同じ筐体に実装されたディスプレイであるという非必須条件の優先度は高くなる。また、ユーザが1人でレーシングゲームを行うことが多いのであれば、Bluetoothの使用頻度は低くなり、その結果、Bluetoothを使用している、あるいは使用する可能性があるアプリケーションと同じディスプレイであるという非必須条件の優先度は低くなる。
また、レーシングゲームを起動するディスプレイを選択する際、上述のようにして算出した複数の非必須条件の優先度に基づいて選択を行えばよい。選択方法の一例としては、各ディスプレイについて各非必須条件を満たすか否か判定し、満たす非必須条件の優先度のポイントの合計値が高いディスプレイを選択することにしてもよい。また、選択方法の他の例として、複数ある非必須条件のうち最も優先度の高い非必須条件を満たすディスプレイを選択することにしてもよい。
また、本具体例では以下のポリシーを適用するものとする。
新たに起動しようとするアプリケーションと実行中のアプリケーションとが競合する場合には新たなアプリケーションを実行中のアプリケーションより優先させることをポリシーとする。例えば、新たなアプリケーションを起動すべきディスプレイに実行中のアプリケーションがあっても、新たなアプリケーションはそのディスプレイにて起動され表示アプリケーションとなる。その結果、それまで表示アプリケーションであった実行中のアプリケーションが潜在アプリケーションになったり、他のディスプレイに移動したり、終了したりすることありうる。
また、システム全体としてリソースの消費などで問題が生じる場合にも、新たなアプリケーションを実行中のアプリケーションより優先させることをポリシーとする。その結果、新たなアプリケーションが起動されるのに伴って、実行中のアプリケーションが終了することありうる。
本実施形態による情報処理端末の基本的な構成は図2に示したものと同じである。図12は、第7の実施形態の情報処理端末10によるアプリケーション制御を示すフローチャートである。
図12を参照すると、情報処理端末10は、新たなアプリケーションの起動を要求されると、そのアプリケーションについて必須条件があるか否か判定する(ステップ901)。必須条件があれば、情報処理端末10は、次に、その必須条件の中でディスプレイに依存する条件があるか否か判定する(ステップ902)。
ディスプレイに依存する必須条件があれば、情報処理端末10は、その条件を満たすディスプレイにて新たなアプリケーションを起動することを決定する(ステップ903)。
一方、ステップ902の判定においてディスプレイに依存する必須条件がなければ、情報処理端末10は、実行中のアプリケーションの中に、新たなアプリケーションのディスプレイに依存しない必須条件と競合する条件を有するアプリケーションがあるか否か判定する(ステップ904)。
例えば、新たなアプリケーションが必須条件として要求する、ディスプレイに依存しないリソースを現在使用している実行中のアプリケーションがあれば、そのアプリケーションは新たなアプリケーションの必須条件と競合すると判定して終了することにしてもよい。また、新たなアプリケーションが必須条件として要求する、ディスプレイに依存しないリソースを、必須条件として要求する実行中のアプリケーションがあれば、そのアプリケーションは新たなアプリケーションの必須条件と競合すると判定して終了することにしてもよい。また、新たなアプリケーションが必須条件として要求する、ディスプレイに依存しないリソースを、非必須条件として要求する実行中のアプリケーションがある場合にも、そのアプリケーションは新たなアプリケーションの必須条件と競合すると判定して終了することにしてもよい。
また、新たなアプリケーションが必須条件として要求する、ディスプレイに依存しないリソースを使用する可能性がある実行中のアプリケーションがあれば、そのアプリケーションは新たなアプリケーションの必須条件と競合すると判定して終了することにしてもよい。例えば、第2の実施形態におけるものと同様の手法でアプリケーションがデバイス(リソース)を使用する可能性を数値化し、その数値(使用率)が所定の閾値を超えていれば、そのアプリケーションがそのデバイスを使用する可能性があると判定してもよい。
また、新たなアプリケーションが必須条件として要求する、ディスプレイに依存しないリソースを使用している、あるいは要求する、あるいは使用する可能性があるアプリケーションが表示アプリケーションとなっている場合に、そのアプリケーションは新たなアプリケーションの必須条件と競合すると判定することにしてもよい。
新たなアプリケーションの必須条件と競合する条件を有する実行中のアプリケーションがあれば、情報処理端末10は、その実行中のアプリケーションを終了させる(ステップ905)。
ステップ901の判定で必須条件が無い場合、ステップ904の判定で新たなアプリケーションの必須条件と競合する条件を有する実行中のアプリケーションが無い場合、あるいはステップ905の処理を終えた場合、情報処理端末10は、新たなアプリケーションに非必須条件があるか否か判定する(ステップ906)。
新たなアプリケーションに非必須条件があれば、情報処理端末10は、ディスプレイ11、12のそれぞれについて、そのディスプレイにて新たなアプリケーションを起動した場合の要求達成度を算出し、要求達成度が高いディスプレイにて新たなアプリケーションを起動することを決定する(ステップ907)。
その際、アプリケーションが要求する非必須条件が複数あれば、情報処理端末10は、それらを総合的に満たす度合いが高いディスプレイにて新たなアプリケーションを起動することを決定する。非必須条件毎に要求達成度を算出し、その合計値、平均値、あるいは重み付け加算値が大きいディスプレイを選択することにしてもよい。また、情報処理端末10は、要求が満たされる非必須条件の個数が多いディスプレイを選択することにしてもよい。さらには、情報処理端末10は、最も優先度の高い非必須条件が満たされるディスプレイを選択することにしてもよい。
続いて、情報処理端末10は、決定したディスプレイにて新たなアプリケーションを起動した場合の装置全体としてのリソース消費量などの負荷(システム負荷値)を算出する(ステップ908)。更に情報処理端末10は、システム負荷値が閾値より大きいか否か判定する(ステップ909)。
システム負荷値は、装置全体としての負荷の程度を表す値であり、情報処理端末10が備えているリソースの消費量や使用率から算出される。リソースの例として、CPU処理能力、メモリ容量、通信のスループット、チャネル数、電力などのように中間的な消費量をとりうるリソースや、カメラやセンサのように使用の有無が定まる種類のリソース(デバイス)がある。
中間的な消費量をとりうるリソースであれば、その消費量をリソース負荷値とすればよい。また、複数のリソースがあれば、各リソースの消費量の平均値をシステム負荷値としてもよく、あるいは各リソースの消費量を重み付け加算した値をシステム負荷値としてもよい。
また、ここで用いる閾値は、情報処理端末10として所望の動作状態が維持できる程度にシステム負荷値を抑制するための閾値である。具体的には、閾値は、アプリケーションの動作速度が低下したり、アプリケーションが正常に動作しなくなったり、アプリケーションの強制終了が発生したりしない程度に設定される。
システム負荷値が閾値より大きければ、情報処理端末10は、ステップ903またはステップ907で決定したディスプレイにて新たなアプリケーションを強制起動処理により起動する(ステップ910)。ここでいう強制起動処理は、システム負荷値が低減するように実行中のアプリケーションの状態を制御した上で、新たなアプリケーションを起動する処理である。システム負荷値を低減する方法として、例えば、図5に示したように実行中のアプリケーションをディスプレイ間で移動したり、表示アプリケーションを非アクティブ状態にしたり、あるいは終了させたり等が挙げられる。
システム負荷値が閾値以下であれば、情報処理端末10は、ステップ903またはステップ907で決定したディスプレイにて新たなアプリケーションを起動する(ステップ911)。
ステップ906の判定において、新たなアプリケーションに非必須条件がなければ、情報処理端末10は、ディスプレイ11、12のそれぞれについて、そのディスプレイにて新たなアプリケーションを起動した場合のシステム負荷値を算出する(ステップ912)。更に情報処理端末10は、ディスプレイ11、12のそれぞれについてのシステム負荷値を閾値と比較する(ステップ913)。一例として、ステップ913で用いる閾値はステップ909で用いる閾値と同じものである。ただし、ステップ913で用いる閾値とステップ909で用いる閾値とを異なる値にしてもよい。
システム負荷値が閾値を超えないディスプレイがあれば、情報処理端末10は、そのディスプレイにて新たなアプリケーションを起動する(ステップ914)。例えば、ディスプレイ11、12のいずれか一方のシステム負荷値が閾値以下であれば、情報処理端末10は、そのディスプレイにて新たなアプリケーションを起動すればよい。また、ディスプレイ11、12の両方のシステム負荷値が閾値以下であれば、情報処理端末10は、一方のディスプレイを任意に選択し、そのディスプレイにて新たなアプリケーションを起動すればよい。
一方、システム負荷値が閾値を超えないディスプレイがなければ、情報処理端末10は、いずれか一方のディスプレイを任意に選択し、そのディスプレイにて新たなアプリケーションを強制起動処理により起動する(ステップ915)。
なお、本具体例にて列挙した必須条件および非必須条件は理解を容易にするための例である。カメラと同じ筐体に搭載されているディスプレイであることや、加速度センサと同じ筐体に搭載されているディスプレイであることなど、他の条件を必須条件あるいは非必須条件として設定してもよい。各アプリケーションの必須条件および非必須条件は、そのアプリケーションに応じて適宜設定すればよく、またその設定は適宜変更できてもよい。また、ある条件をあるアプリケーションについての必須条件とするか、非必須条件とするかについても適宜設定すればよく、またその設定は適宜変更できてもよい。ただし必須条件は非必須条件よりも要求の度合いが高いものとする。
本実施形態では、情報処理端末10は、ステップ902〜906に示したように、新たなアプリケーションが要求する、ディスプレイに依存しない条件と競合する実行中のアプリケーションを終了し、新たなアプリケーションが要求する、ディスプレイに依存する条件またはディスプレイに依存しない他の条件を用いて新たなアプリケーションを起動するディスプレイを決定する。その結果、本実施形態によれば、複数の条件を同時に考慮して、アプリを起動するディスプレイを決定できるという効果が得られる。なお、本効果はステップ902〜906の処理から得られるものであり、図12に付加されている他のステップが省略あるいは他の処理に置き換えられても得られるものである。
本実施形態では、システム負荷値としてリアルタイムのリソースの消費量を用いる例を示したが、本発明はこれに限定されるものではない。システム負荷値として、第1の実施形態において第1〜3の条件の判定に用いたリソース消費量あるいはそれらの組み合わせを用いることができる。
第1の条件を例にとれば、新たに起動するアプリケーションの過去のリソース消費量の統計量と、他方のディスプレイの表面に出ている実行中のアプリケーションの現在のリソース消費量の総和をシステム負荷値としてもよい。第2の条件を例にとれば、新たに起動するアプリケーションの過去の統計量であるリソース消費量と、他のディスプレイの表面に出ている実行中のアプリケーションの過去の統計量のリソース消費量との総和をシステム負荷値としてもよい。第3の条件を例にとれば、新たなアプリケーションがディスプレイ11、12のいずれかで起動された後に他のディスプイレイの表示アプリケーションが終了されたときの、2つのディスプレイ11、12の表面のアプリケーションのリソース消費量の総和をシステム負荷値としてもよい。また複数のシステム負荷値とそれに対応する閾値とを規定し、いずれか1つでもシステム負荷値が閾値を超えるようであれば強制起動処理を行うことにしてもよい。
また本実施形態のシステム負荷値として、第2の実施形態の変形例において用いた、アプリケーションによるデバイスの使用率を用いることもできる。使用率は、アプリケーションが実行されかつデバイスを使用した回数を、アプリケーションが実行された回数で除算して得られる。
(第8の実施形態)
アプリケーションが要求する特性をディスプレイ11、12がどれだけ満たすかという条件自体を単独で用いる例を本実施形態において示す。
本実施形態による情報処理端末の基本的な構成は図2に示したものと同じである。ただし、ディスプレイ11とディスプレイ12とは異なる特性を有している。具体的には、ディスプレイ11とディスプレイ12はフレームレートが異なっている。また、ディスプレイ12が実装されている筐体14にはデバイス(不図示)が搭載されている。これらフレームレートやデバイスの有無はディスプレイ11、12の特性に含まれる。
まず、本実施形態の情報処理端末10の概要について説明する。
ディスプレイ11、12は、互いに特性が異なり、それぞれにアプリケーション画面を表示する液晶等の表示装置であり、実行中のアプリケーションの画面をそれぞれに表示する。
制御部15は、2つのディスプレイ11、12のそれぞれの特性と、起動しようとする新たなアプリケーションの要求条件とに基づき、要求条件を満たす特性を有するディスプレイにて新たなアプリケーションを起動する。
本実施形態によれば、特性の異なる2つのディスプレイ11、12を備えた情報処理端末10においてアプリケーションを要求に合った適切なディスプレイにて実行することが可能になる。
なお、本実施形態の要求条件には、必ず満たさなければならない必須条件と、満たすことが望ましいが必須ではない非必須条件とが含まれているものとする。制御部15は、新たなアプリケーションの必須条件を満たすディスプレイが1つであれば、新たなアプリケーションを、必須条件を満たすディスプレイに起動することを決定すればよい。一方、2つのディスプレイ11、12がどちらも必須条件を満たすのであれば、制御部15は、アプリケーションの非必須条件によりいずれかのディスプレイを選択し、アプリケーションを起動すればよい。
また、制御部15は、新たなアプリケーションの要求条件を満たすディスプレイにて他のアプリケーションが実行中であれば、実行中のアプリケーションの要求条件と新たなアプリケーションの要求条件の両方に基づいて、新たなアプリケーションを起動するディスプレイを決定する。例えば、ディスプレイ11、12のどちらも新たなアプリケーションの必須条件を満たし、どちらにも実行中のアプリケーションがあれば、制御部15は、新たなアプリケーションの要求条件を満たす度合いをプラス要因とし、実行中のアプリケーションの要求条件を満たす度合いをマイナス要因として、各ディスプレイのポイントを算出し、ポイントに基づいてどのディスプレイにて新たなアプリケーションを起動するか判断すればよい。
また、制御部15は、他のアプリケーションが実行中のディスプレイに新たなアプリケーションを起動するとき、他方のディスプレイの特性が実行中のアプリケーションの要求条件を満たすのであれば、実行中のアプリケーションを他方のディスプレイに移動すればよい。アプリケーションを移動するとは、そのアプリケーションのアプリケーション画面をディスプレイ間で移動することである。2つのディスプレイ11、12の特性が異なるので、アプリケーションの移動により、アプリケーションの動作や利便性が変化する可能性がある。
また、他方のディスプレイの特性が実行中のアプリケーションの要求条件を満たさないのであれば、制御部15は、実行中のアプリケーションを移動せずに新たなアプリケーションを起動する。このとき、実行中であったアプリケーションのアプリケーション画面の上に新たなアプリケーションのアプリケーションが重ねるように表示される。実行中であったアプリケーションが非アクティブ化され、新たなアプリケーションがアクティブな状態となる。
更に、制御部15は、アプリケーションの過去の実行時の利用態様に基づいてアプリケーションの要求条件を適応的に変更することにしてもよい。例えば、要求に応じてデバイスを使用するアプリケーションの要求条件には、デバイスがどの程度要求されるかを表す使用要求度が含まれていてもよい。そして、制御部15は、そのアプリケーションにおけるデバイスの使用要求度を、そのアプリケーションが過去に実行されたときのデバイスの使用の有無に基づいて統計的に算出する。例えば、デバイスを使用した場合に実績値を1とし、デバイスを使用しなかった場合に実績値を0とし、過去の実行時の実績値の平均値を算出し、それを使用要求度としてもよい。
また、デバイスを使用するアプケーションの要求条件には、デバイスと同じ筐体に実装されているディスプレイで起動することがどの程度要求されるかを表すデバイス配置要求度が含まれていてもよい。制御部15は、アプリケーションにおけるデバイス配置要求度を、アプリケーションが過去に実行されたとき、デバイスと同じ筐体に実装されているディスプレイ12において、ディスプレイ11と比較して、どの程度実行されたかに基づいて統計的に算出する。
上述した各ディスプレイのポイントを算出するとき、アプリケーションによるデバイスの使用要求度とデバイス配置要求度を乗算した値を、デバイスと同じ筐体14に搭載されたディスプレイ12に加算するというような演算が考えられる。
また、上述においては、他のアプリケーションが実行されているディスプレイに新たなアプリケーションを起動するとき、可能であれば、実行中のアプリケーションを他方のディスプレイに移動することにしたが、本発明はこれに限定されるものではない。簡易的な動作例として、移動が可能であるか否かを判定することなく、実行中のアプリケーションを非アクティブにし、その上に新たなアプリケーションを起動することにしてもよい。
図13、14は、本実施形態の情報処理端末による処理に関する一実施例を示すフローチャートである。図13には、情報処理端末が新たなアプリケーションを起動するディスプレイを選択するときの処理が示されている。図13を参照すると、制御部15は、まず新たなアプリケーションの必須条件を満たすディスプレイがどれかを判定する(ステップ1001)。ディスプレイ11、12のうちいずれか1つが必須条件を満たすのであれば、制御部15はそのディスプレイにて新たなアプリケーションを起動することを決定する(ステップ1002)。
ディスプレイ11、12のいずれも必須条件を満たす場合、制御部15は、次に各ディスプレイ11、12について、新たなアプリケーションを起動するディスプレイを選択するための指標となるポイントを算出する(ステップ1003)。ディスプレイのポイントは、そのディスプレイに新たなアプリケーションを起動することが好ましい度合いを示すものである。
このポイントの算出には実行中のアプリケーションがあることも考慮される。例えば、そのディスプレイが新たなアプリケーションの要求条件を満たす度合いがAであり、実行中のアプリケーションの要求条件を満たす度合いがBである場合を想定する。その場合、そのディスプレイのポイントP=A−αBとすればよい。αは重み係数である。新たなアプリケーションを実行中のアプリケーションよりも優先させるというポリシであれば、αを1より小さい値とすればよい。
各ディスプレイ11、12についてのポイントを算出したら、次に、制御部15はポイントが最も大きなディスプレイを選択し(ステップ1004)、選択したディスプレイに新たなアプリケーションを起動することを決定する(ステップ1002)。
新たなアプリケーションを起動するディスプレイが決定されると、次に、アプリケーションを起動することになる。
図14を参照すると、制御部15は、アプリケーションを起動するとき、まず、選択されたディスプレイに実行中のアプリケーションがあるか否か判定する(ステップ1101)。選択されたディスプレイに実行中のアプリケーションがなければ、制御部15はアプリケーションを起動する(ステップ1102)。
一方、選択されたディスプレイに実行中のアプリケーションがあれば、制御部15は、実行中のアプリケーションを他方のディスプレイに移動できるか否か判定する(ステップ1103)。具体的には、他方のディスプレイの特性が実行中のアプリケーションの要求条件を満たすか否かにより、移動が可能か否かを判定すればよい。また、そのとき他方のディスプレイに更に他のアプリケーションが実行中であれば、移動が不可能であると判定することにしてもよい。
新たなアプリケーションを起動しようとしているディスプレイにて実行中のアプリケーションを他方のディスプレイに移動できるのであれば、制御部15は、実行中のアプリケーションをディスプレイ間で移動させてから(ステップ1104)、新たなアプリケーションを起動する(ステップ1102)。
一方、新たなアプリケーションを起動しようとしているディスプレイにて実行中のアプリケーションを他方のディスプレイに移動できないのであれば、制御部15は、実行中のアプリケーションを非アクティブ化するとともに(ステップ1105)、新たなアプリケーションを起動する(ステップ1102)。
なお、上述したデバイスの例としては、カメラ、GPS(Global Positioning System)、加速度センサなどが考えられる。カメラの向きとディスプレイの向きが一致していることが好ましいようなアプリケーションであれば、カメラと同じ筐体に搭載されているディスプレイであることが要求条件となる。GPSで取得した位置および方角と一致するようにディスプレイに地図を表示するようなアプリケーションであれば、GPSと同じ筐体に搭載されているディスプレイであることが要求条件となる。ディスプレイの姿勢変化に応じて動作するようなアプリケーションであれば、加速度センサと同じ筐体に搭載されているディスプレイであることが要求条件となる。
また、本実施形態では、アプリケーションの要求条件を情報処理端末10が適応的に変化させる例を示したが、本発明はこれに限定されるものでは無い。他のとして、アプリケーションの要求条件が予め設定された固定値であってもよい。また、その固定値は、アプリケーション開発者が設定するものであってもよく、あるいは情報処理端末10のユーザが設定するものであってもよい。
以上説明した第1〜7の実施形態では簡単化のためにリソースあるいはリソースであるデバイスが単一である場合を想定した。しかし実際には、中間的な消費量をとりうる種類のリソースとして、CPUの処理能力、GPUの処理能力、メモリ容量など互いに独立した複数のリソースが存在するのが通常である。また、使用されるか否かが定まる種類のリソースとしても、カメラ、GPS、センサ、通信デバイスなど互いに独立した複数のリソースが存在するのが通常である。
図15は、アプリケーションによる複数項目のリソースのリソース使用量を記録したテーブルの一例を示す図である。この例では、アプリケーション毎に、各リソースについてのリソース消費量の現在値(real)と平均値(average)とが計測される。
例えば、情報処理端末10は、一定周期にリソース消費量を計測し、最新の計測値を現在値(real)とすればよい。また、過去の所定回の計測値の平均をとって平均値(average)とすればよい。
図15を参照すると、リソースとしては、リソース消費量が負荷値として計測される、CPU処理能力(CPU)、メモリ容量(Memory)、および画像のフレームレート(Frame rate)と、リソース消費量が使用の有無として定まる、電子コンパス(Electron compass)、加速度センサ(acceleration sensor)、およびカメラ(camera)とがある。リソース消費量が使用の有無として定まるリソースのaverageは、過去の各起動時に使用されたか否かを確率で表したものである。
このように複数のリソースがある場合、情報処理端末10は、中間的な消費量をとりうる種類の全てのリソースについてリソース消費量の総和が閾値を超えないように、また使用の有無が定まる種類の全てのリソースについてアプリケーションによる競合が生じないように、新たに起動されるアプリケーションのアプリケーション画面を表示するディスプレイを決定すればよい。また、中間的な消費量をとりうる種類の全てのリソースについてリソース消費量の総和を第7の実施形態におけるシステム負荷値として用いてもよい。
また、リソースが複数である場合に、各リソースに重み付けを行ってもよい。例えば、各リソースについてリソース消費量を算出し、それらを各リソースの重み係数で重みづけ加算し、得られた結果を閾値と比較してもよい。また、その重み付け加算で得られた結果を第7の実施形態におけるシステム負荷値として用いてもよい。また、更にアプリケーション毎に優先するリソースを定め、アプリケーション毎かつリソース毎の重み係数を設定してもよい。例えば、ユーザ操作に対するレスポンスなど動作速度が重視されるアプリケーションであれば、CPU処理能力やメモリ容量の重み係数を大きな値とすることが考えられる。その場合、各アプリケーションによる各リソースのリソース消費量を、アプリケーション毎かつリソース毎の重み係数で重み付け加算し、得られた結果を閾値と比較すればよい。
その際、使用の有無が定まる種類のリソースについては、使用されない場合を消費量がゼロとし、使用される場合を消費量が最大値として消費量を算出することにしてもよい。また、使用の有無が定まる種類のリソースの消費量の平均値として、過去の使用頻度を用いてもよい。
また、使用に有無が定まる種類のリソースについてのアプリケーション毎の重み付けを、そのアプリケーションにおいてそのリソースを使用することがどの程度必要とされるのかによって定めてもよい。例えば、リソースの1つであるカメラを必須とするアプリケーションであれば、そのアプリケーションにおけるカメラに対する重み係数を大きな値とすることが考えられる。
また、図4に示した画面表示制御では、最初に、リアルタイムの状況に基づく第1の条件での判断を行い、次に、平均値に代表されるような統計値に基づく第2の条件での判断を行い、最後に他のアプリケーションの下に隠れた潜在的なアプリケーションを考慮した第3の条件での判断を行った。しかし、本発明はこれに限定されるものではなく、第1〜3の条件についてどのような順序で判定してもよい。
更に他の例として、リアルタイムの状況に基づく判断と、統計値に基づく判断とを1つの判断に統合してもよい。リアルタイムの状況から算出されるリソース消費量と、平均値から算出されるリソース消費量とを所定の重み係数で重みづけ加算し、その結果を閾値と比較することが考えられる。その場合、リアルタイムでのリソース消費量に対する重みを、平均値に基づくリソース消費量に対する重みよりも大きな値とすることが考えられる。また、更に、他のアプリケーションの下に隠れた潜在的なアプリケーションのリソース消費量も重み付け加算してもよい。
また、更に他の例として、中間的な消費量をとりうる種類のリソースについて、各アプリケーションにおいて想定されるリソース消費量を予め固定的に設定しておき、その設定値とどのアプリケーションが実行中かに基づいて情報処理端末10の全体のリソース消費量を算出し、閾値と比較することが考えられる。この設定値は、アプリケーションの開発時にアプリケーション開発者が定めてもよく、その後で情報処理端末10の開発者が定めてもよく、またアプリケーションを情報処理端末10にインストールするときにユーザが設定してもよい。これによれば、中間的な消費量をとりうる種類のリソースの実際の消費量をリアルタイムで計測したり、過去の消費量の平均値を継続的に算出したりする必要が無い。
また、図4の例に示した第1の条件では、新たに起動するアプリケーションの過去のリソース消費量の統計量と、他方のディスプレイの表面に出ている実行中のアプリケーションの現在のリソース消費量とを加算し、それをリソース消費量の総和とした。表面に出ているアプリケーションのリソース消費量が全体の大部分を占めることから、そのような手法を採っている。しかし、本発明はこれに限定されるものではない。他の例として、表面に出ていない潜在アプリケーションでもリソースが消費されるので、そのリソース消費量も加算してリソース消費量の総和に含めることにしてもよい。
それによれば、アプリケーションを起動するディスプレイを選択する処理に、リソース消費量をより正確に反映させることができる。一般的なアプリケーションでは、潜在アプリケーションであるときのリソース消費量は表示アプリケーションであるときのリソース消費量より十分に小さいが、そうでないアプリケーションもある。
潜在アプリケーションであるときもリソース消費量が大きなアプリケーションをバックグラウンド処理アプリケーションと呼ぶことにする。バックグラウンド処理アプリケーションとして、例えば、映像を録画するアプリケーションや、ソフトウェアをアップデートするアプリケーション、音楽を再生するアプリケーションなどが考えられる。リソース消費量の総和を求めるとき、潜在アプリケーションのうちバックグラウンド処理アプリケーションについてだけ、そのリソース消費量もリソース消費量の総和に含めることにしてもよい。
それによれば、全ての潜在アプリケーションのリソース消費量を加算しなくてよいので演算処理が削減され、かつ潜在アプリケーションのうちリソース消費量が大きいバックグラウンド処理アプリケーションだけはリソース消費量の総和に含めることができるのでリソース消費量の総和を正確な値に近づけることができる。なお、バックグラウンド処理アプリケーションのリソース消費量としては、例えば実際に測定した消費量とその平均値を用いてもよく、予め定められた一定値を用いてもよい。また、バックグラウンド処理アプリケーションは、必ずしもいずれかのディスプレイに属しているとは限らない。どちらもディスプレイにも属さない状態で処理を実行するバックグラウンド処理アプリケーションもある。そのようなバックグラウンド処理アプリケーションのリソース消費量もリソース消費量の総和に含めることにしてもよい。
また、上記各実施形態ではアプリケーションの種類、特性、動作状態については特に考慮していないが、情報処理端末10は、アプリケーションの種類や特性を考慮して、新たなアプリケーションを起動するディスプレイの判断を行うことにしてもよい。具体的には、アプリケーションがデータをダウンロード中の状態であれば、情報処理端末10は、ダウンロードが途中で切れ無いように、そのアプリケーションを優先し、他方のアプリケーションの上に新たなアプリケーションを起動するようにしてもよい。
また、上記各実施形態において、情報処理端末10は、アプリケーションが終了されるとき、終了した後の新たな状態でのリソース消費量の総和を算出し、その総和が閾値を超えるようであれば、閾値を超えないように実行中のアプリケーションを制御してもよい。例えば、情報処理端末10は、表示アプリケーションを終了させるとき、他の実行中のアプリケーションをディスプレイ間で移動したり、一方のディスプレイの表面のアプリケーションを非アクティブ状態にしたり等が考えられる。
以下、より具体的な実施例について説明する。ここでは第1の実施形態に関する実施例について例示する。
新たなアプリケーションを起動するときのディスプレイ11、12の表示の変化について説明する。
図16A、16Bは、情報処理端末によるアプリケーション画面の表示の変化の一例を示す図である。図16Aの状態では、情報処理端末10は、ディスプレイ11にてアプリケーションA1、A3を実行しており、ディスプレイ12にてアプリケーションA2を実行している。ディスプレイ11ではアプリケーションA3が表面に出ており、その下にアプリケーションA1が隠れている。また、アプリケーションA3は他のアプリケーションに比べてリソース消費量が大きいものとする。図中でアプリケーションが太枠により囲まれているのは、そのアプリケーションのリソース消費量が大きいことを表している。
図16Aの状態から新たなアプリケーションA4の起動が要求されたとする。このアプリケーションA4もリソース消費量が大きいものとする。情報処理端末10は、要求を受けて、アプリケーションA4をディスプレイ11、12のいずれにて起動するか判定する。
ここでは、アプリケーションA4をディスプレイ12にて起動すると、リソース消費量が大きいアプリケーションA3とアプリケーションA4が共にディスプレイの表面に出るので、第1あるいは第2の条件において全体のリソース消費量が閾値よりも大きくなるとする。一方、アプリケーションA4をディスプレイ11にて起動すると、リソース消費量が大きいアプリケーションA3がアプリケーションA4の下に隠れるので、全体のリソース消費量が閾値より小さくなるとする。そこで、情報処理端末10は、アプリケーションA4を、図16Bに示すようにディスプレイ11にて起動すべきと判定する。
図17A、17Bは、情報処理端末によるアプリケーション画面の表示の変化の他の例を示す図である。図17Aの状態では、情報処理端末10は、ディスプレイ11にてアプリケーションA1、A3を実行しており、ディスプレイ12にてアプリケーションA2を実行している。ディスプレイ11ではアプリケーションA3が表面に出ており、その下にアプリケーションA1が隠れている。また、こちらの例ではアプリケーションA1のリソース消費量が大きいものとする。
図17Aの状態から新たなアプリケーションA4の起動が要求されたとする。このアプリケーションA4もリソース消費量が大きいものとする。情報処理端末10は、要求を受けて、アプリケーションA4をディスプレイ11、12のいずれにて起動するか判定する。
ここでは、アプリケーションA4をディスプレイ11にて起動してもディスプレイ12にて起動しても、リソース消費量が大きいアプリケーションA1が隠れているので、第1および第2の条件では全体のリソース消費量が閾値よりも小さいものとする。
そこで、情報処理端末10は、次に、第3の条件により潜在アプリケーションを考慮して、アプリケーションA4をディスプレイ11、12のいずれにて起動するか判定する。
ここでは、アプリケーションA4をディスプレイ12にて起動した場合、その後、ディスプレイ11の表面のアプリケーションA3が終了したときにアプリケーションA1とアプリケーションA4が表面に出ることになる。アプリケーションA1とアプリケーションA4は共にリソース消費量が大きいので、全体のリソース消費量が閾値よりも大きくなる。
一方、アプリケーションA4をディスプレイ11にて起動した場合、その後、ディスプレイ11の表面のアプリケーションA4が終了しても、ディスプレイ12の表面のアプリケーションA2が終了しても、全体のリソース消費量が閾値よりも小さく抑えられる。
そこで、情報処理端末10は、新たなアプリケーションA4をディスプレイ11にて起動すべきと判定する。
以上、本発明の各実施形態および実施例について述べてきたが、本発明は、この実施形態および実施例だけに限定されるものではなく、本発明の技術思想の範囲内において、様々な構成を組み合わせて使用したり、一部の構成を変更したりしてもよい。
この出願は、2010年4月7日に出願された日本出願特願2010−088552を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。