JP6068736B2 - アプリケーションプログラムの実行方法および装置 - Google Patents

アプリケーションプログラムの実行方法および装置 Download PDF

Info

Publication number
JP6068736B2
JP6068736B2 JP2016548410A JP2016548410A JP6068736B2 JP 6068736 B2 JP6068736 B2 JP 6068736B2 JP 2016548410 A JP2016548410 A JP 2016548410A JP 2016548410 A JP2016548410 A JP 2016548410A JP 6068736 B2 JP6068736 B2 JP 6068736B2
Authority
JP
Japan
Prior art keywords
application program
component
program
intent message
submodule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016548410A
Other languages
English (en)
Other versions
JP2016534487A (ja
Inventor
シン,シャオロン
ホー,ヤオ
ユイ,ジャオホイ
Original Assignee
シャオミ・インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シャオミ・インコーポレイテッド filed Critical シャオミ・インコーポレイテッド
Publication of JP2016534487A publication Critical patent/JP2016534487A/ja
Application granted granted Critical
Publication of JP6068736B2 publication Critical patent/JP6068736B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Description

[関連出願の相互参照]
本出願は、2014年9月16日に出願された中国特許出願第201410470307.8号に基づく優先権を主張し、当該出願に記載された全ての記載内容を援用する。
本開示は概して移動端末の分野に関し、より具体的には、アプリケーションプログラムの実行方法およびアプリケーションプログラムの実行装置に関する。
アンドロイド(Android(登録商標))オペレーティングシステムは、各種のアプリケーションプログラムをインストールすることにより様々な機能を提供できるインテリジェントオペレーティングシステムである。
関連の分野では、開発および完成されたアプリケーションプログラムは「apk」を接尾文字とするフォーマットのインストールパッケージに組み込まれ、そのインストールパッケージがユーザに公開される。ユーザがアプリケーションプログラムを使用しようとする場合には、アンドロイドオペレーティングシステムを実行中の移動端末に、インストールパッケージをインストールし、その後アプリケーションプログラムを実行する。しかしながら、アプリケーションプログラムのインストール操作は、高齢者など一部のユーザにとっては難易度が高い。
インストールパッケージのインストールなしには、アプリケーションプログラムを使用できないとの課題を解決するために、本開示は、アプリケーションプログラムの実行方法およびアプリケーションプログラムの実行装置を提供する。その技術的解決手法を下記に示す。
本開示の第1の側面にしたがって提供されるアプリケーションプログラムの実行方法は、
実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するステップと、
前記第2アプリケーションプログラムのインストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのプログラムコンポーネントを取得するステップと、
前記第1アプリケーションプログラムによって提供されるランタイム環境において、前記第2アプリケーションプログラムの前記プログラムコンポーネントを実行するステップとを含む。
あるいは、前記第1アプリケーションプログラムによって提供されるランタイム環境において、前記第2アプリケーションプログラムの前記プログラムコンポーネントを実行する前記ステップは、
前記第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第1アプリケーションプログラムにより特定するステップと、
前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第1アプリケーションプログラムにより起動するステップと、
前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するステップとを含む。
あるいは、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行する前記ステップは、
前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すステップと、
呼び出された前記プログラムコンポーネントを、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するステップとを含む。
あるいは、前記第2アプリケーションプログラムのインストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのプログラムコンポーネントを取得する前記ステップは、
前記第2アプリケーションプログラムの前記インストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのコンフィギュレーションファイルを取得するステップと、
前記第1アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第2アプリケーションプログラムの少なくとも1つのプログラムコンポーネントを取得するステップとを含み、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも1つを含む。
あるいは、前記方法は、
前記第2アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第1アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するステップをさらに含む。
あるいは、前記第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第1アプリケーションプログラムにより特定する前記ステップは、
前記第2アプリケーションプログラムの起動中に、前記第1アプリケーションプログラムにより、前記第2アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するステップを含む。
あるいは、前記第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第1アプリケーションプログラムにより特定する前記ステップは、
前記オペレーティングシステムから送信されたインテントメッセージを前記第1アプリケーションプログラムにより受信するステップを含み、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
前記第2アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するステップを含む。
あるいは、前記方法は、
前記オペレーティングシステムから送信されたインテントメッセージを前記第1アプリケーションプログラムにより受信し、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第2アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するステップ、
および/または
前記第2アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第1アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するステップをさらに含む。
あるいは、前記方法は、
ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも1つを含む管理オペレーションを、前記第1アプリケーションプログラムにより前記第2アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するステップをさらに含む。
本開示の第2の側面にしたがって提供されるアプリケーションプログラム実行装置は、
実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成された信号受信モジュールと、
前記第2アプリケーションプログラムのインストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのプログラムコンポーネントを取得するように構成されたインストールパッケージ解析モジュールと、
前記第1アプリケーションプログラムによって提供されるランタイム環境において、前記第2アプリケーションプログラムの前記プログラムコンポーネントを実行するように構成されたプログラム実行モジュールとを備える。
あるいは、前記プログラム実行モジュールは、
コンポーネント特定サブモジュールと、サンドボックス起動サブモジュールと、コンポーネント実行サブモジュールとを備え、
前記コンポーネント特定サブモジュールは、前記第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第1アプリケーションプログラムにより特定するように構成されており、
前記サンドボックス起動サブモジュールは、前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第1アプリケーションプログラムにより起動するように構成されており、
前記コンポーネント実行サブモジュールは、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するように構成されている。
あるいは、前記コンポーネント実行サブモジュールは、呼び出しサブモジュールと実行サブモジュールとを備え、
前記呼び出しサブモジュールは、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すように構成されており、
前記実行サブモジュールは、呼び出された前記プログラムコンポーネントを、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するように構成されている。
あるいは、前記インストールパッケージ解析モジュールは、ファイル解析サブモジュールとコンポーネント解析サブモジュールとを備え、
前記ファイル解析サブモジュールは、前記第2アプリケーションプログラムの前記インストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのコンフィギュレーションファイルを取得するように構成されており、
前記コンポーネント解析サブモジュールは、前記第1アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第2アプリケーションプログラムの少なくとも1つのプログラムコンポーネントを取得するように構成されており、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも1つを含む。
あるいは、前記装置は、
前記第2アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第1アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するように構成されたメッセージ登録モジュールをさらに備える。
あるいは、前記コンポーネント特定サブモジュールは、第1特定サブモジュールを備え、
前記第1特定サブモジュールは、前記第2アプリケーションプログラムの起動中に、前記第1アプリケーションプログラムにより、前記第2アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するように構成されている。
あるいは、前記コンポーネント特定サブモジュールは、メッセージ受信サブモジュールと第2特定サブモジュールとを備え、
前記メッセージ受信サブモジュールは、前記オペレーティングシステムから送信されたインテントメッセージを前記第1アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
前記第2特定サブモジュールは、前記第2アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するように構成されている。
あるいは、前記装置は、
前記オペレーティングシステムから送信されたインテントメッセージを前記第1アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第2アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するように構成された第1送信モジュール、
および/または
前記第2アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第1アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するように構成された第2送信モジュールをさらに備える。
あるいは、前記装置は、
ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも1つを含む管理オペレーションを、前記第1アプリケーションプログラムにより前記第2アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するように構成されたインストールパッケージ管理モジュールをさらに備える。
本開示の第3の側面にしたがって提供されるアプリケーションプログラム実行装置は、
プロセッサと、
前記プロセッサにより実行可能な命令を格納するように構成されたメモリとを備え
前記プロセッサは、
実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信し、
前記第2アプリケーションプログラムのインストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのプログラムコンポーネントを取得し、
前記第1アプリケーションプログラムによって提供されるランタイム環境において、前記第2アプリケーションプログラムの前記プログラムコンポーネントを実行するように構成されている。
本開示の実施形態に係る技術的解決手法は、以下の効果を奏する。実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムのインストールパッケージのロードおよび解析を行うことにより、第2アプリケーションプログラムのプログラムコンポーネントが取得される。第2アプリケーションプログラムのプログラムコンポーネントは、第1アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第2アプリケーションプログラムをインストールすることなく、第1アプリケーションプログラムによって提供されるランタイム環境において第2アプリケーションプログラムを実行することが可能になるという効果を奏する。
上記の一般的な説明および下記の詳細な説明は、いずれも説明を目的とした例示的なものに過ぎず、特許請求の範囲に記載した本開示を限定するものではない。
本明細書に参照され、また、本明細書の一部を構成する添付の図面は、本開示と整合する実施形態を示し、以下の記述と共に本開示の要旨を説明するものである。
図1は、例示的な実施形態に係るアプリケーションプログラムの実行方法を示すフローチャートである。 図2は、例示的な他の実施形態に係るアプリケーションプログラムの実行方法を模式的に示す図である。 図3は、他の例示的な実施形態に係るアプリケーションプログラムの実行方法を示すフローチャートである。 図4は、他の例示的な実施形態に係るアプリケーションプログラムの実行方法のサブステップを示すフローチャートである。 図5は、例示的な実施形態に係るアプリケーションプログラムの実行装置を示すブロック図である。 図6は、他の例示的な実施形態に係るアプリケーションプログラムの実行装置を示すブロック図である。 図7は、例示的な実施形態に係る装置のブロック図である。
本発明の実施例は、上述の図面によって明確に示されているが、さらに詳細な内容については後述する。これらの図面および文字記載は、本開示の構想の範囲に対して何らかの制限を加えるためのものではなく、特定の実施例を参考にすることで、当業者に対して本開示の概念を説明するためのものである。
以下に、例示的な実施形態を詳細に説明する。以下の説明において参照する添付の図面は、実施形態の例を示す。以下の説明で言及する図面中で、複数の図面において用いられている同一の符号は、特に記載しない限り、同一あるいは類似の要素を示す。以下の例示的な実施形態の説明に示す具体化態様は、本開示の全ての具体化態様を示すものではなく、請求項に記載した本開示の側面にしたがった装置および方法の例示に過ぎない。
最初に、本開示で用いる用語を説明する。
アンドロイドオペレーティングシステムは、米国のGoogle社がLinux(登録商標)をベースとして作製した、自由度の高いオープンソースのオペレーティングシステムであり、主に移動端末で使用される。移動端末は、例えば、電話、タブレットPC、電子書籍リーダ、MP3(Moving Picture Experts Group Audio Layer III)プレーヤ、MP4(Moving Picture Experts Group Audio Layer IV)プレーヤ、ラップトップコンピュータなどである。
アプリケーションプログラムのインストールパッケージは、アプリケーションプログラムをオペレーティングシステムにインストールするように構成されたファイルであり、通常は、複数のファイルのセットからなる自己解凍形式の圧縮ファイルである。ファイルのセットには、アプリケーションプログラムの実行に必要なファイルがすべて含まれる。アンドロイドオペレーティングシステムにおいては、通常、アプリケーションプログラムのインストールパッケージは、apkフォーマットでパッケージ化されたファイルである。
尚、アプリケーションプログラムを、単にアプリケーションとも称する。アンドロイドオペレーティングシステムでは、1つのアプリケーションプログラムは、少なくとも1つのプログラムコンポーネントを含む。プログラムコンポーネントには、アクティビティ(Activity)コンポーネントと、サービス(Service)コンポーネントと、コンテンツプロバイダ(Content Provider)コンポーネントと、ブロードキャストレシーバ(Broadcast Receiver)コンポーネントとの4種がある。
アクティビティコンポーネントは、アンドロイドアプリケーションプログラムにおいて、ユーザとの対話および視覚的なユーザインターフェースの提供を行うように構成されたコンポーネントである。1つのアンドロイドアプリケーションプログラムが含み得るアクティビティコンポーネントの数は、ゼロであってもよいし、多数にのぼってもよい。
サービスコンポーネントは、バックグランドで動作するコンポーネントであり、アンドロイドアプリケーションプログラムにおいて視覚的なユーザインターフェースを提供することはない。1つのアンドロイドアプリケーションプログラムが含み得るサービスコンポーネントの数は、ゼロであってもよいし、多数にのぼってもよい。
コンテンツプロバイダコンポーネントは、他のアプリケーションに対して、あるいは、アンドロイドアプリケーションプログラムにおいて実行中のアプリケーションにおける他のコンポーネントに対して、データ(着信音、壁紙、電話帳など)を提供するように構成されたコンポーネントである。コンテンツプロバイダコンポーネントは、各種フォーマットでデータをパッケージ化することができ、他のアプリケーションや使用されるコンポーネントに対して、標準フォーマットのデータを提供できる。
ブロードキャストレシーバコンポーネントは、オペレーティングシステムからブロードキャスト送信されたメッセージの受信および応答を行うように構成されたコンポーネントである。ブロードキャストレシーバコンポーネントは、所望のメッセージ(あるいは、特定の形式の所定のメッセージ)を受信可能であり、その後、メッセージを処理、あるいは実行中のプログラムにおける他のコンポーネントへ送信できる。
インテントメッセージは、プログラムコンポーネント間での通信を行うように構成されたメッセージである。通信の対象となるプログラムコンポーネントは、互いに同一のアプリケーションに属するコンポーネントであってもよいし、別々のアプリケーションに属するコンポーネントであってもよい。インテントメッセージは、オペレーションの動作、その動作に必要なデータおよびアプリケーションプログラムにおける添付データを記述するように構成されている。アンドロイドオペレーティングシステムは、インテントメッセージにしたがって対応するプログラムコンポーネントを見つけ、呼び出されたそのプログラムコンポーネントにインテントメッセージを送信し、これによりプログラムコンポーネントの呼び出しを完了するように構成されている。インテントメッセージには、明示的インテントメッセージと暗黙的インテントメッセージとの二種類がある。
明示的インテントメッセージは、オブジェクトプログラムコンポーネントの名前を具体的に指定したインテントメッセージである。例えば、プログラムコンポーネントAが、「call 18688888888」とのインテントメッセージを送る必要があり、プログラムコンポーネントBによる応答を希望する場合、プログラムコンポーネントAは、プログラムコンポーネントBをインテントメッセージにおけるオブジェクトプログラムコンポーネントとして特定する。アンドロイドオペレーティングシステムはインテントメッセージを受け取り、インテントメッセージをプログラムコンポーネントBに処理のために渡す。
暗黙的インテントメッセージは、オブジェクトプログラムコンポーネントの名前を具体的に指定しないインテントメッセージである。例えば、プログラムコンポーネントAが、「call 18688888888」とのインテントメッセージを送る必要があるが、どのプログラムコンポーネントがそのインテントメッセージに応答すべきであるか不明な場合、プログラムコンポーネントAは、インテントメッセージにおいてオブジェクトプログラムコンポーネントを特定しなくてもよい。アンドロイドオペレーティングシステムはインテントメッセージを受け取った後、各プログラムコンポーネントの監視対象としてインテントメッセージの予め登録されたタイプを検索する。プログラムコンポーネントBが、通話に関するインテントメッセージを監視していることがわかれば、アンドロイドオペレーティングシステムは通話に関するインテントメッセージを、プログラムコンポーネントBに処理のために渡す。または、通話に関するインテントメッセージをアンドロイドオペレーティングシステムがブロードキャスト送信し、通話に関するインテントメッセージを監視対象とするブロードキャストレシーバコンポーネントがこれを受信して処理する。
図1は、例示的な実施形態に係るアプリケーションプログラムの実行方法を示すフローチャートである。本実施形態は、アプリケーションプログラムの実行方法を移動端末に適用した一例である。アプリケーションプログラムの実行方法は、以下のステップを含む。
ステップS102では、実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信する。
ステップS104では、第1アプリケーションプログラムにより、第2アプリケーションプログラムのインストールパッケージをロードおよび解析して、第2アプリケーションプログラムのプログラムコンポーネントを取得する。
ステップS106では、第1アプリケーションプログラムによって提供されるランタイム環境において、第2アプリケーションプログラムのプログラムコンポーネントを実行する。
結論として、本実施形態に係るアプリケーションプログラムの実行方法によれば、実行中の第1アプリケーションプログラムにおいて第2アプリケーションプログラムのインストールパッケージをロードおよび解析することにより、第2アプリケーションプログラムのプログラムコンポーネントが取得され、第2アプリケーションプログラム内のプログラムコンポーネントは、第1アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第2アプリケーションプログラムをインストールすることなく、第1アプリケーションプログラムによって提供されるランタイム環境において第2アプリケーションプログラムを実行することが可能になるという効果を奏する。
本開示の理解をさらに深めるため、図2を参照する。図2は、例示的な実施形態におけるアプリケーションプログラムの実行方法を模式的に示す。第1アプリケーションプログラム220は移動端末において実行中であり、第2アプリケーションプログラム240のインストールパッケージのロードおよび解析を行って、第2アプリケーションプログラム240のプログラムコンポーネントを取得するように構成されている。第2アプリケーションプログラム240は、1または複数のプログラムコンポーネントを含む。各プログラムコンポーネントは、アクティビティコンポーネント242と、サービスコンポーネント244と、コンテンツプロバイダコンポーネント246と、ブロードキャストレシーバコンポーネント248とのいずれかであってもよい。第1アプリケーションプログラム220は、第2アプリケーションプログラム240に対してサンドボックス環境を提供する。サンドボックス環境は、第2アプリケーションプログラム240のプログラムコンポーネントの実行に必要なコンテキスト環境を提供する。第2アプリケーションプログラム240は、サンドボックス環境において実行可能である。
第2アプリケーションプログラム240の実行処理では、第1アプリケーションプログラム220は、第2アプリケーションプログラム240内のプログラムコンポーネントを、第2アプリケーションプログラム240の実行ロジックにしたがって実行してもよい。例えば、第2アプリケーションプログラム240が起動されると、第1アプリケーションプログラム220は、第2アプリケーションプログラム240のデフォルト実行コンポーネントを実行する。このデフォルト実行コンポーネントは、通常、第2アプリケーションプログラム240のメインインターフェースに相当するアクティビティコンポーネントである。加えて、例えば、第2アプリケーションプログラム240の対話型ユーザインターフェース上の特定のボタンが押されると、第1アプリケーションプログラム220は第2アプリケーションプログラム240の他のアクティビティコンポーネントを実行する。これにより、第2アプリケーションプログラム240の次の対話型ユーザインターフェースを表示させる。
加えて、アンドロイドオペレーティングシステムあるいは他のアプリケーションプログラム(不図示)は、第2アプリケーションプログラムが監視するインテントメッセージを、第1アプリケーションプログラム220に対して送信することができる。第1アプリケーションプログラム220はインテントメッセージを受信すると、第2アプリケーションプログラム240内の対応するプログラムコンポーネントを実行し、インテントメッセージをそのプログラムコンポーネントに送信する。また、アンドロイドオペレーティングシステムあるいは他のアプリケーションプログラムも、第1アプリケーションプログラム220により、第2アプリケーションプログラム240内のコンテンツプロバイダコンポーネント246を呼び出すことができる。つまり、アンドロイドオペレーティングシステムあるいは他のアプリケーションプログラムは、第2アプリケーションプログラム240内のコンテンツプロバイダコンポーネント246が提供するデータを使用することができる。
第2アプリケーションプログラム240は、第1アプリケーションプログラム220により、アンドロイドオペレーティングシステムあるいは他のアプリケーションプログラムに対してインテントメッセージを送信することができる。第1アプリケーションプログラム220は、インテントメッセージを受信すると、そのインテントメッセージをアンドロイドオペレーティングシステムに送信する。これにより、アンドロイドオペレーティングシステムはインテントメッセージを直接に処理したり、他のアプリケーションプログラムに処理のために送信したりできる。また、第2アプリケーションプログラム240は、第1アプリケーションプログラム220により、他のアプリケーションプログラム内のコンテンツプロバイダコンポーネントの呼び出しを行うこともできる。すなわち、第2アプリケーションプログラム240も、他のアプリケーションプログラム内のコンテンツプロバイダコンポーネントが提供するデータを使用することができる。
尚、第2アプリケーションプログラム240がアンドロイドオペレーティングシステムのアプリケーションプログラム規格に準拠し、第2アプリケーションプログラム240のインストールパッケージがアンドロイドオペレーティングシステムのインストールパッケージの規格に準拠している限り、第2アプリケーションプログラム240が第1アプリケーションプログラム220と特定の関係にある必要はなく、また、第2アプリケーションプログラム240と第1アプリケーションプログラム220との間において特定のプロトコルや特定のインターフェースを実装する必要もない。
図3は、他の例示的な実施形態に係るアプリケーションプログラムの実行方法を示すフローチャートである。本実施形態は、アプリケーションプログラムの実行方法を移動端末に適用した一例である。移動端末は、アンドロイドオペレーティングシステムを実行中の移動端末であってもよい。アプリケーションプログラムの実行方法は、以下のステップを含む。
ステップS301では、実行中の第1アプリケーションプログラムが、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信する。
第1アプリケーションプログラムは、移動端末にインストールされ、実行中のアプリケーションプログラムである。第1アプリケーションプログラムは、包括的アプリケーションプログラム、ゲーム用アプリケーションプログラム、管理アプリケーションプログラム、システムアプリケーションプログラムなどとして構成されてもよい。
第1アプリケーションプログラムは、第2アプリケーションプログラムのインストールパッケージに移動端末内でアクセス可能である。第2アプリケーションプログラムが移動端末にインストールされている必要はない。つまり、第1アプリケーションプログラムによって提供されるランタイム環境において、第2アプリケーションプログラムを実行可能である。
移動端末は、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を、実行中の第1アプリケーションプログラムにおいて受信する。トリガ信号は、タッチスクリーンのクリック信号であってもよい。例えば、第1アプリケーションプログラムのユーザインターフェース内に、第2アプリケーションプログラムを表すアイコンを表示してもよい。タッチスクリーンが受けたクリック信号により第2アプリケーションプログラムを表すアイコンがクリックされると、移動端末は、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信する。
ステップS302では、第1アプリケーションプログラムにより、第2アプリケーションプログラムのインストールパッケージをロードおよび解析して、第2アプリケーションプログラムのコンフィギュレーションファイルを取得する。
コンフィギュレーションファイルは、各第2アプリケーションプログラムのインストールパッケージに含まれる記述ファイルである。通常、コンフィギュレーションファイルは、第2アプリケーションプログラムのインストールパッケージ内のルートディレクトリに格納された「AndroidManifest.xml」ファイルである。コンフィギュレーションファイルは、第2アプリケーションプログラムにおける関連アプリケーション情報を提供してもよい。
移動端末は、先ず、第1アプリケーションプログラムにより、第2アプリケーションプログラムのインストールパッケージをロードし、第2アプリケーションプログラムのインストールパッケージを解析し、解析したファイルから第2アプリケーションプログラムのコンフィギュレーションファイルを取得する。
ステップS303では、第1アプリケーションプログラムによりコンフィグレーションファイルにしたがって、第2アプリケーションプログラムの少なくとも1つのプログラムコンポーネントを取得する。
コンフィギュレーションファイルは、第2アプリケーションプログラムに含まれるすべてのプログラムコンポーネントを宣言する。プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも1つを含む。
移動端末は、第1アプリケーションプログラムによりコンフィギュレーションファイルを解析して、第2アプリケーションプログラムの少なくとも1つのプログラムコンポーネントを取得する。
ステップS304では、第1アプリケーションプログラムにより、コンフィギュレーションファイルにしたがって、第2アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプをオペレーションシステムに登録する。
コンフィギュレーションファイルは、第2アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプも宣言してもよい。例えば、アクティビティコンポーネントAは、タイプAのインテントメッセージを監視し、サービスコンポーネントBは、タイプBのインテントメッセージを監視する。
移動端末は、第2アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、第1アプリケーションプログラムにより、コンフィギュレーションファイルにしたがってオペレーティングシステムに登録する。
尚、第2アプリケーションプログラムのプログラムコンポーネントが監視するインテントメッセージのタイプを第1アプリケーションプログラムが登録すると、第2アプリケーションプログラム内のプログラムコンポーネントの代わりに、第1アプリケーションプログラム内のプログラムコンポーネントが、アンドロイドオペレーティングシステムに登録されたレシーバになる。例えば、第2アプリケーションプログラム内のアクティビティコンポーネントAがタイプAのインテントメッセージを監視する場合、第1アプリケーションプログラムはタイプAのインテントメッセージをアンドロイドオペレーティングシステムに登録する。ただし、登録されたタイプAのインテントメッセージのレシーバは、第1アプリケーションプログラム内のプログラムコンポーネントである。
ステップS305では、第1アプリケーションプログラムによって提供されるランタイム環境において、第2アプリケーションプログラムのプログラムコンポーネントを実行する。
移動端末は、第1アプリケーションプログラムによって提供されるランタイム環境において、第2アプリケーションプログラム内のプログラムコンポーネントを実行する。第2アプリケーションプログラムのすべてのプログラムコンポーネントを同時に実行する必要はなく、必要に応じて全部のプログラムコンポーネントの一部を実行すればよい。ステップS305は、図4に示す以下のサブステップを含む。
ステップS305aでは、移動端末が、第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを第1アプリケーションプログラムにより特定する。
ステップS305bでは、移動端末が、プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを第1アプリケーションプログラムにより起動する。
ステップS305cでは、移動端末が、プログラムコンポーネントを、第1アプリケーションプログラムのサンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて実行する。
ステップS305aでは、主に以下の二つの状況がある。
第1の状況:第2アプリケーションプログラムが起動済みの場合、移動端末は、第2アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを第1アプリケーションプログラムにより受信し、そのデフォルト実行コンポーネントを実行対象のプログラムコンポーネントとして特定する。
通常、デフォルト実行コンポーネントは、第2アプリケーションプログラムのメインインターフェースに相当するアクティビティコンポーネントである。第2アプリケーションプログラムの起動時には、第2アプリケーションプログラムは、デフォルト実行コンポーネントを示す要求を自身の実行ロジックにしたがって第1アプリケーションプログラムにフィードバックする。これを受けて、第1アプリケーションプログラムは、そのデフォルト実行コンポーネントを、第2アプリケーションプログラムにおいて、現在実行すべきプログラムコンポーネントとして特定する。
第2の状況:移動端末は、オペレーティングシステムから送信されたインテントメッセージを第1アプリケーションプログラムにより受信する。インテントメッセージは、インテントメッセージの登録されたタイプに合致する。第2アプリケーションプログラムにおいて、インテントメッセージを監視するように構成されたプログラムコンポーネントが未起動である場合、インテントメッセージを監視するように構成されたプログラムコンポーネントを実行対象のプログラムとして特定する。
第2アプリケーションプログラムの実行処理において、第2アプリケーションプログラムのプログラムコンポーネントや、アンドロイドオペレーティングシステムのシステムアプリケーションプログラムや、他のアプリケーションプログラムのプログラムコンポーネントがインテントメッセージをアンドロイドオペレーティングシステムに送信する可能性がある。インテントメッセージが第2アプリケーションプログラムのプログラムコンポーネントに監視されるインテントメッセージであれば、すなわち、インテントメッセージがステップS304において登録されたインテントメッセージのタイプに合致すれば、アンドロイドオペレーティングシステムはインテントメッセージを第1アプリケーションプログラムに送信する。この時、第2アプリケーションプログラムにおいて、インテントメッセージを監視するように構成されたプログラムコンポーネントが未起動である場合、第1アプリケーションプログラムは、インテントメッセージを監視するように構成された第2アプリケーションプログラム内のプログラムコンポーネントを実行対象のプログラムコンポーネントとして特定する。
ステップS305bに関し、第2アプリケーションプログラム内のいずれかのプログラムコンポーネントを実行する必要がある場合には、移動端末は、先ず、第1アプリケーションプログラム内の対応するサンドボックスプログラムコンポーネントを起動する。サンドボックスプログラムコンポーネントは、第2アプリケーションプログラムのプログラムコンポーネントの実行に必要なランタイムコンテキストを提供するように構成されている。
例えば、第2アプリケーションプログラムのアクティビティコンポーネントAを実行する必要がある場合は、第1アプリケーションプログラム内のサンドボックスアクティビティコンポーネントA(BoxActivity A)が起動される。加えて、例えば、第2アプリケーションプログラムのサービスコンポーネントBを実行する必要がある場合は、第1アプリケーションプログラム内のサンドボックスサービスコンポーネントB(BoxServer B)が起動される。さらに、第2アプリケーションプログラムのブロードキャストレシーバコンポーネントCを実行する必要がある場合は、第1アプリケーションプログラム内のサンドボックスブロードキャストレシーバコンポーネントC(BoxBroadcast Receiver C)が起動される。
言い換えると、第2アプリケーションプログラムのプログラムコンポーネントが実行される場合には、対応するサンドボックスプログラムコンポーネントが第1アプリケーションプログラムに含まれている。
ステップS305cは、以下のサブステップを含む。
1.移動端末は、第1アプリケーションプログラム内のサンドボックスプログラムコンポーネントによりリフレクション機構を用いて、第2アプリケーションプログラムのプログラムコンポーネントの呼び出しを行う。
リフレクション機構は、Java(登録商標)プログラミングの分野で用いられる機構である。リフレクション機構を用いれば、第2アプリケーションプログラムのプログラムコンポーネントを把握していなくても、第2アプリケーションプログラム内の特定クラスのプログラムコンポーネントを第1アプリケーションプログラムにより呼び出すことが可能である。
2.移動端末は、呼び出されたプログラムコンポーネントを、第1アプリケーションプログラムのサンドボックスプログラムコンポーネントが提供するランタイムコンテキストにおいて実行する。
ステップS306では、第1アプリケーションプログラムによって、第2アプリケーションプログラムのためのインテントメッセージを受信し、送信する。
移動端末は、第2アプリケーションプログラムのためのインテントメッセージを、第1アプリケーションプログラムにより受信および/または送信する。
受信プロセス:移動端末は、アンドロイドオペレーティングシステムから送信されたインテントメッセージを、第1アプリケーションプログラムにより受信する。インテントメッセージは、インテントメッセージの登録されたタイプに合致する。第2アプリケーションプログラムにおいて、インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みであれば、移動端末は、インテントメッセージを第2アプリケーションプログラムのプログラムコンポーネントに処理のために送信する。
例えば、第1アプリケーションプログラムは、アンドロイドオペレーションシステムから送信されたインテントメッセージを受信する。受信したインテントメッセージが、第2アプリケーションプログラムのブロードキャストレシーバコンポーネントDの監視対象であれば、第1アプリケーションプログラム内の、ブロードキャストレシーバコンポーネントDに対応するサンドボックスブロードキャストレシーバコンポーネントが、ブロードキャストレシーバコンポーネントDのonReceiveメソッドを呼び出す。これによりブロードキャストレシーバコンポーネントDがインテントメッセージを処理できる。
送信プロセス:移動端末は、第2アプリケーションプログラムのあるプログラムコンポーネントにより送信されるべきインテントメッセージを、第1アプリケーションプログラムにより取得し、そのインテントメッセージをアンドロイドオペレーティングシステムに送信する。
例えば、第2アプリケーションプログラムのアクティビティコンポーネントEがインテントメッセージを送信する必要がある場合、アクティビティコンポーネントEは、先ず、第1アプリケーションプログラム内の、アクティビティコンポーネントEに対応するサンドボックスアクティビティコンポーネントにそのインテントメッセージを送信する。次に、サンドボックスアクティビティコンポーネントがアンドロイドオペレーティングシステムのSendBroadcastメソッドをインターセプトし、そのSendBroadcastメソッドによりインテントメッセージをアンドロイドオペレーティングシステムに送信する。
上述したプロセスは、第1アプリケーションプログラムにおいて第2アプリケーションプログラムを実行するプロセスである。ここで、第2アプリケーションプログラムは一般参照を含むので、他のアプリケーションプログラムを参照する場合がある。
ステップS307では、ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも1つを含む管理オペレーションを、第1アプリケーションプログラムにより第2アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行する。
移動端末は、第1アプリケーションプログラムにより、複数の第2アプリケーションプログラムを管理する。移動端末は、各々の第2アプリケーションプログラムの異なるバージョンのインストールパッケージに対して、ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも1つを含む管理オペレーションを、第1アプリケーションプログラムにより管理する。
例えば、第2アプリケーションプログラムに新バージョンのインストールパッケージがあり、新バージョンのインストールパッケージはより多くの機能を含むとする。第1アプリケーションプログラムは、第2アプリケーションプログラムのインストールパッケージの新バージョンをダウンロードし、第2アプリケーションプログラムを最新バージョンに自動的に更新でき、ユーザの介在を必要としない。すなわち、ユーザが意識することなく第2アプリケーションプログラムの更新が行える。
結論として、本実施形態に係るアプリケーションプログラムの実行方法によれば、実行中の第1アプリケーションプログラムにおいて第2アプリケーションプログラムのロードと解析を行うことにより、第2アプリケーションプログラムのプログラムコンポーネントが取得され、第2アプリケーションプログラム内のプログラムコンポーネントは、第1アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第2アプリケーションプログラムをインストールすることなく、第1アプリケーションプログラムによって提供されるランタイム環境において第2アプリケーションプログラムを実行することが可能になるという効果を奏する。
本実施形態に係るアプリケーションプログラムの実行方法によれば、第1アプリケーションプログラム内のサンドボックスプログラムコンポーネントによって、第2アプリケーションプログラムの対応するプログラムコンポーネントのランタイムコンテキストが提供される。これにより、第1アプリケーションプログラムによって提供されるランタイムコンテキストで、第2アプリケーションプログラムを実行することが可能である。このためには、第2アプリケーションプログラムが、アンドロイドオペレーティングシステムのアプリケーション規格に準拠したプログラムでありさえすればよい。第1アプリケーションプログラムと第2アプリケーションプログラムとが特定の関係にある必要はなく、また、第2アプリケーションプログラムと第1アプリケーションプログラムとの間において特定のプロトコルや特定のインターフェースを実装する必要もない。
本実施形態に係るアプリケーションプログラムの実行方法によれば、第2アプリケーションプログラムの異なるバージョンのインストールパッケージに対する管理オペレーションを、第1アプリケーションプログラムにより行う。これにより、第2アプリケーションプログラムの動的な更新に都合がよく、ユーザの介在を必要としない。よって、操作や学習に要するユーザの手間を省くことができる。
ある実際の実施形態では、ユーザAは高齢者であり、アンドロイドオペレーティングシステムを搭載したスマートフォンの使用について多く学習する必要があったり、それでもなお、スマートフォンの操作ができなかったりする。上述した実施形態に係るアプリケーションプログラムの実行方法によれば、第2アプリケーションプログラムのインターフェースの追加や削除は、スマートフォン上で第1アプリケーションプログラムにより行える。ユーザAに求められるのは、第1アプリケーションプログラムのユーザインターフェース上で第2アプリケーションプログラムを追加したり、削除したりすることのみである。第2アプリケーションプログラムを使用する必要がある場合は、第1アプリケーションプログラム上で第2アプリケーションプログラムを直接に開くことができ、第2アプリケーションプログラムをインストールする必要はない。加えて、第1アプリケーションプログラムは、第2アプリケーションプログラムのインストールパッケージをバックグランドで自動的に最新バージョンに更新する。処理全体を通じてユーザAが習得する必要があるのは、第2アプリケーションプログラムの追加の仕方、削除の仕方、開き方のみである。よって、ユーザAが学習に要する労力が軽減され、第2アプリケーションプログラムのインストールや更新などの複雑な操作を回避できる。よって、ユーザ操作を大幅に簡略化でき、第2アプリケーションプログラムの使用効率を向上させることができる。
本開示の実施形態に係る装置を以下に示す。この装置は、本開示の実施形態に係る方法を実行するのに用いることができる。本開示の装置の実施形態において記載されていない詳細については、本開示の方法の実施形態を参照できる。
図5は、例示的な実施形態に係るアプリケーションプログラムの実行装置のブロック図である。アプリケーションプログラムの実行装置は、移動端末の全体あるいは一部としてソフトウェアで構成してもよいし、ハードウェアで構成してもよいし、あるいはその組み合わせで構成してもよい。また、移動端末はアンドロイドオペレーティングシステムを実行する移動端末であってもよい。アプリケーションプログラムの実行装置は、信号受信モジュール520と、インストールパッケージ解析モジュール540と、プログラム実行モジュール560とを含む。
信号受信モジュール520は、実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成されている。
インストールパッケージ解析モジュール540は、第1アプリケーションプログラムによって、第2アプリケーションプログラムのインストールパッケージをロードおよび解析して、第2アプリケーションプログラムのプログラムコンポーネントを取得するように構成されている。
プログラム実行モジュール560は、第1アプリケーションプログラムによって提供されるランタイム環境において、第2アプリケーションプログラムのプログラムコンポーネントを実行するように構成されている。
結論として、本実施形態に係るアプリケーションプログラムの実行装置によれば、実行中の第1アプリケーションプログラムにおいて第2アプリケーションプログラムのインストールパッケージのロードと解析を行うことにより、第2アプリケーションプログラムのプログラムコンポーネントが取得され、第2アプリケーションプログラムのプログラムコンポーネントは、第1アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第2アプリケーションプログラムをインストールすることなく、第1アプリケーションプログラムによって提供されるランタイム環境において第2アプリケーションプログラムを実行することが可能になるという効果を奏する。
図6は、他の例示的な実施形態に係るアプリケーションプログラムの実行装置のブロック図である。アプリケーションプログラムの実行装置は、移動端末の全体あるいは一部としてソフトウェアで構成してもよいし、ハードウェアで構成してもよいし、あるいはその組み合わせで構成してもよい。また、移動端末はアンドロイドオペレーティングシステムを実行する移動端末であってもよい。アプリケーションプログラムの実行装置は、信号受信モジュール520と、インストールパッケージ解析モジュール540と、およびプログラム実行モジュール560とを有する。
信号受信モジュール520は、実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成されている。
インストールパッケージ解析モジュール540は、第2アプリケーションプログラムのインストールパッケージのロードと解析を第1アプリケーションプログラムにより行って、第2アプリケーションプログラムのプログラムコンポーネントを取得するように構成されている。
プログラム実行モジュール560は、第1アプリケーションプログラムによって提供されるランタイム環境において、第2アプリケーションプログラムのプログラムコンポーネントを実行するように構成されている。
あるいは、プログラム実行モジュール560は、コンポーネント特定サブモジュール562と、サンドボックス起動サブモジュール564と、コンポーネント実行サブモジュール566とを含む。
コンポーネント特定サブモジュール562は、第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、第1アプリケーションプログラムにより特定するように構成されている。
サンドボックス起動サブモジュール564は、そのプログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを第1アプリケーションプログラムにより起動するように構成されている。
コンポーネント実行サブモジュール566は、第1アプリケーションプログラム内のサンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、プログラムコンポーネントを実行するように構成されている。
あるいは、コンポーネント実行サブモジュール566は、呼び出しサブモジュールと実行サブモジュールとを含む。
呼び出しサブモジュールは、第1アプリケーションプログラム内のサンドボックスプログラムコンポーネントによりリフレクション機構を用いてプログラムコンポーネントを呼び出すように構成されている。
実行サブモジュールは、第1アプリケーションプログラム内のサンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、プログラムコンポーネントを実行するように構成されている。
あるいは、インストールパッケージ解析モジュール540は、ファイル解析サブモジュール542と、コンポーネント解析サブモジュール544とを含む。
ファイル解析サブモジュール542は、第2アプリケーションプログラムのインストールパッケージを第1アプリケーションプログラムによりロードおよび解析して、第2アプリケーションプログラムのコンフィギュレーションファイルを取得するように構成されている。
コンポーネント解析サブモジュール544は、第1アプリケーションプログラムによりコンフィギュレーションファイルにしたがって、第2アプリケーションプログラムの少なくとも1つのプログラムコンポーネントを取得するように構成されている。取得されるプログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも1つを含む。
あるいは、本装置は、メッセージ登録モジュール530をさらに含む。メッセージ登録モジュール530は、第2アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、コンフィギュレーションファイルにしたがって第1アプリケーションプログラムによりオペレーションシステムに登録するように構成されている。
あるいは、コンポーネント特定サブモジュール562は、第1特定サブモジュールと、メッセージ受信サブモジュールと、第2特定サブモジュールとを含む。
第1特定サブモジュールは、第2アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを第1アプリケーションプログラムにより受信し、デフォルト実行コンポーネントを、第2アプリケーションプログラムの起動時に実行対象となるプログラムコンポーネントとして特定するように構成されている。
メッセージ受信サブモジュールは、オペレーティングシステムから送信されたインテントメッセージを第1アプリケーションプログラムにより受信するように構成されており、インテントメッセージは、登録されたインテントメッセージのタイプに合致する。
第2特定サブモジュールは、第2アプリケーションプログラムにおいて、インテントメッセージを監視するように構成されたプログラムコンポーネントが未起動である場合、インテントメッセージを監視するように構成されたプログラムコンポーネントを実行対象のプログラムとして特定するように構成されている。
あるいは、本装置は、さらに以下を含む。
第1送信モジュール552:オペレーティングシステムから送信されたインテントメッセージを第1アプリケーションプログラムにより受信するように構成されている。インテントメッセージは、登録されたインテントメッセージのタイプに合致する。また、インテントメッセージを監視するように構成されたプログラムコンポーネントが第2アプリケーションプログラムにおいて起動済みであれば、インテントメッセージを処理のためにプログラムコンポーネントに送信するように構成されている。
および/または
第2送信モジュール554:第2アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを第1アプリケーションプログラムにより取得し、そのインテントメッセージをオペレーティングシステムに送信するように構成されている。
あるいは、本装置は、さらに以下を含む。
インストールパッケージ管理モジュール570:第2アプリケーションプログラムのインストールパッケージの異なるバージョンに対して、ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも1つを含む管理オペレーションを、第1アプリケーションプログラムにより行うように構成されている。
結論として、本実施形態に係るアプリケーションプログラムの実行装置によれば、実行中の第1アプリケーションプログラムにおいて第2アプリケーションプログラムのインストールパッケージのロードと解析を行うことにより、第2アプリケーションプログラムのプログラムコンポーネントが取得され、第2アプリケーションプログラムのプログラムコンポーネントは、第1アプリケーションプログラムによって提供されるランタイム環境において実行される。これにより、インストールパッケージのインストールなしにはアプリケーションプログラムを使用できないとの課題を解決する。また、第2アプリケーションプログラムをインストールすることなく、第1アプリケーションプログラムによって提供されるランタイム環境において第2アプリケーションプログラムを実行することが可能になるという効果を奏する。
本実施形態に係るアプリケーションプログラムの実行装置によれば、第1アプリケーションプログラム内のサンドボックスプログラムコンポーネントによって、第2アプリケーションプログラムの対応するプログラムコンポーネントの実行ランタイムコンテキストが提供される。これにより、第1アプリケーションプログラムによって提供されるランタイムコンテキストで、第2アプリケーションプログラムを実行することが可能である。このためには、第2アプリケーションプログラムが、アンドロイドオペレーティングシステムのアプリケーション規格に準拠したプログラムでありさえすればよい。第1アプリケーションプログラムと第2アプリケーションプログラムとが特定の関係にある必要はなく、また、第2アプリケーションプログラムと第1アプリケーションプログラムとの間において特定のプロトコルや特定のインターフェースを実装する必要もない。
本実施形態に係るアプリケーションプログラムの実行装置によれば、第2アプリケーションプログラムの複数バージョンのインストールパッケージに対する管理オペレーションを、第1アプリケーションプログラムにより行う。これにより、第2アプリケーションプログラムの動的な更新に都合がよく、ユーザの介在を必要としない。よって、操作や学習に要するユーザの手間を省くことができる。
上述の実施形態に係る装置については、これら装置に含まれる個々のモジュールの動作の詳細については、アプリケーションプログラムの実行方法の実施形態において説明した。それら詳細については、本実施形態では記述しない。
図7は、例示的な実施形態に係るアプリケーションプログラムの実行装置700のブロック図である。装置700は、例えば、携帯電話、テレビ、コンピュータ、デジタル放送端末、メッセージ通信機器、ゲーム機、タブレット、医療機器、運動機器、携帯情報端末、などであり得る。
図7を参照し、装置700は、プロセッサ部702と、メモリ704と、電源部706と、マルチメディア部708と、音声部710と、入出力(I/O)インターフェース712と、センサ部714と、通信部716との少なくとも1つを含んでもよい。
プロセッサ部702は、通常、装置700の動作全体を制御する。例えば、表示、通話、データ通信、カメラ動作、記録動作に関する動作を制御する。プロセッサ部702は、1または複数のプロセッサ720を含んでもよく、命令を実行して、上述の方法におけるステップの全てまたは一部を行う。加えて、プロセッサ部702は、プロセッサ部702と他の部との間の連携を容易にする1つ以上のモジュールを含んでもよい。例えば、プロセッサ部702は、マルチメディア部708とプロセッサ部702との間の連携を容易にするマルチメディアモジュールを備えてもよい。
メモリ704は各種データを格納して、装置700の動作をサポートするように構成されている。データは、例えば、装置700上で実行されるアプリケーションや方法に関する命令、連絡先データ、電話帳データ、メッセージ、写真、動画などである。メモリ704は、揮発性、不揮発性、あるいはその組み合わせなど、どの種類のメモリ装置を使っても実装できる。例えば、スタティックRAM(Static Random Access Memory)、EEPROM(Electrically Erasable Programmable Read−Only Memory)、EPROM(Erasable Programmable Read−Only Memory)、PROM(Programmable Read−Only Memory)、ROM(Read−Only Memory)、磁気メモリ、フラッシュメモリ、磁気ディスク、光ディスクなどである。
電源部706は、装置700の各部に電力を供給する。電源部706は、電力管理システムと、1つまたは複数の電源とを有し、他にも、装置700での電力の生成、管理、配電に関連する構成要素も有し得る。
マルチメディア部708は、装置700からユーザへの出力インターフェースとなるスクリーンを有する。いくつかの実施形態では、スクリーンは液晶ディスプレイ(LCD)とタッチパネル(TP)とを含み得る。スクリーンがタッチパネルを含む場合、スクリーンは、ユーザからの入力の信号を受け付けるタッチスクリーンとして実装され得る。タッチパネルは1つ以上のタッチセンサを含み、タッチ操作、スワイプ操作、タッチパネル上でのジェスチャ操作などを検知し得る。タッチセンサは、タッチ操作あるいはスワイプ操作の範囲を検知し、加えて、そのタッチ操作あるいはスワイプ操作の動作時間や接触圧力も検出してもよい。いくつかの実施形態では、マルチメディア部708は、前面カメラと背面カメラのいずれか、あるいは両方を含む。前面カメラおよび背面カメラは、装置700が撮影モードあるいは動画モードなどの動作モードで稼働している場合に、外部からマルチメディアデータを受信できる。前面カメラおよび背面カメラは、それぞれ固定光学レンズ系であってもよいし、フォーカス機能やズーム機能を備えてもよい。
音声部710は、音声信号の出力および/または入力を行うように構成されている。例えば、音声部710はマイク(MIC)を含む。マイクは、装置700が、通話モード、記録モード、あるいは音声認識モードなどの動作モードで稼働している場合に外部からの音声信号を受信するように構成されている。受信した音声信号はさらにメモリ704に保存されたり、通信部716を介して送信されたりしてもよい。いくつかの実施形態では、音声部710は、さらに、音声信号を出力するスピーカーを有する。
I/Oインターフェース712は、プロセッサ部702と、キーボード、クリックホイール、ボタンなどの周辺機器インターフェースモジュールとの間のインターフェースを提供する。ボタンには、ホームボタン、音量ボタン、スタートボタン、ロックボタンなどがあり得るが、これに限定されない。
センサ部714は、1または複数のセンサを含み、装置700の各側面についての状況分析を提供する。センサ部714は、例えば、装置700の開閉状態を検知したり、ディスプレイとキーボードなど、装置700の部材間の相対的な位置関係を検知したり、装置700の位置あるいは装置700の部材の位置の変化を検知したり、装置700に対するユーザ接触の有無を検出したり、装置700の向きあるいは加速度/減速度を検知したり、装置700の温度変化を検知したりできる。センサ部714は、物理的には接触していないが近くに位置する物体の存在を検出するように構成された近接センサを含んでもよい。センサ部714は、また、画像アプリケーションに用いるCMOSイメージセンサやCCDイメージセンサなどの光センサを有していてもよい。いくつかの実施形態では、センサ部714は、また、加速度センサ、ジャイロセンサ、磁気センサ、圧力センサ、あるいは、温度センサなどを有してもよい。
通信部716は、装置700と他の装置との間の、有線あるいは無線の通信を容易にするように構成されている。装置700は、WiFi、2G、3Gなどの通信規格あるいはその組み合わせに基づいて、無線ネットワークにアクセスしてもよい。一の例示的な実施形態では、通信部716は、放送信号や放送に関連する情報を、外部の放送管理システムから放送チャネル経由で受信する。一の例示的な実施形態では、通信部716は、近距離通信を容易にする近距離無線通信(NFC)モジュールをさらに含む。NFCモジュールの実装には、例えば、RFID(Radio Frequency Identification)技術、IrDA(Infrared Data Association)技術、UWB(Ultra−wideband)技術、Bluetooth(登録商標)(BT)技術、その他の通信技術を用いてもよい。
ある例示的な実施形態では、上述の方法の実行する装置700の実装には、1つ以上の特定用途向け集積回路(ASIC(Application Specific Integrated Circuits))、デジタル信号プロセッサ(DSP(Digital Signgal Processors))、デジタル信号処理装置(DSPD(Digital Signgal Processing Devices))、プログラム可能な論理素子(PLD(Programmable Logic Devices))、フィールドプログラマブルゲートアレイ(FPGA(Field Programmable Gate Arrays))、コントローラ、マイクロコントローラ、マイクロプロセッサ、その他の電子部品を用いてもよい。
ある例示的な実施形態では、メモリ704に格納されているような命令であって、上述の方法を実行するために装置700のプロセッサ720により実行可能な命令を格納した非一時的なコンピュータ可読の記憶媒体が提供される。非一時的なコンピュータ可読の記憶媒体は、例えば、ROM、RAM,CD−ROM,磁気テープ、フロッピー(登録商標)ディスク、光データ記憶装置、などであり得る。
非一時的なコンピュータ可読の記憶媒体が提供され、その記憶媒体に格納された命令が装置700のプロセッサにより実行されると、装置700は、図1あるいは図3に示す実施形態に係るアプリケーションプログラム実行方法を行うことができる。
本開示の他の実施形態は、本願明細書の記載や本開示の実施を通じて当業者には明らかであろう。本願は、本開示の原理にしたがったあらゆる変形、使用、適合を包含することを意図しており、当該分野で公知あるいは慣行の範疇にある逸脱も本願の範囲に含まれる。明細書の記載や例はあくまでも例示であって、本開示の真の範囲および精神は特許請求の範囲において示す。
本開示は上述および添付図面に図示した特定の構成に何ら限定されるものではなく、本開示の範囲から逸脱することなく種々の変形、変更が可能であることは、理解されるであろう。本開示の範囲は、特許請求の範囲によってのみ限定されるべきである。

Claims (20)

  1. 実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するステップと、
    前記第2アプリケーションプログラムのインストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのプログラムコンポーネントを取得するステップと、
    前記第1アプリケーションプログラムによって提供されるランタイム環境において、前記第2アプリケーションプログラムの前記プログラムコンポーネントを実行するステップとを含む、アプリケーションプログラムの実行方法。
  2. 前記第1アプリケーションプログラムによって提供されるランタイム環境において、前記第2アプリケーションプログラムの前記プログラムコンポーネントを実行する前記ステップは、
    前記第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第1アプリケーションプログラムにより特定するステップと、
    前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第1アプリケーションプログラムにより起動するステップと、
    前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するステップとを含む、請求項1に記載の方法。
  3. 前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行する前記ステップは、
    前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すステップと、
    呼び出された前記プログラムコンポーネントを、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するステップとを含む、請求項2に記載の方法。
  4. 前記第2アプリケーションプログラムのインストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムの前記プログラムコンポーネントを取得する前記ステップは、
    前記第2アプリケーションプログラムの前記インストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのコンフィギュレーションファイルを取得するステップと、
    前記第1アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第2アプリケーションプログラムの少なくとも1つのプログラムコンポーネントを取得するステップとを含み、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも1つを含む、請求項2に記載の方法。
  5. 前記第2アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第1アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するステップをさらに含む、請求項4に記載の方法。
  6. 前記第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第1アプリケーションプログラムにより特定する前記ステップは、
    前記第2アプリケーションプログラムの起動中に、前記第1アプリケーションプログラムにより、前記第2アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するステップを含む、請求項2に記載の方法。
  7. 前記第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第1アプリケーションプログラムにより特定する前記ステップは、
    前記オペレーティングシステムから送信されたインテントメッセージを前記第1アプリケーションプログラムにより受信するステップを含み、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
    前記第2アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するステップを含む、請求項5に記載の方法。
  8. 前記オペレーティングシステムから送信されたインテントメッセージを前記第1アプリケーションプログラムにより受信し、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第2アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するステップ、
    および/または
    前記第2アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第1アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するステップをさらに含む、請求項5に記載の方法。
  9. ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも1つを含む管理オペレーションを、前記第1アプリケーションプログラムにより前記第2アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するステップをさらに含む、請求項1〜8のいずれかに記載の方法。
  10. 実行中の第1アプリケーションプログラムにおいて、第2アプリケーションプログラムの実行を指示するように構成されたトリガ信号を受信するように構成された信号受信モジュールと、
    前記第2アプリケーションプログラムのインストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのプログラムコンポーネントを取得するように構成されたインストールパッケージ解析モジュールと、
    前記第1アプリケーションプログラムによって提供されるランタイム環境において、前記第2アプリケーションプログラムの前記プログラムコンポーネントを実行するように構成されたプログラム実行モジュールとを備える、アプリケーションプログラムの実行装置。
  11. 前記プログラム実行モジュールは、
    コンポーネント特定サブモジュールと、サンドボックス起動サブモジュールと、コンポーネント実行サブモジュールとを備え、
    前記コンポーネント特定サブモジュールは、前記第2アプリケーションプログラム内の実行対象のプログラムコンポーネントを、前記第1アプリケーションプログラムにより特定するように構成されており、
    前記サンドボックス起動サブモジュールは、前記プログラムコンポーネントに対応するサンドボックスプログラムコンポーネントを前記第1アプリケーションプログラムにより起動するように構成されており、
    前記コンポーネント実行サブモジュールは、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供されるランタイムコンテキストにおいて、前記プログラムコンポーネントを実行するように構成されている、請求項10に記載の装置。
  12. 前記コンポーネント実行サブモジュールは、呼び出しサブモジュールと実行サブモジュールとを備え、
    前記呼び出しサブモジュールは、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントにより、リフレクション機構を用いて前記プログラムコンポーネントを呼び出すように構成されており、
    前記実行サブモジュールは、呼び出された前記プログラムコンポーネントを、前記第1アプリケーションプログラム内の前記サンドボックスプログラムコンポーネントによって提供される前記ランタイムコンテキストにおいて実行するように構成されている、請求項11に記載の装置。
  13. 前記インストールパッケージ解析モジュールは、ファイル解析サブモジュールとコンポーネント解析サブモジュールとを備え、
    前記ファイル解析サブモジュールは、前記第2アプリケーションプログラムの前記インストールパッケージを前記第1アプリケーションプログラムによりロードおよび解析して、前記第2アプリケーションプログラムのコンフィギュレーションファイルを取得するように構成されており、
    前記コンポーネント解析サブモジュールは、前記第1アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがって、前記第2アプリケーションプログラムの少なくとも1つのプログラムコンポーネントを取得するように構成されており、前記プログラムコンポーネントは、アクティビティコンポーネントと、サービスコンポーネントと、コンテンツプロバイダコンポーネントと、ブロードキャストレシーバコンポーネントとの少なくとも1つを含む、請求項11に記載の装置。
  14. 前記第2アプリケーションプログラムの各プログラムコンポーネントが監視するインテントメッセージのタイプを、前記第1アプリケーションプログラムにより前記コンフィギュレーションファイルにしたがってオペレーティングシステムに登録するように構成されたメッセージ登録モジュールをさらに備える、請求項13に記載の装置。
  15. 前記コンポーネント特定サブモジュールは、第1特定サブモジュールを備え、
    前記第1特定サブモジュールは、前記第2アプリケーションプログラムの起動中に、前記第1アプリケーションプログラムにより、前記第2アプリケーションプログラムからフィードバックされたデフォルト実行コンポーネントを受信し、前記デフォルト実行コンポーネントを実行対象の前記プログラムコンポーネントとして特定するように構成されている、請求項11に記載の装置。
  16. 前記コンポーネント特定サブモジュールは、メッセージ受信サブモジュールと第2特定サブモジュールとを備え、
    前記メッセージ受信サブモジュールは、前記オペレーティングシステムから送信されたインテントメッセージを前記第1アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、
    前記第2特定サブモジュールは、前記第2アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントが未起動の場合には、前記インテントメッセージを監視するように構成された前記プログラムコンポーネントを、実行対象のプログラムコンポーネントとして特定するように構成されている、請求項14に記載の装置。
  17. 前記オペレーティングシステムから送信されたインテントメッセージを前記第1アプリケーションプログラムにより受信するように構成されており、前記インテントメッセージは、前記登録されたインテントメッセージのタイプに合致し、前記第2アプリケーションプログラムにおいて、前記インテントメッセージを監視するように構成されたプログラムコンポーネントが起動済みの場合には、前記プログラムコンポーネントに前記インテントメッセージを処理のために送信するように構成された第1送信モジュール、
    および/または
    前記第2アプリケーションプログラムのあるプログラムコンポーネントにより送信すべきインテントメッセージを、前記第1アプリケーションプログラムにより取得し、前記インテントメッセージを前記オペレーティングシステムに送信するように構成された第2送信モジュールをさらに備える、請求項14に記載の装置。
  18. ダウンロードオペレーションと、更新オペレーションと、削除オペレーションとの少なくとも1つを含む管理オペレーションを、前記第1アプリケーションプログラムにより前記第2アプリケーションプログラムのインストールパッケージの異なるバージョンに対して実行するように構成されたインストールパッケージ管理モジュールをさらに備える、請求項10〜17のいずれかに記載の装置。
  19. コンピュータにおいて実行され、請求項1〜9のいずれかに記載のアプリケーションプログラム実行方法を前記コンピュータに実行させるコンピュータプログラム。
  20. 請求項19に記載のコンピュータプログラムを格納したコンピュータ可読の記憶媒体。
JP2016548410A 2014-09-16 2015-01-22 アプリケーションプログラムの実行方法および装置 Active JP6068736B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410470307.8A CN104267977B (zh) 2014-09-16 2014-09-16 应用程序运行方法及装置
CN201410470307.8 2014-09-16
PCT/CN2015/071360 WO2016041312A1 (zh) 2014-09-16 2015-01-22 应用程序运行方法及装置

Publications (2)

Publication Number Publication Date
JP2016534487A JP2016534487A (ja) 2016-11-04
JP6068736B2 true JP6068736B2 (ja) 2017-01-25

Family

ID=52159501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016548410A Active JP6068736B2 (ja) 2014-09-16 2015-01-22 アプリケーションプログラムの実行方法および装置

Country Status (8)

Country Link
EP (1) EP2998899A1 (ja)
JP (1) JP6068736B2 (ja)
KR (1) KR20160046751A (ja)
CN (1) CN104267977B (ja)
BR (1) BR112015008624A2 (ja)
MX (1) MX356175B (ja)
RU (1) RU2647625C2 (ja)
WO (1) WO2016041312A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104267977B (zh) * 2014-09-16 2017-12-29 小米科技有限责任公司 应用程序运行方法及装置
US9870239B2 (en) 2014-09-16 2018-01-16 Xiaomi Inc. Method and device for running application program
CN105204894B (zh) * 2015-08-28 2019-07-23 小米科技有限责任公司 安装智能设备的插件的方法和装置
JP6800620B2 (ja) * 2016-06-06 2020-12-16 キヤノン株式会社 情報処理装置、制御方法、及びプログラム
CN107515780B (zh) * 2016-06-17 2021-03-16 斑马智行网络(香港)有限公司 应用间调用关系的确定方法、调用规则生成方法及装置
CN106201508B (zh) * 2016-07-08 2020-06-05 北京金山安全软件有限公司 一种信息显示方法、装置及电子设备
CN106528206A (zh) * 2016-10-12 2017-03-22 北京奇虎科技有限公司 应用的启动控制方法、装置和加固应用安装包的装置
CN107992313A (zh) * 2016-10-25 2018-05-04 航天信息软件技术有限公司 软件在线升级方法及装置
CN106598662B (zh) * 2016-12-08 2020-04-10 蓝信移动(北京)科技有限公司 基于android的应用加载方法及装置
CN106775862A (zh) * 2016-12-08 2017-05-31 蓝信工场(北京)科技有限公司 应用加载方法及装置
CN108255545B (zh) * 2016-12-28 2022-09-02 阿里巴巴集团控股有限公司 组件间的功能调用方法、装置及组件化架构系统
CN108287758A (zh) * 2017-01-09 2018-07-17 阿里巴巴集团控股有限公司 一种应用资源管理方法、使用方法及装置
CN106874746B (zh) * 2017-01-13 2020-01-17 北京安云世纪科技有限公司 应用程序调用方法、装置和移动终端
CN107402752B (zh) * 2017-06-09 2021-07-27 中国邮政储蓄银行股份有限公司 应用的定时触发方法和装置
WO2019028680A1 (zh) * 2017-08-08 2019-02-14 华为技术有限公司 一种广播事件处理方法及设备
CN108038010A (zh) * 2017-12-25 2018-05-15 青岛海信电器股份有限公司 安卓系统启动阶段广播发送方法、装置和终端
CN108108171B (zh) * 2018-01-18 2019-02-26 西南大学 一种手机远程单片机编译运行系统
CN108595220B (zh) * 2018-04-25 2021-04-16 上海掌门科技有限公司 应用组件的处理方法、设备及计算机可读存储介质
KR102081692B1 (ko) * 2018-11-13 2020-04-27 주식회사 아게르냐 설정된 언어에 맞추어 농어민 정보를 제공하는 터치스크린 키보드
CN110083695A (zh) * 2019-05-10 2019-08-02 百度在线网络技术(北京)有限公司 技能服务调用方法、装置及存储介质
CN110175082A (zh) * 2019-05-31 2019-08-27 三角兽(北京)科技有限公司 通知消息的处理方法、装置、电子设备及存储介质
KR102713970B1 (ko) 2019-07-10 2024-10-08 삼성전자주식회사 어플리케이션을 관리하는 방법 및 그 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69941142D1 (de) * 1998-05-06 2009-09-03 Sun Microsystems Inc Verarbeitungsmaschine und verarbeitungsverfahren
CN101593100A (zh) * 2008-05-30 2009-12-02 爱思开电讯投资(中国)有限公司 运行迷你应用程序的方法、执行该方法的装置及机器可读介质
US8807440B1 (en) * 2010-12-17 2014-08-19 Google Inc. Routing secure element payment requests to an alternate application
JP5410471B2 (ja) * 2011-05-24 2014-02-05 株式会社Nttドコモ 複数のアプリケーションを連携起動する通信端末、連携起動方法及びコンピュータプログラム
US9081959B2 (en) * 2011-12-02 2015-07-14 Invincea, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
JP5723760B2 (ja) * 2011-12-28 2015-05-27 Kddi株式会社 アプリケーション解析装置、アプリケーション解析システム、およびプログラム
RU2477520C1 (ru) * 2012-03-14 2013-03-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ динамической адаптации функционала антивирусного приложения на основе конфигурации устройства
CN102722392B (zh) * 2012-06-07 2015-11-25 腾讯科技(深圳)有限公司 软件运行方法和系统
CN103150166B (zh) * 2013-03-08 2017-02-08 深圳市奇维百纳网络有限公司 一种与设备同步的自助创建移动应用程序的方法
CN104267977B (zh) * 2014-09-16 2017-12-29 小米科技有限责任公司 应用程序运行方法及装置

Also Published As

Publication number Publication date
JP2016534487A (ja) 2016-11-04
RU2647625C2 (ru) 2018-03-16
CN104267977B (zh) 2017-12-29
MX356175B (es) 2018-05-17
EP2998899A1 (en) 2016-03-23
RU2015113732A (ru) 2016-11-10
WO2016041312A1 (zh) 2016-03-24
BR112015008624A2 (pt) 2017-07-04
CN104267977A (zh) 2015-01-07
MX2015003752A (es) 2017-03-20
KR20160046751A (ko) 2016-04-29

Similar Documents

Publication Publication Date Title
JP6068736B2 (ja) アプリケーションプログラムの実行方法および装置
CN107329742B (zh) 软件开发工具包调用方法及装置
US9870239B2 (en) Method and device for running application program
JP6072362B2 (ja) アプリケーションプログラムの処理方法、装置、プログラム及び記憶媒体
US11934848B2 (en) Control display method and electronic device
JP6144843B2 (ja) ルータ管理アプリケーションをルータファームウェアに対して互換化する方法および装置
US9886264B2 (en) Method and device for upgrading firmware
US20170060566A1 (en) Method and device for installing plug-in of smart device
JP6289764B2 (ja) 機器制御方法、装置、プログラムおよび記録媒体
JP2016531360A (ja) 記憶空間を節約するための方法、装置、プログラム及び記憶媒体
WO2022127661A1 (zh) 应用共享方法、电子设备和存储介质
CN104536891A (zh) 系统测试方法及装置
KR20120089000A (ko) 디지털 디바이스에서 어플리케이션 자동 인스톨 기능을 제공하기 위한 장치 및 방법
JP6289758B2 (ja) 制御プログラムダウンロード方法、装置、プログラム及び記録媒体
JP6315740B2 (ja) テーマアプリケーションのロード方法及びデバイス
KR20200135714A (ko) 파일 전송 방법, 장치 및 컴퓨터 판독가능한 저장매체
JP2017505081A (ja) 機器接続を促す方法および装置
CN103916468A (zh) 系统升级方法、终端、服务器及升级系统
CN105653316B (zh) 监听软件被卸载的方法及装置
CN105094830A (zh) 一种执行目标功能的方法和装置
CN107911482A (zh) 目标应用打开方法及装置
CN106354595B (zh) 移动终端、硬件组件状态检测方法及装置
CN115225966A (zh) 应用启动方法、装置、终端设备和存储介质
CN106844074A (zh) 更新应用程序的方法和装置
CN107122213B (zh) 程序的运行方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150417

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161222

R150 Certificate of patent or registration of utility model

Ref document number: 6068736

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250