DE112016004130T5 - Vorinstanziieren nativer Anwendungen im Hintergrund - Google Patents

Vorinstanziieren nativer Anwendungen im Hintergrund Download PDF

Info

Publication number
DE112016004130T5
DE112016004130T5 DE112016004130.6T DE112016004130T DE112016004130T5 DE 112016004130 T5 DE112016004130 T5 DE 112016004130T5 DE 112016004130 T DE112016004130 T DE 112016004130T DE 112016004130 T5 DE112016004130 T5 DE 112016004130T5
Authority
DE
Germany
Prior art keywords
native application
native
background
instance
application
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.)
Pending
Application number
DE112016004130.6T
Other languages
English (en)
Inventor
Jaehyun Yeom
Dong Ha Lee
Jongho Choy
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
Publication of DE112016004130T5 publication Critical patent/DE112016004130T5/de
Pending legal-status Critical Current

Links

Images

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
    • 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
    • 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/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)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Stored Programmes (AREA)

Abstract

Verfahren, Systeme und Einrichtungen zum Auswählen eines oder mehrerer tiefer Links nativer Anwendungen aus Suchergebnissen und für jeden tiefen Link einer nativen Anwendung, der ausgewählt ist, Instanziieren einer Hintergrundinstanz der nativen Anwendung, der der tiefe Link der nativen Anwendung entspricht; Bestimmen in Reaktion auf ein Auftreten eines Hintergrundentladeereignisses von Hintergrundinstanzen der nativen Anwendung, die aus den tiefen Links der nativen Anwendungen instanziiert wurden und die nicht vor dem Auftreten des Hintergrundentladeereignisses in den Vordergrund gebracht wurden; und Beenden jeder der Hintergrundinstanzen der instanziierten nativen Anwendungen, die nicht vor dem Auftreten des Hintergrundentladeereignisses in den Vordergrund gebracht wurden.

Description

  • Das Internet gewährt Zugang zu einer großen Vielfalt von Informationen. Beispielsweise sind sowohl digitale Bilddateien, Video- und/oder Audiodateien als auch Webseiten-Ressourcen für spezielle Themen oder spezielle Nachrichtenartikel über das Internet zugänglich.
  • Darüber hinaus werden mit der Einführung von Tablet-Computern und Smartphones native Anwendungen, die die Leistung der gleichen Funktionen, die durch das Verwenden von Webseiten-Ressourcen unterstützt werden, unterstützen, jetzt in großer Zahl bereitgestellt. Zusätzlich sind auch native Anwendungen, die keine Websites mit einem solchen synchronen Inhalt besitzen, wie z. B. Spiele und andere Anwendungen, auf Tablet-Computern und Smartphones sehr populär. Dementsprechend unterstützten jetzt Suchsysteme auch das Durchsuchen solcher nativen Anwendungen.
  • Ein Prozess, durch den Suchsysteme Informationen für native Anwendungen sammeln, ist durch Zugreifen auf „tiefe Links“ für die nativen Anwendungen. Ein tiefer Link ist eine Anweisung, die eine spezielle Umgebungsinstanz einer nativen Anwendung spezifiziert und die konfiguriert ist zu bewirken, dass die native Anwendung die Umgebungsinstanz der spezifizierten nativen Anwendung instanziiert, wenn sie auf einem Anwendergerät ausgewählt wird. Die native Anwendung erzeugt die Umgebungsinstanz zur Anzeige innerhalb der nativen Anwendung auf einem Anwendergerät.
  • Zusammenfassung
  • Diese Anmeldung beschreibt Technologien, die sich auf das Vorinstanziieren nativer Anwendungen im Hintergrund, wenn ein tiefer Link zu den vorinstanziierten nativen Anwendungen in einer Menge von Suchergebnissen vorhanden ist, beziehen.
  • Im Allgemeinen kann ein innovativer Aspekt des in dieser Anmeldung beschriebenen Gegenstands in einem Verfahren verwirklicht sein, das die Aktion zum Empfangen einer Menge von Ergebnissen, beispielsweise einer Menge von Suchergebnissen, wobei eine Menge Ergebnisse enthält, die jeweils einen tiefen Link einer nativen Anwendung enthalten, der eine Instanz einer nativen Anwendung instanziiert, wobei eine native Anwendung Umgebungsinstanzen zur Anzeige auf einem Anwendergerät innerhalb der nativen Anwendung erzeugt und die native Anwendung unabhängig von einer Browseranwendung arbeitet, die auf dem Anwendergerät arbeitet; Auswählen vor einer Anwenderauswahl eines Ergebnisses von tiefen Links der nativen Anwendung aus den Ergebnissen; Instanziieren für jeden tiefen Link einer nativen Anwendung, der in der Auswahl vor der Anwenderauswahl ausgewählt wird, einer Hintergrundinstanz der nativen Anwendung, der der Link der nativen Anwendung entspricht; Bestimmen in Reaktion auf ein Auftreten eines Hintergrundentladeereignisses von Hintergrundinstanzen der nativen Anwendung, die aus den tiefen Links der nativen Anwendungen instanziiert wurden und die vor dem Auftreten des Hintergrundentladeereignisses nicht in den Vordergrund gebracht wurden; und Beenden wenigstens einiger und vorzugsweise jeder aus den Hintergrundinstanzen der instanziierten nativen Anwendungen, die vor dem Auftreten des Hintergrundentladeereignisses nicht in den Vordergrund gebracht wurden, enthält. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Systeme, Einrichtungen und Computerprogramme, die konfiguriert sind, die Aktionen der Verfahren, die auf Computerspeichergeräten codiert sind, auszuführen. Eine weitere Ausführungsform dieses Aspekts enthält ein computerlesbares Speichermedium, das Anweisungen umfasst, die dann, wenn sie durch eine Datenverarbeitungseinrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungseinrichtung Operationen ausführt, die ein Verfahren der Erfindung umfassen.
  • Spezielle Ausführungsformen des in dieser Anmeldung beschriebenen Gegenstands können so implementiert sein, dass sie einen oder mehrere aus den folgenden Vorteilen realisieren. Das vorliegende System ermöglicht eine Hintergrund-Vorinstanziierung einer nativen Anwendung. Die Hintergrund-Vorinstanziierung findet statt, ohne die Möglichkeit des Anwenders, ein Anwendergerät zu nutzen, zu stören oder zu unterbrechen. Die Vorinstanziierung der nativen Anwendung reduziert die Latenzzeit für einen Anwender, wenn ein Anwender einen tiefen Link, der einer speziellen nativen Anwendung entspricht, auswählt. Darüber hinaus gibt das automatisierte Beenden vorinstanziierter nativer Anwendungen für Suchergebnisse nativer Anwendungen, die nicht ausgewählt wurden, automatisch Betriebsmittel des Anwendergeräts ohne Eingriff des Anwenders frei. Somit geht die reduzierte Latenz, die auftritt, wenn ein Anwender ein Suchergebnis nativer Anwendungen auswählt, für das eine Anwendung vorinstanziiert ist, nicht mit dem zugehörigen Aufwand zum Verlassen einer Anzahl nativer Anwendungen, die im Hintergrund instanziiert sind, einher, nachdem der Anwender von der Suchumgebung weg navigiert.
  • Die Einzelheiten einer oder mehrerer Ausführungsformen des in dieser Anmeldung beschriebenen Gegenstands sind in den begleitenden Zeichnungen und der nachstehenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen offensichtlich.
  • Figurenliste
    • 1A ist ein Blockdiagramm einer Beispielumgebung, in der native Anwendungen im Hintergrund instanziiert und in den Vordergrund gebracht werden.
    • 1 B ist ein Blockdiagramm eines Anwendergeräts, das konfiguriert ist, native Anwendungen aus Suchergebnissen nativer Anwendungen vorzuinstanziieren.
    • 2 ist ein Ablaufdiagramm, das einen Prozess zum Instanziieren von Hintergrundinstanzen nativer Anwendungen beschreibt.
  • Gleiche Bezugszeichen und Bezeichnungen in den verschiedenen Zeichnungen geben gleiche Elemente an.
  • Ausführliche Beschreibung
  • Ein System empfängt eine Menge von Suchergebnissen, die die Antwort auf eine Suchabfrage sind. In der Menge von Suchergebnissen sind tiefe Links vorhanden. Das System erkennt das Vorhandensein der tiefen Links und vorinstanziiert die nativen Anwendungen, die jedem tiefen Link innerhalb der Suchergebnisse entsprechen, im Hintergrund eines Anwendergeräts. Wie hier verwendet erzeugt eine native Anwendung Umgebungsinstanzen zur Anzeige auf einem Anwendergerät innerhalb einer Umgebung der nativen Anwendung und arbeitet unabhängig von einer Browseranwendung auf dem Anwendergerät. Eine native Anwendung ist eine Anwendung, die spezifisch konstruiert ist, um auf einem speziellen Anwendergerätebetriebssystem und Maschinen-Firmware abzulaufen. Native Anwendungen unterscheiden sich somit von browserbasierten Anwendungen und im Browser wiedergegebenen Ressourcen. Letztere erfordern, dass alle oder wenigstens einige Elemente oder Anweisungen jedes Mal von einem Webserver heruntergeladen werden, wenn sie instanziiert oder wiedergegeben werden. Darüber hinaus können browserbasierte Anwendungen und im Browser wiedergegebene Ressourcen durch alle webfähigen Mobilgeräte innerhalb des Browsers verarbeitet werden und sind somit nicht betriebssystemspezifisch.
  • Ein tiefer Link ist eine Anweisung, die eine spezielle Umgebungsinstanz einer nativen Anwendung spezifiziert und die konfiguriert ist zu bewirken, dass die native Anwendung die Umgebungsinstanz der spezifizierten nativen Anwendung instanziiert, wenn er auf einem Anwendergerät ausgewählt wird. Die native Anwendung erzeugt die Umgebungsinstanz zur Anzeige innerhalb der nativen Anwendung auf einem Anwendergerät. Beispielsweise kann ein tiefer Link ein Auswahlmenü für eine Spielumgebung; oder Inhalt von einer Website, z. B. einer Nachrichtenseite, einem Forum und dergleichen; oder ein spezielles Rezept für eine Kochanwendung; und dergleichen spezifizieren.
  • Das System und die Verfahren in dieser Anmeldung führen eine Vorinstanziierung einer Umgebungsinstanz einer nativen Anwendung aus, um die Latenzzeit für Anwender, die die native Anwendung öffnen möchten, zu reduzieren. In einer Implementierung identifiziert das System in Reaktion auf das Empfangen einer Menge von Suchergebnissen, die einen oder mehrere tiefe Links enthält, den einen oder die mehreren tiefen Links, die in den Suchergebnissen vorhanden sind, und startet im Voraus oder vorinstanziiert die Umgebungsinstanz für die nativen Anwendungen, die dem einen oder den mehreren tiefen Links entsprechen. Wenn die native Anwendung vorinstanziiert wird, wird sie im Hintergrund des Anwendergeräts gestartet, so dass ein Anwender die Vorinstanziierung nicht wahrnimmt.
  • In einigen Implementierungen wird, wenn ein Anwender einen tiefen Link aus den Suchergebnissen auswählt, die vorinstanziierte Umgebungsinstanz der nativen Anwendung in den Vordergrund gebracht, und irgendwelche anderen vorinstanziierten Umgebungsinstanzen werden beendet. In anderen Implementierungen werden, falls das System ein Entladeereignis initiiert, alle vorinstanziierten Umgebungsinstanzen der nativen Anwendungen beendet.
  • Diese Merkmale und zusätzliche Merkmale sind nachstehend genauer beschrieben.
  • 1A ist ein Blockdiagramm einer Beispielumgebung 100, in der native Anwendungen im Hintergrund instanziiert und in den Vordergrund gebracht werden. Ein Computernetz 101, wie z. B. das Internet, verbindet Websites 104 von Ressourcenherausgebern, Anwendungsherausgeber 106, Anwendergeräte 108 und ein Suchsystem 110.
  • Eine Website 104 eines Ressourcenherausgebers enthält eine oder mehrere Webressourcen 105, die einer Domäne zugeordnet sind und die durch einen oder mehrere Server an einem oder mehreren Orten gehostet sind. Im Allgemeinen ist eine Website eines Ressourcenherausgebers eine Sammlung von Webseiten, die in Hypertext-Auszeichnungssprache (HMTL) formatiert ist, die Text, Bilder, Multimediainhalt und Programmierelemente beinhalten kann. Jede Website 104 wird durch einen Inhaltsherausgeber gepflegt, der eine Entität ist, die die Website 104 steuert, managt und/oder ihr Eigentümer ist.
  • Eine Webseitenressource ist irgendwelche Daten, die durch eine Herausgeber-Website 104 über das Netz 102 bereitgestellt sein kann und die eine Ressourcenadresse, z. B. einen „Uniform Resource Locator“ (URL) aufweist. Webressourcen können HTML-Seiten, Bilddateien, Videodateien, Audiodateien und Feed-Ressourcen sein, um einige wenige zu nennen. Die Ressourcen können eingebettete Informationen, z. B. Metainformationen und Hyperlinks, und/oder eingebettete Anweisungen, z. B. clientseitige Skripts, enthalten.
  • Eine Website 106 eines Anwendungsherausgebers kann außerdem eine oder mehrere Webressourcen 105 enthalten und stellt auch native Anwendungen 107 bereit. Wie vorstehend beschrieben ist eine native Anwendung 107 eine Anwendung, die spezifisch konstruiert ist, um auf einem speziellen Anwendergerätebetriebssystem und Maschinen-Firmware abzulaufen. Wie in dieser Anmeldung verwendet ist eine „Umgebungsinstanz“ eine Anzeigeumgebung innerhalb einer nativen Anwendung, in der Inhalt wie z. B. Text, Bilder und dergleichen angezeigt wird. Eine Umgebungsinstanz ist für die spezielle native Anwendung spezifisch, und die native Anwendung ist für das spezielle Betriebssystem des Anwendergeräts 108a spezifisch. Eine Umgebungsinstanz unterscheidet sich von der wiedergegebenen Webressource darin, dass die Umgebungsinstanz innerhalb der nativen Anwendung erzeugt wird und für sie spezifisch ist, während eine Webressource in irgendeinem Browser wiedergegeben werden kann, mit dem die Webseitenressource kompatibel ist, und von dem Betriebssystem des Anwendergeräts unabhängig ist.
  • Ein Anwendergerät 108a ist ein elektronisches Gerät, das durch einen Anwender gesteuert wird. Ein Anwendergerät 108a ist typischerweise fähig, Webseitenressourcen 105 und native Anwendungen 107 über das Netz 102 anzufordern und zu empfangen. Beispielhafte Anwendergeräte 108a enthalten Personalcomputer, Mobilkommunikationsgeräte und Tablet-Computer.
  • Um Webressourcen 105 und die nativen Anwendungen 107 zu durchsuchen, greift das Suchsystem 110 auf einen Webindex 112 und einen Anwendungsindex 114 zu. Der Webindex 112 ist ein Index von Webressourcen 105 und ist beispielsweise mit Hilfe von Crawling der Herausgeber-Websites 104 aufgebaut worden. Der Anwendungsindex 114 ist ein Index von Umgebungsinstanzen für native Anwendungen 107 und wird unter Verwendung eines Indexers 114, der Daten empfängt, die aus einer Anwendungsinstanz 122 einer nativen Anwendung gecrawled werden, konstruiert. Obwohl sie als separate Indexe gezeigt sind, können der Webindex 112 und der Anwendungsindex 114 in einem einzigen Index kombiniert sein.
  • Das Anwendergerät 108a übermittelt Suchabfragen an das Suchsystem 110. In Reaktion auf jede Abfrage greift das Suchsystem 110 auf den Webindex 112 und den Anwendungsindex 114 zu, um jeweils Ressourcen und Anwendungen, die für die Abfrage relevant sind, zu identifizieren. Das Suchsystem 110 kann beispielsweise die Ressourcen und Anwendungen in der Form von Suchergebnissen für Webressourcen bzw. Suchergebnissen für native Anwendungen identifizieren. Sobald sie erzeugt worden sind, werden die Suchergebnisse für das Anwendergerät 108a, von dem die Abfrage empfangen wurde, bereitgestellt.
  • Ein Suchergebnis für Webressourcen ist Daten, die durch das Suchsystem 110 erzeugt sind, das eine Webressource identifiziert und Informationen bereitstellt, die einer speziellen Suchabfrage genügen. Ein Suchergebnis für Webressourcen für eine Ressource kann einen Webseitentitel, einen Textausschnitt, der aus der Ressource extrahiert ist, und einen Ressourcen-Locator für die Ressource, z. B. den URL einer Webseite, enthalten. Ein Suchergebnis für native Anwendungen spezifiziert eine native Anwendung und wird in Reaktion auf eine Suche in dem Anwendungsindex 114 der Umgebungsinstanzen erzeugt. Ein Suchergebnis für native Anwendungen enthält einen „tiefen Link“, der eine spezielle Umgebungsinstanz einer nativen Anwendung spezifiziert und der konfiguriert ist zu bewirken, dass die native Anwendung die spezifizierte Umgebungsinstanz instanziiert. Beispielsweise kann die Auswahl eines Suchergebnisses für native Anwendungen bewirken, dass die native Anwendung startet (falls sie auf dem Anwendergerät 108 installiert ist) und eine Umgebungsinstanz, die in dem Suchergebnis der Anwendung referenziert ist, in der Form eines Screenshots erzeugt.
  • Wie vorstehend beschrieben stellen die Herausgeber 106, die native Anwendungen 107 bereitstellen, auch tiefe Links für das Suchsystem 110 bereit. Darüber hinaus können auch Dritte tiefe Links für native Anwendungen bereitstellen. Zusätzlich kann das Suchsystem 110 tiefe Links aus anderen mehreren Quellen wie z. B. App-Maps, Webseiten-Kommentare usw. finden, und somit kann sich die Menge tiefer Links ständig ändern. Beispielsweise kann ein Anwendungsherausgeber eine Liste tiefer Links 109 in der Form von „Uniform Resource Identifiers“ (URIs) (oder anderen Anweisungstypen, die für die durch den Herausgeber herausgegebene native Anwendung spezifisch sind) bereitstellen. Diese tiefen Links sind tiefe Links, von denen der Herausgeber 106 möchte, dass sie gecrawled und in dem Anwendungsindex 114 indexiert werden.
  • Ein tiefer Link kann einen Namen einer nativen Anwendung spezifizieren und kann optionale Parameter enthalten, z. B. <app_name>://<params>. Diese optionalen Parameter können bewirken, dass sich die native Anwendung an einem speziellen Zustand, wie z. B. einem speziellen Bildschirm, Menü oder Umgebung innerhalb der nativen Anwendung, instanziiert. Beispielsweise kann für die native Anwendung „Example_App“ ein tiefer Link, um die native Anwendung einfach zu starten, der Anwendungsname ohne Parameter sein:
  • Example_App://
  • Sollte jedoch ein Suchergebnis der nativen Anwendung spezielle Informationen oder einen speziellen Zustand für die native Anwendung spezifizieren, können die speziellen Informationen oder ein spezieller Zustand durch Parameter spezifiziert sein. Beispielsweise kann für die Anwendung, die sich an einer speziellen Nachrichtengeschichte mit einer eindeutigen ID News123245 instanziieren soll, der tiefe Link sein:
  • Example_App://News12345
  • Ein Anwender kann eine Suchabfrage auf einem Anwendergerät 108a übermitteln, die eine Suchergebnisseite 117 zurückgeben wird, die die Suchergebnisse 118a, 118c und 118n für Webressourcen und die Suchergebnisse 118b, 118d und 118e für native Anwendungen beinhalten kann. Das System detektiert die tiefen Links innerhalb der Suchergebnisse 118b, 118d und 118efür native Anwendungen, die auf der Suchergebnisseite 117 präsentiert werden, und beginnt, native Anwendungen 120, die den Suchergebnissen 118b, 118d und 118e für native Anwendungen entsprechen, im Hintergrund des Anwendergeräts 108a vorzuinstanziieren. In einigen Implementierungen weist die im Hintergrund vorinstanziierte native Anwendungsinstanz 120 keinen aktiven Viewport auf, den ein Anwender sehen oder sich mit ihm beschäftigen kann. Somit ist, obwohl die native Anwendung 107 gestartet ist und läuft, sie auf eine solche Weise instanziiert, dass der Anwender nicht wahrnimmt, dass die native Anwendung läuft.
  • 1B ist ein Blockdiagramm eines Anwendergeräts 108a, das konfiguriert ist, native Anwendungen aus Suchergebnissen nativer Anwendungen vorzuinstanziieren. Das Betriebssystem des Anwendergeräts 117 ist in einigen Implementierungen konfiguriert, die nativen Anwendungen. die in den tiefen Links detektiert werden, auf eine Weise zu starten, dass sie im Hintergrund gestartet werden. Beispielsweise können Anweisungen, die einen Hintergrundstarter 140 für tiefe Links definieren, in dem Betriebssystem enthalten sein. Alternativ können die Anweisungen für den Hintergrundstarter 140 für tiefe Links durch eine weitere native Anwendung realisiert sein, die ein Anwender startet, um die Suchergebnisse für native Anwendungen zu verarbeiten, wie nachstehend beschrieben. In noch weiteren Implementierungen können die Anweisungen für den Hintergrundstarten 140 für tiefe Links in irgendeiner Suchergebnisseite oder Ressource, die einen tiefen Link einer nativen Anwendung enthält, enthalten sein. In wiederum weiteren Implementierungen kann der Starter 140 in dem Suchsystem 110 realisiert sein und ist konfiguriert, die tiefen Links wenn notwendig zu modifizieren, um zu bewirken, dass das Anwendergerät 108a die native Anwendergerät nach dem Verarbeiten des tiefen Links vorinstanziiert.
  • Wie nachstehend beschrieben wird ist der Hintergrundstarter 140 für tiefe Links konfiguriert zu bestimmen, wann native Anwendungen vorinstanziiert werden sollen, welche tiefen Links verarbeitet werden sollen, um native Anwendungen vorzuinstanziieren und wann die nativen Anwendungen, die vorinstanziiert worden sind, beendet werden sollen.
  • In einigen Implementierungen kann das Starten im Hintergrund vorgenommen werden durch Anhängen eines Befehlszeilenparameters an den tiefen Link und dann Verarbeiten des tiefen Links, z. B.
  • Example_App://News12345&-bg
  • Wobei „-bg“ ein Befehlszeilenparameter ist, der bewirkt, dass die native Anwendung im Hintergrund gestartet werden soll. Andere Prozesse, um eine native Anwendung im Hintergrund zu starten, können ebenfalls verwendet werden.
  • In einigen Implementierungen wird eine Anzahl nativer Anwendungen 107, die vorinstanziiert sind, basierend auf Beschränkungen bestimmt. Beispielsweise kann die Anzahl vorinstanziierter nativer Anwendungsinstanzen 120 von der Größe verfügbarer Systembetriebsmittel abhängen, um Überlastung der Betriebsmittel des Anwendergeräts (z. B. RAM, Platz in einem Laufwerk, Verarbeitungsfähigkeit usw.) zu verhindern.
  • Zusätzlich kann der Hintergrundstarter 140 für tiefe Links die Anzahl aktiver vorinstanziierter nativer Anwendungen basierend auf einem Rangfolgenschwellenwert begrenzen. Beispielsweise kann der Rangfolgenschwellenwert auf einer Ordnungsposition eines tiefen Links innerhalb der Suchergebnisse basieren. Um das zu veranschaulichen, ist angenommen, dass ein Rangfolgenschwellenwert eine Ordnungsposition 5 ist. Irgendein Suchergebnis für native Anwendungen an den Ordnungspositionen 1 - 5 wird somit zur Vorinstanziierung ausgewählt, und irgendeines an einer Ordnungsposition größer als 5 wird nicht ausgewählt. Der Hintergrundstarter 140 für tiefe Links wählt vor einer Anwenderauswahl eines Suchergebnisses tiefe Links nativer Anwendungen aus den Suchergebnissen 118b, 118d und 118e für native Anwendungen aus, da ihre Ordnungspositionen 2, 4 bzw. 5 sind. Somit wird jedes Suchergebnis für native Anwendungen in einer geeigneten Teilmenge mit der höchsten Rangfolge der Suchergebnisse 117, die den Rangfolgenschwellenwert erfüllt, zur Vorinstanziierung ausgewählt.
  • In einigen Implementierungen kann der Rangfolgenschwellenwert zusätzlich oder alternativ auf Anwenderverhaltenssignalen für die nativen Anwendungen basieren. Die Anwenderverhaltenssignale können beispielsweise spezifizieren, wie wahrscheinlich es ist, dass ein Anwender auf einen tiefen Link klicken kann, basierend auf der Tageszeit, dem Tag oder anderen Vorhersagevariablen. Somit kann das System wählen, die Anzahl vorinstanziierter nativer Anwendungsinstanzen 120 auf nur diejenigen mit tiefen Links, die der Anwender am wahrscheinlichsten auswählen wird, zu begrenzen. Das Suchsystem 110 kann auf Anwenderverlaufsdaten zugreifen, um eine Wahrscheinlichkeit für jeden tiefen Link zu bestimmen und die Wahrscheinlichkeit für den Hintergrundstarter für tiefe Links bereitstellen.
  • In anderen Implementierungen basiert der Rangfolgenschwellenwert zusätzlich oder alternativ auf einer kleinsten Relevanzbewertung für eine Suchabfrage. Das Suchsystem kann eine Relevanzbewertung für einen tiefen Link basierend darauf, wie relevant der tiefe Link für die Suchabfrage ist, erzeugen. Eine Relevanzbewertung kann durch die Anzahl der Fälle, in denen ein tiefer Link in Reaktion auf eine ähnliche Suchabfrage angeklickt wird, ein Maß der Relevanz der Begriffe für die native Anwendung oder irgendeinen anderen Relevanzbewertungsmechanismus bestimmt werden. Die Relevanzbewertung kann für den Hintergrundstarter 140 für tiefe Links bereitgestellt werden, damit der Starter 140 die Bestimmung vornehmen kann.
  • Der Starter 140 wählt aus, welche native(n) Anwendung(en) 107 vorinstanziiert werden soll(en), basierend auf den ausgewählten entsprechenden tiefen Links in der Suchergebnisseite 117. In einigen Implementierungen sendet der Starter 140 ein „Start“-Ereignis mit einem eindeutigen Bezeichner und einer Ablaufzeit zu dem Anwendergerätebetriebssystem, um die nativen Anwendungsinstanzen im Hintergrund vorzuinstanziieren. Eine Ablaufzeit ist eine vordefinierte Zeit, die auf die vorinstanziierte native Anwendung 120 angewandt wird, die eine Zeitspanne definiert, für die die vorinstanziierte native Anwendung 120 ohne Anwenderinteraktion läuft, bevor die vorinstanziierte native Anwendungsinstanz beendet 122 wird. Weitere Einzelheiten, die die Ablaufzeit und das Beenden 122 der vorinstanziierten nativen Anwendungsinstanz betreffen, sind nachstehend bereitgestellt.
  • In einigen Implementierungen wird für jeden tiefen Link, der durch den Starter 140 ausgewählt und vorinstanziiert wird, ein eindeutiger Bezeichner erzeugt, der der speziellen Instanz der nativen Anwendung 107 und dem entsprechenden tiefen Link entspricht. In einigen Implementierungen wird der eindeutige Bezeichner durch Anwenden einer Hash-Funktion auf den tiefen Link erzeugt. Beispielsweise kann die Hash-Funktion auf eine Kennung einer nativen Anwendung und einen „Uniform Resource Indicator“ angewandt werden. Der Starter vorinstanziiert die Hintergrundinstanz der nativen Anwendung unter Verwendung des eindeutigen Bezeichners, um jede aktive Instanziierung zu identifizieren. Nach einer Anwenderauswahl eines Suchergebnis für native Anwendungen mit einem tiefen Link empfängt der Starter 140 die Auswahl und bestimmt, ob die native Anwendung 107, der der tiefe Link der nativen Anwendung entspricht, vorinstanziiert worden ist, das heißt in einer nativen Hintergrundanwendungsinstanz 120 instanziiert worden ist. Falls die native Anwendung 107 im Hintergrund instanziiert worden ist, bewirkt die Anwenderauswahl des tiefen Links, dass die native Anwendung, die in der Hintergrundinstanz instanziiert 120 worden ist, in eine Vordergrundinstanz auf dem Anwendergerät 108b übergeht. Eine Vordergrundinstanz der nativen Anwendung 107 besitzt einen aktiven Viewport, der sichtbar ist und mit dem der Anwender einfach interagieren kann. Weil die native Anwendung vorinstanziiert worden ist, findet der Übergang zu dem Vordergrund mit viel weniger Latenz statt als vorhanden wäre, wenn die native Anwendung nach der Anwenderauswahl gestartet würde. (Falls die native Anwendung 107, die durch den Anwender ausgewählt wird, nicht im Hintergrund vorinstanziiert worden ist, wird die native Anwendung durch Starten der nativen Anwendung auf herkömmliche Weise geöffnet.)
  • In Implementierungen, die einen eindeutigen Bezeichner erzeugen, sendet das System nach der Anwenderauswahl eines tiefen Links ein „Öffnen“-Ereignis mit dem eindeutigen Bezeichner, um zu bewirken, dass die native Anwendung in die Vordergrundinstanz übergeht. Falls eine native Anwendung mit demselben eindeutigen Bezeichner nicht im Hintergrund vorinstanziiert ist, wird die native Anwendung durch Starten der nativen Anwendung geöffnet.
  • In einigen Implementierungen kann ein Hintergrundentladeereignis am Ablauf einer Timeout-Zeitspanne, gemessen ab der Instanziierung der Hintergrundinstanzen 120 der nativen Anwendung, auftreten. Beispielsweise werden vorinstanziierte native Anwendungsinstanzen 120, die nicht in den Vordergrund gebracht werden, beendet 122, wenn der Starter 140 ein „Entlade“-Ereignis erzeugt und zusammen mit entsprechenden eindeutigen Bezeichnern zu den nativen Anwendungen 107, die aktive vorinstanziierte Instanzen 120 aufweisen, sendet. Es gibt verschiedene Implementierungen, die bewirken können, dass das System ein „Entlade“-Ereignis zu einer nativen Anwendung 107 sendet. Beispielsweise falls ein Anwender nicht mit einem tiefen Link innerhalb der Ablaufzeit, die mit einem „Start“-Ereignis für eine spezielle vorinstanziierte native Anwendungsinstanz 120 gesendet wurde, interagiert, läuft ein Zeitgeber für die vorinstanziierte native Anwendungsinstanz 120 ab, und der Starter 140 erzeugt das Hintergrundentladeereignis 142. Das bewirkt das Beenden 122 der nativen Anwendungen 107.
  • In anderen Implementierungen tritt das Hintergrund-„Entlade“-Ereignis nach dem Entladen einer Seite auf, in der die Menge von Suchergebnissen 117 angezeigt wird. Eine Seite kann beispielsweise „entladen“ werden, wenn eine neue Menge von Suchergebnissen für eine Suche angefordert wird, wenn ein spezieller tiefer Link ausgewählt wird oder wenn eine Seite geschlossen wird. Beispielsweise wird nach einer Anwenderauswahl eines speziellen tiefen Links das „Öffnen“-Ereignis für die spezielle native Anwendung durch den Starter 140 erzeugt, und ein „Entlade“-Ereignis wird für irgendwelche anderen aktiven vorinstanziierten nativen Anwendungsinstanzen 120, die dem durch den Anwender ausgewählten tiefen Link nicht zugeordnet sind, zu dem Starter 140 gesendet. Somit werden, wenn die native Anwendung in den Vordergrund gebracht wird, die anderen aktiven vorinstanziierten nativen Anwendungen 120 beendet.
  • Ähnlich wird, falls ein Anwender von der Suchergebnisseite weg navigiert, ein „Entlade“-Ereignis durch den Starter 140 für alle aktiven vorinstanziierten nativen Anwendungsinstanzen 120 erzeugt, um die Instanzen zu beenden 122.
  • In einigen Implementierungen kann eine spezielle native Anwendung das Vorinstanziieren mehrerer nativer Anwendungsinstanzen 120 unterstützen, und der Starter 140 kann mehrere native Anwendungsinstanzen 120 für die spezielle native Anwendung 107 vorinstanziieren. Jede Instanz kann zu einem unterschiedlichen Abschnitt der nativen Anwendung 107 starten, basierend auf dem eindeutigen tiefen Link, der verwendet wird, um die Instanz zu starten. Beispielsweise kann für drei unterschiedliche tiefe Links mit unterschiedlichen Parametern für eine spezielle native Anwendung eine native Anwendungsinstanz 120 zu einem Hauptmenü gestartet werden, eine weitere Instanz 120 der nativen Anwendung kann zu einem Untermenü gestartet werden, und eine weitere Instanz 120 kann zu einer Editierumgebung innerhalb der nativen Anwendung gestartet werden.
  • Die eindeutigen Bezeichner für die Instanzen der nativen Anwendungen 107 können auch verwendet werden, um zu bestimmen, welche Instanzen beendet werden sollen. Wenn eine native Anwendung vorinstanziiert ist, wird ihr entsprechender eindeutiger Bezeichner durch das Betriebssystem im Speicher gespeichert. Danach wird, wenn eine native Anwendung, die vorinstanziiert worden ist, in den Vordergrund gebracht wird, ihr entsprechender eindeutiger Bezeichner aus dem Speicher entfernt. Wenn das Hintergrundentladesignal erzeugt wird, werden irgendwelche Instanzen von nativen Anwendungen, die vorinstanziiert worden sind und die immer noch einen im Speicher gespeicherten eindeutigen Bezeichner aufweisen, beendet.
  • In dem Beispiel, in dem eine native Anwendung 107 mehrere native Anwendungsinstanzen 120 unterstützen kann, ordnet der Starter 140 für jede Instanz 120 einen eindeutigen Bezeichner zu. Somit ordnet der Starter 140 für jede native Anwendung, die mehrere Instanzen der nativen Anwendung unterstützt, jeden der erzeugten eindeutigen Bezeichner einer entsprechenden eindeutigen Instanz der nativen Anwendung zu. Das ermöglicht es, dass der Starter 140 die korrekte native Anwendungsinstanz 120 in den Vordergrund bringt, wenn ein Anwender einen speziellen tiefen Link auswählt. Deshalb erfordert das Bewirken, dass die native Anwendung, die in der Hintergrundinstanz instanziiert ist, in eine Vordergrundinstanz übergeht, nur, dass die eindeutige Instanz der nativen Anwendung in die Vordergrundinstanz durch Verwenden des speziellen eindeutigen Bezeichners dieser eindeutigen Instanz mit dem „Öffnen“-Ereignis übergeht. Das ermöglicht es dem System außerdem zu bestimmen, welche vorinstanziierten nativen Anwendungsinstanzen nicht in den Vordergrund gebracht wurden, bevor das Hintergrundentladeereignis auftritt, und diese vorinstanziierten nativen Anwendungen zu beenden. Zusätzlich oder alternativ ermöglicht das Verwenden der eindeutigen Bezeichner für jede Instanziierung dem System, irgendwelche Instanzen einer nativen Anwendungen zu ignorieren, die vor der Suchoperation geladen und im Hintergrund waren. Beispielsweise wird eine native Anwendungsinstanz, die durch den Anwender vor einer Suche minimiert wurde, nicht beendet werden, falls eine weitere Instanz der nativen Anwendung in Reaktion darauf, dass ein tiefer Link einer nativen Anwendung, der in Reaktion auf eine Suchoperation bereitgestellt wird, vorinstanziiert jedoch nicht in den Vordergrund gebracht wird, bevor das Hintergrundentladeereignis auftritt.
  • Wenn eine spezielle native Anwendung nur eine einzige Instanz einer nativen Anwendung auf einem Anwendergerät unterstützt und mehrere tiefe Links für eine spezielle native Anwendung in dem Suchergebnis sind, wählt der Starter 140 nur einen einzigen tiefen Link der nativen Anwendung für diese native Anwendung aus. Beispielsweise ist mit Bezug auf 1B angenommen, dass die Suchergebnisse 118b und 118d für die native Anwendung beide tiefe Links zu einem Schachprogramm aufweisen. Der erste tiefe Link für das Suchergebnis 118b verlinkt zu einer Buchöffnungsumgebung innerhalb der nativen Anwendung, und der zweite tiefe Link für das Suchergebnis 118d verlinkt zu einem Spielauswahlmenü innerhalb der nativen Anwendung. Weil das Suchergebnis 118 einen Rang oberhalb des Suchergebnisses 118 aufweist, wird die native Anwendung zu der Buchöffnungsumgebung vorinstanziiert, und der tiefe Link für das Suchergebnis 118d wird nicht verarbeitet.
  • Der Hintergrundstarter 140 für tiefe Links kann mit Daten versorgt werden, die beschreiben, welche nativen Anwendungen mehrere Instanzen unterstützen und welche nur einzelne Instanzen unterstützen. Beispielsweise kann die Such-Engine 110 eine Datei bereitstellen, die die Fähigkeiten der nativen Anwendungen, mehrere Instanzen zu unterstützen, beschreibt. Unter Verwendung dieser Informationen kann der Starter 140 dann die tiefen Links wie vorstehend beschrieben verarbeiten.
  • Obwohl die Vorinstanziierung nativer Anwendungsinstanzen mit Bezug auf eine Suchabfrage und Suchergebnisse in Reaktion auf eine Suchabfrage diskutiert worden ist, kann die Vorinstanziierung nativer Anwendungsinstanzen innerhalb irgendeiner Ressource auftreten, die einen tiefen Link 109 einer Anwendung beinhaltet. Der Starter 140 kann eine native Anwendungsinstanz nach der Detektion irgendeines tiefen Links 109 einer nativen Anwendung vorinstanziieren. Beispielsweise kann innerhalb einer Filmkritikanwendung ein tiefer Link zum Betrachten des Films, für den Ort des Kinos und/oder für den Film-Trailer vorhanden sein. Der Starter 140 kann eine der oder alle nativen Anwendungen, die den tiefen Links 109 entsprechen, die innerhalb der Filmkritikanwendung vorhanden sind, vorinstanziieren.
  • 2 ist ein Ablaufdiagramm, das einen Prozess 200 zum Instanziieren von Hintergrundinstanzen nativer Anwendungen beschreibt. Der Prozess 200 kann auf einem Anwendergerät 108 implementiert sein.
  • Der Prozess 200 empfängt eine Menge von Suchergebnissen in Reaktion auf eine Suchabfrage (202). Die Menge der Suchergebnisse enthält Suchergebnisse, die jeweils einen tiefen Link 109 einer nativen Anwendung enthalten, der, wenn er in Anspruch genommen wird, eine Instanz der nativen Anwendung 107 instanziiert. Zusätzlich erzeugt eine native Anwendung 107 Umgebungsinstanzen zur Anzeige auf einem Anwendergerät innerhalb der nativen Anwendung, und die native Anwendung 107 arbeitet unabhängig von einer Browseranwendung, die auf dem Anwendergerät arbeitet.
  • Der Prozess 200 wählt vor einer Anwenderauswahl eines Suchergebnisses tiefe Links 109 nativer Anwendungen aus dem Suchergebnis aus (204). Wie vorstehend beschrieben detektiert der Starter 140 tiefe Links 109 nativer Anwendungen, die innerhalb einer Menge von Suchergebnissen vorhanden sind, und wählt die tiefen Links basierend auf verschiedenen Beschränkungen aus. Nach der Auswahl der tiefen Links instanziiert der Starter 140 für jeden tiefen Link einer nativen Anwendung, der ausgewählt ist, eine Hintergrundinstanz 120 der nativen Anwendung, der der tiefe Link 109 der nativen Anwendung entspricht (206).
  • Der Prozess 200 bestimmt in Reaktion auf ein Auftreten eines Hintergrundentladeereignisses Hintergrundinstanzen der nativen Anwendungen, die aus den tiefen Links der nativen Anwendungen instanziiert wurden und die vor dem Auftreten des Hintergrundentladeereignisses nicht in den Vordergrund gebracht wurden (208). Beispielsweise falls eine vorinstanziierte native Anwendungsinstanz ein „Öffnen“-Ereignis empfangen hat, verlagert sich diese native Anwendungsinstanz in den Vordergrund in einen durch den Anwender zugreifbaren Viewport. Für die anderen aktiven vorinstanziierten nativen Anwendungsinstanzen entlädt der Prozess 200 jede der Hintergrundinstanzen der instanziierten nativen Anwendungen, die vor dem Auftreten des Hintergrundentladeereignisses nicht in den Vordergrund gebracht wurden (210).
  • Zusätzliche Einzelheiten der Implementierung
  • In Situationen, in denen die hier diskutierten Systeme persönliche Informationen über Anwender sammeln oder persönliche Informationen verwenden können, kann für die Anwender eine Gelegenheit bereitgestellt werden zu steuern, ob Programme oder Merkmale Anwenderinformationen (z. B. Informationen über ein soziales Netzwerk eines Anwenders, soziale Aktionen oder Aktivitäten, Beruf, Vorlieben eines Anwenders oder den aktuellen Aufenthaltsort eines Anwenders) sammeln, oder zu steuern, ob und/oder wie Inhalt von dem Inhaltsserver, der für den Anwender relevanter sein kann, empfangen werden soll. Zusätzlich können spezielle Daten auf eine oder mehrere Arten behandelt werden, bevor sie gespeichert oder verwendet werden, so dass persönlich identifizierbare Informationen entfernt werden. Beispielsweise kann die Identität eines Anwenders behandelt werden, so dass keine persönlich identifizierbaren Informationen für den Anwender bestimmt werden können, oder der geographische Aufenthaltsort eines Anwenders kann verallgemeinert werden, wenn Ortsinformationen erhalten werden (wie z. B. auf die Ebene einer Stadt, einer Postleitzahl oder eines Staats), so dass ein spezieller Aufenthaltsort eines Anwenders nicht bestimmt werden kann. Somit kann der Anwender die Kontrolle darüber haben, wie Informationen über den Anwender gesammelt und durch einen Inhaltsserver verwendet werden.
  • Ausführungsformen des Gegenstands und der Operationen, die in dieser Anmeldung beschrieben sind, können in einer digitalen elektronischen Schaltungsanordnung oder in Computer-Software, Firmware oder Hardware, die die Strukturen, die in dieser Anmeldung offenbart sind, und ihre strukturellen Äquivalente enthalten, oder in Kombinationen aus einem oder mehreren daraus implementiert sein. Ausführungsformen des Gegenstands, der in dieser Anmeldung beschrieben ist, können als ein oder mehrere Computerprogramme implementiert sein, d. h. ein oder mehrere Module aus Computerprogrammanweisungen, die auf einem ComputerSpeichermedium zur Ausführung durch oder zur Steuerung des Betriebs einer Datenverarbeitungseinrichtung codiert sind.
  • Ein Computerspeichermedium kann eine computerlesbare Speichervorrichtung, ein computerlesbares Speichersubstrat, ein/e Speicher-Array oder -Vorrichtung für Direktzugriff oder seriellen Zugriff oder eine Kombination aus einem oder mehreren davon sein oder darin enthalten sein. Außerdem kann, während ein Computerspeichermedium kein verbreitetes Signal ist, ein Computerspeichermedium eine Quelle oder ein Ziel von Computerprogrammanweisungen sein, die in einem künstlich erzeugten verbreiteten Signal codiert sind. Das Computerspeichermedium kann außerdem eine oder mehrere getrennte physikalische Komponenten oder Medien (z. B. mehrere CDs, Platten oder andere Speichervorrichtungen) sein oder darin enthalten sein.
  • Die in dieser Anmeldung beschriebenen Operationen können als Operationen implementiert sein, die durch eine Datenverarbeitungseinrichtung auf Daten, die auf einer oder mehreren computerlesbaren Speichervorrichtungen gespeichert sind oder aus andere Quellen empfangen werden, ausgeführt werden.
  • Der Begriff „Datenverarbeitungseinrichtung“ schließt alle Arten von Einrichtungen, Geräten und Maschinen zum Verarbeiten von Daten ein, die als Beispiele einen programmierbaren Prozessor, einen Computer, ein Einchipsystem oder mehrere oder Kombinationen aus dem Vorstehenden enthalten. Die Einrichtung kann Spezial-Logikschaltungsanordnung, z. B. ein FGPA (feldprogrammierbares Gatterfeld) oder eine ASIC (anwendungsspezifische integrierte Schaltung), enthalten. Die Einrichtung kann außerdem zusätzlich zu Hardware Code enthalten, der eine Ausführungsumgebung für das fragliche Computerprogramm erzeugt, z. B. Code, der Prozessor-Firmware, einen Protokollstack, ein Datenbankmanagementsystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination aus einem oder mehreren davon bildet. Die Einrichtung und Ausführungsumgebung können verschiedene unterschiedliche Berechnungsmodellinfrastrukturen realisieren, wie z. B. Webdienste, Infrastrukturen für verteiltes Berechnen und Grid-Berechnen.
  • Ein Computerprogramm (auch als ein Programm, Software, Softwareanwendung, Skript oder Code bezeichnet) kann in irgendeiner Form einer Programmiersprache geschrieben sein, die kompilierte oder interpretierte Sprachen, deklarative oder prozedurale Sprachen enthält, und es kann in irgendeiner Form verteilt werden, die als ein eigenständiges Programm oder als ein Modul, eine Komponente, eine Subroutine, ein Objekt oder irgendeine Einheit, die zum Gebrauch in einer Berechnungsumgebung geeignet sind, enthält. Ein Computerprogramm kann, muss jedoch nicht, einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Abschnitt einer Datei, die andere Programme oder Daten enthält (z. B. ein oder mehrere Skripte, die in einem Auszeichnungssprachen-Dokument gespeichert sind), in einer einzelnen Datei, die für das fragliche Programm dediziert ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Code-Abschnitte speichern) gespeichert sein. Ein Computerprogramm kann verteilt werden, um auf einem Computer oder auf mehreren Computern, die sich an einem Standort oder verteilt über mehrere Standorte befinden und durch ein Kommunikationsnetz miteinander verbunden sind, ausgeführt zu werden.
  • Die Prozesse und Logikabläufe, die in dieser Anmeldung beschrieben sind, können durch einen oder mehrere programmierbare Prozessoren ausgeführt werden, die ein oder mehrere Computerprogramme ablaufen lassen, um Aktionen durch Arbeiten auf Eingabedaten und Erzeugen einer Ausgabe auszuführen. Die Prozesse und Logikabläufe können auch durch eine Spezial-Logikschaltungsanordnung, z. B. ein FGPA (feldprogrammierbares Gatterfeld) oder eine ASIC (anwendungsspezifische integrierte Schaltung) ausgeführt werden, und die Einrichtung kann dadurch implementiert sein.
  • Prozessoren, die zur Ausführung eines Computerprogramms geeignet sind, enthalten als Beispiele sowohl Allzweck- als auch Spezial-Mikroprozessoren und irgendeinen oder irgendwelche Prozessoren irgendeiner Art eines digitalen Computers. Allgemein wird ein Prozessor Anweisungen und Daten aus einem Festwertspeicher oder einem Direktzugriffsspeicher oder beiden empfangen. Die wesentlichen Elemente eines Computers sind ein Prozessor zum Ausführen von Aktionen in Übereinstimmung mit Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Allgemein wird ein Computer auch eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten, z. B. magnetische, magneto-optische Platten oder optische Platten, enthalten oder betriebstechnisch damit gekoppelt sein, um Daten von ihnen zu empfangen, zu ihnen zu übertragen oder beides. Ein Computer muss jedoch solche Vorrichtungen nicht aufweisen. Außerdem kann ein Computer in eine weitere Vorrichtung eingebettet sein, z. B. in ein Mobiltelefon, einen persönlichen digitalen Assistenten (PDA), ein mobiles Audio- oder Videoabspielgerät, eine Spielkonsole, einen Empfänger des globalen Positionierungssystems (GPS-Empfänger) oder eine tragbare Speichervorrichtung (z. B. ein Flashlaufwerk über den universellen seriellen Bus (USB-Flashlaufwerk)), um nur einige wenige zu nennen. Vorrichtungen, die zum Speichern von Computerprogrammanweisungen und Daten geeignet sind, enthalten alle Formen von nichtflüchtigem Speicher, Medien und Speichervorrichtungen, die als Beispiel Halbleiterspeichervorrichtungen, z. B. EPROM, EEPROM und Flash-Speichervorrichtungen enthalten; Magnetplatten, z. B. interne Festplatten oder herausnehmbare Platten; magneto-optische Platten; und CD ROM und DVD-ROM-Platten. Der Prozessor und der Speicher können durch eine Spezial-Logikschaltungsanordnung ergänzt oder darin integriert sein.
  • Um die Interaktion für einen Anwender bereitzustellen, können Ausführungsformen des in dieser Anmeldung beschriebenen Gegenstands auf einem Computer implementiert sein, der eine Anzeigevorrichtung, z. B. einen CRT- (Kathodenstrahlröhren-) oder LCD-Monitor (Flüssigkristallanzeige-Monitor) zum Anzeigen von Informationen für den Anwender und eine Tastatur und eine Zeigevorrichtung, z. B. eine Maus oder einen Trackball, durch die der Anwender Eingaben für den Computer bereitstellen kann, aufweist. Andere Arten von Vorrichtungen können verwendet werden, um ebenfalls Interaktion mit Anwender einem bereitzustellen; beispielsweise kann eine für den Anwender bereitgestellte Rückmeldung irgendeine Form sensorischer Rückmeldung sein, z. B. visuelle Rückmeldung, hörbare Rückmeldung oder tastbare Rückmeldung; und eine Eingabe von dem Anwender kann in irgendeiner Form empfangen werden, die akustische, Sprach- oder tastbare Eingabe enthält. Zusätzlich kann ein Computer mit einem Anwender interagieren durch Senden von Dokumenten zu einer Vorrichtung und Empfangen von Dokumenten von einer Vorrichtung, die durch den Anwender verwendet wird; beispielsweise durch Senden von Web-Seiten zu einem Web-Browser auf einem Anwendergerät eines Anwenders in Reaktion auf Anforderungen, die von dem Web-Browser empfangen werden.
  • Ausführungsformen des in dieser Anmeldung beschriebenen Gegenstands können in einem Computersystem implementiert sein, das eine Backend-Komponente, z. B. als ein Daten-Server, enthält oder das eine Middleware-Komponente, z. B. einen Anwendungsserver, enthält, oder der eine Frontend-Komponente, z. B. einen Anwender-Computer, enthält, der eine grafische Anwenderschnittstelle oder einen Web-Browser aufweist, durch den ein Anwender mit einer Implementierung des in dieser Anmeldung beschriebenen Gegenstands interagieren kann, oder irgendeine Kombination eines oder mehrerer solcher Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch irgendeine Form oder irgendein Medium zur digitalen Datenkommunikation, z. B. ein Kommunikationsnetz, miteinander verbunden sein. Beispiele für Kommunikationsnetze enthalten ein lokales Netz („LAN“) und ein Weitbereichsnetz („WAN“), ein Inter-Netz (z. B. das Internet) und Peer-to-Peer-Netze (z. B. Ad-hoc-Peer-to-Peer-Netze).
  • Das Berechnungssystem kann Anwender und Server enthalten. Ein Anwender und ein Server sind im Allgemeinen voneinander entfernt und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung von Anwender und Server entsteht aufgrund der Computerprogramme, die auf den jeweiligen Computern laufen und eine Anwender-Server-Beziehung miteinander aufweisen. In einigen Ausführungsformen sendet ein Server Daten (z. B. eine HTML-Seite) zu einem Anwendergerät (z. B. zum Zweck der Anzeige der Daten für einen Anwender und Empfangen von Anwendereingabe von einem Anwender, der mit der dem Anwendergerät interagiert). Daten, die in dem Anwendergerät erzeugt werden (z. B. ein Ergebnis einer Anwenderinteraktion) können von dem Anwendergerät in dem Server empfangen werden.
  • Obwohl diese Anmeldung viele spezifische Implementierungseinzelheiten beinhaltet, sollten diese nicht als Einschränkungen für den Schutzbereich irgendwelcher Erfindungen oder dessen, das beansprucht sein kann, gedeutet werden, sondern vielmehr als Beschreibungen der Merkmale, die für spezielle Ausführungsformen der speziellen Erfindungen spezifisch sind. Spezielle Merkmale, die in dieser Anmeldung im Kontext getrennter Ausführungsformen beschrieben sind, können auch in Kombination in einer einzigen Ausführungsform implementiert sein. Umgekehrt können verschiedene Merkmale, die im Kontext einer einzigen Ausführungsform beschrieben sind, auch in mehreren Ausführungsformen separat oder in irgendeiner geeigneten Unterkombination implementiert sein. Außerdem können, obwohl Merkmale vorstehend als in speziellen Kombinationen arbeitend beschrieben und anfangs sogar als solche beansprucht sind, ein oder mehrere Merkmale aus einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgenommen sein, und die beanspruchte Kombination kann sich auf eine Unterkombination oder eine Variation einer Unterkombination richten.
  • Ähnlich sollte, obwohl Operationen in den Zeichnungen in einer speziellen Reihenfolge abgebildet sind, das nicht so verstanden werden, dass es erforderlich ist, dass solche Operationen in der speziellen gezeigten Reihenfolge oder in sequenzieller Reihenfolge ausgeführt werden oder dass alle dargestellten Operationen ausgeführt werden, um wünschenswerte Ergebnisse zu erreichen. Unter speziellen Umständen können Multitasking und Parallelverarbeitung vorteilhaft sein. Außerdem sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Ausführungsformen nicht so verstanden werden, dass eine solche Trennung in allen Ausführungsformen erforderlich ist, und es sollte verstanden werden, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen gemeinsam in einem einzigen Software-Produkt oder in mehrere Software-Produkte paketiert integriert sein können.
  • Somit sind spezielle Ausführungsformen des Gegenstands beschrieben worden. Andere Ausführungsformen sind innerhalb des Schutzbereichs der folgenden Ansprüche. In einigen Fällen können die Aktionen, die in den Ansprüchen vorgetragen sind, in einer anderen Reihenfolge ausgeführt werden und immer noch wünschenswerte Ergebnisse erreichen. Zusätzlich erfordern die in den begleitenden Figuren abgebildeten Prozesse nicht notwendigerweise die spezielle gezeigte Reihenfolge oder sequenzielle Reihenfolge, um wünschenswerte Ergebnisse zu erreichen. In speziellen Implementierungen können Multitasking und Parallelverarbeitung vorteilhaft sein.

Claims (16)

  1. Computerimplementiertes Verfahren, das durch eine Datenverarbeitungseinrichtung ausgeführt wird, wobei das Verfahren umfasst: Empfangen einer Menge von Suchergebnissen, wobei die Menge ein oder mehrere Suchergebnisse enthält, die jeweils einen tiefen Link einer nativen Anwendung enthalten, der konfiguriert ist, eine Instanz einer nativen Anwendung zu instanziieren, wobei die native Anwendung Umgebungsinstanzen zur Anzeige auf einem Anwendergerät innerhalb der nativen Anwendung erzeugt und die native Anwendung unabhängig von einer Browseranwendung arbeitet, die auf dem Anwendergerät arbeitet; Auswählen vor einer Anwenderauswahl eines Suchergebnisses eines oder mehrerer tiefer Links einer nativen Anwendung aus den Suchergebnissen; Instanziieren für jeden tiefen Link einer nativen Anwendung, der ausgewählt ist, einer Hintergrundinstanz der nativen Anwendung, der der tiefe Link der nativen Anwendung entspricht; Bestimmen in Reaktion auf ein Auftreten eines Hintergrundentladeereignisses von Hintergrundinstanzen der nativen Anwendung, die aus den tiefen Links der nativen Anwendungen instanziiert wurden und die nicht vor dem Auftreten des Hintergrundentladeereignisses in den Vordergrund gebracht wurden; und Beenden jeder der Hintergrundinstanzen der instanziierten nativen Anwendungen, die nicht vor dem Auftreten des Hintergrundentladeereignisses in den Vordergrund gebracht wurden.
  2. Computerimplementiertes Verfahren nach Anspruch 1, das ferner umfasst: Empfangen einer Anwenderauswahl eines Suchergebnisses mit einem tiefen Link einer nativen Anwendung; und Bestimmen, dass die native Anwendung, der der tiefe Link der nativen Anwendung entspricht, in einer Hintergrundinstanz instanziiert worden ist, und in Reaktion darauf Bewirken, dass die in einer Hintergrundinstanz instanziierte native Anwendung in eine Vordergrundinstanz übergeht.
  3. Computerimplementiertes Verfahren nach Anspruch 1 oder 2, das ferner umfasst: Erzeugen für jeden tiefen Link einer nativen Anwendung eines eindeutigen Bezeichners, der der nativen Anwendung entspricht, der der tiefe Link der nativen Anwendung entspricht; und wobei das Instanziieren für jeden tiefen Link einer nativen Anwendung, der ausgewählt ist, der Hintergrundinstanz der nativen Anwendung das Instanziieren der Hintergrundinstanz unter Verwendung des eindeutigen Bezeichners umfasst.
  4. Computerimplementiertes Verfahren nach Anspruch 3, das ferner umfasst: für jede native Anwendung, die mehrere Instanzen der nativen Anwendung unterstützt, Zuordnen jedes eindeutigen Bezeichners zu einer entsprechenden eindeutigen Instanz der nativen Anwendung.
  5. Computerimplementiertes Verfahren nach Anspruch 4, wobei das Bewirken, dass die in der Hintergrundinstanz instanziierte native Anwendung in eine Vordergrundinstanz übergeht, das Bewirken umfasst, dass nur die eindeutige Instanz der nativen Anwendung in die Vordergrundinstanz übergeht.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Auswählen vor der Anwenderauswahl eines Suchergebnisses tiefer Links nativer Anwendungen aus den Suchergebnissen das Auswählen nur eines einzigen tiefen Links einer nativen Anwendung für eine native Anwendung, die nur eine einzige Instanz der nativen Anwendung unterstützt, umfasst.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Auswählen vor der Anwenderauswahl eines Suchergebnisses tiefer Links nativer Anwendungen aus den Suchergebnissen das Auswählen nur tiefer Links nativer Anwendungen aus einer geeigneten Teilmenge von Suchergebnissen umfasst, wobei jedes Suchergebnis in der geeigneten Teilmenge einen Rangfolgenschwellenwert erfüllt.
  8. Verfahren nach Anspruch 7, wobei der Rangfolgenschwellenwert auf wenigstens einem aus den Folgenden basiert: einer kleinsten Ordnungsposition eines Suchergebnisses, einer kleinsten Relevanzbewertung für eine Abfrage und Anwenderpräferenzen für die nativen Anwendungen.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Hintergrundentladeereignis bei Ablauf einer Timeout-Zeitspanne gemessen ab der Instanziierung der Hintergrundinstanzen der nativen Anwendung auftritt oder wobei das Hintergrundentladeereignis bei dem Entladen einer Seite, in der die Menge der Suchergebnisse angezeigt wird, auftritt.
  10. System, das umfasst: eine Datenverarbeitungseinrichtung; und Software, die in einem nicht-transitorischen computerlesbaren Speichermedium gespeichert ist, das Anweisungen speichert, die durch die Datenverarbeitungseinrichtung ausführbar sind und die bei einer solchen Ausführung bewirken, dass die Datenverarbeitungseinrichtung Operationen ausführt, die umfassen: Empfangen einer Menge von Suchergebnissen, wobei die Menge ein oder mehrere Suchergebnisse enthält, die jeweils einen tiefen Link einer nativen Anwendung enthalten, der konfiguriert ist, eine Instanz einer nativen Anwendung zu instanziieren, wobei die native Anwendung Umgebungsinstanzen zur Anzeige auf einem Anwendergerät innerhalb der nativen Anwendung erzeugt und die native Anwendung unabhängig von einer Browseranwendung arbeitet, die auf dem Anwendergerät arbeitet; Auswählen vor einer Anwenderauswahl eines Suchergebnisses eines oder mehrerer tiefer Links einer nativen Anwendung aus den Suchergebnissen; Instanziieren für jeden tiefen Link einer nativen Anwendung, der ausgewählt ist, einer Hintergrundinstanz der nativen Anwendung, der der tiefe Link der nativen Anwendung entspricht; Bestimmen in Reaktion auf ein Auftreten eines Hintergrundentladeereignisses von Hintergrundinstanzen der nativen Anwendung, die aus den tiefen Links der nativen Anwendungen instanziiert wurden und die nicht vor dem Auftreten des Hintergrundentladeereignisses in den Vordergrund gebracht wurden; und Beenden jeder aus den Hintergrundinstanzen der instanziierten nativen Anwendungen, die nicht vor dem Auftreten des Hintergrundentladeereignisses in den Vordergrund gebracht wurden.
  11. System nach Anspruch 10, wobei die Operationen ferner umfassen: Empfangen einer Anwenderauswahl eines Suchergebnisses mit einem tiefen Link einer nativen Anwendung; und Bestimmen, dass die native Anwendung, der der tiefe Link der nativen Anwendung entspricht, in einer Hintergrundinstanz instanziiert worden ist, und in Reaktion darauf Bewirken, dass die in einer Hintergrundinstanz instanziierte native Anwendung in eine Vordergrundinstanz übergeht.
  12. System nach Anspruch 10 oder 11, wobei die Operationen ferner umfassen: Erzeugen für jeden tiefen Link einer nativen Anwendung eines eindeutigen Bezeichners, der der nativen Anwendung entspricht, der der tiefe Link der nativen Anwendung entspricht; und wobei das Instanziieren für jeden tiefen Link einer nativen Anwendung, der ausgewählt ist, der Hintergrundinstanz der nativen Anwendung das Instanziieren der Hintergrundinstanz unter Verwendung des eindeutigen Bezeichners umfasst.
  13. System nach Anspruch 12, wobei die Operationen ferner umfassen: für jede native Anwendung, die mehrere Instanzen der nativen Anwendung unterstützt, Zuordnen jedes eindeutigen Bezeichners zu einer entsprechenden eindeutigen Instanz der nativen Anwendung.
  14. System nach Anspruch 14, wobei die Anweisungen bewirken, dass die Datenverarbeitungseinrichtung vor der Anwenderauswahl eines Suchergebnisses tiefe Links nativer Anwendungen aus den Suchergebnissen durch Auswählen nur tiefer Links nativer Anwendungen aus einer geeigneten Teilmenge von Suchergebnissen auswählt, wobei jedes Suchergebnis in der geeigneten Teilmenge einen Rangfolgenschwellenwert erfüllt.
  15. System nach Anspruch 14, wobei der Rangfolgenschwellenwert auf wenigstens einem aus den Folgenden basiert: einer kleinsten Ordnungsposition eines Suchergebnisses, einer kleinsten Relevanzbewertung für eine Abfrage und Anwenderpräferenzen für die nativen Anwendungen.
  16. Computerspeichermedium, das mit einem Computerprogramm codiert ist, wobei das Programm Anweisungen umfasst, die dann, wenn sie durch eine Datenverarbeitungseinrichtung ausgeführt werden, bewirken, dass die Datenverarbeitungseinrichtung Operationen ausführt, die umfassen: Empfangen einer Menge von Suchergebnissen, wobei die Menge ein oder mehrere Suchergebnisse enthält, die jeweils einen tiefen Link einer nativen Anwendung enthalten, der konfiguriert ist, eine Instanz einer nativen Anwendung zu instanziieren, wobei die native Anwendung Umgebungsinstanzen zur Anzeige auf einem Anwendergerät innerhalb der nativen Anwendung erzeugt und die native Anwendung unabhängig von einer Browseranwendung arbeitet, die auf dem Anwendergerät arbeitet; Auswählen vor einer Anwenderauswahl eines Suchergebnisses eines oder mehrerer tiefer Links einer nativen Anwendung aus den Suchergebnissen; Instanziieren für jeden tiefen Link einer nativen Anwendung, der ausgewählt ist, einer Hintergrundinstanz der nativen Anwendung, der der tiefe Link der nativen Anwendung entspricht; Bestimmen in Reaktion auf ein Auftreten eines Hintergrundentladeereignisses von Hintergrundinstanzen der nativen Anwendung, die aus den tiefen Links der nativen Anwendungen instanziiert wurden und die nicht vor dem Auftreten des Hintergrundentladeereignisses in den Vordergrund gebracht wurden; und Beenden jeder aus den Hintergrundinstanzen der instanziierten nativen Anwendungen, die nicht vor dem Auftreten des Hintergrundentladeereignisses in den Vordergrund gebracht wurden.
DE112016004130.6T 2015-11-19 2016-11-15 Vorinstanziieren nativer Anwendungen im Hintergrund Pending DE112016004130T5 (de)

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 (1)

Publication Number Publication Date
DE112016004130T5 true DE112016004130T5 (de) 2018-06-14

Family

ID=57482512

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016004130.6T Pending DE112016004130T5 (de) 2015-11-19 2016-11-15 Vorinstanziieren nativer Anwendungen im Hintergrund

Country Status (6)

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

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 北京百度网讯科技有限公司 应用程序的启动方法、装置、设备及存储介质
CN116235145A (zh) * 2020-09-09 2023-06-06 谷歌有限责任公司 使用进程间通信预启动应用
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
US20120324481A1 (en) * 2011-06-16 2012-12-20 Samsung Electronics Co. Ltd. Adaptive termination and pre-launching policy for improving application startup time
US9519726B2 (en) * 2011-06-16 2016-12-13 Amit Kumar Surfacing applications based on browsing activity
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
KR102033704B1 (ko) 2019-10-17
JP6410992B1 (ja) 2018-10-24
CN108140037B (zh) 2021-08-06
US10146842B2 (en) 2018-12-04
CN108140037A (zh) 2018-06-08
JP2018534670A (ja) 2018-11-22
KR20180048940A (ko) 2018-05-10
US20170147658A1 (en) 2017-05-25
WO2017087394A1 (en) 2017-05-26

Similar Documents

Publication Publication Date Title
US10394902B2 (en) Creating rules for use in third-party tag management systems
US10237299B2 (en) Browser extension for contemporaneous in-browser tagging and harvesting of internet content
US9229989B1 (en) Using resource load times in ranking search results
EP2946316B1 (de) Indexierung von anwendungsseiten nativer anwendungen
US9338215B2 (en) Search engine
US8898132B2 (en) Method and/or system for searching network content
DE112016005265T5 (de) Verbesserte Push-Nachrichtenübermittlung
DE202014010829U1 (de) Entfernungsabhängige Herabstufung von Suchrankings
DE112016004130T5 (de) Vorinstanziieren nativer Anwendungen im Hintergrund
US11989247B2 (en) Indexing access limited native applications
DE112015006537T5 (de) Gerätebasierte filterung von inhaltselementen, die mit mobilen anwendungen verbunden sind
WO2011119803A2 (en) Tracking navigation flows within the same browser tab
DE212015000245U1 (de) Assistives Browsen unter Verwendung von Kontext
DE202014011541U1 (de) System zum Herstellen einer Vertrauensverknüpfung
US10339191B2 (en) Method of and a system for processing a search query
DE112016001601T5 (de) Anzeige von inhaltselementen basierend auf dem benutzerinteresse zum erhalt von inhalt
DE202017104019U1 (de) System zum Steuern eines Computers zum Initiieren der Ausführung einer computerbasierten Aktion
DE202017105834U1 (de) Verwaltung von Anwendungsaktualisierungen
DE112015004331T5 (de) Benachrichtigen von Nutzern über relevante Inhalte
US9471669B2 (en) Presenting previously selected search results
CN107851114B (zh) 用于自动信息检索的方法、系统和介质
CN104657474A (zh) 一种广告展示方法、广告查询服务器及客户端
DE112020004312T5 (de) Übersetzung von eingebetteten mehrformatdateien
DE212017000297U1 (de) Erzeugen von Deeplinks für Anwendungen auf Basis von mehrstufigen Verweisdaten
US10579699B2 (en) Computing system with dynamic web page feature

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000