JP6410992B1 - バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化 - Google Patents

バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化 Download PDF

Info

Publication number
JP6410992B1
JP6410992B1 JP2018517190A JP2018517190A JP6410992B1 JP 6410992 B1 JP6410992 B1 JP 6410992B1 JP 2018517190 A JP2018517190 A JP 2018517190A JP 2018517190 A JP2018517190 A JP 2018517190A JP 6410992 B1 JP6410992 B1 JP 6410992B1
Authority
JP
Japan
Prior art keywords
native application
instance
background
deep link
search results
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
JP2018517190A
Other languages
English (en)
Other versions
JP2018534670A (ja
Inventor
ジェヒョン・ヨム
ドン・ハ・リ
ジョンホ・チェ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Application granted granted Critical
Publication of JP6410992B1 publication Critical patent/JP6410992B1/ja
Publication of JP2018534670A publication Critical patent/JP2018534670A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/134Hyperlinking
    • 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/445Program loading or initiating
    • G06F9/44594Unloading
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

検索結果から1つまたは複数のネイティブアプリケーションディープリンクを選択し、選択された各ネイティブアプリケーションディープリンクについて、ネイティブアプリケーションディープリンクが対応しているネイティブアプリケーションのバックグラウンドインスタンスをインスタンス化し、バックグラウンドアンロードイベントの発生に応じて、ネイティブアプリケーションディープリンクからインスタンス化されバックグラウンドアンロードイベントの発生に先立ってフォアグラウンドの状態にされなかったネイティブアプリケーションのバックグラウンドインスタンスを決定し、インスタンス化されバックグラウンドアンロードイベントの発生に先立ってフォアグラウンドの状態にされなかったネイティブアプリケーションのバックグラウンドインスタンスの各々を終了するための方法、システム、および装置である。

Description

バックグラウンドにおけるネイティブアプリケーションを事前インスタンス化することに関する。
インターネットは、多種多様な情報へのアクセスを提供している。例えば、デジタル画像ファイル、ビデオおよび/またはオーディオファイル、ならびに特定のテーマまたは特定のニュース記事に関するウェブページリソースが、インターネットを介してアクセス可能である。
さらに、タブレットコンピュータおよびスマートフォンの出現に伴い、ウェブページリソースの使用によって支援される同一の機能の動作を支援するネイティブアプリケーションが、今日では数多く提供されている。加えて、ゲームおよび他のアプリケーションなどといった、そのような同期コンテンツを伴うウェブサイトを有していないネイティブアプリケーションも、タブレットコンピュータおよびスマートフォン上で非常に人気を博している。それゆえ、今日では検索システムも、これらのネイティブアプリケーションの検索を支援している。
そのプロセスによって検索システムがネイティブアプリケーションに関する情報を収集する1つのプロセスは、ネイティブアプリケーションのための「ディープリンク」にアクセスすることによるものである。ディープリンクは、ネイティブアプリケーションの特定の環境インスタンスを指定する命令であり、ユーザデバイスにおいて選択されると指定のネイティブアプリケーションの環境インスタンスをインスタンス化するようにネイティブアプリケーションにさせるように構成される。ネイティブアプリケーションは、ユーザデバイス上のネイティブアプリケーション内における表示のための環境インスタンスを生成する。
本明細書は、ネイティブアプリケーションを事前インスタンス化するディープリンクが検索結果のセットに提示される際に、バックグラウンドにネイティブアプリケーションを事前インスタンス化することに関連する技術を説明している。
一般に、本明細書において説明した発明特定事項の革新的な態様の1つは、結果のセット、例えば、検索結果のセットを受信することであって、セットは、各々がネイティブアプリケーションのインスタンスをインスタンス化するネイティブアプリケーションディープリンクを含む結果を含み、ネイティブアプリケーションは、ネイティブアプリケーション内にユーザデバイス上での表示のための環境インスタンスを生成し、ネイティブアプリケーションは、ユーザデバイス上で動作するブラウザアプリケーションとは独立して動作する、受信することをし、結果についてのユーザ選択に先立って、結果からネイティブアプリケーションディープリンクを選択し、ユーザ選択に先立った選択において選択されたネイティブアプリケーションディープリンクの各々に関して、ネイティブアプリケーションディープリンクが対応しているネイティブアプリケーションのバックグラウンドインスタンスをインスタンス化し、バックグラウンドアンロードイベントの発生に応じて、ネイティブアプリケーションディープリンクからインスタンス化されバックグラウンドアンロードイベントの発生に先立ってフォアグラウンドの状態にされなかったネイティブアプリケーションのバックグラウンドインスタンスを決定し、インスタンス化されバックグラウンドアンロードイベントの発生に先立ってフォアグラウンドの状態にされなかったネイティブアプリケーションのバックグラウンドインスタンスの少なくとも一部好ましくは各々を終了するアクションを含む、方法において具現化され得る。本態様の他の実施形態は、対応するシステム、装置、および、コンピュータストレージデバイス上に符号化された方法のアクションを行うように構成されるコンピュータプログラムを含む。本態様の別の実施形態は、データ処理装置によって実行されるとデータ処理装置に発明の方法を含む動作を行うようにさせる命令を含む、コンピュータ可読記憶媒体を含む。
本明細書において説明した発明特定事項の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するために実施され得る。本システムは、ネイティブアプリケーションのバックグラウンド事前インスタンス化を有効にする。バックグラウンド事前インスタンス化は、ユーザデバイスを使用するユーザのアビリティを邪魔または阻害することなく行われる。ネイティブアプリケーションの事前インスタンス化は、ユーザが特定のネイティブアプリケーションに対応するディープリンクを選択する際のユーザにとっての遅延時間を低減する。さらに、ネイティブアプリケーションの検索結果に関して事前インスタンス化され選択されなかったネイティブアプリケーションの自動終了は、ユーザが介入することなく、ユーザデバイスのリソースを自動的に開放している。そのため、アプリケーションが事前インスタンス化されるようにするためのネイティブアプリケーションの検索結果をユーザが選択する際に生じる遅延の低減は、ユーザが検索環境から離脱する操作をした後にバックグラウンドにインスタンス化された多数のネイティブアプリケーションがそのままになってしまうことに付随するコストをもたらすことはない。
本明細書において説明した発明特定事項の1つまたは複数の実施形態の詳細を以下の添付の図面および説明において記載している。他の特徴、態様、および発明特定事項の利点は、説明、図面、および特許請求の範囲から明らかとなろう。
ネイティブアプリケーションが、バックグラウンドにインスタンス化され、フォアグラウンドの状態にされる、例示的な環境のブロック図である。 ネイティブアプリケーション検索結果からネイティブアプリケーションを事前インスタンス化するように構成されるユーザデバイスのブロック図である。 ネイティブアプリケーションのバックグラウンドインスタンスをインスタンス化するためのプロセスを説明しているフロー図である。
様々な図面における類似の参照番号および符号は、類似の要素を示す。
システムは、検索クエリに対応する検索結果のセットを受信する。検索結果のセット内には、ディープリンクがある。システムは、ディープリンクの存在を認識し、ユーザデバイスのバックグラウンドに、検索結果内の各ディープリンクに対応しているネイティブアプリケーションを事前インスタンス化する。本明細書で使用しているように、ネイティブアプリケーションは、ネイティブアプリケーションの環境内にユーザデバイス上での表示のための環境インスタンスを生成し、ユーザデバイス上でブラウザアプリケーションとは独立して動作する。ネイティブアプリケーションは、特定のユーザデバイスオペレーティングシステムおよびマシンファームウェア上で動作するように特に意図されているアプリケーションである。そのため、ネイティブアプリケーションは、ブラウザベースのアプリケーションおよびブラウザでレンダリングされるリソースとは異なる。後者については、それらがインスタンス化またはレンダリングされるたびに、ウェブサーバからダウンロードされる要素または命令のすべてまたは少なくとも一部を必要とする。さらに、ブラウザベースのアプリケーションおよびブラウザでレンダリングされるリソースは、ブラウザ内でウェブ対応モバイルデバイスによって処理され得るため、オペレーティングシステム固有のものではない。
ディープリンクは、ネイティブアプリケーションの特定の環境インスタンスを指定する命令であり、ユーザデバイスにおいて選択されると指定のネイティブアプリケーションの環境インスタンスをインスタンス化するようにネイティブアプリケーションにさせるように構成される。ネイティブアプリケーションは、ユーザデバイス上でのネイティブアプリケーション内における表示のための環境インスタンスを生成する。例えば、ディープリンクは、ゲーム環境のための選択メニュー、または、新規サイト、フォーラムなどといったウェブサイトからのコンテンツ、または、料理アプリケーションのための特定のレシピなどを指定し得る。
本明細書におけるシステムおよび方法は、ネイティブアプリケーションをオープンすることを望んでいるユーザのための遅延時間を低減するために、ネイティブアプリケーションの環境インスタンスの事前インスタンス化を行っている。ある実施形態においては、システムは、1つまたは複数のディープリンクを含む検索結果のセットを受信したことに応じて、検索結果内に提示されている1つまたは複数のディープリンクを識別し、1つまたは複数のディープリンクに対応するネイティブアプリケーションのための環境インスタンスを事前起動または事前インスタンス化する。ネイティブアプリケーションが事前インスタンス化される際には、ユーザが事前インスタンス化に気づくことがないように、ユーザデバイスのバックグラウンドに起動される。
いくつかの実施形態においては、ユーザがディープリンクを検索結果から選択すると、ネイティブアプリケーションの事前インスタンス化された環境インスタンスはフォアグラウンドの状態にされ、それ以外の事前インスタンス化された環境インスタンスは終了される。他の実施形態においては、システムがアンロードイベントを開始すると、ネイティブアプリケーションのすべての事前インスタンス化された環境インスタンスは終了される。
これらの特徴および追加の特徴を以下に詳細に説明する。
図1Aは、ネイティブアプリケーションが、バックグラウンドにインスタンス化され、フォアグラウンドの状態にされる、例示的な環境100のブロック図である。インターネットなどのコンピュータネットワーク102は、リソースパブリッシャウェブサイト104、アプリケーションパブリッシャ106、ユーザデバイス108、および検索システム110を接続している。
リソースパブリッシャウェブサイト104は、ドメインに関連付けられた1つまたは複数のウェブリソース105を含み、1つまたは複数のロケーションにある1つまたは複数のサーバによってホストされている。一般的に、リソースパブリッシャウェブサイトは、テキスト、画像、マルチメディアコンテンツ、およびプログラミング要素を含み得る、ハイパーテキストマークアップ言語(HTML)で構成されているウェブページのコレクションである。各ウェブサイト104は、ウェブサイト104を制御、管理、および/または所有しているエンティティであるコンテンツパブリッシャによって維持される。
ウェブページリソースは、ネットワーク102を介してパブリッシャウェブサイト104によって提供され得るとともに、リソースアドレス、例えば、ユニフォームリソースロケータ(URL)を有する任意のデータである。ウェブリソースは、数例挙げるとすれば、HTMLページ、画像ファイル、ビデオファイル、オーディオファイル、およびフィードソースであり得る。リソースは、例えば、メタ情報およびハイパーリンクといった、埋め込み情報、および/または、例えば、クライアントサイドスクリプトといった、埋め込み命令を含み得る。
アプリケーションパブリッシャウェブサイト106は、1つまたは複数のウェブリソース105も含み得るし、ネイティブアプリケーション107も提供する。上述したように、ネイティブアプリケーション107は、特定のユーザデバイスオペレーティングシステムおよびマシンファームウェア上で動作するように特に意図されているアプリケーションである。本明細書において使用しているように、「環境インスタンス」とは、テキスト、画像などといったコンテンツが表示される、ネイティブアプリケーション内の表示環境のことである。環境インスタンスは、特定のネイティブアプリケーションに固有のものであり、ネイティブアプリケーションは、ユーザデバイス108aの特定のオペレーティングシステムに固有のものである。環境インスタンスがネイティブアプリケーション内に生成されるとともにネイティブアプリケーションに固有のものである一方で、ウェブリソースがウェブページリソースと互換性のある任意のブラウザ内にレンダリングされ得る点で、環境インスタンスは、レンダリングされるウェブリソースとは異なり、ユーザデバイスのオペレーティングシステムとは独立している。
ユーザデバイス108aは、ユーザの制御下にある電子デバイスである。ユーザデバイス108aは、ネットワーク102を介してウェブページリソース105およびネイティブアプリケーション107を要求および受信することが一般的に可能である。例示的なユーザデバイス108aは、パーソナルコンピュータ、モバイル通信デバイス、およびタブレットコンピュータを含む。
ウェブリソース105およびネイティブアプリケーション107を検索するために、検索システム110は、ウェブインデックス112およびアプリケーションインデックス114にアクセスする。ウェブインデックス112は、例えば、パブリッシャウェブサイト104をクローリングすることで構築された、ウェブリソース105のインデックスである。アプリケーションインデックス114は、ネイティブアプリケーション107のための環境インスタンスのインデックスであり、ネイティブアプリケーションのアプリケーションインスタンス122からクローリングされたデータを受信するインデクサ116を使用して構築される。別個のインデックスとして示しているが、ウェブインデックス112およびアプリケーションインデックス114を単一のインデックスに結合することは可能である。
ユーザデバイス108aは、検索クエリを検索システム110に送信する。各クエリに応じて、検索システム110は、ウェブインデックス112およびアプリケーションインデックス114にアクセスして、クエリに関連しているリソースおよびアプリケーションをそれぞれ識別している。検索システム110は、それぞれ、ウェブリソース検索結果およびネイティブアプリケーション検索結果の形式で、例えば、リソースおよびアプリケーションを識別し得る。生成されると、検索結果は、クエリを受信したユーザデバイス108aに提供される。
ウェブリソース検索結果は、ウェブリソースを識別し特定の検索クエリを満足する情報を提供する検索システム110によって生成されたデータである。リソースに関するウェブリソース検索結果は、ウェブページのタイトル、リソースから抽出されたテキストのスニペット、およびリソースのためのリソースロケータ、例えば、ウェブページのURLを含み得る。ネイティブアプリケーション検索結果は、ネイティブアプリケーションを指定するとともに、環境インスタンスのアプリケーションインデックス114の検索に応じて生成される。ネイティブアプリケーション検索結果は、ネイティブアプリケーションの特定の環境インスタンスを指定し、ネイティブアプリケーションに指定された環境インスタンスを開始させるように構成される、「ディープリンク」を含む。例えば、ネイティブアプリケーション検索結果の選択は、ネイティブアプリケーションが(ユーザデバイス108にインストールされている場合には)起動するようにさせ、スクリーンショットの形式でアプリケーション検索結果内で参照されている環境インスタンスを生成し得る。
上述したように、ネイティブアプリケーション107を提供しているパブリッシャ106はまた、ディープリンクを検索システム110に提供している。さらに、サードパーティも、ネイティブアプリケーションのためのディープリンクを提供し得る。加えて、検索システム110は、アプリマップ、ウェブページアノーテーションなどといった、他の複数のソースからディープリンクを発見し得るし、そのため、ディープリンクのセットも常に変化し得る。例えば、アプリケーションパブリッシャは、ユニフォームリソースアイデンティファイア(URI)(または、パブリッシャによって発行されるネイティブアプリケーションに固有のものである他の命令タイプ)の形式でディープリンク109のリストを提供し得る。これらのディープリンクは、クローリングされアプリケーションインデックス114にインデックス化されることパブリッシャ106が望んでいるディープリンクである。
ディープリンクは、ネイティブアプリケーションの名称を指定し得るし、オプションパラメータ、例えば、<app_name>://<params>を含み得る。これらのオプションパラメータは、ネイティブアプリケーション内の特定のスクリーン、メニュー、または環境などといったなんらかの状態で、ネイティブアプリケーションがインスタンス化するようにさせ得る。例えば、ネイティブアプリケーション「Example_App」については、ネイティブアプリケーションを単に起動するためのディープリンクは、以下の様な、パラメータを有していないアプリケーション名称であり得る。
Example_App://
しかしながら、ネイティブアプリケーション検索結果は、ネイティブアプリケーションに対してある情報または特定の状態を指定すべきである場合には、ある情報または特定の状態がパラメータによって指定され得る。例えば、アプリケーションが一意なIDであるNews12345を有しているあるニュース記事に関してインスタンス化することについては、ディープリンクは、以下の通りであり得る。
Example_App://News12345
ユーザは、ウェブリソース検索結果118a、118c、および118n、ならびにネイティブアプリケーション検索結果118b、118d、および118eを含む検索結果ページ117が返信されることになる、検索クエリをユーザデバイス108a上で送信し得る。システムは、検索結果ページ117上で提示されているネイティブアプリケーション検索結果118b、118d、および118e内のディープリンクを検出し、ユーザデバイス108aのバックグラウンドにネイティブアプリケーション検索結果118b、118d、および118eに対応するネイティブアプリケーション120を事前インスタンス化することを開始する。いくつかの実施形態においては、バックグラウンドに事前インスタンス化されたネイティブアプリケーションインスタンス120は、ユーザが閲覧または関与するアクティブな表示領域を有していない。そのため、ネイティブアプリケーション107が起動および動作している間、ネイティブアプリケーションが動作していることにユーザが気づくことがない方法でインスタンス化される。
図1Bは、ネイティブアプリケーション検索結果からネイティブアプリケーションを事前インスタンス化するように構成されるユーザデバイス108aのブロック図である。ユーザデバイス117のオペレーティングシステムは、いくつかの実施形態においては、バックグラウンドに起動されるようにする方式で、ディープリンク内に検出されたネイティブアプリケーションを起動するように構成される。例えば、ディープリンクバックグラウンドランチャー140を定義する命令は、オペレーティングシステムにおいて起動され得る。あるいは、ディープリンクバックグラウンドランチャー140に対する命令は、以下に説明するようなプロセスネイティブアプリケーション検索結果を処理するためにユーザが起動する別のネイティブアプリケーションによって実現され得る。さらに他の実施形態においては、ディープリンクバックグラウンドランチャー140に対する命令は、任意の検索結果ページまたはネイティブアプリケーションディープリンクを含むリソースとともに含まれ得る。さらに他の実施形態においては、ランチャー140は、検索システム110内に実現され得るし、ディープリンクを処理する際にユーザデバイス108aがネイティブアプリケーションを事前インスタンス化するようにさせる必要がある場合には、ディープリンクを修正するように構成される。
以下で説明しているように、ディープリンクバックグラウンドランチャー140は、ネイティブアプリケーションをいつ事前インスタンス化するか、ネイティブアプリケーションを事前インスタンス化するためにどのディープリンクを処理するか、事前インスタンス化されていたネイティブアプリケーションをいつ終了するかを決定するように構成される。
いくつかの実施形態においては、バックグラウンド起動は、例えば、以下の様に、ディープリンクにコマンドラインパラメータを付け加えてディープリンクを処理することによって行われ得る。
Example_App://News12345&-bg
ここで、「-bg」は、ネイティブアプリケーションがバックグラウンドに起動するようにさせるコマンドラインパラメータである。バックグラウンドにネイティブアプリケーションを起動するための他の処理も使用され得る。
いくつかの実施形態においては、事前インスタンス化されるネイティブアプリケーション107の数は、制約に基づいて決定される。例えば、事前インスタンス化されるネイティブアプリケーションインスタンス120の数は、ユーザデバイスのリソース(例えば、RAM、ドライブ領域、処理能力など)を過剰に使用することがないようにするために、利用可能なシステムリソースの量によって決まり得る。
加えて、ディープリンクバックグラウンドランチャー140は、ランキング閾値に基づいてアクティブ状態で事前インスタンス化されるネイティブアプリケーションインスタンスの数を制限し得る。例えば、ランキング閾値は、検索結果内のディープリンクの最小の順序位置に基づき得る。図示するに当たって、ランキング閾値が5の順序位置であると仮定している。そのため、順序位置1〜5にある任意のネイティブアプリケーション検索結果が、事前インスタンス化のために選択されることになるであろうし、5以上の順序位置にあるものはいずれも選択されないであろう。ディープリンクバックグラウンドランチャー140は、検索結果についてのユーザ選択に先立って、順序位置がそれぞれ2、4、および5となっているネイティブアプリケーション検索結果118b、118d、および118eからネイティブアプリケーションディープリンクを選択する。そのため、ランキング閾値を満たす検索結果117の最も高くランク付けされた適切なサブセットのうちの任意のネイティブアプリケーション検索結果が、事前インスタンス化のために選択されることになる。
いくつかの実施形態においては、加えてまたはあるいは、ランキング閾値は、ネイティブアプリケーションのためのユーザ行動シグナルに基づき得る。例えば、ユーザ行動シグナルは、時間帯、曜日、および他の予測変数に基づいて、どのくらいの可能性でユーザがディープリンクをクリックし得るかを指定し得る。そのため、システムは、事前インスタンス化されるネイティブアプリケーションインスタンス120の数を、ユーザが最も選択する可能性が高いであろうディープリンクを有するもののみに制限するように選択し得る。検索システム110は、ユーザ履歴データにアクセスして、各ディープリンクのための確率を決定し、その確率をディープリンクバックグラウンドランチャーに提供し得る。
加えてまたはあるいは、他の実施形態においては、ランキング閾値は、検索クエリに関する最小関連性スコアに基づく。検索システムは、ディープリンクが検索クエリにどれくらい関連しているかに基づいてディープリンクに関する関連性スコアを生成し得る。関連性スコアは、類似の検索クエリに応答してディープリンクがクリックされる回数、ネイティブアプリケーションに対する用語の関連性の程度、または任意の他の関連性スコア決定機構によって決定され得る。関連性スコアは、ディープリンクバックグラウンドランチャー140が決定をするために、ランチャー140に提供され得る。
ランチャー140は、検索結果ページ117内の選択された対応するディープリンクに基づいてどのネイティブアプリケーション107を事前インスタンス化するかを選択する。いくつかの実施形態においては、ランチャー140は、ユーザデバイス動作システムに一意な識別子および満了時間とともに「開始」イベントを送信して、バックグラウンドにネイティブアプリケーションインスタンスを事前インスタンス化する。満了時間は、事前インスタンス化されるネイティブアプリケーション120に適用され、事前インスタンス化されたネイティブアプリケーションインスタンス120の終了処理122より前の事前インスタンス化されたネイティブアプリケーション120がユーザインタラクションがない状態で動作する時間量を定義している、所定の時間である。満了時間および事前インスタンス化されたネイティブアプリケーションインスタンスの終了処理122に関するさらなる詳細を以下に提供している。
いくつかの実施形態においては、ランチャー140によって選択および事前インスタンス化される各ディープリンクについては、ネイティブアプリケーション107の特定のインスタンスおよびそれに対応するディープリンクに対応する一意な識別子が生成される。いくつかの実施形態においては、一意な識別子は、ハッシュ関数をディープリンクに適用することによって生成される。例えば、ハッシュ関数は、ネイティブアプリケーションの識別子およびユニフォームリソースインディケータに適用され得る。ランチャーは、アクティブなインスタンス化の各々を識別するための一意な識別子を使用して、ネイティブアプリケーションのバックグラウンドインスタンスを事前インスタンス化する。ディープリンクを有するネイティブアプリケーション検索結果についてのユーザ選択時に、ランチャー140は、その選択を受信し、ネイティブアプリケーションディープリンクが対応するネイティブアプリケーション107が事前インスタンス化されていたかどうかを、つまり、バックグラウンドネイティブアプリケーションインスタンス120内にインスタンス化されていたかを決定する。ネイティブアプリケーション107がバックグラウンドにインスタンス化されていた場合には、ディープリンクのユーザ選択は、バックグラウンドインスタンスにインスタンス化されたネイティブアプリケーション120をユーザデバイス108b上のフォアグラウンドインスタンスに移行させる。ネイティブアプリケーション107のフォアグラウンドインスタンスは、ユーザが閲覧可能かつ容易にインタラクションを行うことができるアクティブな表示領域を有する。ネイティブアプリケーションは事前インスタンス化されていたため、フォアグラウンドへの移行は、ネイティブアプリケーションがユーザ選択の後に起動される場合と比べて、はるかに短い遅延で行われる。(ユーザによって選択されたネイティブアプリケーション107がバックグラウンドに事前インスタンス化されていなかった場合には、ネイティブアプリケーションは、従来の方式でネイティブアプリケーションを起動することによってオープンされる。)
一意な識別子を生成する実施形態においては、ディープリンクのユーザ選択時に、システムは、一意な識別子とともに「オープン」イベントを送信して、ネイティブアプリケーションがフォアグラウンドインスタンスに移行するようにさせる。同一の一意な識別子を有するネイティブアプリケーションがバックグラウンドに事前インスタンス化されていない場合には、ネイティブアプリケーションは、ネイティブアプリケーションを起動する処理によってオープンされる。
いくつかの実施形態においては、バックグラウンドアンロードイベントは、ネイティブアプリケーションバックグラウンドインスタンス120のインスタンス化から計測したタイムアウト期間の満了時に発生し得る。例えば、フォアグラウンドの状態にされることがなかった、事前インスタンス化されたネイティブアプリケーションインスタンス120は、アクティブな事前インスタンス化されたインスタンス120を有するネイティブアプリケーション107に対応する一意な識別子を伴う「アンロード」イベントをランチャー140が生成および送信した際に、終了される122。システムに「アンロード」イベントをネイティブアプリケーション107に送信させ得る様々な実施形態が存在する。例えば、特定の事前インスタンス化されたネイティブアプリケーションインスタンス120に対する「開始」イベントで送信されていた満了時間内にディープリンクとのインタラクションをユーザが行わなかった場合には、事前インスタンス化されたネイティブアプリケーションインスタンス120のためのタイマが満了し、ランチャー140はバックグラウンドアンロードイベント142を生成する。このことが、ネイティブアプリケーション107の終了処理122を行わせる。
他の実施形態においては、バックグラウンド「アンロード」イベントは、検索結果117のセットを表示しているページのアンロード時に発生する。ページは、例えば、ある検索のための検索結果の新規セットが要求されたり、特定のディープリンクが選択されたり、またはページがクローズされると、「アンロード」され得る。例えば、特定のディープリンクのユーザ選択時に、特定のネイティブアプリケーションのための「オープン」イベントが、ランチャー140によって生成され、「アンロード」イベントが、ユーザによって選択された特定のディープリンクに関連していない、それ以外のアクティブな事前インスタンス化されたネイティブアプリケーションインスタンス120のためにランチャー140に送信される。そのため、ネイティブアプリケーションがフォアグラウンドの状態にされると、他のアクティブな事前インスタンス化されたネイティブアプリケーション120は終了される122。
同様に、ユーザが検索結果ページから離脱する操作をした場合には、「アンロード」イベントが、すべてのアクティブな事前インスタンス化されたネイティブアプリケーションインスタンス120のためにランチャー140によって生成され、インスタンスの終了処理122が行われる。
いくつかの実施形態においては、特定のネイティブアプリケーションが、複数のネイティブアプリケーションインスタンス120を事前インスタンス化することをサポートし得るし、ランチャー140が、特定のネイティブアプリケーション107のために複数のネイティブアプリケーションインスタンス120を事前インスタンス化し得る。各インスタンスは、インスタンスを起動するために使用される一意なディープリンクに基づいて、ネイティブアプリケーション107の異なる部分に起動し得る。例えば、特定のネイティブアプリケーションのための異なるパラメータを有する3つの異なるディープリンクについては、1つのネイティブアプリケーションインスタンス120は、メインメニューに起動し得るし、ネイティブアプリケーションの別のインスタンス120は、サブメニューに起動し得るし、別のインスタンス120は、ネイティブアプリケーション内の編集環境に起動し得る。
ネイティブアプリケーション107のインスタンスのための一意な識別子はまた、どのインスタンスを終了するかを決定するために使用され得る。ネイティブアプリケーションが事前インスタンス化されると、その対応する一意な識別子は、オペレーティングシステムによってメモリに記憶される。その後、事前インスタンス化されていたネイティブアプリケーションがフォアグラウンドの状態にされると、その対応する一意な識別子はメモリから除去される。バックグラウンドアンロードシグナルが生成されると、事前インスタンス化されメモリに記憶されている一意な識別子をまだ有しているネイティブアプリケーションの任意のインスタンスは終了される。
ネイティブアプリケーション107が複数のネイティブアプリケーションインスタンス120をサポートしている例においては、ランチャー140は、各インスタンス120に対して一意な識別子を関連付けている。そのため、ネイティブアプリケーションの複数のインスタンスをサポートする各ネイティブアプリケーションについて、ランチャー140は、作成された一意な識別子の各々をネイティブアプリケーションの対応する一意なインスタンスと関連付けている。このことは、ユーザが特定のディープリンクを選択すると、ランチャー140が正しいネイティブアプリケーションインスタンス120がフォアグラウンド状態にすることを可能にしている。したがって、バックグラウンドインスタンスにインスタンス化されたネイティブアプリケーションをフォアグラウンドインスタンスに移行させることは、「オープン」イベントとともにそのような一意なインスタンスの特定の一意な識別子を使用して、ネイティブアプリケーションの一意なインスタンスのみをフォアグラウンドインスタンスに移行させることを必要とする。このことはまた、システムが、バックグラウンドアンロードイベントが発生する前にどの事前インスタンス化されたネイティブアプリケーションインスタンスがフォアグラウンドの状態にされなかったかを決定し、そのような事前インスタンス化されたネイティブアプリケーションを終了することを可能にしている。加えてまたはあるいは、各インスタンス化に関する一意な識別子の使用は、検索動作に先立ってバックグラウンドにロードされていたネイティブアプリケーションの任意のインスタンスをシステムが無視することを可能にする。例えば、検索に先立ってユーザによって最小化されたネイティブアプリケーションインスタンスは、ネイティブアプリケーションの別のインスタンスが、ネイティブアプリケーションディープリンクが検索処理に応じて提供されたことに応じて事前インスタンス化されたが、バックグラウンドアンロードイベントが発生する前にフォアグラウンドの状態にされなかった場合には、終了されないことになる。
特定のネイティブアプリケーションがユーザデバイス上でネイティブアプリケーションの単一のインスタンスをサポートするだけであるとともに、特定のネイティブアプリケーションのための複数のディープリンクが検索結果内にある場合には、ランチャー140は、そのネイティブアプリケーションに関する単一のネイティブアプリケーションディープリンクのみを選択する。例えば、図1Bを参照して、ネイティブアプリケーション検索結果118bおよび118dの双方がチェスプログラムに対するディープリンクを有していると仮定する。検索結果118bのための第1のディープリンクは、ネイティブアプリケーション内の序盤の定石(opening book)環境にリンクしており、検索結果118dのための第2のディープリンクは、ネイティブアプリケーション内のゲーム選択メニューにリンクしている。検索結果118bが検索結果118dの上位にランク付けされているため、ネイティブアプリケーションは、序盤の定石環境に事前インスタンス化され、検索結果118dのためのディープリンクは処理されない。
ディープリンクバックグラウンドランチャー140は、どのネイティブアプリケーションが複数のインスタンスをサポートし、どれが単一のインスタンスのみをサポートしているかを記述しているデータとともに、提供され得る。例えば、サーチエンジン110は、複数のインスタンスをサポートしているというネイティブアプリケーションの機能を記述したファイルを提供し得る。本情報を使用して、その後、ランチャー140は、上述したようにディープリンクを処理し得る。
検索クエリおよび検索クエリに対応する検索結果に関してネイティブアプリケーションインスタンスの事前インスタンス化を説明してきたが、ネイティブアプリケーションインスタンスの事前インスタンス化は、アプリケーションディープリンク109を含む任意のリソースにおいて生じ得る。ランチャー140は、任意のネイティブアプリケーションディープリンク109を検出すると、ネイティブアプリケーションインスタンスを事前インスタンス化し得る。例えば、映画レビューアプリケーション内には、映画鑑賞、映画館ロケーション、および/または映画トレーラのディープリンクが存在し得る。ランチャー140は、映画レビューアプリケーション内に存在するディープリンク109に対応するネイティブアプリケーションのうちの1つまたはすべてを事前インスタンス化し得る。
図2は、ネイティブアプリケーションのバックグラウンドインスタンスをインスタンス化するためのプロセス200を説明しているフロー図である。プロセス200は、ユーザデバイス108上に実装され得る。
プロセス200は、検索クエリに対応する検索結果のセットを受信する(202)。検索結果のセットは、関与している場合には、ネイティブアプリケーション107のインスタンスをインスタンス化するネイティブアプリケーションディープリンク109を各々が含む検索結果を含む。加えて、ネイティブアプリケーション107は、ネイティブアプリケーション内にユーザデバイス上での表示のための環境インスタンスを生成し、ネイティブアプリケーション107は、ユーザデバイス上で動作するブラウザアプリケーションとは独立して動作する。
プロセス200は、検索結果についてのユーザ選択に先立って、検索結果からネイティブアプリケーションディープリンク109を選択する(204)。前述したように、ランチャー140は、検索結果のセット内に提示されているネイティブアプリケーションディープリンク109を検出し、様々な制約に基づいてディープリンクを選択する。ディープリンクの選択時に、ランチャー140は、選択された各ネイティブアプリケーションディープリンクについて、ネイティブアプリケーションディープリンク109に対応するネイティブアプリケーションのバックグラウンドインスタンス120をインスタンス化する(206)。
プロセス200は、バックグラウンドアンロードイベントの発生に応じて、ネイティブアプリケーションディープリンクからインスタンス化されバックグラウンドアンロードイベントの発生に先立ってフォアグラウンドの状態にされなかったネイティブアプリケーションのバックグラウンドインスタンスを決定する(208)。例えば、事前インスタンス化されたネイティブアプリケーションインスタンスが「オープン」イベントを受信した場合には、そのようなネイティブアプリケーションインスタンスは、ユーザによってアクセス可能な表示領域内のフォアグラウンドに移動する。他のアクティブな事前インスタンス化されたネイティブアプリケーションインスタンスについては、プロセス200は、インスタンス化されバックグラウンドアンロードイベントの発生に先立ってフォアグラウンドの状態にされなかったネイティブアプリケーションのバックグラウンドインスタンスの各々をアンロードする(210)。
追加の実施形態の詳細
本明細書に記載のシステムが、ユーザに関する個人情報を収集する、または、個人情報を使用し得る場合には、ユーザは、プログラムまたは機能がユーザ情報(例えば、ユーザのソーシャルネットワークに関する情報、ソーシャルアクションまたはアクティビティ、職業、ユーザのプリファレンス、またはユーザの現在のロケーション)を収集するかどうかを制御する、または、ユーザにより関連し得るコンテンツサーバからのコンテンツを受信するかどうかおよび/もしくはどのように受信するかを制御する機会が提供され得る。加えて、あるデータは、個人を識別可能な情報を除去するように、記憶または使用される前に1つまたは複数の方法で処理され得る。例えば、個人を識別可能な情報がユーザを決定することができないように、ユーザの識別子を処理してもよいし、ユーザの具体的な位置を決定することができないように、ユーザの地理的ロケーションをロケーション情報を取得できる程度に(市、ZIPコード、または州レベルなどに)汎化してもよい。そのため、ユーザは、どのようにして情報をユーザに関して収集してコンテンツサーバによって使用するかの制御を有し得る。
本明細書において説明した発明特定事項の実施形態および動作は、デジタル電子回路を使用して、または、本明細書において開示した構造およびそれらの構造的均等物を含む、コンピュータソフトウェア、ファームウェア、またはハードウェア内で、または、1つまたは複数のそれらの組合せで、実施され得る。本明細書において説明した発明特定事項の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置による実行のためのコンピュータ記憶媒体上に符号化された、または、データ処理装置の動作を制御する、コンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。
コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶回路基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または1つまたは複数のそれらの組合せであり得る、または含まれ得る。さらに、コンピュータ記憶媒体は、伝搬信号ではない一方で、コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理コンポーネントまたは媒体(例えば、複数のCD、ディスク、または他のストレージデバイス)であり得るまたは含まれ得る。
本明細書において説明した動作は、1つまたは複数のコンピュータ可読ストレージデバイス上に記憶された、または、他のソースから受信した、データに対して、データ処理装置によって行われる動作として実施され得る。
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システム・オン・チップ、または、それら複数、または、前述の組合せを含む、処理データのためのすべての種類の装置、デバイス、および機械を含む。装置は、特殊用途ロジック回路、例えば、FPGA(分野プログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの組合せのうちの1つまたは複数を構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラなどといった様々な異なるコンピューティングモデルインフラを実現し得る。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタプリタ型言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適した他のユニットとしてといったことを含む、任意の形式でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよい必ずしも対応する必要はない。プログラムは、他のプログラムまたはデータ(例えば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)を保持するファイルの一部に、当該のプログラム専用の単一のファイルに、または、複数の協調ファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に、記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1箇所に位置するもしくは複数のサイトにわたって分散され通信ネットワークによって相互通信する複数のコンピュータ上で、実行されるようにデプロイされ得る。
本明細書において説明したプロセスおよびロジックフローは、入力データを処理するとともに出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実行され得る。プロセスおよびロジックフローはまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった特殊用途論理回路によって行われ得るし、装置はまた、そういった特殊用途論理回路として実装され得る。
コンピュータプログラムの実行に適したプロセッサは、例として、一般および特殊の両方の用途のマイクロプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの必須要素は、命令に従ってアクションを行うためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般的に、コンピュータはまた、例えば、磁気、光磁気ディスク、または光ディスクといったデータを記憶するための1つまたは複数のマスストレージデバイスを含み得る、または、そのようなマスストレージデバイスからデータを受信もしくはそのようなマスストレージデバイスにデータを送信もしくはその両方を行うように動作可能に接続され得る。しかしながら、コンピュータは、必ずしもそのようなデバイスを有する必要はない。さらに、コンピュータは、数例挙げるとすれば、例えば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、グローバル・ポジショニング・システム(GPS)受信機、またはポータブルストレージデバイス(例えば、ユニバーサルシリアルバス(USB)フラッシュドライブ)といった別のデバイスに組み込まれ得る。コンピュータプログラム命令およびデータを記憶することに適したデバイスは、例として、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスといった半導体メモリデバイス、例えば、内部ハードディスクまたはリムーバブルディスクといった磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形式の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサおよびメモリは、特殊用途論理回路によって補完され得る、または、特殊用途論理回路に組み込まれ得る。
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、ユーザに情報を表示するために、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといった、表示デバイスと、ユーザがそれによって入力をコンピュータに提供することができる、例えば、マウスまたはトラックボールといった、キーボードおよびポインティングデバイスとを有するコンピュータに実装され得る。他の種類のデバイスもユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどといった、任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む、任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信するとともにユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ウェブブラウザから受信した要求に応じてウェブページをユーザのユーザデバイス上のウェブブラウザに送信することによって、ユーザとのインタラクションを行い得る。
本明細書において説明した発明特定事項の実施形態は、例えば、データサーバとして、バックエンドコンポーネントを含む、または、例えば、アプリケーションサーバといった、ミドルウェアコンポーネントを含む、例えば、ユーザがそれを介して本明細書において説明した発明特定事項の実施形態とインタラクションを行い得る、グラフィックユーザインターフェースもしくはウェブブラウザを有するユーザコンピュータといった、フロントエンドコンポーネントを含む、コンピューティングシステムにおいて実装され得る、または、そのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントのうちの1つまたは複数の任意の組合せで実装され得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、ならびにピア・ツー・ピアネットワーク(例えば、アドホックピア・ツー・ピアネットワーク)を含む。
コンピューティングシステムは、ユーザおよびサーバを含み得る。ユーザとサーバとは、一般的に互いにリモートに存在しており、通信ネットワークを介して通常はインタラクションを行う。ユーザとサーバとの関係は、それぞれのコンピュータ上で動作するとともに互いにユーザ-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態においては、サーバは、データ(例えば、HTMLページ)を、(例えば、データをクライアントデバイスに表示するとともに、ユーザデバイスとインタラクションを行うユーザインターフェースからユーザ入力を受信するために、)ユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ(例えば、ユーザインタラクションの結果)を、サーバにおいてユーザデバイスから受信し得る。
本明細書は多くの具体的な実施の詳細を含んでいるが、これらは、任意の発明または特許請求の範囲の範囲を限定するものとして解釈すべきではなく、特定の発明の特定の実施形態に特有の特徴についての説明として解釈すべきである。別個の実施形態に関連する本明細書において説明したある特徴はまた、組合せでまたは単一の実施形態で実施され得る。反対に、単一の実施形態に関連して説明した様々な特徴はまた、複数の実施形態で別々にまたは任意の適切なサブコンビネーションで実行され得る。さらに、特徴をある組合せで動作するように上述しているとしても、たとえそのようにはじめは主張していたとしても、いくつかのケースでは、主張した組合せのうちの1つまたは複数の特徴を組合せから削除し得るし、主張した組合せをサブコンビネーションまたはサブコンビネーションのバリエーションを対象とし得る。
同様に、処理を特定の順序で図面に図示しているが、このことを、望ましい結果を実現するためには、図示した特定の順序でもしくはシーケンシャルな順序でそのような処理を行う必要がある、または、図示した処理をすべて行う必要がある、と理解すべきではない。ある環境においては、マルチタスク処理およびパラレル処理が有利となる場合もある。さらに、上述した実施形態における様々なシステムコンポーネントの分離がすべての実施形態におけるそのような分離が必要であると理解すべきではないし、説明したプログラムコンポーネントおよびシステムを単一のソフトウェア製品に一緒に統合することまたは複数のソフトウェア製品にパッケージすることが一般的にできることを理解されたい。
上に述べたように、発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。いくつかのケースにおいては、特許請求の範囲に記載のアクションは、異なる順序で行われ、望ましい結果をさらに達成し得る。加えて、添付の図面に示したプロセスは、望ましい結果を得るために、図示した特定の順序またはシーケンシャルな順序を必ずしも必要としているわけでない。ある実施形態においては、マルチタスク処理およびパラレル処理が有利となる場合もある。
100 環境
102 ネットワーク
104 リソースパブリッシャ
105 リソース
106 アプリケーションパブリッシャ
107 ネイティブアプリケーション
108a ユーザデバイス
108b ユーザデバイス
109 アプリケーションディープリンク
110 検索システム
112 ウェブインデックス
114 アプリケーションインデックス
116 インデクサ
118a ウェブリソース検索結果
118b ネイティブアプリケーション検索結果
118c ウェブリソース検索結果
118d ネイティブアプリケーション検索結果
118e ネイティブアプリケーション検索結果
118n ウェブリソース検索結果
120 アプリケーションインスタンス
122 終了処理
140 ディープリンクバックグラウンドランチャー
142 バックグラウンドアンロードイベント

Claims (16)

  1. データ処理装置によって行われるコンピュータ実施方法であって、前記方法は、
    検索結果のセットを受信するステップであって、前記セットは、各々がネイティブアプリケーションのインスタンスをインスタンス化するように構成されたネイティブアプリケーションディープリンクを含む1つまたは複数の検索結果を含み、ネイティブアプリケーションは、前記ネイティブアプリケーション内にユーザデバイス上での表示のための環境インスタンスを生成し、前記ネイティブアプリケーションは、前記ユーザデバイス上で動作するブラウザアプリケーションとは独立して動作する、ステップと、
    検索結果についてのユーザ選択に先立って、1つまたは複数の前記検索結果からネイティブアプリケーションディープリンクを選択するステップと、
    選択された各ネイティブアプリケーションディープリンクについて、前記ネイティブアプリケーションディープリンクが対応している前記ネイティブアプリケーションのバックグラウンドインスタンスをインスタンス化するステップと、
    バックグラウンドアンロードイベントの発生に応じて、前記ネイティブアプリケーションディープリンクからインスタンス化され前記バックグラウンドアンロードイベントの前記発生に先立ってフォアグラウンドの状態にされなかった前記ネイティブアプリケーションのバックグラウンドインスタンスを決定するステップと、
    インスタンス化され前記バックグラウンドアンロードイベントの前記発生に先立って前記フォアグラウンドの状態にされなかった前記ネイティブアプリケーションの前記バックグラウンドインスタンスの各々を終了するステップと
    を含む、コンピュータ実施方法。
  2. ネイティブアプリケーションディープリンクを有する検索結果についてのユーザ選択を受信するステップと、
    前記ネイティブアプリケーションディープリンクが対応している前記ネイティブアプリケーションがバックグラウンドインスタンスにインスタンス化されていたと決定し、それに応じて、バックグラウンドインスタンスにインスタンス化された前記ネイティブアプリケーションをフォアグラウンドインスタンスに移行させるステップと
    をさらに含む、請求項1に記載のコンピュータ実施方法。
  3. 各ネイティブアプリケーションディープリンクについて、前記ネイティブアプリケーションディープリンクが対応している前記ネイティブアプリケーションに対応する一意な識別子を生成するステップをさらに含み、
    選択された各ネイティブアプリケーションディープリンクについて、前記ネイティブアプリケーションの前記バックグラウンドインスタンスをインスタンス化するステップは、前記一意な識別子を使用して前記バックグラウンドインスタンスをインスタンス化するステップを含む、請求項1または2に記載のコンピュータ実施方法。
  4. 前記ネイティブアプリケーションの複数のインスタンスをサポートする各ネイティブアプリケーションについて、一意な識別子の各々を前記ネイティブアプリケーションの対応する一意なインスタンスと関連付けするステップをさらに含む、請求項3に記載のコンピュータ実施方法。
  5. 前記バックグラウンドインスタンスにインスタンス化された前記ネイティブアプリケーションをフォアグラウンドインスタンスに移行させるステップは、前記ネイティブアプリケーションの前記一意なインスタンスのみを前記フォアグラウンドインスタンスに移行させるステップを含む、請求項4に記載のコンピュータ実施方法。
  6. 前記検索結果についてのユーザ選択に先立って、前記検索結果からネイティブアプリケーションディープリンクを選択するステップは、前記ネイティブアプリケーションの単一のインスタンスのみをサポートするネイティブアプリケーションに関する単一のネイティブアプリケーションディープリンクのみを選択するステップを含む、請求項1から5のいずれか一項に記載の方法。
  7. 前記検索結果についてのユーザ選択に先立って、前記検索結果からネイティブアプリケーションディープリンクを選択するステップは、検索結果のうちの適切なサブセットからネイティブアプリケーションディープリンクのみを選択するステップであって、前記適切なサブセット内の各検索結果は、ランキング閾値を満たす、ステップを含む、請求項1から6のいずれか一項に記載の方法。
  8. 前記ランキング閾値は、検索結果の最小の順序位置、クエリに関する最小関連性スコア、および前記ネイティブアプリケーションに関するユーザプリファレンスのうちの少なくとも1つに基づく、請求項7に記載の方法。
  9. 前記バックグラウンドアンロードイベントは、前記ネイティブアプリケーションの前記バックグラウンドインスタンスの前記インスタンス化から測定されたタイムアウト期間の満了において発生する、または、前記バックグラウンドアンロードイベントは、前記検索結果のセットが表示されるページのアンロード時に発生する、請求項1から8のいずれか一項に記載の方法。
  10. システムであって、
    データ処理装置と、
    前記データ処理装置によって実行可能であり、実行時に、前記データ処理装置に、
    検索結果のセットを受信するステップであって、前記セットは、各々がネイティブアプリケーションのインスタンスをインスタンス化するように構成されたネイティブアプリケーションディープリンクを含む1つまたは複数の検索結果を含み、ネイティブアプリケーションは、前記ネイティブアプリケーション内にユーザデバイス上での表示のための環境インスタンスを生成し、前記ネイティブアプリケーションは、前記ユーザデバイス上で動作するブラウザアプリケーションとは独立して動作する、ステップと、
    検索結果についてのユーザ選択に先立って、1つまたは複数の前記検索結果からネイティブアプリケーションディープリンクを選択するステップと、
    選択された各ネイティブアプリケーションディープリンクについて、前記ネイティブアプリケーションディープリンクが対応している前記ネイティブアプリケーションのバックグラウンドインスタンスをインスタンス化するステップと、
    バックグラウンドアンロードイベントの発生に応じて、前記ネイティブアプリケーションディープリンクからインスタンス化され前記バックグラウンドアンロードイベントの前記発生に先立ってフォアグラウンドの状態にされなかった前記ネイティブアプリケーションのバックグラウンドインスタンスを決定するステップと、
    インスタンス化され前記バックグラウンドアンロードイベントの前記発生に先立って前記フォアグラウンドの状態にされなかった前記ネイティブアプリケーションの前記バックグラウンドインスタンスの各々を終了するステップと
    を含む動作を行わせる命令を記憶する非一時的コンピュータ可読記憶媒体に記憶されている、ソフトウェアと
    を含む、システム。
  11. 前記動作は、
    ネイティブアプリケーションディープリンクを有する検索結果についてのユーザ選択を受信するステップと、
    前記ネイティブアプリケーションディープリンクが対応している前記ネイティブアプリケーションがバックグラウンドインスタンスにインスタンス化されていたと決定し、それに応じて、バックグラウンドインスタンスにインスタンス化された前記ネイティブアプリケーションをフォアグラウンドインスタンスに移行させるステップと
    をさらに含む、請求項10に記載のシステム。
  12. 前記動作は、
    各ネイティブアプリケーションディープリンクについて、前記ネイティブアプリケーションディープリンクが対応している前記ネイティブアプリケーションに対応する一意な識別子を生成するステップをさらに含み、
    選択された各ネイティブアプリケーションディープリンクについて、前記ネイティブアプリケーションの前記バックグラウンドインスタンスをインスタンス化するステップは、前記一意な識別子を使用して前記バックグラウンドインスタンスをインスタンス化するステップを含む、請求項10または11に記載のシステム。
  13. 前記動作は、
    前記ネイティブアプリケーションの複数のインスタンスをサポートする各ネイティブアプリケーションについて、一意な識別子の各々を前記ネイティブアプリケーションの対応する一意なインスタンスと関連付けるステップをさらに含む、請求項12に記載のシステム。
  14. 前記命令は、前記データ処理装置に、前記検索結果についてのユーザ選択に先立って、検索結果のうちの適切なサブセットからネイティブアプリケーションディープリンクのみを選択することによって前記検索結果からネイティブアプリケーションディープリンクを選択させ、前記適切なサブセット内の各検索結果は、ランキング閾値を満たす、請求項10に記載のシステム。
  15. 前記ランキング閾値は、検索結果の最小の順序位置、クエリに関する最小関連性スコア、および前記ネイティブアプリケーションに関するユーザプリファレンスのうちの少なくとも1つに基づく、請求項14に記載のシステム。
  16. コンピュータプログラムで符号化されたコンピュータ記憶媒体であって、前記プログラムは、データ処理装置によって実行されると、前記データ処理装置に、
    検索結果のセットを受信するステップであって、前記セットは、各々がネイティブアプリケーションのインスタンスをインスタンス化するように構成されたネイティブアプリケーションディープリンクを含む1つまたは複数の検索結果を含み、ネイティブアプリケーションは、前記ネイティブアプリケーション内にユーザデバイス上での表示のための環境インスタンスを生成し、前記ネイティブアプリケーションは、前記ユーザデバイス上で動作するブラウザアプリケーションとは独立して動作する、ステップと、
    検索結果についてのユーザ選択に先立って、1つまたは複数の前記検索結果からネイティブアプリケーションディープリンクを選択するステップと、
    選択された各ネイティブアプリケーションディープリンクについて、前記ネイティブアプリケーションディープリンクが対応している前記ネイティブアプリケーションのバックグラウンドインスタンスをインスタンス化するステップと、
    バックグラウンドアンロードイベントの発生に応じて、前記ネイティブアプリケーションディープリンクからインスタンス化され前記バックグラウンドアンロードイベントの前記発生に先立ってフォアグラウンドの状態にされなかった前記ネイティブアプリケーションのバックグラウンドインスタンスを決定するステップと、
    インスタンス化され前記バックグラウンドアンロードイベントの前記発生に先立って前記フォアグラウンドの状態にされなかった前記ネイティブアプリケーションの前記バックグラウンドインスタンスの各々を終了するステップと
    を含む動作を行わせる命令を含む、コンピュータ記憶媒体。
JP2018517190A 2015-11-19 2016-11-15 バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化 Active JP6410992B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/945,703 2015-11-19
US14/945,703 US10146842B2 (en) 2015-11-19 2015-11-19 Pre-instantiating native applications in background
PCT/US2016/062051 WO2017087394A1 (en) 2015-11-19 2016-11-15 Pre-instantiating native applications in background

Publications (2)

Publication Number Publication Date
JP6410992B1 true JP6410992B1 (ja) 2018-10-24
JP2018534670A JP2018534670A (ja) 2018-11-22

Family

ID=57482512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018517190A Active JP6410992B1 (ja) 2015-11-19 2016-11-15 バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化

Country Status (6)

Country Link
US (1) US10146842B2 (ja)
JP (1) JP6410992B1 (ja)
KR (1) KR102033704B1 (ja)
CN (1) CN108140037B (ja)
DE (1) DE112016004130T5 (ja)
WO (1) WO2017087394A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11301273B2 (en) * 2020-03-11 2022-04-12 Atlassian Pty Ltd. Computer user interface for a virtual workspace having multiple application portals displaying context-related content
CN111597027A (zh) * 2020-05-15 2020-08-28 北京百度网讯科技有限公司 应用程序的启动方法、装置、设备及存储介质
WO2022055538A1 (en) * 2020-09-09 2022-03-17 Google Llc Pre-launching an application using interprocess communication
CN114237743B (zh) * 2021-12-14 2023-03-21 广州博冠信息科技有限公司 界面加载方法、装置、电子设备和存储介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009432A (en) * 1998-07-08 1999-12-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
CN1251121C (zh) * 2002-12-27 2006-04-12 华为技术有限公司 实现维护界面系统的方法
US7076616B2 (en) * 2003-03-24 2006-07-11 Sony Corporation Application pre-launch to reduce user interface latency
US20080005190A1 (en) * 2006-06-28 2008-01-03 Nokia Corporation System, Method, Apparatus and Computer Program Product for Providing Resource Reclamation in a Virtual Machine
US8032527B2 (en) * 2007-08-29 2011-10-04 Google Inc. Search filtering
US8010520B2 (en) * 2008-01-25 2011-08-30 International Business Machines Corporation Viewing time of search result content for relevancy
US9519726B2 (en) * 2011-06-16 2016-12-13 Amit Kumar Surfacing applications based on browsing activity
US20120324481A1 (en) 2011-06-16 2012-12-20 Samsung Electronics Co. Ltd. Adaptive termination and pre-launching policy for improving application startup time
US9189252B2 (en) 2011-12-30 2015-11-17 Microsoft Technology Licensing, Llc Context-based device action prediction
US20140040226A1 (en) 2012-07-31 2014-02-06 Microsoft Corporation Providing application result and preview
US8886644B1 (en) * 2012-11-01 2014-11-11 Google Inc. User control of search filter bubble
US9002821B2 (en) * 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
US10430418B2 (en) * 2013-05-29 2019-10-01 Microsoft Technology Licensing, Llc Context-based actions from a source application
US9508040B2 (en) 2013-06-12 2016-11-29 Microsoft Technology Licensing, Llc Predictive pre-launch for applications
KR20150017156A (ko) * 2013-08-06 2015-02-16 삼성전자주식회사 휴대단말기에서 추천어를 제공하는 방법 및 장치
CN103778201A (zh) * 2014-01-10 2014-05-07 国网信通亿力科技有限责任公司 基于流程模型配置的大屏可视化展示系统及方法
US20150242421A1 (en) * 2014-02-21 2015-08-27 Quixey, Inc. Location-Based Searching
US20150242510A1 (en) * 2014-02-25 2015-08-27 Quixey, Inc. Interactive Search Results

Also Published As

Publication number Publication date
CN108140037B (zh) 2021-08-06
KR102033704B1 (ko) 2019-10-17
US20170147658A1 (en) 2017-05-25
WO2017087394A1 (en) 2017-05-26
DE112016004130T5 (de) 2018-06-14
CN108140037A (zh) 2018-06-08
JP2018534670A (ja) 2018-11-22
KR20180048940A (ko) 2018-05-10
US10146842B2 (en) 2018-12-04

Similar Documents

Publication Publication Date Title
JP6370408B2 (ja) ネイティブアプリケーションに関するディープリンク
JP6173546B2 (ja) リダイレクトの低減
KR102208988B1 (ko) 네이티브 어플리케이션들의 어플리케이션 페이지들을 인덱싱
CN107408065B (zh) 监视应用加载
US10068028B1 (en) Deep link verification for native applications
US9547721B2 (en) Native application search results
JP6363738B2 (ja) ネイティブアプリケーションに関する検索結果
US20240265053A1 (en) Indexing Access Limited Native Applications
JP6410992B1 (ja) バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化
JP6827496B2 (ja) リソースに対するアクションへのインデックス付け
US9524347B1 (en) Automatically implementing an application in response to a search query
US9513961B1 (en) Monitoring application loading
US11003728B1 (en) Native application search results
JP6683835B2 (ja) 複数のスレッドを使って電子リソースをダウンロードする際の待ち時間の削減
RU2774319C2 (ru) Глубинные ссылки для нативных приложений

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180802

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: 20180827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180925

R150 Certificate of patent or registration of utility model

Ref document number: 6410992

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