(57)【要約】  本開示は、アプリケーションプログラムの実行方法および実行装置に関し、オペレーティングシステムの分野に関する。方法には、実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するステップと、前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得するステップと、前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するステップとを含む。本開示は、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決し、第２アプリケーションプログラムをインストールすることなく、第１アプリケーションプログラムによって提供されるランタイム環境において第２アプリケーションプログラムを実行することが可能になるという効果を奏する。
2016534487.tif 000002
【特許請求の範囲】
【請求項１】
実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するステップと、
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得するステップと、
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するステップとを含む、アプリケーションプログラムの実行方法。
【請求項２】
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行する前記ステップは、
前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定するステップと、
前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第１アプリケーションプログラムにより起動するステップと、
前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するステップとを含む、請求項１に記載の方法。
【請求項３】
前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行する前記ステップは、
前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すステップと、
呼び出された前記プログラムコンポーネントを、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するステップとを含む、請求項２に記載の方法。
【請求項４】
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムの前記プログラムコンポーネントを取得する前記ステップは、
前記第２アプリケーションプログラムの前記インストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのコンフィギュレーションファイルを取得するステップと、
前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得するステップとを含み、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも１つを含む、請求項２に記載の方法。
【請求項５】
前記第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定する前記ステップは、
前記第２アプリケーションプログラムの起動中に、前記第１アプリケーションプログラムにより、前記第２アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するステップを含む、請求項２に記載の方法。
【請求項７】
前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定する前記ステップは、
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するステップを含み、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するステップを含む、請求項５に記載の方法。
【請求項８】
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信し、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するステップ、
および／または
前記第２アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第１アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するステップをさらに含む、請求項５に記載の方法。
【請求項９】
ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、前記第１アプリケーションプログラムにより前記第２アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するステップをさらに含む、請求項１〜８のいずれかに記載の方法。
【請求項１０】
実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成された信号受信モジュールと、
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得するように構成されたインストールパッケージ解析モジュールと、
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するように構成されたプログラム実行モジュールとを備える、アプリケーションプログラムの実行装置。
【請求項１１】
前記プログラム実行モジュールは、
コンポーネント特定サブモジュールと、サンドボックス起動サブモジュールと、コンポーネント実行サブモジュールとを備え、
前記コンポーネント特定サブモジュールは、前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定するように構成されており、
前記サンドボックス起動サブモジュールは、前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第１アプリケーションプログラムにより起動するように構成されており、
前記コンポーネント実行サブモジュールは、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するように構成されている、請求項１０に記載の装置。
【請求項１２】
前記コンポーネント実行サブモジュールは、呼び出しサブモジュールと実行サブモジュールとを備え、
前記呼び出しサブモジュールは、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すように構成されており、
前記実行サブモジュールは、呼び出された前記プログラムコンポーネントを、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するように構成されている、請求項１１に記載の装置。
【請求項１３】
前記インストールパッケージ解析モジュールは、ファイル解析サブモジュールとコンポーネント解析サブモジュールとを備え、
前記ファイル解析サブモジュールは、前記第２アプリケーションプログラムの前記インストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのコンフィギュレーションファイルを取得するように構成されており、
前記コンポーネント解析サブモジュールは、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得するように構成されており、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも１つを含む、請求項１１に記載の装置。
【請求項１４】
前記第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するように構成されたメッセージ登録モジュールをさらに備える、請求項１３に記載の装置。
【請求項１５】
前記コンポーネント特定サブモジュールは、第１特定サブモジュールを備え、
前記第１特定サブモジュールは、前記第２アプリケーションプログラムの起動中に、前記第１アプリケーションプログラムにより、前記第２アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するように構成されている、請求項１１に記載の装置。
【請求項１６】
前記コンポーネント特定サブモジュールは、メッセージ受信サブモジュールと第２特定サブモジュールとを備え、
前記メッセージ受信サブモジュールは、前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
前記第２特定サブモジュールは、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するように構成されている、請求項１４に記載の装置。
【請求項１７】
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するように構成された第１送信モジュール、
および／または
前記第２アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第１アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するように構成された第２送信モジュールをさらに備える、請求項１４に記載の装置。
【請求項１８】
ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、前記第１アプリケーションプログラムにより前記第２アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するように構成されたインストールパッケージ管理モジュールをさらに備える、請求項９〜１７のいずれかに記載の装置。
【請求項１９】
プロセッサと、
前記プロセッサにより実行可能な命令を格納するように構成されたメモリとを備え
前記プロセッサは、
実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信し、
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得し、
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するように構成されている、アプリケーションプログラムの実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２０１４年９月１６日に出願された中国特許出願第２０１４１０４７０３０７．８号に基づく優先権を主張し、当該出願に記載された全ての記載内容を援用する。
【０００２】
本開示は概して移動端末の分野に関し、より具体的には、アプリケーションプログラムの実行方法およびアプリケーションプログラムの実行装置に関する。
【背景技術】
【０００３】
アンドロイド（Ａｎｄｒｏｉｄ（登録商標））オペレーティングシステムは、各種のアプリケーションプログラムをインストールすることにより様々な機能を提供できるインテリジェントオペレーティングシステムである。
【０００４】
関連の分野では、開発および完成されたアプリケーションプログラムは「ａｐｋ」を接尾文字とするフォーマットのインストールパッケージに組み込まれ、そのインストールパッケージがユーザに公開される。ユーザがアプリケーションプログラムを使用しようとする場合には、アンドロイドオペレーティングシステムを実行中の移動端末に、インストールパッケージをインストールし、その後アプリケーションプログラムを実行する。しかしながら、アプリケーションプログラムのインストール操作は、高齢者など一部のユーザにとっては難易度が高い。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
インストールパッケージのインストールなしには、アプリケーションプログラムを使用できないとの課題を解決するために、本開示は、アプリケーションプログラムの実行方法およびアプリケーションプログラムの実行装置を提供する。その技術的解決手法を下記に示す。
【課題を解決するための手段】
【０００６】
本開示の第１の側面にしたがって提供されるアプリケーションプログラムの実行方法は、
実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するステップと、
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得するステップと、
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するステップとを含む。
【０００７】
あるいは、前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行する前記ステップは、
前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定するステップと、
前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第１アプリケーションプログラムにより起動するステップと、
前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するステップとを含む。
【０００８】
あるいは、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行する前記ステップは、
前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すステップと、
呼び出された前記プログラムコンポーネントを、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するステップとを含む。
【０００９】
あるいは、前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得する前記ステップは、
前記第２アプリケーションプログラムの前記インストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのコンフィギュレーションファイルを取得するステップと、
前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得するステップとを含み、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも１つを含む。
【００１０】
あるいは、前記方法は、
前記第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するステップをさらに含む。
【００１１】
あるいは、前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定する前記ステップは、
前記第２アプリケーションプログラムの起動中に、前記第１アプリケーションプログラムにより、前記第２アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するステップを含む。
【００１２】
あるいは、前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定する前記ステップは、
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するステップを含み、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するステップを含む。
【００１３】
あるいは、前記方法は、
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信し、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するステップ、
および／または
前記第２アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第１アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するステップをさらに含む。
【００１４】
あるいは、前記方法は、
ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、前記第１アプリケーションプログラムにより前記第２アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するステップをさらに含む。
【００１５】
本開示の第２の側面にしたがって提供されるアプリケーションプログラム実行装置は、
実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成された信号受信モジュールと、
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得するように構成されたインストールパッケージ解析モジュールと、
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するように構成されたプログラム実行モジュールとを備える。
【００１６】
あるいは、前記プログラム実行モジュールは、
コンポーネント特定サブモジュールと、サンドボックス起動サブモジュールと、コンポーネント実行サブモジュールとを備え、
前記コンポーネント特定サブモジュールは、前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定するように構成されており、
前記サンドボックス起動サブモジュールは、前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第１アプリケーションプログラムにより起動するように構成されており、
前記コンポーネント実行サブモジュールは、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するように構成されている。
【００１７】
あるいは、前記コンポーネント実行サブモジュールは、呼び出しサブモジュールと実行サブモジュールとを備え、
前記呼び出しサブモジュールは、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すように構成されており、
前記実行サブモジュールは、呼び出された前記プログラムコンポーネントを、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するように構成されている。
【００１８】
あるいは、前記インストールパッケージ解析モジュールは、ファイル解析サブモジュールとコンポーネント解析サブモジュールとを備え、
前記ファイル解析サブモジュールは、前記第２アプリケーションプログラムの前記インストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのコンフィギュレーションファイルを取得するように構成されており、
前記コンポーネント解析サブモジュールは、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得するように構成されており、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも１つを含む。
【００１９】
あるいは、前記装置は、
前記第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するように構成されたメッセージ登録モジュールをさらに備える。
【００２０】
あるいは、前記コンポーネント特定サブモジュールは、第１特定サブモジュールを備え、
前記第１特定サブモジュールは、前記第２アプリケーションプログラムの起動中に、前記第１アプリケーションプログラムにより、前記第２アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するように構成されている。
【００２１】
あるいは、前記コンポーネント特定サブモジュールは、メッセージ受信サブモジュールと第２特定サブモジュールとを備え、
前記メッセージ受信サブモジュールは、前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
前記第２特定サブモジュールは、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するように構成されている。
【００２２】
あるいは、前記装置は、
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するように構成された第１送信モジュール、
および／または
前記第２アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第１アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するように構成された第２送信モジュールをさらに備える。
【００２３】
あるいは、前記装置は、
ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、前記第１アプリケーションプログラムにより前記第２アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するように構成されたインストールパッケージ管理モジュールをさらに備える。
【００２４】
本開示の第３の側面にしたがって提供されるアプリケーションプログラム実行装置は、
プロセッサと、
前記プロセッサにより実行可能な命令を格納するように構成されたメモリとを備え
前記プロセッサは、
実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信し、
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得し、
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するように構成されている。
【発明の効果】
【００２５】
本開示の実施形態に係る技術的解決手法は、以下の効果を奏する。実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムのインストールパッケージのロードおよび解析を行うことにより、第２アプリケーションプログラムのプログラムコンポーネントが取得される。第２アプリケーションプログラムのプログラムコンポーネントは、第１アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第２アプリケーションプログラムをインストールすることなく、第１アプリケーションプログラムによって提供されるランタイム環境において第２アプリケーションプログラムを実行することが可能になるという効果を奏する。
【００２６】
上記の一般的な説明および下記の詳細な説明は、いずれも説明を目的とした例示的なものに過ぎず、特許請求の範囲に記載した本開示を限定するものではない。
【図面の簡単な説明】
【００２７】
本明細書に参照され、また、本明細書の一部を構成する添付の図面は、本開示と整合する実施形態を示し、以下の記述と共に本開示の要旨を説明するものである。
【図１】図１は、例示的な実施形態に係るアプリケーションプログラムの実行方法を示すフローチャートである。
【図２】図２は、例示的な他の実施形態に係るアプリケーションプログラムの実行方法を模式的に示す図である。
【図３】図３は、他の例示的な実施形態に係るアプリケーションプログラムの実行方法を示すフローチャートである。
【図４】図４は、他の例示的な実施形態に係るアプリケーションプログラムの実行方法のサブステップを示すフローチャートである。
【図５】図５は、例示的な実施形態に係るアプリケーションプログラムの実行装置を示すブロック図である。
【図６】図６は、他の例示的な実施形態に係るアプリケーションプログラムの実行装置を示すブロック図である。
【図７】図７は、例示的な実施形態に係る装置のブロック図である。
【００２８】
本発明の実施例は、上述の図面によって明確に示されているが、さらに詳細な内容については後述する。これらの図面および文字記載は、本開示の構想の範囲に対して何らかの制限を加えるためのものではなく、特定の実施例を参考にすることで、当業者に対して本開示の概念を説明するためのものである。
【発明を実施するための形態】
【００２９】
以下に、例示的な実施形態を詳細に説明する。以下の説明において参照する添付の図面は、実施形態の例を示す。以下の説明で言及する図面中で、複数の図面において用いられている同一の符号は、特に記載しない限り、同一あるいは類似の要素を示す。以下の例示的な実施形態の説明に示す具体化態様は、本開示の全ての具体化態様を示すものではなく、請求項に記載した本開示の側面にしたがった装置および方法の例示に過ぎない。
【００３０】
最初に、本開示で用いる用語を説明する。
【００３１】
アンドロイドオペレーティングシステムは、米国のＧｏｏｇｌｅ社がＬｉｎｕｘ（登録商標）をベースとして作製した、自由度の高いオープンソースのオペレーティングシステムであり、主に移動端末で使用される。移動端末は、例えば、電話、タブレットＰＣ、電子書籍リーダ、ＭＰ３（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＩＩ）プレーヤ、ＭＰ４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ａｕｄｉｏ  Ｌａｙｅｒ  ＩＶ）プレーヤ、ラップトップコンピュータなどである。
【００３２】
アプリケーションプログラムのインストールパッケージは、アプリケーションプログラムをオペレーティングシステムにインストールするように構成されたファイルであり、通常は、複数のファイルのセットからなる自己解凍形式の圧縮ファイルである。ファイルのセットには、アプリケーションプログラムの実行に必要なファイルがすべて含まれる。アンドロイドオペレーティングシステムにおいては、通常、アプリケーションプログラムのインストールパッケージは、ａｐｋフォーマットでパッケージ化されたファイルである。
【００３３】
尚、アプリケーションプログラムを、単にアプリケーションとも称する。アンドロイドオペレーティングシステムでは、１つのアプリケーションプログラムは、少なくとも１つのプログラムコンポーネントを含む。プログラムコンポーネントには、アクティビティ（Ａｃｔｉｖｉｔｙ）コンポーネントと、サービス（Ｓｅｒｖｉｃｅ）コンポーネントと、コンテンツプロバイダ（Ｃｏｎｔｅｎｔ  Ｐｒｏｖｉｄｅｒ）コンポーネントと、ブロードキャストレシーバ（Ｂｒｏａｄｃａｓｔ  Ｒｅｃｅｉｖｅｒ）コンポーネントとの４種がある。
【００３４】
アクティビティコンポーネントは、アンドロイドアプリケーションプログラムにおいて、ユーザとの対話および視覚的なユーザインターフェースの提供を行うように構成されたコンポーネントである。１つのアンドロイドアプリケーションプログラムが含み得るアクティビティコンポーネントの数は、ゼロであってもよいし、多数にのぼってもよい。
【００３５】
サービスコンポーネントは、バックグランドで動作するコンポーネントであり、アンドロイドアプリケーションプログラムにおいて視覚的なユーザインターフェースを提供することはない。１つのアンドロイドアプリケーションプログラムが含み得るサービスコンポーネントの数は、ゼロであってもよいし、多数にのぼってもよい。
【００３６】
コンテンツプロバイダコンポーネントは、他のアプリケーションに対して、あるいは、アンドロイドアプリケーションプログラムにおいて実行中のアプリケーションにおける他のコンポーネントに対して、データ（着信音、壁紙、電話帳など）を提供するように構成されたコンポーネントである。コンテンツプロバイダコンポーネントは、各種フォーマットでデータをパッケージ化することができ、他のアプリケーションや使用されるコンポーネントに対して、標準フォーマットのデータを提供できる。
【００３７】
ブロードキャストレシーバコンポーネントは、オペレーティングシステムからブロードキャスト送信されたメッセージの受信および応答を行うように構成されたコンポーネントである。ブロードキャストレシーバコンポーネントは、所望のメッセージ（あるいは、特定の形式の所定のメッセージ）を受信可能であり、その後、メッセージを処理、あるいは実行中のプログラムにおける他のコンポーネントへ送信できる。
【００３８】
インテントメッセージは、プログラムコンポーネント間での通信を行うように構成されたメッセージである。通信の対象となるプログラムコンポーネントは、互いに同一のアプリケーションに属するコンポーネントであってもよいし、別々のアプリケーションに属するコンポーネントであってもよい。インテントメッセージは、オペレーションの動作、その動作に必要なデータおよびアプリケーションプログラムにおける添付データを記述するように構成されている。アンドロイドオペレーティングシステムは、インテントメッセージにしたがって対応するプログラムコンポーネントを見つけ、呼び出されたそのプログラムコンポーネントにインテントメッセージを送信し、これによりプログラムコンポーネントの呼び出しを完了するように構成されている。インテントメッセージには、明示的インテントメッセージと暗黙的インテントメッセージとの二種類がある。
【００３９】
明示的インテントメッセージは、オブジェクトプログラムコンポーネントの名前を具体的に指定したインテントメッセージである。例えば、プログラムコンポーネントＡが、「ｃａｌｌ  １８６８８８８８８８８」とのインテントメッセージを送る必要があり、プログラムコンポーネントＢによる応答を希望する場合、プログラムコンポーネントＡは、プログラムコンポーネントＢをインテントメッセージにおけるオブジェクトプログラムコンポーネントとして特定する。アンドロイドオペレーティングシステムはインテントメッセージを受け取り、インテントメッセージをプログラムコンポーネントＢに処理のために渡す。
【００４０】
暗黙的インテントメッセージは、オブジェクトプログラムコンポーネントの名前を具体的に指定しないインテントメッセージである。例えば、プログラムコンポーネントＡが、「ｃａｌｌ  １８６８８８８８８８８」とのインテントメッセージを送る必要があるが、どのプログラムコンポーネントがそのインテントメッセージに応答すべきであるか不明な場合、プログラムコンポーネントＡは、インテントメッセージにおいてオブジェクトプログラムコンポーネントを特定しなくてもよい。アンドロイドオペレーティングシステムはインテントメッセージを受け取った後、各プログラムコンポーネントの監視対象としてインテントメッセージの予め登録されたタイプを検索する。プログラムコンポーネントＢが、通話に関するインテントメッセージを監視していることがわかれば、アンドロイドオペレーティングシステムは通話に関するインテントメッセージを、プログラムコンポーネントＢに処理のために渡す。または、通話に関するインテントメッセージをアンドロイドオペレーティングシステムがブロードキャスト送信し、通話に関するインテントメッセージを監視対象とするブロードキャストレシーバコンポーネントがこれを受信して処理する。
【００４１】
図１は、例示的な実施形態に係るアプリケーションプログラムの実行方法を示すフローチャートである。本実施形態は、アプリケーションプログラムの実行方法を移動端末に適用した一例である。アプリケーションプログラムの実行方法は、以下のステップを含む。
【００４２】
ステップＳ１０２では、実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信する。
【００４３】
ステップＳ１０４では、第１アプリケーションプログラムにより、第２アプリケーションプログラムのインストールパッケージをロードおよび解析して、第２アプリケーションプログラムのプログラムコンポーネントを取得する。
【００４４】
ステップＳ１０６では、第１アプリケーションプログラムによって提供されるランタイム環境において、第２アプリケーションプログラムのプログラムコンポーネントを実行する。
【００４５】
結論として、本実施形態に係るアプリケーションプログラムの実行方法によれば、実行中の第１アプリケーションプログラムにおいて第２アプリケーションプログラムのインストールパッケージをロードおよび解析することにより、第２アプリケーションプログラムのプログラムコンポーネントが取得され、第２アプリケーションプログラム内のプログラムコンポーネントは、第１アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第２アプリケーションプログラムをインストールすることなく、第１アプリケーションプログラムによって提供されるランタイム環境において第２アプリケーションプログラムを実行することが可能になるという効果を奏する。
【００４６】
本開示の理解をさらに深めるため、図２を参照する。図２は、例示的な実施形態におけるアプリケーションプログラムの実行方法を模式的に示す。第１アプリケーションプログラム２２０は移動端末において実行中であり、第２アプリケーションプログラム２４０のインストールパッケージのロードおよび解析を行って、第２アプリケーションプログラム２４０のプログラムコンポーネントを取得するように構成されている。第２アプリケーションプログラム２４０は、１または複数のプログラムコンポーネントを含む。各プログラムコンポーネントは、アクティビティコンポーネント２４２と、サービスコンポーネント２４４と、コンテンツプロバイダコンポーネント２４６と、ブロードキャストレシーバコンポーネント２４８とのいずれかであってもよい。第１アプリケーションプログラム２２０は、第２アプリケーションプログラム２４０に対してサンドボックス環境を提供する。サンドボックス環境は、第２アプリケーションプログラム２４０のプログラムコンポーネントの実行に必要なコンテキスト環境を提供する。第２アプリケーションプログラム２４０は、サンドボックス環境において実行可能である。
【００４７】
第２アプリケーションプログラム２４０の実行処理では、第１アプリケーションプログラム２２０は、第２アプリケーションプログラム２４０内のプログラムコンポーネントを、第２アプリケーションプログラム２４０の実行ロジックにしたがって実行してもよい。例えば、第２アプリケーションプログラム２４０が起動されると、第１アプリケーションプログラム２２０は、第２アプリケーションプログラム２４０のデフォルト実行コンポーネントを実行する。このデフォルト実行コンポーネントは、通常、第２アプリケーションプログラム２４０のメインインターフェースに相当するアクティビティコンポーネントである。加えて、例えば、第２アプリケーションプログラム２４０の対話型ユーザインターフェース上の特定のボタンが押されると、第１アプリケーションプログラム２２０は第２アプリケーションプログラム２４０の他のアクティビティコンポーネントを実行する。これにより、第２アプリケーションプログラム２４０の次の対話型ユーザインターフェースを表示させる。
【００４８】
加えて、アンドロイドオペレーティングシステムあるいは他のアプリケーションプログラム（不図示）は、第２アプリケーションプログラムが監視するインテントメッセージを、第１アプリケーションプログラム２２０に対して送信することができる。第１アプリケーションプログラム２２０はインテントメッセージを受信すると、第２アプリケーションプログラム２４０内の対応するプログラムコンポーネントを実行し、インテントメッセージをそのプログラムコンポーネントに送信する。また、アンドロイドオペレーティングシステムあるいは他のアプリケーションプログラムも、第１アプリケーションプログラム２２０により、第２アプリケーションプログラム２４０内のコンテンツプロバイダコンポーネント２４６を呼び出すことができる。つまり、アンドロイドオペレーティングシステムあるいは他のアプリケーションプログラムは、第２アプリケーションプログラム２４０内のコンテンツプロバイダコンポーネント２４６が提供するデータを使用することができる。
【００４９】
第２アプリケーションプログラム２４０は、第１アプリケーションプログラム２２０により、アンドロイドオペレーティングシステムあるいは他のアプリケーションプログラムに対してインテントメッセージを送信することができる。第１アプリケーションプログラム２２０は、インテントメッセージを受信すると、そのインテントメッセージをアンドロイドオペレーティングシステムに送信する。これにより、アンドロイドオペレーティングシステムはインテントメッセージを直接に処理したり、他のアプリケーションプログラムに処理のために送信したりできる。また、第２アプリケーションプログラム２４０は、第１アプリケーションプログラム２２０により、他のアプリケーションプログラム内のコンテンツプロバイダコンポーネントの呼び出しを行うこともできる。すなわち、第２アプリケーションプログラム２４０も、他のアプリケーションプログラム内のコンテンツプロバイダコンポーネントが提供するデータを使用することができる。
【００５０】
尚、第２アプリケーションプログラム２４０がアンドロイドオペレーティングシステムのアプリケーションプログラム規格に準拠し、第２アプリケーションプログラム２４０のインストールパッケージがアンドロイドオペレーティングシステムのインストールパッケージの規格に準拠している限り、第２アプリケーションプログラム２４０が第１アプリケーションプログラム２２０と特定の関係にある必要はなく、また、第２アプリケーションプログラム２４０と第１アプリケーションプログラム２２０との間において特定のプロトコルや特定のインターフェースを実装する必要もない。
【００５１】
図３は、他の例示的な実施形態に係るアプリケーションプログラムの実行方法を示すフローチャートである。本実施形態は、アプリケーションプログラムの実行方法を移動端末に適用した一例である。移動端末は、アンドロイドオペレーティングシステムを実行中の移動端末であってもよい。アプリケーションプログラムの実行方法は、以下のステップを含む。
【００５２】
ステップＳ３０１では、実行中の第１アプリケーションプログラムが、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信する。
【００５３】
第１アプリケーションプログラムは、移動端末にインストールされ、実行中のアプリケーションプログラムである。第１アプリケーションプログラムは、包括的アプリケーションプログラム、ゲーム用アプリケーションプログラム、管理アプリケーションプログラム、システムアプリケーションプログラムなどとして構成されてもよい。
【００５４】
第１アプリケーションプログラムは、第２アプリケーションプログラムのインストールパッケージに移動端末内でアクセス可能である。第２アプリケーションプログラムが移動端末にインストールされている必要はない。つまり、第１アプリケーションプログラムによって提供されるランタイム環境において、第２アプリケーションプログラムを実行可能である。
【００５５】
移動端末は、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を、実行中の第１アプリケーションプログラムにおいて受信する。トリガ信号は、タッチスクリーンのクリック信号であってもよい。例えば、第１アプリケーションプログラムのユーザインターフェース内に、第２アプリケーションプログラムを表すアイコンを表示してもよい。タッチスクリーンが受けたクリック信号により第２アプリケーションプログラムを表すアイコンがクリックされると、移動端末は、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信する。
【００５６】
ステップＳ３０２では、第１アプリケーションプログラムにより、第２アプリケーションプログラムのインストールパッケージをロードおよび解析して、第２アプリケーションプログラムのコンフィギュレーションファイルを取得する。
【００５７】
コンフィギュレーションファイルは、各第２アプリケーションプログラムのインストールパッケージに含まれる記述ファイルである。通常、コンフィギュレーションファイルは、第２アプリケーションプログラムのインストールパッケージ内のルートディレクトリに格納された「ＡｎｄｒｏｉｄＭａｎｉｆｅｓｔ．ｘｍｌ」ファイルである。コンフィギュレーションファイルは、第２アプリケーションプログラムにおける関連アプリケーション情報を提供してもよい。
【００５８】
移動端末は、先ず、第１アプリケーションプログラムにより、第２アプリケーションプログラムのインストールパッケージをロードし、第２アプリケーションプログラムのインストールパッケージを解析し、解析したファイルから第２アプリケーションプログラムのコンフィギュレーションファイルを取得する。
【００５９】
ステップＳ３０３では、第１アプリケーションプログラムによりコンフィグレーションファイルにしたがって、第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得する。
【００６０】
コンフィギュレーションファイルは、第２アプリケーションプログラムに含まれるすべてのプログラムコンポーネントを宣言する。プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも１つを含む。
【００６１】
移動端末は、第１アプリケーションプログラムによりコンフィギュレーションファイルを解析して、第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得する。
【００６２】
ステップＳ３０４では、第１アプリケーションプログラムにより、コンフィギュレーションファイルにしたがって、第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプをオペレーションシステムに登録する。
【００６３】
コンフィギュレーションファイルは、第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプも宣言してもよい。例えば、アクティビティコンポーネントＡは、タイプＡのインテントメッセージを監視し、サービスコンポーネントＢは、タイプＢのインテントメッセージを監視する。
【００６４】
移動端末は、第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、第１アプリケーションプログラムにより、コンフィギュレーションファイルにしたがってオペレーティングシステムに登録する。
【００６５】
尚、第２アプリケーションプログラムのプログラムコンポーネントが監視するインテントメッセージのタイプを第１アプリケーションプログラムが登録すると、第２アプリケーションプログラム内のプログラムコンポーネントの代わりに、第１アプリケーションプログラム内のプログラムコンポーネントが、アンドロイドオペレーティングシステムに登録されたレシーバになる。例えば、第２アプリケーションプログラム内のアクティビティコンポーネントＡがタイプＡのインテントメッセージを監視する場合、第１アプリケーションプログラムはタイプＡのインテントメッセージをアンドロイドオペレーティングシステムに登録する。ただし、登録されたタイプＡのインテントメッセージのレシーバは、第１アプリケーションプログラム内のプログラムコンポーネントである。
【００６６】
ステップＳ３０５では、第１アプリケーションプログラムによって提供されるランタイム環境において、第２アプリケーションプログラムのプログラムコンポーネントを実行する。
【００６７】
移動端末は、第１アプリケーションプログラムによって提供されるランタイム環境において、第２アプリケーションプログラム内のプログラムコンポーネントを実行する。第２アプリケーションプログラムのすべてのプログラムコンポーネントを同時に実行する必要はなく、必要に応じて全部のプログラムコンポーネントの一部を実行すればよい。ステップＳ３０５は、図４に示す以下のサブステップを含む。
【００６８】
ステップＳ３０５ａでは、移動端末が、第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを第１アプリケーションプログラムにより特定する。
【００６９】
ステップＳ３０５ｂでは、移動端末が、プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを第１アプリケーションプログラムにより起動する。
【００７０】
ステップＳ３０５ｃでは、移動端末が、プログラムコンポーネントを、第１アプリケーションプログラムのサンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて実行する。
【００７１】
ステップＳ３０５ａでは、主に以下の二つの状況がある。
【００７２】
第１の状況：第２アプリケーションプログラムが起動済みの場合、移動端末は、第２アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを第１アプリケーションプログラムにより受信し、そのデフォルト実行コンポーネントを実行対象のプログラムコンポーネントとして特定する。
【００７３】
通常、デフォルト実行コンポーネントは、第２アプリケーションプログラムのメインインターフェースに相当するアクティビティコンポーネントである。第２アプリケーションプログラムの起動時には、第２アプリケーションプログラムは、デフォルト実行コンポーネントを示す要求を自身の実行ロジックにしたがって第１アプリケーションプログラムにフィードバックする。これを受けて、第１アプリケーションプログラムは、そのデフォルト実行コンポーネントを、第２アプリケーションプログラムにおいて、現在実行すべきプログラムコンポーネントとして特定する。
【００７４】
第２の状況：移動端末は、オペレーティングシステムから送信されたインテントメッセージを第１アプリケーションプログラムにより受信する。インテントメッセージは、インテントメッセージの登録されたタイプに合致する。第２アプリケーションプログラムにおいて、インテントメッセージを監視するように構成されたプログラムコンポーネントが未起動である場合、インテントメッセージを監視するように構成されたプログラムコンポーネントを実行対象のプログラムとして特定する。
【００７５】
第２アプリケーションプログラムの実行処理において、第２アプリケーションプログラムのプログラムコンポーネントや、アンドロイドオペレーティングシステムのシステムアプリケーションプログラムや、他のアプリケーションプログラムのプログラムコンポーネントがインテントメッセージをアンドロイドオペレーティングシステムに送信する可能性がある。インテントメッセージが第２アプリケーションプログラムのプログラムコンポーネントに監視されるインテントメッセージであれば、すなわち、インテントメッセージがステップＳ３０４において登録されたインテントメッセージのタイプに合致すれば、アンドロイドオペレーティングシステムはインテントメッセージを第１アプリケーションプログラムに送信する。この時、第２アプリケーションプログラムにおいて、インテントメッセージを監視するように構成されたプログラムコンポーネントが未起動である場合、第１アプリケーションプログラムは、インテントメッセージを監視するように構成された第２アプリケーションプログラム内のプログラムコンポーネントを実行対象のプログラムコンポーネントとして特定する。
【００７６】
ステップＳ３０５ｂに関し、第２アプリケーションプログラム内のいずれかのプログラムコンポーネントを実行する必要がある場合には、移動端末は、先ず、第１アプリケーションプログラム内の対応するサンドボックスプログラムコンポーネントを起動する。サンドボックスプログラムコンポーネントは、第２アプリケーションプログラムのプログラムコンポーネントの実行に必要なランタイムコンテキストを提供するように構成されている。
【００７７】
例えば、第２アプリケーションプログラムのアクティビティコンポーネントＡを実行する必要がある場合は、第１アプリケーションプログラム内のサンドボックスアクティビティコンポーネントＡ（ＢｏｘＡｃｔｉｖｉｔｙ  Ａ）が起動される。加えて、例えば、第２アプリケーションプログラムのサービスコンポーネントＢを実行する必要がある場合は、第１アプリケーションプログラム内のサンドボックスサービスコンポーネントＢ（ＢｏｘＳｅｒｖｅｒ  Ｂ）が起動される。さらに、第２アプリケーションプログラムのブロードキャストレシーバコンポーネントＣを実行する必要がある場合は、第１アプリケーションプログラム内のサンドボックスブロードキャストレシーバコンポーネントＣ（ＢｏｘＢｒｏａｄｃａｓｔ  Ｒｅｃｅｉｖｅｒ  Ｃ）が起動される。
【００７８】
言い換えると、第２アプリケーションプログラムのプログラムコンポーネントが実行される場合には、対応するサンドボックスプログラムコンポーネントが第１アプリケーションプログラムに含まれている。
【００７９】
ステップＳ３０５ｃは、以下のサブステップを含む。
【００８０】
１．移動端末は、第１アプリケーションプログラム内のサンドボックスプログラムコンポーネントによりリフレクション機構を用いて、第２アプリケーションプログラムのプログラムコンポーネントの呼び出しを行う。
【００８１】
リフレクション機構は、Ｊａｖａ（登録商標）プログラミングの分野で用いられる機構である。リフレクション機構を用いれば、第２アプリケーションプログラムのプログラムコンポーネントを把握していなくても、第２アプリケーションプログラム内の特定クラスのプログラムコンポーネントを第１アプリケーションプログラムにより呼び出すことが可能である。
【００８２】
２．移動端末は、呼び出されたプログラムコンポーネントを、第１アプリケーションプログラムのサンドボックスプログラムコンポーネントが提供するランタイムコンテキストにおいて実行する。
【００８３】
ステップＳ３０６では、第１アプリケーションプログラムによって、第２アプリケーションプログラムのためのインテントメッセージを受信し、送信する。
【００８４】
移動端末は、第２アプリケーションプログラムのためのインテントメッセージを、第１アプリケーションプログラムにより受信および／または送信する。
【００８５】
受信プロセス：移動端末は、アンドロイドオペレーティングシステムから送信されたインテントメッセージを、第１アプリケーションプログラムにより受信する。インテントメッセージは、インテントメッセージの登録されたタイプに合致する。第２アプリケーションプログラムにおいて、インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みであれば、移動端末は、インテントメッセージを第２アプリケーションプログラムのプログラムコンポーネントに処理のために送信する。
【００８６】
例えば、第１アプリケーションプログラムは、アンドロイドオペレーションシステムから送信されたインテントメッセージを受信する。受信したインテントメッセージが、第２アプリケーションプログラムのブロードキャストレシーバコンポーネントＤの監視対象であれば、第１アプリケーションプログラム内の、ブロードキャストレシーバコンポーネントＤに対応するサンドボックスブロードキャストレシーバコンポーネントが、ブロードキャストレシーバコンポーネントＤのｏｎＲｅｃｅｉｖｅメソッドを呼び出す。これによりブロードキャストレシーバコンポーネントＤがインテントメッセージを処理できる。
【００８７】
送信プロセス：移動端末は、第２アプリケーションプログラムのあるプログラムコンポーネントにより送信されるべきインテントメッセージを、第１アプリケーションプログラムにより取得し、そのインテントメッセージをアンドロイドオペレーティングシステムに送信する。
【００８８】
例えば、第２アプリケーションプログラムのアクティビティコンポーネントＥがインテントメッセージを送信する必要がある場合、アクティビティコンポーネントＥは、先ず、第１アプリケーションプログラム内の、アクティビティコンポーネントＥに対応するサンドボックスアクティビティコンポーネントにそのインテントメッセージを送信する。次に、サンドボックスアクティビティコンポーネントがアンドロイドオペレーティングシステムのＳｅｎｄＢｒｏａｄｃａｓｔメソッドをインターセプトし、そのＳｅｎｄＢｒｏａｄｃａｓｔメソッドによりインテントメッセージをアンドロイドオペレーティングシステムに送信する。
【００８９】
上述したプロセスは、第１アプリケーションプログラムにおいて第２アプリケーションプログラムを実行するプロセスである。ここで、第２アプリケーションプログラムは一般参照を含むので、他のアプリケーションプログラムを参照する場合がある。
【００９０】
ステップＳ３０７では、ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、第１アプリケーションプログラムにより第２アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行する。
【００９１】
移動端末は、第１アプリケーションプログラムにより、複数の第２アプリケーションプログラムを管理する。移動端末は、各々の第２アプリケーションプログラムの異なるバージョンのインストールパッケージに対して、ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、第１アプリケーションプログラムにより管理する。
【００９２】
例えば、第２アプリケーションプログラムに新バージョンのインストールパッケージがあり、新バージョンのインストールパッケージはより多くの機能を含むとする。第１アプリケーションプログラムは、第２アプリケーションプログラムのインストールパッケージの新バージョンをダウンロードし、第２アプリケーションプログラムを最新バージョンに自動的に更新でき、ユーザの介在を必要としない。すなわち、ユーザが意識することなく第２アプリケーションプログラムの更新が行える。
【００９３】
結論として、本実施形態に係るアプリケーションプログラムの実行方法によれば、実行中の第１アプリケーションプログラムにおいて第２アプリケーションプログラムのロードと解析を行うことにより、第２アプリケーションプログラムのプログラムコンポーネントが取得され、第２アプリケーションプログラム内のプログラムコンポーネントは、第１アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第２アプリケーションプログラムをインストールすることなく、第１アプリケーションプログラムによって提供されるランタイム環境において第２アプリケーションプログラムを実行することが可能になるという効果を奏する。
【００９４】
本実施形態に係るアプリケーションプログラムの実行方法によれば、第１アプリケーションプログラム内のサンドボックスプログラムコンポーネントによって、第２アプリケーションプログラムの対応するプログラムコンポーネントのランタイムコンテキストが提供される。これにより、第１アプリケーションプログラムによって提供されるランタイムコンテキストで、第２アプリケーションプログラムを実行することが可能である。このためには、第２アプリケーションプログラムが、アンドロイドオペレーティングシステムのアプリケーション規格に準拠したプログラムでありさえすればよい。第１アプリケーションプログラムと第２アプリケーションプログラムとが特定の関係にある必要はなく、また、第２アプリケーションプログラムと第１アプリケーションプログラムとの間において特定のプロトコルや特定のインターフェースを実装する必要もない。
【００９５】
本実施形態に係るアプリケーションプログラムの実行方法によれば、第２アプリケーションプログラムの異なるバージョンのインストールパッケージに対する管理オペレーションを、第１アプリケーションプログラムにより行う。これにより、第２アプリケーションプログラムの動的な更新に都合がよく、ユーザの介在を必要としない。よって、操作や学習に要するユーザの手間を省くことができる。
【００９６】
ある実際の実施形態では、ユーザＡは高齢者であり、アンドロイドオペレーティングシステムを搭載したスマートフォンの使用について多く学習する必要があったり、それでもなお、スマートフォンの操作ができなかったりする。上述した実施形態に係るアプリケーションプログラムの実行方法によれば、第２アプリケーションプログラムのインターフェースの追加や削除は、スマートフォン上で第１アプリケーションプログラムにより行える。ユーザＡに求められるのは、第１アプリケーションプログラムのユーザインターフェース上で第２アプリケーションプログラムを追加したり、削除したりすることのみである。第２アプリケーションプログラムを使用する必要がある場合は、第１アプリケーションプログラム上で第２アプリケーションプログラムを直接に開くことができ、第２アプリケーションプログラムをインストールする必要はない。加えて、第１アプリケーションプログラムは、第２アプリケーションプログラムのインストールパッケージをバックグランドで自動的に最新バージョンに更新する。処理全体を通じてユーザＡが習得する必要があるのは、第２アプリケーションプログラムの追加の仕方、削除の仕方、開き方のみである。よって、ユーザＡが学習に要する労力が軽減され、第２アプリケーションプログラムのインストールや更新などの複雑な操作を回避できる。よって、ユーザ操作を大幅に簡略化でき、第２アプリケーションプログラムの使用効率を向上させることができる。
【００９７】
本開示の実施形態に係る装置を以下に示す。この装置は、本開示の実施形態に係る方法を実行するのに用いることができる。本開示の装置の実施形態において記載されていない詳細については、本開示の方法の実施形態を参照できる。
【００９８】
図５は、例示的な実施形態に係るアプリケーションプログラムの実行装置のブロック図である。アプリケーションプログラムの実行装置は、移動端末の全体あるいは一部としてソフトウェアで構成してもよいし、ハードウェアで構成してもよいし、あるいはその組み合わせで構成してもよい。また、移動端末はアンドロイドオペレーティングシステムを実行する移動端末であってもよい。アプリケーションプログラムの実行装置は、信号受信モジュール５２０と、インストールパッケージ解析モジュール５４０と、プログラム実行モジュール５６０とを含む。
【００９９】
信号受信モジュール５２０は、実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成されている。
【０１００】
インストールパッケージ解析モジュール５４０は、第１アプリケーションプログラムによって、第２アプリケーションプログラムのインストールパッケージをロードおよび解析して、第２アプリケーションプログラムのプログラムコンポーネントを取得するように構成されている。
【０１０１】
プログラム実行モジュール５６０は、第１アプリケーションプログラムによって提供されるランタイム環境において、第２アプリケーションプログラムのプログラムコンポーネントを実行するように構成されている。
【０１０２】
結論として、本実施形態に係るアプリケーションプログラムの実行装置によれば、実行中の第１アプリケーションプログラムにおいて第２アプリケーションプログラムのインストールパッケージのロードと解析を行うことにより、第２アプリケーションプログラムのプログラムコンポーネントが取得され、第２アプリケーションプログラムのプログラムコンポーネントは、第１アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第２アプリケーションプログラムをインストールすることなく、第１アプリケーションプログラムによって提供されるランタイム環境において第２アプリケーションプログラムを実行することが可能になるという効果を奏する。
【０１０３】
図６は、他の例示的な実施形態に係るアプリケーションプログラムの実行装置のブロック図である。アプリケーションプログラムの実行装置は、移動端末の全体あるいは一部としてソフトウェアで構成してもよいし、ハードウェアで構成してもよいし、あるいはその組み合わせで構成してもよい。また、移動端末はアンドロイドオペレーティングシステムを実行する移動端末であってもよい。アプリケーションプログラムの実行装置は、信号受信モジュール５２０と、インストールパッケージ解析モジュール５４０と、およびプログラム実行モジュール５６０とを有する。
【０１０４】
信号受信モジュール５２０は、実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成されている。
【０１０５】
インストールパッケージ解析モジュール５４０は、第２アプリケーションプログラムのインストールパッケージのロードと解析を第１アプリケーションプログラムにより行って、第２アプリケーションプログラムのプログラムコンポーネントを取得するように構成されている。
【０１０６】
プログラム実行モジュール５６０は、第１アプリケーションプログラムによって提供されるランタイム環境において、第２アプリケーションプログラムのプログラムコンポーネントを実行するように構成されている。
【０１０７】
あるいは、プログラム実行モジュール５６０は、コンポーネント特定サブモジュール５６２と、サンドボックス起動サブモジュール５６４と、コンポーネント実行サブモジュール５６６とを含む。
【０１０８】
コンポーネント特定サブモジュール５６２は、第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、第１アプリケーションプログラムにより特定するように構成されている。
【０１０９】
サンドボックス起動サブモジュール５６４は、そのプログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを第１アプリケーションプログラムにより起動するように構成されている。
【０１１０】
コンポーネント実行サブモジュール５６６は、第１アプリケーションプログラム内のサンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、プログラムコンポーネントを実行するように構成されている。
【０１１１】
あるいは、コンポーネント実行サブモジュール５６２は、呼び出しサブモジュールと実行サブモジュールとを含む。
【０１１２】
呼び出しサブモジュールは、第１アプリケーションプログラム内のサンドボックスプログラムコンポーネントによりリフレクション機構を用いてプログラムコンポーネントを呼び出すように構成されている。
【０１１３】
実行サブモジュールは、第１アプリケーションプログラム内のサンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、プログラムコンポーネントを実行するように構成されている。
【０１１４】
あるいは、インストールパッケージ解析モジュール５４０は、ファイル解析サブモジュール５４２と、コンポーネント解析サブモジュール５４４とを含む。
【０１１５】
ファイル解析サブモジュール５４２は、第２アプリケーションプログラムのインストールパッケージを第１アプリケーションプログラムによりロードおよび解析して、第２アプリケーションプログラムのコンフィギュレーションファイルを取得するように構成されている。
【０１１６】
コンポーネント解析サブモジュール５４４は、第１アプリケーションプログラムによりコンフィギュレーションファイルにしたがって、第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得するように構成されている。取得されるプログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも１つを含む。
【０１１７】
あるいは、本装置は、メッセージ登録モジュール５３０をさらに含む。メッセージ登録モジュール５３０は、第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、コンフィギュレーションファイルにしたがって第１アプリケーションプログラムによりオペレーションシステムに登録するように構成されている。
【０１１８】
あるいは、コンポーネント特定サブモジュール５６２は、第１特定サブモジュールと、メッセージ受信サブモジュールと、第２特定サブモジュールとを含む。
【０１１９】
第１特定サブモジュールは、第２アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを第１アプリケーションプログラムにより受信し、デフォルト実行コンポーネントを、第２アプリケーションプログラムの起動時に実行対象となるプログラムコンポーネントとして特定するように構成されている。
【０１２０】
メッセージ受信サブモジュールは、オペレーティングシステムから送信されたインテントメッセージを第１アプリケーションプログラムにより受信するように構成されており、インテントメッセージは、登録されたインテントメッセージのタイプに合致する。
【０１２１】
第２特定サブモジュールは、第２アプリケーションプログラムにおいて、インテントメッセージを監視するように構成されたプログラムコンポーネントが未起動である場合、インテントメッセージを監視するように構成されたプログラムコンポーネントを実行対象のプログラムとして特定するように構成されている。
【０１２２】
あるいは、本装置は、さらに以下を含む。
第１送信モジュール５５２：オペレーティングシステムから送信されたインテントメッセージを第１アプリケーションプログラムにより受信するように構成されている。インテントメッセージは、登録されたインテントメッセージのタイプに合致する。また、インテントメッセージを監視するように構成されたプログラムコンポーネントが第２アプリケーションプログラムにおいて起動済みであれば、インテントメッセージを処理のためにプログラムコンポーネントに送信するように構成されている。
および／または
第２送信モジュール５５４：第２アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを第１アプリケーションプログラムにより取得し、そのインテントメッセージをオペレーティングシステムに送信するように構成されている。
【０１２３】
あるいは、本装置は、さらに以下を含む。
インストールパッケージ管理モジュール５７０：第２アプリケーションプログラムのインストールパッケージの異なるバージョンに対して、ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、第１アプリケーションプログラムにより行うように構成されている。
【０１２４】
結論として、本実施形態に係るアプリケーションプログラムの実行装置によれば、実行中の第１アプリケーションプログラムにおいて第２アプリケーションプログラムのインストールパッケージのロードと解析を行うことにより、第２アプリケーションプログラムのプログラムコンポーネントが取得され、第２アプリケーションプログラムのプログラムコンポーネントは、第１アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第２アプリケーションプログラムをインストールすることなく、第１アプリケーションプログラムによって提供されるランタイム環境において第２アプリケーションプログラムを実行することが可能になるという効果を奏する。
【０１２５】
本実施形態に係るアプリケーションプログラムの実行装置によれば、第１アプリケーションプログラム内のサンドボックスプログラムコンポーネントによって、第２アプリケーションプログラムの対応するプログラムコンポーネントの実行ランタイムコンテキストが提供される。これにより、第１アプリケーションプログラムによって提供されるランタイムコンテキストで、第２アプリケーションプログラムを実行することが可能である。このためには、第２アプリケーションプログラムが、アンドロイドオペレーティングシステムのアプリケーション規格に準拠したプログラムでありさえすればよい。第１アプリケーションプログラムと第２アプリケーションプログラムとが特定の関係にある必要はなく、また、第２アプリケーションプログラムと第１アプリケーションプログラムとの間において特定のプロトコルや特定のインターフェースを実装する必要もない。
【０１２６】
本実施形態に係るアプリケーションプログラムの実行装置によれば、第２アプリケーションプログラムの複数バージョンのインストールパッケージに対する管理オペレーションを、第１アプリケーションプログラムにより行う。これにより、第２アプリケーションプログラムの動的な更新に都合がよく、ユーザの介在を必要としない。よって、操作や学習に要するユーザの手間を省くことができる。
【０１２７】
上述の実施形態に係る装置については、これら装置に含まれる個々のモジュールの動作の詳細については、アプリケーションプログラムの実行方法の実施形態において説明した。それら詳細については、本実施形態では記述しない。
【０１２８】
図７は、例示的な実施形態に係るアプリケーションプログラムの実行装置７００のブロック図である。装置７００は、例えば、携帯電話、テレビ、コンピュータ、デジタル放送端末、メッセージ通信機器、ゲーム機、タブレット、医療機器、運動機器、携帯情報端末、などであり得る。
【０１２９】
図７を参照し、装置７００は、プロセッサ部７０２と、メモリ７０４と、電源部７０６と、マルチメディア部７０８と、音声部７１０と、入出力（Ｉ／Ｏ）インターフェース７１２と、センサ部７１４と、通信部７１６との少なくとも１つを含んでもよい。
【０１３０】
プロセッサ部７０２は、通常、装置７００の動作全体を制御する。例えば、表示、通話、データ通信、カメラ動作、記録動作に関する動作を制御する。プロセッサ部７０２は、１または複数のプロセッサ７２０を含んでもよく、命令を実行して、上述の方法におけるステップの全てまたは一部を行う。加えて、プロセッサ部７０２は、プロセッサ部７０２と他の部との間の連携を容易にする１つ以上のモジュールを含んでもよい。例えば、プロセッサ部７０２は、マルチメディア部７０８とプロセッサ部７０２との間の連携を容易にするマルチメディアモジュールを備えてもよい。
【０１３１】
メモリ７０４は各種データを格納して、装置７００の動作をサポートするように構成されている。データは、例えば、装置７００上で実行されるアプリケーションや方法に関する命令、連絡先データ、電話帳データ、メッセージ、写真、動画などである。メモリ７０４は、揮発性、不揮発性、あるいはその組み合わせなど、どの種類のメモリ装置を使っても実装できる。例えば、スタティックＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気メモリ、フラッシュメモリ、磁気ディスク、光ディスクなどである。
【０１３２】
電源部７０６は、装置７００の各部に電力を供給する。電源部７０６は、電力管理システムと、１つまたは複数の電源とを有し、他にも、装置７００での電力の生成、管理、配電に関連する構成要素も有し得る。
【０１３３】
マルチメディア部７０８は、装置７００からユーザへの出力インターフェースとなるスクリーンを有する。いくつかの実施形態では、スクリーンは液晶ディスプレイ（ＬＣＤ）とタッチパネル（ＴＰ）とを含み得る。スクリーンがタッチパネルを含む場合、スクリーンは、ユーザからの入力の信号を受け付けるタッチスクリーンとして実装され得る。タッチパネルは１つ以上のタッチセンサを含み、タッチ操作、スワイプ操作、タッチパネル上でのジェスチャ操作などを検知し得る。タッチセンサは、タッチ操作あるいはスワイプ操作の範囲を検知し、加えて、そのタッチ操作あるいはスワイプ操作の動作時間や接触圧力も検出してもよい。いくつかの実施形態では、マルチメディア部７０８は、前面カメラと背面カメラのいずれか、あるいは両方を含む。前面カメラおよび背面カメラは、装置７００が撮影モードあるいは動画モードなどの動作モードで稼働している場合に、外部からマルチメディアデータを受信できる。前面カメラおよび背面カメラは、それぞれ固定光学レンズ系であってもよいし、フォーカス機能やズーム機能を備えてもよい。
【０１３４】
音声部７１０は、音声信号の出力および／または入力を行うように構成されている。例えば、音声部７１０はマイク（ＭＩＣ）を含む。マイクは、装置７００が、通話モード、記録モード、あるいは音声認識モードなどの動作モードで稼働している場合に外部からの音声信号を受信するように構成されている。受信した音声信号はさらにメモリ７０４に保存されたり、通信部７１６を介して送信されたりしてもよい。いくつかの実施形態では、音声部７１０は、さらに、音声信号を出力するスピーカーを有する。
【０１３５】
Ｉ／Ｏインターフェース７１２は、プロセッサ部７０２と、キーボード、クリックホイール、ボタンなどの周辺機器インターフェースモジュールとの間のインターフェースを提供する。ボタンには、ホームボタン、音量ボタン、スタートボタン、ロックボタンなどがあり得るが、これに限定されない。
【０１３６】
センサ部７１４は、１または複数のセンサを含み、装置７００の各側面についての状況分析を提供する。センサ部７１４は、例えば、装置７００の開閉状態を検知したり、ディスプレイとキーボードなど、装置７００の部材間の相対的な位置関係を検知したり、装置７００の位置あるいは装置７００の部材の位置の変化を検知したり、装置７００に対するユーザ接触の有無を検出したり、装置７００の向きあるいは加速度／減速度を検知したり、装置７００の温度変化を検知したりできる。センサ部７１４は、物理的には接触していないが近くに位置する物体の存在を検出するように構成された近接センサを含んでもよい。センサ部７１４は、また、画像アプリケーションに用いるＣＭＯＳイメージセンサやＣＣＤイメージセンサなどの光センサを有していてもよい。いくつかの実施形態では、センサ部７１４は、また、加速度センサ、ジャイロセンサ、磁気センサ、圧力センサ、あるいは、温度センサなどを有してもよい。
【０１３７】
通信部７１６は、装置７００と他の装置との間の、有線あるいは無線の通信を容易にするように構成されている。装置７００は、ＷｉＦｉ、２Ｇ、３Ｇなどの通信規格あるいはその組み合わせに基づいて、無線ネットワークにアクセスしてもよい。一の例示的な実施形態では、通信部７１６は、放送信号や放送に関連する情報を、外部の放送管理システムから放送チャネル経由で受信する。一の例示的な実施形態では、通信部７１６は、近距離通信を容易にする近距離無線通信（ＮＦＣ）モジュールをさらに含む。ＮＦＣモジュールの実装には、例えば、ＲＦＩＤ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）技術、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）技術、ＵＷＢ（Ｕｌｔｒａ−ｗｉｄｅｂａｎｄ）技術、Ｂｌｕｅｔｏｏｔｈ（登録商標）（ＢＴ）技術、その他の通信技術を用いてもよい。
【０１３８】
ある例示的な実施形態では、上述の方法の実行する装置７００の実装には、１つ以上の特定用途向け集積回路（ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔｓ））、デジタル信号プロセッサ（ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎｇａｌ  Ｐｒｏｃｅｓｓｏｒｓ））、デジタル信号処理装置（ＤＳＰＤ（Ｄｉｇｉｔａｌ  Ｓｉｇｎｇａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｄｅｖｉｃｅｓ））、プログラム可能な論理素子（ＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅｓ））、フィールドプログラマブルゲートアレイ（ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙｓ））、コントローラ、マイクロコントローラ、マイクロプロセッサ、その他の電子部品を用いてもよい。
【０１３９】
ある例示的な実施形態では、メモリ７０４に格納されているような命令であって、上述の方法を実行するために装置７００のプロセッサ７２０により実行可能な命令を格納した非一時的なコンピュータ可読の記憶媒体が提供される。非一時的なコンピュータ可読の記憶媒体は、例えば、ＲＯＭ、ＲＡＭ，ＣＤ−ＲＯＭ，磁気テープ、フロッピー（登録商標）ディスク、光データ記憶装置、などであり得る。
【０１４０】
非一時的なコンピュータ可読の記憶媒体が提供され、その記憶媒体に格納された命令が装置７００のプロセッサにより実行されると、装置７００は、図１あるいは図３に示す実施形態に係るアプリケーションプログラム実行方法を行うことができる。
【０１４１】
本開示の他の実施形態は、本願明細書の記載や本開示の実施を通じて当業者には明らかであろう。本願は、本開示の原理にしたがったあらゆる変形、使用、適合を包含することを意図しており、当該分野で公知あるいは慣行の範疇にある逸脱も本願の範囲に含まれる。明細書の記載や例はあくまでも例示であって、本開示の真の範囲および精神は特許請求の範囲において示す。
【０１４２】
本開示は上述および添付図面に図示した特定の構成に何ら限定されるものではなく、本開示の範囲から逸脱することなく種々の変形、変更が可能であることは、理解されるであろう。本開示の範囲は、特許請求の範囲によってのみ限定されるべきである。
【図１】
2016534487.tif 000003
【図２】
2016534487.tif 000004
【図３】
2016534487.tif 000005
【図４】
2016534487.tif 000006
【図５】
2016534487.tif 000007
【図６】
2016534487.tif 000008
【図７】
2016534487.tif 000009
【手続補正書】
【提出日】平成27年4月17日(2015.4.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するステップと、
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得するステップと、
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するステップとを含む、アプリケーションプログラムの実行方法。
【請求項２】
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行する前記ステップは、
前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定するステップと、
前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第１アプリケーションプログラムにより起動するステップと、
前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するステップとを含む、請求項１に記載の方法。
【請求項３】
前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行する前記ステップは、
前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すステップと、
呼び出された前記プログラムコンポーネントを、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するステップとを含む、請求項２に記載の方法。
【請求項４】
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムの前記プログラムコンポーネントを取得する前記ステップは、
前記第２アプリケーションプログラムの前記インストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのコンフィギュレーションファイルを取得するステップと、
前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得するステップとを含み、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも１つを含む、請求項２に記載の方法。
【請求項５】
前記第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定する前記ステップは、
前記第２アプリケーションプログラムの起動中に、前記第１アプリケーションプログラムにより、前記第２アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するステップを含む、請求項２に記載の方法。
【請求項７】
前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定する前記ステップは、
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するステップを含み、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するステップを含む、請求項５に記載の方法。
【請求項８】
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信し、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するステップ、
および／または
前記第２アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第１アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するステップをさらに含む、請求項５に記載の方法。
【請求項９】
ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、前記第１アプリケーションプログラムにより前記第２アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するステップをさらに含む、請求項１〜８のいずれかに記載の方法。
【請求項１０】
実行中の第１アプリケーションプログラムにおいて、第２アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成された信号受信モジュールと、
前記第２アプリケーションプログラムのインストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのプログラムコンポーネントを取得するように構成されたインストールパッケージ解析モジュールと、
前記第１アプリケーションプログラムによって提供されるランタイム環境において、前記第２アプリケーションプログラムの前記プログラムコンポーネントを実行するように構成されたプログラム実行モジュールとを備える、アプリケーションプログラムの実行装置。
【請求項１１】
前記プログラム実行モジュールは、
コンポーネント特定サブモジュールと、サンドボックス起動サブモジュールと、コンポーネント実行サブモジュールとを備え、
前記コンポーネント特定サブモジュールは、前記第２アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第１アプリケーションプログラムにより特定するように構成されており、
前記サンドボックス起動サブモジュールは、前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第１アプリケーションプログラムにより起動するように構成されており、
前記コンポーネント実行サブモジュールは、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するように構成されている、請求項１０に記載の装置。
【請求項１２】
前記コンポーネント実行サブモジュールは、呼び出しサブモジュールと実行サブモジュールとを備え、
前記呼び出しサブモジュールは、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すように構成されており、
前記実行サブモジュールは、呼び出された前記プログラムコンポーネントを、前記第１アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するように構成されている、請求項１１に記載の装置。
【請求項１３】
前記インストールパッケージ解析モジュールは、ファイル解析サブモジュールとコンポーネント解析サブモジュールとを備え、
前記ファイル解析サブモジュールは、前記第２アプリケーションプログラムの前記インストールパッケージを前記第１アプリケーションプログラムによりロードおよび解析して、前記第２アプリケーションプログラムのコンフィギュレーションファイルを取得するように構成されており、
前記コンポーネント解析サブモジュールは、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第２アプリケーションプログラムの少なくとも１つのプログラムコンポーネントを取得するように構成されており、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも１つを含む、請求項１１に記載の装置。
【請求項１４】
前記第２アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第１アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するように構成されたメッセージ登録モジュールをさらに備える、請求項１３に記載の装置。
【請求項１５】
前記コンポーネント特定サブモジュールは、第１特定サブモジュールを備え、
前記第１特定サブモジュールは、前記第２アプリケーションプログラムの起動中に、前記第１アプリケーションプログラムにより、前記第２アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するように構成されている、請求項１１に記載の装置。
【請求項１６】
前記コンポーネント特定サブモジュールは、メッセージ受信サブモジュールと第２特定サブモジュールとを備え、
前記メッセージ受信サブモジュールは、前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
前記第２特定サブモジュールは、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するように構成されている、請求項１４に記載の装置。
【請求項１７】
前記オペレーティングシステムから送信されたインテントメッセージを前記第１アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第２アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するように構成された第１送信モジュール、
および／または
前記第２アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第１アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するように構成された第２送信モジュールをさらに備える、請求項１４に記載の装置。
【請求項１８】
ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも１つを含む管理オペレーションを、前記第１アプリケーションプログラムにより前記第２アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するように構成されたインストールパッケージ管理モジュールをさらに備える、請求項９〜１７のいずれかに記載の装置。
【請求項１９】
コンピュータにおいて実行され、請求項１〜９のいずれかに記載のアプリケーションプログラム実行方法を前記コンピュータに実行させるコンピュータプログラム。
【請求項２０】
請求項１９に記載のコンピュータプログラムを格納したコンピュータ可読の記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１１１
【補正方法】変更
【補正の内容】
【０１１１】
あるいは、コンポーネント実行サブモジュール５６６は、呼び出しサブモジュールと実行サブモジュールとを含む。
【国際調査報告】
2016534487.tif 000010
2016534487.tif 000011
2016534487.tif 000012
2016534487.tif 000013