しかしながら、上述のような同報通知による事象駆動アーキテクチャを採用した従来技術は、上記特定の事象が発生するたびに、同報通知により上記所定のアプリケーションが起床され、一斉に動作を開始してしまっていた。つまり、同報通知を受け取るように設定されている所定のアプリケーションは、上記特定の事象の発生に対して、動作する必要のないアプリケーションまで起床されてしまっていた。
例えば、画面要素やUI(User Interface;ユーザインタフェース)要素の変更が不要または使用不可能な状態において、同報通知を受信することにより、画面要素等の変更のみを行うアプリケーションが起床されることがあった。
このように、上記事象の発生の度にアプリケーションが一斉に動作することにより、電力を浪費させたり、不要な通信を発生させたりする場合があった。
このため、ユーザが意識しないところで発生した事象によりアプリケーションが起床されることで、ユーザの予想以上に電力が消費されてしまうような場合があった。このように、ユーザがスマートフォンを使用または操作していないにもかかわらず、電力消費が激しい場合があるため、ユーザに不信感や不満を抱かせることもあった。すなわち、同報通知によりアプリケーションが一斉に動作し、電力が消費されていたため、必ずしも必要最小限の消費電力になっていなかった。
具体的には、操作しないのに入力デバイスがオン状態になったり、これにより省電力動作状態から通常動作状態に遷移するときにオーバーヘッドが生じていたりした。
このようなアプリケーションの動作は、アプリケーションそれぞれの設計および仕様によって決まる。すなわち、アプリケーションがどのように動作するかは、開発者側のアプリケーション設計および仕様によって決まるため、ユーザ側での調整の余地が乏しかった。
よって、どのようなアプリケーション対しても、上述のような動作をユーザ側で調整できるような機構(例えば、アプリケーションの起床を抑止する機構)と、インターフェイスとを提供することが望まれていた。
ここで、例えば、アプリケーションの起床を抑止する技術としては、特許文献1〜3が挙げられる。しかしながら、これらの技術は、セキュリティを確保することを主な目的とするものであり、上記課題を解決するには至っていない。
本発明は、上記問題に鑑みてなされたものであり、その目的は、同報通知によりアプリケーションが起床するアプリケーション実行環境において、消費電力の低減を図ることができる情報端末、その制御方法、および、制御プログラムおよびコンピュータ読み取り可能な記録媒体を実現することにある。
上記の課題を解決するために、本発明に係る情報端末は、予め設定された1以上のアプリケーションに対して、所定の事象の発生を同報通知するアプリケーション実行環境を有する情報端末において、情報端末が省電力動作状態か否かを判定する省電力動作判定手段と、上記省電力動作状態において、上記1以上のアプリケーションそれぞれについて、同報通知が抑止されるように設定されているか否かを判定する抑止判定手段と、情報端末が省電力動作状態であるときにおいて、上記抑止判定手段の判定に応じて、上記1以上のアプリケーションに対する同報通知を抑止する同報通知抑止手段とを備えることを特徴とする。
上記の課題を解決するために、本発明に係る情報端末の制御方法は、予め設定された1以上のアプリケーションに対して、所定の事象の発生を同報通知するアプリケーション実行環境を有する情報端末の制御方法において、情報端末が省電力動作状態か否かを判定する省電力動作判定ステップと、上記省電力動作状態において、上記1以上のアプリケーションそれぞれについて、同報通知を行うことが抑止されるように設定されているか否かを判定する抑止判定ステップと、情報端末が省電力動作状態であるときにおいて、上記抑止判定ステップにおける判定に応じて、上記1以上のアプリケーションに対する同報通知を抑止する同報通知抑止ステップとを含むことを特徴とする。
情報端末は、例えば、高機能携帯電話機・スマートフォン・多機能情報端末等のことを指す。上記情報端末は、予め設定された1以上のアプリケーションに対して、所定の事象の発生を同報通知するアプリケーション実行環境を有する。所定の事象(イベント)とは、例えば、情報端末の起動、電池残量の変化、時間の経過等の情報端末における状態変化のことである。所定の事象の発生を同報通知するとは、イベントの発生を通知するブロードキャストメッセージを送信することである。また、同報通知とは、例えば、AndroidにおけるBroadcast intentのことを指す。
アプリケーション実行環境では、上記同報通知が、予め設定された1以上のアプリケーションに対して行われる。同報通知を受信したアプリケーションは起床し、当該同報通知を処理する。アプリケーションの処理の実行には、電力の消費が伴う。
なお、アプリケーションは、アプリケーション配信システムから、ネットワークを介して、ダウンロードおよびインストールされたものであってもよい。
また、省電力動作状態とは、多機能機能電話端末における少なくとも一部の機能を停止または縮退させて消費電力を低減している状態を指す。省電力動作状態としては、例えば、画面表示を停止している状態が挙げられる。
上記構成によれば、情報端末が省電力動作状態であるときにおいて、同報通知が抑止されるように設定されているアプリケーションに対する同報通知を抑止する。設定されているとは、明示的に設定されている場合、および、暗黙的に設定されている場合の両方を含む。
これにより、アプリケーションが同報通知により無闇に起床されることを抑止することができる。
その結果、起床されなくてもかまわないアプリケーションが一斉に起床されて電力が消費されることを抑制することができる。
本発明に係る情報端末では、上記省電力動作判定手段は、情報端末が有する画面が消灯状態であるとき、情報端末が省電力動作状態であると判定することが好ましい。
画面が消灯している状態においては、画面表示を変更しなくてもかまわないので、画面表示を変更するアプリケーションは、同報通知により起床されないほうが好ましい。
上記構成では、情報端末の省電力状態とは、画面が消灯している状態(パネルセーブ状態)である。よって、上記構成によれば、画面が消灯している状態において、同報通知の抑止を試みることができる。このため、例えば、画面表示を変更するアプリケーションへの同報通知を抑止すれば、むやみにアプリケーションの起床を行ってしまうこと防ぐことができる。
これにより適切にアプリケーションの起床の抑制を行って電力の消費を抑止することができる。
本発明に係る情報端末では、上記抑止判定手段は、同報通知を許可するアプリケーションが登録されている許可リストを参照して、上記許可リストに登録されていない上記アプリケーションについて、該アプリケーションに対する同報通知が抑止されるように設定されていると判定することが好ましい。
上記構成によれば、上記アプリケーションに対する同報通知を許可する許可リストに登録されていないアプリケーションに対する同報通知が抑止されていると判定する。許可リストには、例えば、省電力状態であるか否かを問わずに、同報通知を行うべきアプリケーションを登録しておく。なお、上記許可リストは、予め別のアプリケーション等により作成しておくことができる。
上記構成によれば、どのような動作をするかわからないような、不特定多数の開発者が作成したアプリケーションを、デフォルト(初期設定)として同報通知の抑止対象とすることができる。その結果、ユーザ側での管理の複雑さを軽減することができる。
また、さらに言えば、上記構成は、多くのアプリケーションが、同報通知を受け取らなくてもかまわない場合、同報通知が必要な少数のアプリケーションを特定して許可リストに登録すればよいような状況においても、管理の複雑さを軽減することができる。
なお、同報通知を禁止するアプリケーションが登録されている禁止リストを用いることも可能である。
本発明に係る情報端末では、上記アプリケーションの実行状態がバックグラウンド状態か否かを判定するアプリケーション状態判定手段を備え、
上記同報通知抑止手段は、さらに、上記アプリケーションがバックグラウンド状態であるときに、上記同報通知の抑止を行うことが好ましい。
上記構成によれば、さらに、同報通知の抑止の条件として、アプリケーションの実行状態がバックグラウンド状態であるか否かが判定される。
アプリケーションがバックグラウンド状態であるとは、例えば、画面操作を受け付ける活動状態であったアプリケーションの状態がスタックに保持されて、画面操作が行われない非活動状態となっている状態である。
ユーザからの操作を受け付けて、例えば、ユーザとの対話形式によって処理を進めるようなアプリケーションには、このような非活動状態においては、同報通知を受け取っても処理を何も行わないものもある。
上記構成によれば、バックグラウンド状態のアプリケーションに対する同報通知を抑止するため、このように同報通知を受け取っても処理を行わないようなアプリケーションをむやみに起床させてしまうことを防ぐ事ができる。
これにより、適切にアプリケーションの起床の抑制を行って電力の消費を抑止することができる。
さらに言えば、上記構成において、情報端末が有する画面が消灯状態であるとき、情報端末が省電力動作状態であると判定すれば、ユーザが操作しないアプリケーションを選択的に起床しないようにする精度の向上を図ることができる。
本発明に係る情報端末では、上記抑止判定手段は、情報端末が有する画面における表示の変更を行うアプリケーションを、上記同報通知の抑止の対象とすることが好ましい。
画面表示の変更を行うアプリケーションであって、ユーザからの操作を受け付けることで処理を進めるようなアプリケーションは、省電力状態において、同報通知を行うイベントが発生しても起床されなくてもかまわない場合もある。例えば、画面が消灯状態である場合、アプリケーションは、画面表示の変更を行わなくてもよい、あるいは、ユーザからの操作を受け付けなくなくてもよいので起床されなくてもかまわない。
さらにいえば、上述したように、基地局との通知等、ユーザが意識しないところでも、事象は恒常的に発生し得る。そして、ユーザが情報端末を使用または操作していないにもかかわらず、電力消費が激しい場合があるため、ユーザに不信感や不満を抱かせることもあった。
上記構成によれば、情報端末が有する画面における表示の変更を行うアプリケーションに対して上記同報通知を行うことを抑止することができる。アプリケーションが画面における表示の変更を行うか否かは、様々な手段により特定することができる。
例えば、Androidアプリケーションにおける「画面・UI付きのオブジェクトを含むアプリケーション」である”アクティビティ(Activity)”単位で、同報通知の抑止を行ってもよい。
例えば、特定の画面表示を行う機能が呼び出されているか否か、あるいは、設定ファイルにおいて画面表示を行うことが宣言されているか否かを調査することにより特定することができる。また、手動によりユーザが設定可能なように構成されていてもかまわない。
これにより、適切にアプリケーションの起床の抑制を行って電力の消費を抑止することができる。
すなわち、画面表示の変更を行うようなアプリケーションが無闇に起床されて電力を消費してしまう等のユーザが意図しない電力消費の低減を図ることができる。つまり、“情報端末を意識的に操作した分だけ電力が消費されている”という使用感を、ユーザに対して与えることができる。
また、別の表現を用いれば、次のとおりである。ユーザの非操作時にバックラウンド動作するアプリケーションの動作を抑止することができるため、ユーザが知り得ない状態で動作するアプリケーションの電力消費を削減することができる。また、これにより長時間駆動の実現、および、バッテリーの消費と使用時間とがより比例関係に近くなるため、ユーザの使用感覚により近い電力使用傾向を実現することができる。
さらに言えば、上記構成を、情報端末が有する画面が消灯状態であるとき、情報端末が省電力動作状態であると判定する構成、および、上記アプリケーションの実行状態がバックグラウンド状態か否かを判定するアプリケーション状態判定手段を備え、上記同報通知抑止手段は、さらに、上記アプリケーションがバックグラウンド状態であるときに、上記同報通知の抑止を行う構成、の少なくともいずれか一方と組み合わせることで、ユーザが操作しないアプリケーションを選択的に起床しないようにする精度の向上を図ることができる。
本発明に係る情報端末では、上記抑止判定手段は、上記アプリケーション実行環境において常駐するサービスであることが好ましい。
事象の発生タイミングは、周期的であったり、非周期的であったり様々である。このため、同報通知を抑止するか否かを決定する機能は、アプリケーション環境において常駐するサービスにより実装したほうが、オーバーヘッドの低減を図ることができ好ましい。
上記構成によれば、アプリケーション実行環境において常駐するサービスにより、予め設定された上記1以上のアプリケーションに対する同報通知を抑止するか否かを決定することができる。これによりオーバーヘッドの低減を図ることができる。
本発明に係る情報端末では、上記抑止判定手段は、上記アプリケーションに対して設定された抑止優先順位に応じて、上記アプリケーションが同報通知を行うことが抑止されるように設定されているか否かを判定することが好ましい。
抑止優先順位は、例えば、省電力状態において、優先的に同報通知の抑止を行う順を設定することができる。上記構成では、例えば、抑止優先順位が、所定順位以上のアプリケーションに対して同報通知の抑止を行ってもよい。また、電池の残量が、所定値以下である場合に、抑止優先順位が、所定順位以上のアプリケーションに対して同報通知の抑止を行ってもよい。
上記構成によれば、このように抑止優先順位に応じた適切な同報通知の抑止を行う事ができる。
本発明に係る情報端末では、上記抑止判定手段は、所定の時間帯に応じて、上記アプリケーションに対する同報通知を行うことが抑止されるように設定されているか否かを判定することが好ましい。
上記構成において、上記所定の時間帯は、例えば、アプリケーションが、通常、実行される実行時刻を基準に設定することができる。また、上記所定の時間帯は、アプリケーション実行環境を提供するシステムにおいて、単一の時間帯としてもよいし、アプリケーションごとに設定してもかまわない。すなわち、上記所定の時間帯は、システム或いは上記アプリケーションに対して設定された、実行時刻(時間帯)であっても構わない。
また、所定の時間帯に応じて、上記アプリケーションに対する同報通知を行うことが抑止されるように設定されているか否かを判定するとは、例えば、アプリケーションが実行されないような時間帯において、同報通知の抑止を行うということである。
上記構成によれば、アプリケーションが実行されないような時間帯などにおける同報通知を抑止し、消費電力の低減を図ることができる。
本発明に係る情報端末では、上記抑止判定手段は、情報端末に搭載されたバッテリー残量に応じて、または、外部からの給電状態か否かに応じて、上記アプリケーションに対する同報通知を行うことが抑止されるように設定されているか否かを判定することが好ましい。
ある観点から言えば、上記構成によれば、バッテリーの残量に応じて、上記アプリケーションに対する同報通知を行うことが抑止されるように設定されているか否かを判定する。
例えば、バッテリーの残量が所定の閾値以下となったとき、上記アプリケーションに対する同報通知を行うことが抑止されるように設定されているか否かを判定する。アプリケーション実行環境を提供するシステムにおいて、単一の閾値を設定してもよいし、アプリケーションごとに閾値を設定してもかまわない。
また、別の観点から言えば、上記構成によれば、外部からの給電状態か否かに応じて、上記アプリケーションに対する同報通知を行うことが抑止されるように設定されているか否かを判定する。
例えば、情報端末がACアダプタに接続されていないような場合に、上記アプリケーションに対する同報通知を行うことが抑止されるように設定されているか否かを判定する。
上記構成によれば、電力の供給状況に応じて、例えば、電力供給が十分でない状況において、同報通知の抑止を行うことができる。
なお、上記情報端末は、コンピュータによって実現してもよく、この場合には、コンピュータを上記各手段として動作させることにより上記情報端末をコンピュータにて実現させる情報端末の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
本発明に係る情報端末は、予め設定された1以上のアプリケーションに対して、所定の事象の発生を同報通知するアプリケーション実行環境を有する情報端末において、情報端末が省電力動作状態か否かを判定する省電力動作判定手段と、上記省電力動作状態において、上記1以上のアプリケーションそれぞれについて、同報通知が抑止されるように設定されているか否かを判定する抑止判定手段と、情報端末が省電力動作状態であるときにおいて、上記抑止判定手段の判定に応じて、上記1以上のアプリケーションに対する同報通知を抑止する同報通知抑止手段とを備える構成である。
本発明に係る情報端末の制御方法は、予め設定された1以上のアプリケーションに対して、所定の事象の発生を同報通知するアプリケーション実行環境を有する情報端末の制御方法において、情報端末が省電力動作状態か否かを判定する省電力動作判定ステップと、上記省電力動作状態において、上記1以上のアプリケーションそれぞれについて、同報通知を行うことが抑止されるように設定されているか否かを判定する抑止判定ステップと、情報端末が省電力動作状態であるときにおいて、上記抑止判定ステップにおける判定に応じて、上記1以上のアプリケーションに対する同報通知を抑止する同報通知抑止ステップとを含む方法である。
よって、起床されなくてもかまわないアプリケーションが一斉に起床されて電力が消費されることを抑制することができる。
以下、本発明の実施の形態について、図1〜5を用いて説明すると次のとおりである。
まず、図2を用いて、本発明の一実施形態である携帯端末機(情報端末)1の機能的構成について説明すると次のとおりである。図2は、携帯端末機1の構成例を示す機能ブロック図である。携帯端末機1は、例示的には、Android(商標)を搭載したスマートフォンである。
図2に示すように、携帯端末機1は、制御部10、撮像部31、音声入出力部32、バッテリー33、通信部34、タッチパネル表示部35、ボタン部36、および記憶部50を備える構成である。
制御部10は、携帯端末機1の各種機能を統括的に制御するものである。制御部10は、システム領域100およびアプリケーション領域200を有する。
システム領域100は、OS、API(Application Programming Interface)、および実行ライブラリ等のシステムが提供する制御機能および実行環境を含む領域である。システム領域100は、イベント管理部101を含む。
イベント管理部101は、携帯端末機1が備える撮像部31やバッテリー33をはじめとする各部構成において発生するイベント(事象/割り込み信号)を検知し、システム領域100に内において当該イベントに対応するブロードキャストインテント(同報通知)を生成するものである。インテント、およびブロードキャストインテントについては、後に説明する。
アプリケーション領域200は、アプリケーション配信システムからダウンロードおよびインストールされたアプリケーションを含む領域である。なお、アプリケーション領域200は、アプリケーション配信システムを通じたインストール以外の方式によりインストールされたアプリケーション、例えば、プリインストールされたアプリケーションを含んでいてもよい。
なお、制御部10の詳細については、後述する。
撮像部31は、被写体を撮影して画像を取得するためのカメラ機能を提供するものである。撮像部31は、例えば、光学系および撮像素子(CCD(Charge Coupled Devices)、CMOS(Complementary Metal-Oxide-Semiconductor)等)により実現することができる。
音声入出力部32は、音声の入出力を行うものである。音声入出力部32は、例えば、音波を電気信号に変換して制御部10に入力するマイク、および、制御部10からの電気信号を音波に変換して出力するスピーカにより実現することができる。なお、音声入出力部32には、外部のヘッドホン、ヘッドセットと接続するための端子が設けられていてもよい。
バッテリー33は、携帯端末機1の各部が動作するための電力を供給するための等の二次電池である。バッテリー33では、バッテリー残量が変わったとき、バッテリー残量が所定の量以下となったとき、バッテリー残量が所定の量以下から所定の量より多くなったときに、割り込み信号を制御部10に送信するように構成されていてもよい。
なお、携帯端末機1に対する電源供給は、USBや、ACアダプタを外部の電源と接続して行うことができる。
通信部34は、携帯端末機1の外部の装置と通信を行うためのものである。通信部34は、例示的には、携帯電話網や、近距離無線を介して外部の装置と通信を行う。通信部34は、携帯電話網として、3G回線やLTE回線等を用いることができる。また、通信部34は、近距離無線通信方式として、例えば、無線LAN(IEEE802.11)、Bluetooth(登録商標)等を採用することができる。しかしながら、これに限られず、通信部34は、ZigBee(登録商標)、UWB(Ultra Wide Band)、IrDA、電磁界通信などの無線通信方式を採用してもよい。また、通信部34は、他にもイーサネット(登録商標)、USB(Universal Serial Bus)などの有線接続方式による通信を行ってもよい。また、通信部34は、電磁波の照射を制限するための機内モードがオンになると、機能が停止され、機内モードがオフになると、機能が有効になるように構成されていてもよい。
タッチパネル表示部35は、接触操作を受け付ける操作部35Aおよび画面表示を行う表示部35Bを備える。
操作部35Aは、表示部35Bの表示画面の接触操作位置を検出して、検出した接触操作位置に基づく操作データを、制御部10に送信する。なお、操作部35Aが、接触操作位置を検出する手法としては、例えば、マトリクス・スイッチ、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式、および、対象物の画像を検出する方式(光センサ方式)などが挙げられる。しかしながら、これに限られず、接触操作位置を検出する手法には、種々の手法を適宜適用することができる。
表示部35Bは、画像データを表示するための表示画面を有しており、制御部10から画像データを受信し、受信した画像データに基づいてその表示画面に画像を表示するものである。表示部35Bは、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、EL(Electroluminescence)ディスプレイなどにより実現することができる。
ボタン部36は、携帯端末機1の表面に設けられたハードウェア的なボタンである。ボタン部36の具体例としては、撮像部31のカメラを動作させるシャッターボタン、表示部35Bにおける画面をホーム画面に移動させるためのホームボタン、音声入出力部32における音声出力ボリュームを変更するための音量ボタン、および、電源をオン・オフするための電源ボタンなどが挙げられる。ボタン部36は、ユーザの操作に応じた操作データを作成して制御部10に送信する。また、ボタン部36において、特定のボタンが押下されたときに、制御部10に対して割り込み信号が送信されるよう構成されていてもよい。
タイマー37は、時間を計測するためのものである。タイマー部37は、例えば、時刻計測用のリアルタイムクロック(RTC)IC(Integrated Circuit)により実現することができる。また、タイマー部37は、タイマー設定機能を具備しており、設定された時刻になると、制御部10に割り込み信号を出力してもよい。
記憶部50は、各種データおよびプログラムを記憶するものである。また、記憶部30および制御部40の構成の詳細については以下において説明する。
(Androidにおけるアプリケーションおよびインテント)
ここで、Androidにおけるアプリケーションおよびインテントについて補足しておくと次のとおりである。
上述のとおり、アプリケーションは、アクティビティ(Activity)、サービス(Service)、およびブロードキャストレシーバ(Broadcast Receiver)を含む。
アクティビティは、画面・UI付きのオブジェクトを含むコンポーネントである。アクティビティは、一般的には、ユーザからの操作を受け付けて処理を進める。アクティビティは、例えば、対話形式の処理を実行することができる。
サービスは、システムに常駐して処理を行うコンポーネントである。例えば、時間がかかるような処理を継続して実行するために使用される。
ブロードキャストレシーバは、インテントの一種であるブロードキャストインテントを受信して、これに応じた処理を実行するコンポーネントである。
Androidのアプリケーションコンポーネントに含まれる、アクティビティ、サービス、ブロードキャストレシーバは、インテントと呼ばれるメッセージを受信することによって起床されることで、それぞれにおいて記述されている処理を実行する。
例えば、あるアクティビティから、別のアクティビティに対して、インテントがやり取りされることにより、アクティビティ同士の連携が実現される。
また、インテントの一種であるブロードキャストインテントは、ブロードキャストレシーバに向けて配信されるインテントである。
また、インテントには、明示的に送信先のコンポーネントを指定する明示インテントと、明示的には送信先のコンポーネントを指定しない暗黙インテントとがある。ブロードキャストインテントは、暗黙インテントの一種である。
(制御部および記憶部の詳細)
次に、図1を用いて、制御部10および記憶部50の詳細について説明する。図1は、携帯端末機1が備える制御部10および記憶部50の詳細な構成について示した機能ブロック図である。なお、図1に各構成において括弧書き(<>)にて示す名称は、各構成のAndroidにおける識別子である。また、大括弧([])にて示す名称は、説明の便宜上付加したデータまたはリクエストの名称である。
図1に示すように、制御部10は、上述のとおりシステム領域100およびアプリケーション領域200を有している。
[システム領域]
システム領域100は、詳細には、前述したイベント管理部101に加えて、さらに制御システム110および省電力サービス130を含む。
イベント管理部101は、詳細には、携帯端末機1が備える撮像部31、音声入出力部32、バッテリー33、通信部34、タイマー37、タッチパネル表示部35、およびボタン部36から送信される割り込み信号に応じて、ブロードキャストインテント(<Broadcast intent>)を生成し、生成したブロードキャストインテントを制御システム110に送信する。
ここで、図3を用いて、イベント管理部101が生成するインテント(ブロードキャストインテント)のデータ構造について説明すると次のとおりである。
図3に示すように、ブロードキャストインテント#1([Broadcast intent];以下、とくに同報であることを区別する必要がない場合には、単にインテントと称する)は、データ項目として、アクション(action)、データ(data)、カテゴリ(category)、付加情報(Extra)、タイプ(type)、およびフラグ(flag)を含む。
アクションは、インテントが期待している振る舞いや、インテントが知らせたい事柄を示す。なお、アクションは、必須のデータ項目である。
データは、インテントの取り扱い方に関する情報を示す。
カテゴリは、アクションに対する追加情報を示す。
付加情報は、他のオブジェクトと受け渡しする情報が格納される。
タイプは、データの形式を示す。
フラグは、アプリケーションの起動方法を示す。
制御システム(<Android System>)110は、アプリケーションの実行環境を統合的に制御する。制御システム110は、ブロードキャスト送信制御部111、アプリケーションスタック(<Application Stack>)120、パネル状態管理部(panel-save-status)121を備える。
ブロードキャスト送信制御部111は、各アプリケーションについて登録されているブロードキャストレシーバ114に対して、インテントを配信する。ブロードキャスト送信制御部111は、各種の条件判定に応じて、インテントを配信するブロードキャストレシーバ114を決定する。具体的には、ブロードキャスト送信制御部111は、アプリケーションスタック120、パネル状態管理部121、および省電力サービス130にアクセスして、インテントを配信すべきブロードキャストレシーバ114を決定する。ブロードキャスト送信制御部111の詳細については、後述する。
アプリケーションスタック120は、各アプリケーションの状態を管理する。以下の例では、アプリケーションの状態とは、例示的に、フォアグラウンドで実行されているフォアグラウンド状態である、および、バックグラウンドで実行待ちのバックグラウンド状態である、のいずれかの状態であるとする。
パネル状態管理部121は、画面の点灯/消灯状態を管理する。なお、画面が消灯している状態は、省電力状態である。
省電力サービス130は、省電力状態において、ブロードキャストインテントを抑止するアプリケーションがどれであるかを管理する。具体的には、省電力サービス130は、配信許可リスト51に登録されているアプリケーションに対するブロードキャストインテント配信を許可する。また、省電力サービス130は、配信許可リスト51に登録されていないアプリケーションに対するブロードキャストインテント配信を許可しない。また、省電力サービス130は、省電力設定部201によって、サービスの有効/無効が切り替えられる。
記憶部50には、配信許可リスト51、インテントフィルタリスト52、ブロードキャストレシーバリスト53が記憶される。
配信許可リスト51は、省電力状態において、ブロードキャストインテント配信を許可するアプリケーションの識別子を登録しておくリストである。
インテントフィルタリスト52は、各アプリケーションがどのようなインテントを処理できるかを示すインテントフィルタを登録しておくリストである。なお、インテントフィルタでは、インテントのデータ項目のアクション、カテゴリについて、送信されるべきインテントの配信条件を設定することができる。すなわち、インテントフィルタは、これらの配信条件に適合しないインテントを対応するアプリケーションに送信しない。
ブロードキャストレシーバリスト53は、各アプリケーションに対してどのブロードキャストレシーバ114が登録されているかを示すリストである。
[ブロードキャスト送信制御部の詳細]
次に、図1を参照しながら、ブロードキャスト送信制御部111の詳細について説明する。ブロードキャスト送信制御部111は、より詳細には、インテントフィルタ112、抑止条件判定部113、およびブロードキャストレシーバ114を備える。
インテントフィルタ112は、ブロードキャストインテントを受信すると、登録されているインテントフィルタに応じて、各アプリケーションに対するインテント配信を試行する。具体的には、インテントフィルタ112は、インテントフィルタリスト52を参照して、受信したブロードキャストインテントが、各アプリケーションについて登録されているインテントフィルタに設定されている条件に適合するか否かを判断する。
インテントフィルタ112は、受信したブロードキャストインテントが上記インテントフィルタの条件に適合している場合、当該ブロードキャストインテントを、対応するアプリケーションへ配信することを試みる。
抑止条件判定部113は、配信が試行されたブロードキャストインテントの配信を抑止するべきか否かを判定する。具体的には、抑止条件判定部113は、以下のようにして、3つの抑止条件(1)〜(3)を判定する。
条件(1):抑止条件判定部113は、アプリケーションスタック120に、ブロードキャストインテントの送信先のアプリケーションの状態を問い合わせることで、アプリケーションの状態を判定する。
条件(2):抑止条件判定部113は、パネル状態管理部121に、画面の状態が、点灯状態か、それとも消灯状態(panel-save状態)であるかを問い合わせる。
条件(3):抑止条件判定部113は、省電力サービス130に問い合わせを行い、ブロードキャストインテント配信が許可されていないアプリケーションに対するものであるか否かを判定する。
抑止条件判定部113は、判定の結果、(1)アプリケーションがバックグラウンド状態であり、(2)画面の状態が、消灯状態であり、かつ、(3)配信先のアプリケーションに対する配信が許可されていない場合、当該アプリケーションに対するブロードキャストインテント配信を抑止する。
ブロードキャストレシーバ114は、ブロードキャストインテントの配信が試みられ、かつ、試みられた配信が抑止されなかった場合、ブロードキャストレシーバリスト53を参照して、配信が試みられたブロードキャストインテントを、対応するアプリケーションに配信する。
[アプリケーション領域]
アプリケーション領域200は、省電力設定部201、リスト作成部202、および、アプリケーション210(210A〜210K)を含む。
省電力設定部201は、省電力サービス130の有効/無効を切り替えるアプリケーションである。
リスト作成部202は、配信許可リスト51を編集し、アプリケーションの登録/削除を行うアプリケーションである。
アプリケーション210(210A〜210K)は、Androidアプリケーションコンポーネントのアプリケーションであってもよい。また、アプリケーション210は、開発者が自由に開発することができ、アプリケーション配信システムによって、携帯端末機1にダウンロードおよびインストールされる。また、アプリケーション210は、Androidアプリケーションの一部を構成するコンポーネントであってもよく、例えば、アクティビティ、または、サービスであってもよい。
(処理の流れ)
次に、図4を用いて、ブロードキャスト送信制御部111におけるブロードキャストインテント配信の抑止処理の流れについて説明する。図4は、ブロードキャスト送信制御部111におけるブロードキャストインテント配信の抑止処理の流れについて示したフローチャートである。
図4に示すように、まず、イベント管理部101が、ブロードキャストインテント配信の対象となるイベントを検知し、ブロードキャストインテントを生成する(S11)。
次に、インテントフィルタ112が、配信条件に適合するインテントフィルタについて、ブロードキャストレシーバ114に、配信先のアプリケーションを問い合わせる(S12)。すなわち、インテントフィルタ112は、ブロードキャストレシーバ114を介して、ブロードキャストレシーバリスト53に登録されているアプリケーションを取得する。
続いて処理は、ブロードキャストインテントの配信を試みる対象となるアプリケーションについて、配信抑止条件の判定に基づいてインテントを配信するループに入る(S13〜S18)。このループでは、ブロードキャストレシーバリスト53に登録されている各アプリケーションが順番に処理対象となる。以下では、処理対象となるアプリケーションを対象アプリケーションと表記する。
抑止条件判定部113は、以下のようにして、配信抑止条件を判定する。まず、抑止条件判定部113は、パネル状態管理部121に、画面がパネルセーブ状態(停止状態)であるか否かを問い合わせる(S14)。
画面がパネルセーブ状態である場合(S14においてYES)、抑止条件判定部113は、対象アプリケーションに対する配信が許可されているかを省電力サービス130に問い合わせる。省電力サービス130では、抑止条件判定部113からの問い合わせに応じて、まず省電力サービス130が有効か否かを判定する(S15)。
省電力サービス130が有効である場合(S15においてYES)、さらに省電力サービス130は、問い合わせを受けた対象アプリケーションが配信許可リスト51に登録されていない配信許可対象外のアプリケーションであるか否かを確認する(S16)。
配信許可対象外のアプリケーションである場合(S16においてYES)、省電力サービス130は、その旨を抑止条件判定部113に応答し、応答を受けた抑止条件判定部113は、さらに対象アプリケーションがバックグラウンド動作しているか否かを判定する(S17)。すなわち、抑止条件判定部113は、アプリケーションスタック120に対する問い合わせを行う。
ここで、対象アプリケーションがバックグラウンド動作している場合(S17においてYES)、抑止条件判定部113は、インテント配信を抑止する。すなわち、インテントはブロードキャストレシーバ114によって配信されず、次の対象アプリケーションについてのループ処理に入る(S13へ戻る)。
また、S14〜S17において一つでも条件に合致しない場合(S14〜S17のいずれかのステップにおいてNO)、ブロードキャストレシーバ114は、対象アプリケーションにインテントを配信する(S19)。
(具体例1)
次に、図1を用いて、ブロードキャスト送信制御部111における抑止処理の別の具体例について説明する。
図1に示す例では、アプリケーション210A〜210Kは、一例として、それぞれ以下のような設定としている。
アプリケーション210A〜210Hは、対応するインテントフィルタおよびブロードキャストレシーバが、制御システム110に登録されている。すなわち、アプリケーション210A〜210Hは、インテントフィルタリスト52およびブロードキャストレシーバリスト53に登録されている。
アプリケーション210A〜210Cは、配信許可リスト51に登録されている。
アプリケーション210D〜210Hは、配信許可リスト51に登録されていない。
また、アプリケーション210I〜210Kは、インテントフィルタおよびブロードキャストレシーバが、制御システム110に登録されていない。
本具体例では、イベント管理部101によりブロードキャストインテントが生成されたとき、インテントフィルタ112が、ブロードキャストレシーバが登録されているアプリケーション210A〜210Hに対するインテント配信を試みる。
ここで、インテント配信が試みられたアプリケーション210A〜210Hについて、抑止条件判定部113が、抑止条件を判定する。配信許可リスト51には、アプリケーション210A〜210Cが登録されているので、アプリケーション210A〜210Cについては、上述の条件(3)について“偽”である。よって、アプリケーション210A〜210Cについては、ブロードキャストインテントが配信される。
一方、アプリケーション210D〜210Hについては、配信許可リスト51に登録されていないので、省電力状態において、これらのアプリケーションに対するブロードキャストインテントは許可されない。つまり、条件(3)について、“真”である。
このため、条件(1)および(2)についても、“真”であれば、アプリケーション210D〜210Hに対するブロードキャストインテントの配信が抑止される。
(具体例2)
次に、図5を用いて、ブロードキャスト送信制御部111における抑止処理の別の具体例について説明する。図5は、ブロードキャスト送信制御部111における抑止処理の別の具体例を示している。
なお、図5に示す具体例では、アプリケーション210A、アプリケーション210B、およびアプリケーション210Dについて、それぞれに対応するインテントフィルタA、BおよびDが登録されているものとする。また、アプリケーション210A、アプリケーション210B、およびアプリケーション210Dについて、それぞれに対応するブロードキャストレシーバA、B、およびDが登録されているものとする。
また、アプリケーション210Aに対応するインテントフィルタAおよびアプリケーション210Bに対応するインテントフィルタBは、それぞれ、特定のブロードキャストインテント#1をアプリケーション210Aおよびアプリケーション210Bに送信する設定となっている。
これに対して、アプリケーション210Bに対応するインテントフィルタBは、上記特定のブロードキャストインテント#1をアプリケーションBに送信しない設定となっている。例えば、インテントフィルタBに対応するアプリケーション210Bが、上記特定のブロードキャストインテント#1に含まれるアクションを処理しない場合が想定される。
また、アプリケーション210Cについては、インテントフィルタおよびブロードキャストレシーバが登録されていない。
図5に示すように、[1]Standard BroadCastイベントが発生すると、イベント管理部101が、ブロードキャストインテント#1を生成する。なお、Standard BroadCastイベントとは、システムにおいて、標準的とされる同報通知イベントのことである。電池残量の変化等のイベントが、Standard BroadCastイベントに該当する。
[2]インテントフィルタ112が、各インテントフィルタの配信条件を判定し、ブロードキャストインテント#1が対象アプリケーションに送信すべきインテントであるか否かを判定する。図5に示す例では、インテントフィルタBは、ブロードキャストインテント#1を配信しない設定であるので、インテントフィルタ112は、ブロードキャストインテント#1を配信する設定であるインテントフィルタAに対応するアプリケーション210AおよびインテントフィルタBに対応するアプリケーション210Bに対するインテント配信を試みる。
[3]抑止条件判定部113が、上述の条件(1)〜(3)を判定し、配信の抑止を行うか否かを判定する。例えば、上述の条件(1)、(2)を満たしていても、配信許可リスト51に、アプリケーション210Dのみが登録されている場合、条件(3)に基づいて、アプリケーション210Dに対する配信が行われる一方で、アプリケーション210Aに対するインテント配信が抑止される。
[4]ブロードキャストレシーバ114では、配信が許可されたアプリケーション210Dに対応するブロードキャストレシーバDからブロードキャストインテント#1が配信される。
[5]アプリケーション210Dは、配信されたブロードキャストインテント#1を受信する。
(作用・効果)
以上に示したとおり、携帯端末機1は、対応するブロードキャストレシーバが登録されているアプリケーション210に対して、ブロードキャストインテントを配信するブロードキャスト送信制御部111を有する携帯端末機1において、抑止条件判定部113が、(1)アプリケーションがバックグラウンド状態か否か(2)パネル停止状態か否か、(3)ブロードキャストインテントの配信許可がされていないアプリケーションであるか否か、の条件判定を行い、当該条件判定に従ってブロードキャストインテントの配信を抑止する構成である。
上記構成により、アプリケーションがブロードキャストインテント#1により無闇に起床されることを抑止することができる。その結果、起床されなくてもかまわないアプリケーションが一斉に起床されて電力が消費されることを抑制することができる。
また、上記のような抑止を行うことは、Androidシステムにおいて以下のような利点を有する。すなわち、ブロードキャストレシーバの登録を削除してインテント配信の抑止を実現しようとすると、通常動作時に期待されるインテントの受け渡しが阻害されてしまう。
また、どのタイミングで削除した登録を回復させるかも考慮しなければならない。例えば、都度登録・削除を繰り返すのはオーバーヘッドが大きく現実ではない。
したがって、上述したように、ブロードキャストレシーバへの問い合わせにより起床するアプリケーションの取得が行われた後、取得されたアプリケーションそれぞれに対して上述したような抑止判定を行うことで、上記インテント受け渡しの阻害やオーバーヘッドを回避することができる。
(変形例)
以下において、携帯端末機1の好ましい変形例について説明する。各アプリケーションについて、省電力状態において、優先的に同報通知の抑止を行う抑止優先順位が設定されていてもよい。抑止優先順位とは、インテントの配信を抑止すべき必然性の高さを示す情報である。例えば、アプリケーションの処理内容の緊急性・重大性に基づいて設定することができる。
また、抑止条件判定部113は、上記抑止優先順位の判定を、上記条件(1)〜(4)に加えて、さらに第4の抑止条件としてもよい。
例えば、抑止条件判定部113は、抑止優先順位が、所定順位以上のアプリケーションに対してブロードキャストインテント配信の抑止を行ってもよい。
また、抑止条件判定部113は、電池の残量が、所定値以下である場合に、抑止優先順位が、所定順位以上のアプリケーションに対してブロードキャストインテント配信の抑止を行ってもよい。
上記構成によれば、このように抑止優先順位に応じた適切なブロードキャストインテント配信の抑止を行う事ができる。
また、携帯端末機1では、抑止条件判定部113は、所定の時間帯に応じて、アプリケーション210に対してブロードキャストインテントを配信することが抑止されるように設定されているか否かを判定することが好ましい。
上記構成において、上記所定の時間帯は、例えば、アプリケーションが、通常、実行される実行時刻を基準に設定することができる。また、上記所定の時間帯は、制御システム110において、単一の時間帯としてもよいし、アプリケーション210ごとに設定してもかまわない。現在時刻が、所定の時間帯であるか否かは、タイマー37が示す現在時刻と、設定されている時間帯とを比較することにより判定することができる。
また、所定の時間帯に応じて、アプリケーション210に対してブロードキャストインテントを配信することが抑止されるように設定されているか否かを判定するとは、例えば、アプリケーション210が実行されないような時間帯において、ブロードキャストインテントを配信することを抑止するということである。
上記構成によれば、アプリケーション210が実行されないような時間帯などにおけるブロードキャストインテント配信を抑止し、消費電力の低減を図ることができる。
また、携帯端末機1では、抑止条件判定部113は、情報端末に搭載されたバッテリー33の残量に応じて、または、外部からの給電状態か否かに応じて、アプリケーション210に対するブロードキャストインテントの配信を行うことが抑止されるように設定されているか否かを判定することが好ましい。
ある観点から言えば、上記構成によれば、抑止条件判定部113は、バッテリー33の残量に応じて、アプリケーション210に対するブロードキャストインテントの配信を行うことが抑止されるように設定されているか否かを判定する。
例えば、バッテリー33の残量が所定の閾値以下となったとき、抑止条件判定部113は、アプリケーション210に対するブロードキャストインテントの配信を行うことが抑止されるように設定されているか否かを判定する。制御システム110において、単一の閾値を設定してもよいし、アプリケーション210ごとに閾値を設定してもかまわない。
また、別の観点から言えば、上記構成によれば、抑止条件判定部113は、外部からの給電状態か否かに応じて、アプリケーション210に対するブロードキャストインテントの配信を行うことが抑止されるように設定されているか否かを判定する。
例えば、携帯端末機1が、ACアダプタに接続されていないような場合に、抑止条件判定部113は、アプリケーション210がブロードキャストインテントの配信を行うことが抑止されるように設定されているか否かを判定する。
上記構成によれば、電力の供給状況に応じて、例えば、電力供給が十分でない状況において、ブロードキャストインテントの配信の抑止を行うことができる。
(ハードウェア的実現およびソフトウェア的実現)
また、上述した携帯端末機1の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
後者の場合、上記装置は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである上記装置の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記装置に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM(Compact Disc Read-Only Memory)/MOディスク(Magneto-Optical disc)/MD(Mini Disc)/DVD(Digital Versatile Disc)/CD−R(CD Recordable)/ブルーレイディスク(Blu-ray Disc:登録商標)等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM(Erasable Programmable Read-Only Memory)/EEPROM(Electrically Erasable and Programmable Read-Only Memory)/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
また、上記装置を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN(Local Area Network)、ISDN(Integrated Services Digital Network)、VAN(Value-Added Network)、CATV(Community Antenna television/Cable Television)通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE(Institute of Electrical and Electronic Engineers)1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDA(Infrared Data Association)やリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。