MX2012011616A - Extensibilidad de busqueda a aplicaciones de terceros. - Google Patents

Extensibilidad de busqueda a aplicaciones de terceros.

Info

Publication number
MX2012011616A
MX2012011616A MX2012011616A MX2012011616A MX2012011616A MX 2012011616 A MX2012011616 A MX 2012011616A MX 2012011616 A MX2012011616 A MX 2012011616A MX 2012011616 A MX2012011616 A MX 2012011616A MX 2012011616 A MX2012011616 A MX 2012011616A
Authority
MX
Mexico
Prior art keywords
search
application
records
party application
party
Prior art date
Application number
MX2012011616A
Other languages
English (en)
Inventor
Edward T Schmidt
Gordon J Freedman
Benjamin S Phipps
David Rahardja
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of MX2012011616A publication Critical patent/MX2012011616A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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
    • 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

Abstract

Por lo menos ciertas modalidades de la presente descripción incluyen un método para extender las capacidades de búsqueda a aplicaciones de terceros instaladas en un dispositivo. En una modalidad, los registros asociados con una aplicación de terceros se indizan en un proceso aislado de otras aplicaciones de terceros instaladas en el dispositivo al utilizar un módulo de búsqueda específico para la aplicación de terceros. Adicionalmente, los registros indizados pueden buscarse en respuesta a una enunciado de búsqueda de usuario sin invocar la aplicación de terceros.

Description

EXTENSIBILIDAD DE BÚSQUEDA A APLICACIONES DE TERCEROS CAMPO DE LA INVENCIÓN Esta descripción se relaciona con capacidades de búsqueda extendida a aplicaciones de terceros en un dispositivo de computación.
ANTECEDENTES DE LA INVENCIÓN Actualmente, muchas aplicaciones se han desarrollado para correrse en dispositivos multifuncionales, tales como teléfonos celulares que incluyen reproductores multimedia, asistentes digitales personales (PDAs), etc. Muchas de estas aplicaciones se proporcionan por fuentes diferente al vendedor de los dispositivos multifuncionales, y por tanto, se refieren comúnmente como aplicaciones de terceros. Estas aplicaciones pueden realizar una gran diversidad de funciones, tal como proporcionar entretenimiento, redes sociales, etc. Para realizar estas funciones, los dispositivos multifuncionales pueden acceder a contenido almacenado en los dispositivos multifuncionales o a través de una red (por ejemplo, la Internet).
Para hacer más fácil y más conveniente para los usuarios de los dispositivos multifuncionales organizar y administrar contenido en los dispositivos multifuncionales, los sistemas operativos instalados en los dispositivos multifuncionales típicamente proporcionan capacidades de búsqueda. Dado que muchas de las aplicaciones instaladas en los dispositivos multifuncionales son aplicaciones de terceros, los sistemas operativos convencionales instalados en los dispositivos multifuncionales no se extienden sus capacidades de búsqueda a estas aplicaciones de terceros.
SUMARIO DE LA INVENCIÓN Algunas modalidades incluyen una o más interfaces de programación de aplicaciones (APIs) en un ambiente con un código de programa de llamada que interactúa con otro código de programa que se llama a través de la o las interfaces. Diversas llamadas de función, mensajes u otros tipos de invocaciones, que además pueden incluir diversos tipos de parámetros, pueden transferirse mediante las APIs entre el programa de llamada y el código que se llama. Además, una API puede proporcionar al código de programa de llamada la capacidad para utilizar tipos o clases de datos definidos en la API e implementados en el código de programa llamado.
Por lo menos ciertas modalidades incluyen un ambiente con un componente de software de llamada que interactúa con un componente de software llamado a través de una API. Un método para operar a través de una API en este ambiente incluye transferir una o más llamada de función, mensajes, otros tipos de invocaciones o parámetros mediante la API.
Por lo menos ciertas modalidades de la presente descripción incluyen una o más APIs en un ambiente con capacidades de búsqueda extendida a una o más aplicaciones de terceros en un dispositivo multifuncional. Diversas llamadas de función o mensajes se transfieren mediante las APIs entre el sistema operativo del dispositivo multifuncional y aplicaciones de terceros. Las APIs ejemplares transfieren llamadas de función para implementar indización y búsqueda de contenido asociado con las aplicaciones de terceros.
Algunas modalidades de la presente descripción incluyen un método para extender las capacidades de búsqueda a aplicaciones de terceros instaladas en un dispositivo multifuncional. En una modalidad, los registros asociados con una aplicación de terceros se indizan en un proceso aislado de otras aplicaciones de terceros, aplicaciones de sistema, y lotes de búsqueda instalados en el dispositivo multifuncional al utilizar un módulo de búsqueda especifico para la aplicación de terceros. Obsérvese que la indización puede realizarse sin invocar la aplicación de terceros. Adicionalmente, los registros indizados pueden buscarse en respuesta a una enunciado de búsqueda de usuario sin invocar (por ejemplo, lanzar o correr) la aplicación de terceros.
De acuerdo con algunas modalidades of la presente descripción, una aplicación de terceros instalada en un dispositivo multifuncional puede proporcionar un módulo de búsqueda específico para la aplicación de terceros. El módulo de búsqueda puede lanzarse para pasar los registros asociados con la aplicación de terceros a un demonio de búsqueda que corre en un proceso separado en el dispositivo multifuncional. Los identificadores (IDs) de los registros pueden especificar cómo debe aparecer un registro cuando el registro se presenta en un resultado de búsqueda generado en respuesta al enunciado de búsqueda de usuario. Cada uno de los IDs además puede incluir un ID local, que tiene sub-IDs correspondientes a diferentes tipos de contenido dentro de un documento asociado con el registro respectivo.
Diversos dispositivos que realizan uno o más de los métodos precedentes y medios legibles por computadora que, cuando se ejecutan por un sistema de procesamiento, ocasionan que el sistema de procesamiento realice estos métodos, también se describen.
Otros métodos, dispositivos y medios legibles por computadora también se describen.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La descripción se describe a modo de ejemplo con referencia a los dibujos adjuntos, en donde: La Figura 1 ilustra un diagrama de bloques de una arquitectura de API ejemplar que puede utilizarse en algunas modalidades de la invención; La Figura 2 es una modalidad ejemplar de una pila de software que puede utilizarse en algunas modalidades de la invención; La Figura 3 es un diagrama de interacciones entre un demonio de búsqueda y una aplicación de terceros que corre en un dispositivo multifuncional de acuerdo con una modalidad de la invención; La Figura 4 es un diagrama de flujo de una modalidad de un método para establecer las capacidades de búsqueda e indizado para una aplicación de terceros en un dispositivo multifuncional; La Figura 5 es un diagrama de flujo de una modalidad de un método para una aplicación de terceros en un dispositivo multifuncional para procesar cambios en los datos de aplicaciones; La Figura 6 es un diagrama de flujo de una modalidad de un método para un demonio de búsqueda en un dispositivo multifuncional para procesar cambios en los datos de aplicaciones asociados con una aplicación de terceros; La Figura 7 es un diagrama de flujo de una modalidad de un método para un demonio de búsqueda en un dispositivo multifuncional para indizar datos de aplicaciones; La Figura 8 es un diagrama de flujo de una modalidad de un método para un indizador de aplicaciones en un dispositivo multifuncional para indizar datos de aplicaciones; La Figura 9 es un diagrama de flujo de una modalidad de un método para un demonio de búsqueda para buscar datos de aplicaciones indizados asociados con una aplicación de terceros; La Figura 10 ilustra una modalidad de una base de datos de búsqueda en un dispositivo multifuncional; La Figura 11 ilustra una modalidad de un identificador local de un documento ejemplar; La Figura 12 es una vista en perspectiva de un dispositivo de acuerdo con una modalidad de la presente descripción; La Figura 13 muestra una modalidad de un dispositivo inalámbrico que incluye la capacidad para comunicación inalámbrica; y La Figura 14 muestra otro ejemplo de un dispositivo de acuerdo con una modalidad de la presente descripción; DESCRIPCIÓN DETALLADA DE LA INVENCIÓN Diversas modalidades y aspectos de la descripción se describirán con referencia a los detalles discutidos luego, y los dibujos adjuntos ilustrarán las diversas modalidades. La siguiente descripción y dibujos son ilustrativos de la descripción y no deben interpretarse como limitantes de la descripción. Numerosos detalles específicos se describen para proporcionar un profundo entendimiento de las diversas modalidades de la presente descripción. Sin embargo, en ciertos casos, los detalles reconocidos o convencionales no se describen con el fin de proporcionar una discusión concisa de las modalidades de la presente descripción.
Algunas porciones de las descripciones detalladas que siguen se presentan desde el punto de vista de los algoritmos que incluyen operaciones sobre datos almacenados dentro de una memoria de computadora. Un algoritmo generalmente es una secuencia auto-consistente de operaciones que conducen a un resultado deseado. Las operaciones típicamente requieren o implican manipulaciones físicas de cantidades físicas. Usualmente, aunque no necesariamente, estas cantidades toman la forma de señales eléctricas o magnéticas capaces de almacenarse, transferirse, combinarse, compararse, y manipularse de otra manera. Se ha probado conveniente a veces, principalmente por razones de uso común, referirse a estas señales como bits, valores, elementos, símbolos, caracteres, términos, números, o similares.
Deberá tenerse en mente, sin embargo, que todos estos términos y similares deben asociarse con las cantidades físicas apropiadas y son etiquetas meramente convenientes aplicadas a estas cantidades. A menos que se indique específicamente de otra manera cuando sea aparente a partir de la siguiente discusión, se aprecia que en toda la descripción, las discusiones que utilizan términos tales como "procesar" o "computar" o "calcular" o "determinar" o "mostrar" o similares, pueden referirse a la acción y procesos de un sistema de procesamiento de datos, o dispositivo electrónico similar, que manipula y transforma los datos representados como cantidades físicas (electrónicas) dentro de los registros y memorias del sistema en otros datos representados de manera similar como cantidades físicas dentro de las memorias o registros del sistema u otros dispositivos semejantes de almacenamiento de información, transmisión o visualización.
La presente descripción puede relacionarse con un aparato para realizar una o más de las operaciones descritas en este documento. Este aparato puede construirse especialmente para los propósitos requeridos, o puede comprender una computadora de propósitos generales activada o reconfigurada de manera selectiva por un programa de computación almacenado en la computadora. Tal programa de computación puede almacenarse en un medio de almacenamiento legible por máquina (por ejemplo, computadora), tales como, pero no se limita a, cualquier tipo de disco incluyendo discos flexibles, discos ópticos, CD-ROMs, y dicos magnéticos-ópticos, memorias de sólo lectura (ROMs), memorias de acceso aleatorio (RAMs), ROMs programables regrabables (EPROMs), ROMs programables eléctricamente regrabables (EEPROMs), memoria de destello, tarjetas magnéticas u ópticas, o cualquier tipo de medio adecuado para almacenar instrucciones electrónicas, y cada uno acoplado a un bus.
Un medio legible por computadora incluye cualquier mecanismo para almacenar o transmitir información en un forma legible por una máquina (por ejemplo, una computadora). Por ejemplo, las máquinas almacenan y comunican (de manera interna y con otros dispositivos a través de una red) códigos y datos que utilizan medios legibles por computadora, tales como medios de almacenamiento legibles por computadora (por ejemplo, discos magnéticos, discos ópticos, memoria de acceso aleatorio; memoria de sólo lectura, dispositivos de memoria de destello; memoria de cambio de fase) y medios de comunicación legibles por computadora (por ejemplo, eléctrica, óptica, acústica u otra forma de señales propagadas - tales como ondas portadoras, señales infrarrojas, señales digitales, etc.).
Por lo menos ciertas modalidades de la presente descripción incluyen una o más interfaces de programación de aplicaciones en un ambiente con software de búsqueda que interactúa con una aplicación de software. Diversas llamadas de función o mensajes se transfieren mediante las interfaces de programación de aplicaciones entre el software de búsqueda y las aplicaciones de software. Transferir las llamadas de función o mensajes puede incluir emitir, iniciar, invocar, o recibir las llamadas de función o mensajes. Las interfaces de programación de aplicaciones transfieren llamadas de función para implementar diversas operaciones (por ejemplo, búsqueda, interconexión, descubrimiento de servicios, etc.) para un dispositivo que tiene una región de visualización. Una API también puede implementar funciones que tienen parámetros, variables, o indicadores. Una API puede recibir parámetros como se da a conocer u otras combinaciones de parámetros. Además de las APIs dadas a conocer, otras APIs individualmente o en combinación pueden realizar una funcionalidad similar a la de las APIs dadas a conocer.
La región de visualización puede estar en forma de una ventana. Una ventana es una región de visualización que puede o puede no tener un límite y puede ser la región de visualización completa o área de una pantalla. En algunas modalidades, una región de visualización puede tener por lo menos una ventana y/o por lo menos una vista (por ejemplo, contenido web, de texto, o de imagen). Los métodos, sistemas, y aparatos dados a conocer pueden implementarse con regiones de visualización, ventanas, y/o vistas.
Por lo menos ciertas modalidades de la descripción pueden ser parte de un dispositivo portátil electrónico, tal como un reproductor multimedia digital (por ejemplo, a reproductor multimedia portátil de música y/o video), el cual puede incluir un sistema de procesamiento de medios para presentar los medios, un dispositivo de almacenamiento para almacenar los medios y además puede incluir un transceptor de radio frecuencia (RF) (por ejemplo, un transceptor de RF para un teléfono celular) acoplado con un sistema de antena y el sistema de procesamiento de medios. En ciertas modalidades, los datos almacenados en un dispositivo de almacenamiento remoto pueden transmitirse al dispositivo portátil electrónico a través del transceptor de RF. Los datos pueden ser, por ejemplo, uno o más de música u otro audio, imágenes congeladas, o imágenes en movimiento, etc.
El reproductor multimedia portátil puede incluir un dispositivo de selección de medios, tal como un dispositivo de entrada de datos de rueda táctil en un reproductor multimedia ¡Pod® o iPod Nano® de Apple Computer, Inc. de Cupertino, CA, un dispositivo de entrada de datos de pantalla táctil, dispositivo de botón pulsador, dispositivo de entrada de datos de puntero movible u otro dispositivo de entrada de datos. El dispositivo de selección de medios puede utilizarse para seleccionar los medios almacenados en el dispositivo de almacenamiento y/o el dispositivo de almacenamiento remoto. El reproductor multimedia portátil, por lo menos en ciertas modalidades, puede incluir un dispositivo de visualización que se acopla al sistema de procesamiento de medios para mostrar títulos u otros indicadores de medios que se seleccionan a través del dispositivo de entrada de datos y se presentan, ya sea a través de un altavoz o audífonos, o en el dispositivo de visualización, o tanto en el dispositivo de visualización como en el altavoz o audífonos. En algunas modalidades, el dispositivo de visualización y dispositivo de entrada de datos se integran, mientras en otras modalidades el dispositivo de visualización y dispositivo de entrada de datos son dispositivos separados.
Las modalidades de la descripción descrita en este documento pueden ser parte de otros tipos de sistemas de procesamiento de datos, tales como, por ejemplo, sistemas de entretenimiento o asistentes digitales personales (PDAs), o sistemas de computación para propósitos generales, o sistemas de computación para propósitos especiales, o un dispositivo incrustado dentro de otro dispositivo, o teléfonos celulares que no incluyen reproductores multimedia, o dispositivos multifuncionales de tableta táctil, u otros dispositivos multifuncionales táctiles, o dispositivos que combinan aspectos o funciones de estos dispositivos (por ejemplo, un reproductor multimedia, tal como un reproductor multimedia portátil ¡Pod®, combinado con un PDA, un sistema de entretenimiento, y un teléfono celular en un dispositivo, un iPhone®). Dado que estos dispositivos generalmente tienen múltiples funcionalidades, estos dispositivos también pueden referirse como dispositivos multifuncionales a continuación. En esta descripción, los dispositivos electrónicos y dispositivos de consumo son tipos de dispositivos.
En algunas modalidades, una plataforma proporciona diversas operaciones de búsqueda, descubrimiento de servicios, e interconexión. La plataforma incluye componentes de hardware y un sistema operativo. Los componentes de hardware pueden incluir una unidad de procesamiento acoplada a un panel de entrada de datos y una memoria acoplada al procesador. El sistema operativo incluye uno o más programas que se almacenan en la memoria y se configuran para ejecutarse por la unidad de procesamiento. Uno o más programas incluyen diversas instrucciones para transferir llamadas de función o mensajes a través de una Interfaz de programación de aplicaciones (API) con el fin de realizar diversas operaciones de búsqueda, descubrimiento de servicios, e interconexión.
Una o más APIs pueden utilizarse en algunas modalidades. Una API es una interfaz implementada por un componente de código de programación o componente de hardware (a continuación "componente que implementa API") que permite que un diferente componente de código de programación o componente de hardware (a continuación "componente que convoca API") para acceder y usar una o más funciones, métodos, procedimientos, estructuras de datos, clases, y/u otros servicios proporcionados por el componente que implementa API. Una API puede definir uno o más parámetros que se hacen pasar entre el componente que convoca API y el componente que implementa API.
Una API permite a un desarrollador de un componente que convoca API (que puede ser un desarrollador de terceros) hacer uso de los atributos especificados proporcionados por un componente que implementa API. Puede haber un componente que convoca API o puede haber más de un componente semejante. Una API puede ser una interfaz de código fuente que un sistema o biblioteca de computación proporciona con el fin de soportar las solicitudes de servicios de una aplicación. Un sistema operativo (OS) puede tener múltiples APIs para permitir que las aplicaciones corran en el OS para llamar a una o más de esas APIs, y un servicio (tal como una biblioteca) puede tener múltiples APIs para permitir una aplicación que usa el servicio para llamar a una o más de esas APIs. Una API puede especificarse desde el punto de vista de un lenguaje de programación que puede interpretarse o compilarse cuando una aplicación se construye.
En algunas modalidades el componente que implementa API puede proporcionar más de una API, cada una proporcionando una 'vista diferente de o con diferentes aspectos que acceden a diferentes aspectos de la funcionalidad implementada por el componente que implementa API. Por ejemplo, una API de un componente que implementa API puede proporcionar un primer conjunto de funciones y puede exponerse a desabolladores de terceros, y otra API del componente que implementa API puede ocultarse (no exponerse) y proporcionar un subconjunto del primer conjunto de funciones y también proporcionar otro conjunto de funciones, tales como probar o depurar funciones que no se encuentran en el primer conjunto de funciones. En otras modalidades el componente que implementa API puede en si llamar a uno o más componentes diferentes mediante una API subyacente y, de esta manera, ser tanto un componente que convoca API como un componente que implementa API.
Una API define el lenguaje y parámetros que los componentes que convocan API usan cuando acceden y utilizan atributos especificados del componente que implementa API. Por ejemplo, un componente que convoca API accede a los atributos especificados del componente que implementa API a través de una o más llamadas o invocaciones de API (representadas por ejemplo por llamadas de función o método) expuestas por la API, y pasa los datos e información de control al usar parámetros mediante las llamadas o invocaciones de API. El componente que implementa API puede regresar un valor a través de la API en respuesta a una llamada de API desde un componente que convoca API. Mientras la API define la sintaxis y resultado de una llamada de API (por ejemplo, cómo invocar la llamada de API y qué hace la llamada de API), la API puede revelar cómo la llamada de API logra la función especificada por la llamada de API. Diversas llamadas de API se transfieren mediante la o las interfaces de programación de aplicaciones entre la llamada (componente que convoca API) y un componente que implementa API. Transferir las llamadas de API puede incluir emitir, iniciar, invocar, llamar, recibir, devolver, o responder a las llamadas de función o mensajes; en otras palabras, transferir puede describir acciones por cualquier del componente que convoca API o el componente que implementa API. Las llamadas de función u otras invocaciones de la API pueden enviar o recibir uno o más parámetros a través de una lista de parámetros u otra estructura. Un parámetro puede ser una constante, clave, estructura de datos, objeto, clase de objeto, variable, tipo de datos, indicador, arreglo, lista o un indicador para una función o método u otra forma para referenciar un dato u otro elemento que pasará mediante la API.
Adicionalmente, pueden proporcionarse tipos o clases de datos por la API e implementarse por el componente que implementa API. De esta manera, el componente que convoca API puede declarar variables, usar indicadores para, usar o ilustrar valores de constantes de tales tipos o clases al utilizar las definiciones proporcionadas en la API.
Generalmente, una API puede utilizarse para acceder a un servicio o datos proporcionados por el componente que implementa API o para iniciar el rendimiento de una operación o cálculo proporcionado por el componente que implementa API. A modo de ejemplo, el componente que implementa API y el componente que convoca API pueden ser, cada uno, cualquiera de un sistema operativo, una biblioteca, un controlador de dispositivo, una API, un programa de aplicaciones, u otro módulo (debe entenderse que el componente que implementa API y el componente que convoca API pueden ser el mismo o diferente tipo de módulo entre sí). Los componentes que implementan API en algunos casos pueden representarse por lo menos en parte en el firm are, microcódigo, u otra lógica de hardware. En algunas modalidades, una API puede permitir que un programa de cliente use los servicios proporcionados por una biblioteca de Equipo de desarrollo de Software (SDK). En otras modalidades una aplicación u otro programa de cliente puede utilizar una API proporcionada por un marco de aplicaciones. En estas modalidades la aplicación o programa de cliente puede incorporar llamadas para funciones o métodos proporcionado por el SDK y proporcionado por la API o usar tipos de datos u objetos definidos en el SDK y proporcionados por la API. Un marco de aplicaciones in estas modalidades puede proporcionar un circuito de evento principal para un programa que responde a diversos eventos definidos por el marco. La API permite que la aplicación especifique los eventos y las respuestas a los eventos que usan el marco de aplicaciones. En algunas implementaciones, una llamada de API puede reportar a una aplicación las capacidades o estado de un dispositivo de hardware, incluyendo los relacionados con aspectos tales como capacidades y estado de entrada, capacidades y estado de salida, capacidad de procesamiento, estado de energía, capacidad y estado de almacenamiento, capacidad de comunicaciones, etc., y la API puede implementarse en parte por el firmware, microcódigo, u otra lógica de bajo nivel que se ejecuta en parte en el componente de hardware.
El componente que convoca API puede ser un componente local (es decir, en el mismo sistema de procesamiento de datos que el componente que implementa API) o un componente remoto (es decir, en un sistema de procesamiento de datos diferente al componente que implementa API) que se comunica con el componente que implementa API a través de la API a través de una red. Debe entenderse que un componente que implementa API también puede actuar como componente que convoca API (es decir, puede hacer llamadas de API a un API expuesto por un diferente componente que implementa API) y un componente que convoca API también puede actuar como componente que implementa API al implementar un API que se expone a un diferente componente que convoca API.
La API puede permitir múltiples componentes que convoca API escritos en diferentes lenguajes de programación para comunicarse con el componente que implementa API (de esta manera, la API puede incluir atributos para traducir llamadas y devolver entre el componente que implementa API y el componente que convoca API); sin embargo la API puede implementarse desde el punto de vista de un lenguaje de programación específico. Un componente que convoca API, en una modalidad, puede llamar APIs de diferentes proveedores tal como un conjunto de APIs de un proveedor de OS y otro conjunto de APIs de un proveedor de módulos y otro conjunto de APIs de otro proveedor (por ejemplo, el proveedor de una biblioteca de software) o creador del otro conjunto de APIs.
La Figura 1 es un diagrama de bloques que ilustra una arquitectura de API ejemplar que puede utilizarse en algunas modalidades de la invención. Como se muestra en la Figura 1 , la arquitectura de API 100 incluye el componente que implementa API 1 10 (por ejemplo, un sistema operativo, una biblioteca, un controlador de dispositivo, una API, un programa de aplicaciones, software u otro módulo) que implementa la API 120. La API 120 especifica una o más funciones, métodos, clases, objetos, protocolos, estructuras de datos, formatos y/u otros atributos del componente que implementa API que pueden utilizarse por el componente que convoca API 130. La API 120 puede especificar por lo menos una convención de llamada que especifica cómo una función en el componente que implementa API recibe parámetros del componente que convoca API y cómo la función regresa un resultado al componente que convoca API. El componente que convoca API 130 (por ejemplo, un sistema operativo, un biblioteca, un controlador de dispositivo, una API, un programa de aplicaciones, software u otro módulo), hace las llamadas de API a través de la API 120 para acceder y usar los atributos del componente que implementa API 1 10 que se especifican por la API 120. El componente que implementa API 110 puede devolver un valor a través de la API 20 al componente que convoca API 130 en respuesta a una llamada de API.
Se apreciará que el componente que implementa API 110 puede incluir funciones, métodos, clases, estructuras de datos, y/u otros atributos adicionales que no se especifican a través de la API 120 y no se encuentran disponibles para el componente que convoca API 130. Debe entenderse que el componente que convoca API 130 puede estar en el mismo sistema que el componente que implementa API 110 o puede localizarse de manera remota y acceder al componente que implementa API 1 10 al utilizar la API 120 a través de una red. Mientras la Figura 1 ilustra un solo componente que convoca API 130 que interactúa con la API 120, debe entenderse que otros componentes que convoca API, que pueden escribirse en diferentes lenguajes (o el mismo lenguaje) que el componente que convoca API 130, pueden usar la API 120.
El componente que implementa API 110, la API 120, y el componente que convoca API 130 pueden almacenarse en un medio legible por computadora, el cual incluye cualquier mecanismo para almacenar información en una forma legible por una máquina (por ejemplo, una computadora u otro sistema de procesamiento de datos). Por ejemplo, un medio legible por computadora incluye discos magnéticos, discos ópticos, memoria de acceso aleatorio; memoria de sólo lectura, dispositivos de memoria de destello, etc.
En la Figura 2 ("Pila de software"), una modalidad ejemplar, las aplicaciones pueden hacer llamadas a los Servicios 1 o 2 al utilizar varias APIs de Servicio y al Sistema operativo (OS) al utilizar varias APIs de OS. Los servicios A y B pueden hacer llamadas al OS al utilizar varias APIs de OS.
Obsérvese que el Servicio 2 tiene dos APIs, una de las cuales (API 1 de Servicio 2) recibe llamadas de y regresa valores a la Aplicación 1 y la otra (API 2 de Servicio 2) recibe llamadas de y regresa valores a la Aplicación 2. El Servicio 1 (el cual puede ser, por ejemplo, una biblioteca de software) hace llamadas a y recibe los valores devueltos de la API de OS 1 , y el Servicio 2 (el cual puede ser, por ejemplo, una biblioteca de software) hace llamadas a y recibe valores devueltos de la API de OS 1 y API de OS 2. La Aplicación 2 hace llamadas a y recibe valores devueltos de la API de OS 2.
La Figura 3 es un diagrama de interacciones entre un demonio de búsqueda 320 y una aplicación de terceros 310 que corre en un dispositivo multifuncional de acuerdo con una modalidad de la invención. Una aplicación de terceros como se utiliza en este documento se refiere en general a una aplicación de software proporcionada por una entidad diferente al fabricante del dispositivo multifuncional. Típicamente, un usuario del dispositivo multifuncional puede instalar una o más aplicaciones de terceros ejecutables en el dispositivo multifuncional para realizar un conjunto especifico de tareas o funciones. Algunos ejemplos de aplicaciones de terceros incluyen un visualizador de libros electrónicos, administrador de redes sociales, etc.
En general, el dispositivo multifuncional puede almacenar datos de aplicaciones asociados con la aplicación de terceros 310 ¡ndizados por el demonio de búsqueda 320 en una base de datos de búsqueda 380 en el dispositivo multifuncional. En una modalidad, el dispositivo puede tener una pluralidad de aplicaciones de terceros, tal como la aplicación 310, cada una operando en la manera descrita en este documento, el demonio de búsqueda 320 o un ejemplar de demonio de búsqueda 320 creado para una aplicación de terceros correspondiente que usa el ejemplar. En algunas modalidades, el demonio de búsqueda 320 puede lanzar un indizador de aplicaciones 330 para indizar datos de aplicaciones. Específicamente, el indizador de aplicaciones 330 puede lanzar un ejemplar de un lote de búsquedas de aplicaciones 340 proporcionado por la aplicación de terceros 310 para recuperar registros de datos de aplicaciones para indización. Obsérvese que el lote de búsquedas de aplicaciones 340 se lanza en un proceso separado aislado de otras aplicaciones de terceros, aplicaciones de sistema, y lotes de búsquedas por razones de seguridad. Adicionalmente, el proceso separado en el cual el lote de búsquedas de aplicaciones 340 se lanza puede tener los mismos privilegios (por ejemplo, privilegios con respecto a leer y escribir en una porción seleccionada de un espacio de memoria pero restringidos de otra manera para escribir o leer otras porciones de la memoria) que la aplicación de terceros 310 asociada con el lote de búsquedas de aplicaciones 340. De esta manera, al lote de búsquedas de aplicaciones 340 se otorga acceso al contenido al cual la aplicación de terceros 310 permite acceder, y se le impide acceder a contenido al cual la aplicación de terceros 310 no permite acceder. En algunas modalidades, a porciones del demonio de búsqueda 320, tal como el indizador de aplicaciones 330, también pueden darse los mismos privilegios (por ejemplo, restricciones de espacio de memoria) que a la aplicación de terceros 310. En algunas modalidades, el demonio de búsqueda 320 puede buscar los datos de aplicaciones indizados en base de datos de búsqueda 380 en respuesta a las consultas del usuario sin lanzar la aplicación de terceros 310. Los detalles de algunas modalidades de las interacciones entre el demonio de búsqueda 320 y la aplicación de terceros 310 para indizar y buscar datos de aplicaciones se discuten después para ilustrar además el concepto anterior.
En una modalidad, la aplicación de terceros 310 se lanza para correr en el dispositivo multifuncional. Mientras corre, la aplicación de terceros 310 hace cambios a los datos de aplicaciones 315. Por ejemplo, la aplicación de terceros 310 puede modificar un registro existente almacenado en el dispositivo multifuncional, descargar un nuevo registro al dispositivo multifuncional, y/o remover (o eliminar) un registro existente almacenado en el dispositivo multifuncional. Cuando la aplicación de terceros 310 cambia los datos de aplicaciones 315, la aplicación de terceros 310 además envía identificadores (IDs) de registros cambiados en los datos de aplicaciones 315 al demonio de búsqueda 320. El demonio de búsqueda 320 puede almacenar temporalmente los IDs de los registros cambiados en una lista de actualizaciones 325.
Después, cuando el demonio de búsqueda 320 necesita construir catos indizados, el demonio de búsqueda 320 puede lanzar un proceso separado para correr el indizador de aplicaciones 330. El demonio de búsqueda 320 puede construir catos indizados periódicamente, o cuando se solicita una búsqueda, o en algún otro tiempo o intervalos de tiempo. Alternativamente, el demonio de búsqueda 320 puede construir catos indizados cuando el demonio de búsqueda 320 descubre nueva información en la lista de actualización 325. Esto puede pasar en el momento en que la aplicación de terceros 310 informa al demonio de búsqueda 320 de los identificadores de actualización. También puede haber activadores externos a la aplicación 310 que pueden iniciar la indización, tales como, por ejemplo, actualizaciones de aplicaciones, restauraciones de sistema, actualizaciones de sistema, etc. El indizador de aplicaciones 330 puede cargar el lote de búsquedas de aplicaciones 340. En algunas modalidades, el lote de búsquedas de aplicaciones 340 es una módulo relacionado de búsqueda específico para la aplicación de terceros 310. La aplicación de terceros 310 puede haber proporcionado el lote de búsquedas de aplicaciones 340 con la instalación de la aplicación de terceros 310 en el dispositivo multifuncional. El indizador de aplicaciones 330 puede proporcionar los IDs de los registros cambiados de la lista de actualización 325 al lote de búsquedas de aplicaciones 340. En respuesta, el lote de búsquedas de aplicaciones 340 proporciona los registros cambiados al indizador de aplicaciones 330 para indizarse. Alternativamente, el indizador de aplicaciones 330 puede solicitar todos los registros asociados con la aplicación de terceros 310 del lote de búsquedas de aplicaciones 340. En una modalidad, el ejemplar del indizador de aplicaciones 330 para la aplicación de terceros 310 se corre en su propio proceso pero con los privilegios (con respecto a control de memoria, espacio de memoria, asignación de memoria, control de sistemas de archivos, y control de red) que la aplicación de terceros 310.
En algunas modalidades, cada registro incluye un conjunto de atributos que dictan cómo debe mostrarse el registro respectivo en un resultado de búsqueda en caso de coincidir con un enunciado de búsqueda de usuario. Por ejemplo, un registro ejemplar puede incluir un ID, un título del contenido, un subtítulo del contenido, y un ID específico de aplicación (también referido como ID local). Cuando el registro coincide con un a enunciado de búsqueda de usuario, el título y el sub-título del registro pueden presentarse en el resultado de búsqueda del enunciado de búsqueda de usuario.
Al usar los registros del lote de búsquedas de aplicaciones 340, el indizador de aplicaciones 330 puede construir o agregar un registro en la base de datos de búsqueda 380, lo cual puede incluir metadatos del contenido asociado con el registro. En algunas modalidades, la base de datos de búsqueda 380 incluye múltiples bases de datos sincronizadas entre sí. Por ejemplo, la base de datos de búsqueda 380 puede incluir una primera base de datos para almacenar contenido indizado y una segunda base de datos para almacenar registros del contenido indizado. Más detalles de una modalidad de una base de datos de búsqueda se discuten después.
Cuando un usuario somete un enunciado de búsqueda de usuario, el demonio de búsqueda 320 puede acceder a la base de datos de búsqueda 380 para encontrar registros que coinciden con el enunciado de búsqueda de usuario. Obsérvese que el demonio de búsqueda 320 puede buscar registros asociados con los datos de aplicaciones de la aplicación de terceros 310 sin lanzar la aplicación de terceros 310. El demonio de búsqueda 320 puede presentar partes de los registros que coinciden con el enunciado de búsqueda de usuario, tal como, por ejemplo, al mostrar títulos y sub-títulos de los registros coincidentes en una región de resultados de búsqueda dentro de una ventana. En algunas modalidades, el usuario puede seleccionar un registro de los registros coincidentes. En respuesta a la selección del usuario, el demonio de búsqueda 320 puede lanzar la aplicación de terceros 310 en el dispositivo multifuncional para presentar el contenido asociado con el registro seleccionado. Por ejemplo, el contenido puede incluir datos de video y la aplicación de terceros 310 puede lanzarse para reproducir el video; o el contenido puede incluir un libro electrónico y la aplicación de terceros 310 puede lanzarse para mostrar el libro electrónico.
La Figura 4 es un diagrama de flujo de una modalidad de un método para establecer las capacidades de búsqueda e indizado para una aplicación de terceros en un dispositivo multifuncional. El método puede realizarse por el hardware, software, firmware, o una combinación de cualquiera de los anteriores.
En algunas modalidades, la instalación de una aplicación de terceros se inicia en un dispositivo multifuncional en el bloque 410. Un lote de búsquedas de aplicaciones específico para la aplicación de terceros se almacena en una ubicación predeterminada con la aplicación de terceros en el dispositivo multifuncional en el bloque 420. En términos generales, el lote de búsquedas de aplicaciones es un módulo proporcionado por la aplicación de terceros. El lote de búsquedas de aplicaciones puede cargarse para transferir registros de contenido asociado con la aplicación de terceros. En el bloque 430, los metadatos de la aplicación de terceros se verifican para determinar si la aplicación de terceros desea indizar el contenido asociado con la aplicación de terceros. Si la aplicación de terceros desea indizar contenido, la aplicación de terceros se registra en el bloque 445. Por ejemplo, un demonio de búsqueda que corre en el dispositivo multifuncional puede seguir una lista de aplicaciones registradas en una ubicación centralizada y el demonio de búsqueda puede indizar contenido asociado con la aplicación de terceros como se discute a continuación.
La Figura 5 es un diagrama de flujo de una modalidad de un método para una aplicación de terceros en un dispositivo multifuncional para procesar cambios en los datos de aplicaciones. El método puede realizarse por el hardware, software, firmware, o una combinación de cualquiera de los anteriores.
En algunas modalidades, una aplicación de terceros se corre en un dispositivo multifuncional en el bloque 510. En el bloque 520, la aplicación de terceros cambia los registros de los datos de aplicaciones asociados con la aplicación de terceros. En el bloque 530, la aplicación de terceros envía los identificadores (IDs) de los registros cambiados a un demonio de búsqueda que corre en el dispositivo multifuncional.
La Figura 6 es un diagrama de flujo de una modalidad de un método para un demonio de búsqueda en un dispositivo multifuncional para procesar cambios en los datos de aplicaciones asociados con una aplicación de terceros. El método puede realizarse por el hardware, software, firmware, o una combinación de cualquiera de los anteriores.
En el bloque 610, un demonio de búsqueda que corre en un dispositivo multifuncional recibe IDs de los registros cambiados de datos de aplicaciones asociados con una aplicación de terceros. El demonio de búsqueda pone los IDs recibidos en una lista de actualización en el bloque 620. El demonio de búsqueda puede utilizar la lista de actualización después para determinar si tiene que indizar registros como se discute a continuación.
La Figura 7 es un diagrama de flujo de una modalidad de un método para un demonio de búsqueda en un dispositivo multifuncional para indizar datos de aplicaciones. El método puede realizarse por el hardware, software, firmware, o una combinación de cualquiera de los anteriores.
En el bloque 710, el demonio de búsqueda verifica una lista de actualización para determinar si hay algún registro cambiado. En algunas modalidades, el demonio de búsqueda puede verificar la lista de actualización periódicamente. Si lo hay, entonces el demonio de búsqueda tiene que indizar el registro cambiado. El demonio de búsqueda puede lanzar un indizador de aplicaciones en un proceso separado para indizar el registro cambiado en el bloque 720.
La Figura 8 es un diagrama de flujo de una modalidad de un método para un indizador de aplicaciones en un dispositivo multifuncional para indizar datos de aplicaciones. El método puede realizarse por el hardware, software, firmware, o una combinación de cualquiera de los anteriores.
En el bloque 810, un indizador de aplicaciones que corre en un dispositivo multifuncional ejemplifica un ejemplar de un lote de búsquedas de aplicaciones en un proceso separado aislado de otras aplicaciones de terceros, aplicaciones de sistemas, y lotes de búsquedas. El lote de búsquedas de aplicaciones es un módulo especifico para una aplicación de terceros instalada en el dispositivo multifuncional. En el bloque 820, el indizador de aplicaciones pasa los IDs de los registros cambiados al lote de búsquedas de aplicaciones para solicitar los registros cambiados del lote de búsquedas de aplicaciones. Alternativamente, el indizador de aplicaciones puede decidir indizar todos los registros asociados con la aplicación de terceros y, de esta manera, solicitar todos los registros asociados con la aplicación de terceros del lote de búsquedas de aplicaciones.
En el bloque 830, el indizador de aplicaciones recibe los registros solicitados del lote de búsquedas de aplicaciones. Cada registro puede contener un conjunto de atributos de contenido asociado con el registro, tales como título del contenido, sub-título del contenido, e identificador local del contenido utilizado por la aplicación de terceros. En el bloque 840, el indizador de aplicaciones indiza los registros recibidos y almacena los registros indizados en una base de datos de búsqueda dentro del dispositivo multifuncional.
La Figura 9 es un diagrama de flujo de una modalidad de un método para un demonio de búsqueda para buscar datos de aplicaciones indizados asociados con una aplicación de terceros. El método puede realizarse por el hardware, software, firmware, o una combinación de cualquiera de los anteriores.
En el bloque 910, un demonio de búsqueda recibe un enunciado de búsqueda de usuario. Por ejemplo, un usuario puede someter un enunciado de búsqueda de usuario para buscar registros con un título que tiene una cadena de texto específico (por ejemplo, "primavera"). En el bloque 920, el demonio de búsqueda busca una base de datos de búsqueda que contiene registros indizados para registros que coinciden con el enunciado de búsqueda de usuario.
En el bloque 930, el demonio de búsqueda regresa un identificador de cada registro que coincide con el enunciado de búsqueda de usuario en un resultado de búsqueda que se presentará al usuario. En algunas modalidades, el identificador incluye un título, un sub-titulo, una referencia la aplicación de terceros asociada, un identificador local (específico para la aplicación de terceros), y una categoría.
En algunas modalidades, el propietario de un recuadro de búsqueda en el cual el enunciado de búsqueda de usuario se ingresa recibe los resultados de búsqueda del demonio de búsqueda en el tiempo de consulta. El usuario puede seleccionar un registro del resultado de búsqueda. El propietario puede ser una aplicación de búsqueda, o la aplicación de terceros. SI el propietario es una aplicación de búsqueda que realiza búsquedas globales, la aplicación de búsqueda puede lanzar la aplicación de terceros y pasar el identificador local y categoría del demonio de búsqueda. Si el propietario es la aplicación de terceros, puede simplemente presentar el contenido asociado con el registro seleccionado. Obsérvese que cuando el propietario es la aplicación de terceros, sólo los registros en el resultado de búsqueda relevantes para la aplicación de terceros pueden mostrarse.
La Figura 10 ilustra una modalidad de una base de datos de búsqueda 1000 en un dispositivo multifuncional. La base de datos de búsqueda 1000 incluye una primera base de datos 1010 y una segunda base de datos 1020. En otras modalidades, la base de datos de búsqueda 1000 puede incluir más de dos bases de datos.
En algunas modalidades, la primera base de datos 1010 almacena contenido (por ejemplo, un documento, una página en red, un libro electrónico, un video, etc.) asociado con algunas aplicaciones de terceros y sus respectivos IDs. La segunda base de datos 1020 puede almacenar registros del contenido. En el ejemplo actual, cada registro incluye el ID del contenido, un título del contenido, un sub-titulo del contenido, y un ID local del contenido. El ID local se utiliza por una aplicación de terceros para acceder y procesar el contenido. De esta manera, el ID local también puede referirse como ID de aplicación. Los detalles de una modalidad de un ID local se muestran en la Figura 11. El contenido en la base de datos de búsqueda 1000 se organiza al indizar los registros. Un demonio de búsqueda que corre en el dispositivo multifuncional puede indizar los registros y buscar en base de datos de búsqueda 1000 en respuesta a los enunciados de búsqueda de usuario como se discute anteriormente.
En algunas modalidades, la base de datos de búsqueda 1000 almacena contenido de todas las categorías (por ejemplo, música, video, libros electrónicos, transmisiones por pod, etc.) en el dispositivo multifuncional. Aunque la búsqueda realizada en la base de datos de búsqueda 1000 puede ser rápida, la base de datos de búsqueda 1000 puede hacerse demasiado grande como para respaldarse. Como tal, la base de datos de búsqueda 1000 puede tener que reconstruirse desde cero en caso necesario.
Alternativamente, hay una base de datos de búsqueda para cada categoría de contenido en el dispositivo multifuncional. Por ejemplo, una primera base de datos de búsqueda puede establecerse para música, una segunda base de datos de búsqueda puede establecerse para transmisiones por pod, una tercera base de datos de búsqueda puede establecerse para libros electrónicos, una cuarta base de datos de búsqueda para una primera aplicación de terceros, y una quinta base de datos de búsqueda para una segunda aplicación de terceros, etcétera. Al separar los contenidos de diferentes categorías en diferentes bases de datos de búsqueda, las bases de datos de búsqueda pueden respaldarse a diferentes frecuencias, lo que depende de qué tan estable es el contenido en cada base de datos de búsqueda. Mientras más estable sea el contenido, es menos frecuente la base de datos de búsqueda correspondiente que tiene que respaldarse. Sin embargo, la búsqueda de contenido en las bases de datos de búsqueda puede desacelerarse a causa de múltiples bases de datos de búsqueda. Para mitigar el impacto sobre el rendimiento, puede implementarse un caché en el dispositivo multifuncional para almacenar registros del contenido accedido frecuentemente. Como tales, las búsquedas pueden hacerse más rápidas.
La Figura 11 ilustra una modalidad de un ID de un documento ejemplar. El ID 1 100 incluye un título 1 1 10 del documento ejemplar, un sub-título 1120 del documento ejemplar, una aplicación de terceros 1130 asociada con el documento ejemplar, un identificador de categoría 1 140 del documento ejemplar, y un ID específico de aplicación 1150 del documento ejemplar.
En algunas modalidades, la ID 1100 es única sólo para una categoría particular dentro de la aplicación de terceros. Una categoría es el tipo de contenido, tales como diapositiva, video, documento, transmisión de pod, etc. De esta manera, el ID específico de aplicación 1 150 es único por categoría, y cada categoría es única dentro de la aplicación de terceros.
En algunas modalidades, una aplicación de terceros puede asociarse con el contenido de múltiples categorías. Por ejemplo, una aplicación de terceros puede asociarse con un documento en el cual un video y una transmisión de pod se incrustan. La aplicación de terceros puede poner tal documento bajo una sola categoría (por ejemplo, Documentos) hasta donde concierna al demonio de búsqueda. Si la aplicación de terceros desea ser capaz de devolver un nivel de detalle más fino en el resultado, por ejemplo, sólo la parte de transmisión de pod del documento, puede proporcionarse un ID que apunta directamente a la transmisión de pod e indizarla en una categoría de Transmisiones de pod. La aplicación de terceros puede elegir someter cualquiera de estos, o ambos, para indizar. El demonio de búsqueda puede no diferenciar entre un resultado con sub-piezas y un solo resultado infinitesimal.
En algunas modalidades, los métodos, sistemas, y aparatos de la presente descripción pueden implementarse en diversos dispositivos incluyendo dispositivos electrónicos, dispositivos de consumo, dispositivos de procesamiento de datos, computadoras de escritorio, computadoras portátiles, dispositivos inalámbricos, dispositivos celulares, dispositivos de tableta, dispositivos de mano, dispositivos multi táctiles, dispositivos multi táctiles de procesamiento de datos, cualquier combinación de estos dispositivos, u otros dispositivos similares. Las Figuras 12 - 14 ilustran ejemplos de unos cuantos de estos dispositivos.
La Figura 12 muestra un dispositivo 2950 de acuerdo con una modalidad de la descripción; El dispositivo 2950 puede incluir un alojamiento 2952, un dispositivo de visualización/de entrada de datos 2954, un altavoz 2956, un micrófono 2958 y una antena opcional 2960 (la cual puede ser visible en el exterior del alojamiento o puede ocultarse dentro del alojamiento). El dispositivo 2950 también puede incluir un sensor de proximidad 2962 y un acelerómetro 2964. El dispositivo 2950 puede ser un teléfono celular o un dispositivo que es un PDA integrado y un teléfono celular o un dispositivo que es un reproductor multimedia integrado y un teléfono celular o un dispositivo que es tanto un sistema de entretenimiento (por ejemplo, para jugar juegos) y un teléfono celular, o el dispositivo 2950 puede ser otro tipo de dispositivo descrito en este documento. En una modalidad particular, el dispositivo 2950 puede incluir un teléfono celular y un reproductor multimedia y un PDA, todos contenidos dentro del alojamiento 2952. El dispositivo 2950 puede tener un tamaño físico que es suficientemente pequeño para que se ajuste dentro de la mano de un adulto normal y sea suficientemente ligero para que pueda llevarse en una mano por un adulto. Se apreciará que el término "portátil" significa que el dispositivo puede sostenerse fácilmente en las manos de un usuario adulto (una o ambas); por ejemplo, una computadora personal portátil, un iPhone®, y un ¡Pod® son dispositivos portátiles.
En ciertas modalidades de la presente descripción, el dispositivo 2950 puede utilizarse para implementar por lo menos algunos de los métodos discutidos en la presente descripción.
La Figura 13 muestra una modalidad de un dispositivo inalámbrico que incluye la capacidad para comunicación inalámbrica. El dispositivo inalámbrico 3100 puede incluir un sistema de antena 3101. El dispositivo inalámbrico 3100 también puede incluir un transceptor de radio frecuencia (RF) digital y/o análogo 3102, acoplado al sistema de antena 3101 , para transmitir y/o para recibir señales de voz, datos digitales y/o medios a través del sistema de antena 3101.
El dispositivo inalámbrico 3100 también puede incluir un sistema de procesamiento digital 3103 para controlar el transceptor de RF digital y para administrar las señales de voz, datos digitales y/o medios. El sistema de procesamiento digital 3103 puede ser un dispositivo de procesamiento de propósitos generales, tal como un microprocesador o controlador por ejemplo. El sistema de procesamiento digital 3103 también puede ser un dispositivo de procesamiento de propósitos especiales, tal como un ASIC (circuito integrado específico de aplicaciones), FPGA (arreglo de puertos programables de campo) o DSP (procesador de señales digitales). El sistema de procesamiento digital 3103 también puede incluir otros dispositivos, como se conoce en la técnica, para interactuar con otros componentes del dispositivo inalámbrico 3100. Por ejemplo, el sistema de procesamiento digital 3103 puede incluir convertidores análogo a digital y digital a análogo para interactuar con otros componentes del dispositivo inalámbrico 3100. El sistema de procesamiento digital 3103 puede incluir un sistema de procesamiento de medios 3109, el cual también puede incluir un dispositivo de procesamiento de propósitos generales o propósitos especiales para administrar medios, tales como archivos de datos de audio.
El dispositivo inalámbrico 3100 también puede incluyen un dispositivo de almacenamiento 3104, acoplado al sistema de procesamiento digital, para almacenar datos y/u operar programas para el dispositivo inalámbrico 3100. El dispositivo de almacenamiento 3104 puede ser, por ejemplo, cualquier tipo de dispositivo de memoria magnética o en estado sólido. El dispositivo de almacenamiento 3104 puede ser o incluir un medio legible por computadora.
El dispositivo inalámbrico 3100 también puede incluir uno o más dispositivos de entrada de datos 3105, acoplados al sistema de procesamiento digital 3103, para aceptar señales de entrada del usuario (por ejemplo, números telefónicos, nombres, direcciones, selecciones de medios, etc.). El dispositivo de entrada de datos 3105 puede ser, por ejemplo, uno o más de un teclado numérico, un panel sensible al tacto, una pantalla táctil, un dispositivo apuntador en combinación con un dispositivo de visualización o dispositivo de entrada de datos similar.
El dispositivo inalámbrico 3100 también puede incluir por lo menos un dispositivo de visualización 3106, acoplado al sistema de procesamiento digital 3103, para mostrar información tales como mensajes, información de llamadas telefónicas, información de contacto, imágenes, películas y/o títulos u otros indicadores de los medios que se seleccionan mediante el dispositivo de entrada de datos 3105. El dispositivo de visualización 3106 puede ser, por ejemplo, un dispositivo de visualización LCD. En una modalidad, el dispositivo de visualización 3106 y dispositivo de entrada de datos 3105 pueden integrarse en conjunto en el mismo dispositivo (por ejemplo, una pantalla táctil LCD tal como un panel de entrada multi táctil que se integra con un dispositivo de visualización, tal como un dispositivo de visualización LCD). El dispositivo de visualización 3106 puede incluir una iluminación posterior 3106A para iluminar el dispositivo de visualización 3106 bajo ciertas circunstancias. Se apreciará que el dispositivo inalámbrico 3100 puede incluir múltiples pantallas.
El dispositivo inalámbrico 3100 también puede incluir una batería 3107 para suministrar energía operativa a los componentes del sistema incluyendo el transceptor de RF digital 3102, sistema de procesamiento digital 3103, dispositivo de almacenamiento 3104, dispositivo de entrada de datos 3105, micrófono 3105A, transductor de audio 3108, sistema de procesamiento de medios 3109, sensores 3110, y dispositivo de visualización 3106. La batería 3107 puede ser, por ejemplo, una batería de litio o níquel e hidruro metálico recargable o no recargable. El dispositivo inalámbrico 3100 también puede incluir transductores de audio 3108, que pueden incluir uno o más altavoces, y por lo menos un micrófono 3105A. En ciertas modalidades de la presente descripción, el dispositivo inalámbrico 3100 puede utilizarse para implementar por lo menos algunos de los métodos discutidos en la presente descripción.
La Figura 14 muestra otro ejemplo de un dispositivo de acuerdo con una modalidad de la descripción; Este dispositivo 3200 puede incluir un procesador, tal como el microprocesador 3202, y una memoria 3204, los cuales se acoplan entre sí a través de un bus 3206. El dispositivo 3200 opcionalmente puede incluir un caché 3208, el cual se acopla al microprocesador 3202. El dispositivo opcionalmente puede incluir un dispositivo de almacenamiento 3240 el cual puede ser, por ejemplo, cualquier tipo de dispositivo de memoria en estado sólido o magnética. El dispositivo de almacenamiento 3240 puede ser o incluir un medio legible por computadora.
Este dispositivo también puede incluir opcionalmente un controlador de visualización y dispositivo de visualización 3210, el cual se acopla a los otros componentes a través del bus 3206. Uno o más controladores de entrada/salida 3212 también se acoplan al bus 3206 para proporcionar una interfaz para dispositivos de entrada/salida 3214 y para proporcionar una interfaz para uno o más sensores 3216 que son para detectar la actividad del usuario. El bus 3206 puede incluir uno o más buses conectados entre sí a través de diversos puentes, controladores, y/o adaptadores como se reconoce en la técnica. Los dispositivos de entrada/salida 3214 pueden incluir un teclado numérico o teclado o un dispositivo de control de cursor tal como un panel táctil de entrada de datos. Adicionalmente, los dispositivos de entrada/salida 3214 pueden incluir una interfaz de red, la cual es para una red conectada o una red inalámbrica (por ejemplo, un transceptor de RF). Los sensores 3216 pueden ser cualquiera de los sensores descritos en este documento incluyendo, por ejemplo, un sensor de proximidad o un sensor de luz ambiental. Por lo menos en ciertas implementaciones del dispositivo 3200, el microprocesador 3202 puede recibir datos de uno o más sensores 3216 y puede realizar el análisis de esos datos en la forma descrita en este documento.
En ciertas modalidades de la presente descripción, el dispositivo 3200 puede utilizarse para implementar por lo menos algunos de los métodos discutidos en la presente descripción.
En la especificación precedente, la divulgación se ha descrito con referencia a las modalidades ejemplares específicas de la misma. Será evidente que diversas modificaciones pueden hacerse a la misma sin apartarse del espíritu y alcance más amplios de la descripción como se expone en las siguientes reivindicaciones. La especificación y dibujos, por consiguiente, deben considerarse en un sentido ilustrativo en lugar de un sentido restrictivo.

Claims (20)

REIVINDICACIONES
1. Un medio de almacenamiento legible por computadora que proporciona instrucciones que, si se ejecutan por un procesador, ocasionarán que el procesador genere una interfaz de programación de aplicaciones (API) que permite que un componente que implementa API realice operaciones, las operaciones comprenden: lanzar un indizador de aplicaciones para correrse en un proceso que tiene privilegios idénticos a los privilegios de una aplicación de terceros ejecutable en el procesador, en donde el proceso se separa de otros procesos que implican otras aplicaciones de terceros ejecutables en el procesador; ejemplificar, por el indizador de aplicaciones, un ejemplar de un lote de búsquedas de aplicaciones específico para la aplicación de terceros; y el indizador de aplicaciones indizar registros del ejemplar del lote de búsquedas de aplicaciones para almacenar los registros indizados en una base de datos de búsqueda.
2. El medio de almacenamiento legible por computadora de conformidad con la reivindicación 1 , en donde el lote de búsquedas de aplicaciones especifica un conjunto de atributos de los registros para utilizarse para indizar los registros y en donde los otros procesos incluyen buscar e indizar procesos de las otras aplicaciones de terceros, y en donde el ejemplar del lote de búsquedas de aplicaciones que es especifico para la aplicación de terceros se restringe a los mismos privilegios de memoria que la aplicación de terceros.
3. El medio de almacenamiento legible por computadora de conformidad con la reivindicación 1, en donde las operaciones además comprenden: el indizador de aplicaciones pasar identificaciones asociadas con los registros en una lista de actualización al lote de búsquedas de aplicaciones para solicitar los registros, en donde las identificaciones se han agregado en la lista de actualización cuando la aplicación de terceros cambia los registros.
4. Un método implementado en computadora, que comprende: indizar registros asociados con una aplicación de terceros instalada en un dispositivo al utilizar un módulo de búsqueda específico para la aplicación de terceros, en donde un proceso para indizar los registros se aisla de otras aplicaciones de terceros instaladas en el dispositivo; y buscar contenido en respuesta al enunciado de búsqueda de usuario al utilizar los registros indizados.
5. El método de conformidad con la reivindicación 4, que además comprende: presentar registros que coinciden con el enunciado de búsqueda de usuario mediante una interfaz gráfica de usuario; y permitir que un usuario seleccione un registro de los registros que coinciden con el enunciado de búsqueda de usuario mediante la interfaz gráfica de usuario y en donde el módulo de búsqueda se restringe a los mismos privilegios de memoria que la aplicación de terceros.
6. El método de conformidad con la reivindicación 5, que además comprende: en respuesta a que el usuario seleccione el registro, lanzar la aplicación de terceros para presentar el registro.
7. El método de conformidad con la reivindicación 5, en donde presentar los registros coincidentes con el enunciado de búsqueda de usuario comprende mostrar un conjunto de atributos de los registros en la interfaz gráfica de usuario, en donde el conjunto de atributos se especifica por el módulo de búsqueda específico para la aplicación de terceros.
8. Un método implementado en computadora, que comprende: instalar una aplicación de terceros en un dispositivo de computación; verificar metadatos de la aplicación de terceros para determinar si la aplicación de terceros desea indizar el contenido asociado con la aplicación de terceros; y registrar la aplicación de terceros si la aplicación de terceros desea indizar el contenido asociado con la aplicación de terceros.
9. El método de conformidad con la reivindicación 8, que además comprende: lanzar la aplicación de terceros en respuesta a la petición del usuario, en donde la aplicación de terceros cambia un registro y envía la identificación del registro cambiado a un demonio de búsqueda que corre en el dispositivo de computación para almacenarse en una lista de actualización, que puede utilizarse por el demonio de búsqueda para indizar el registro cambiado.
10. El método de conformidad con la reivindicación 9, que además comprende: invocar un módulo de búsqueda específico para la aplicación de terceros en un proceso separado para pasar un conjunto de atributos del registro cambiado al demonio de búsqueda que se indizará.
11. El método de conformidad con la reivindicación 10, en donde el módulo de búsqueda se invoca después de que la aplicación de terceros se ha terminado.
12. El método de conformidad con la reivindicación 10, que además comprende: proporcionar al proceso separado privilegios idénticos a los privilegios a los que tiene derecho la aplicación de terceros.
13. Un método implementado en computadora, que comprende: una aplicación de terceros, ejecutable en un dispositivo de procesamiento de datos, que especifica un conjunto de atributos de un registro a presentarse cuando el registro se hace parte de un resultado de búsqueda de una búsqueda realizada por un demonio de búsqueda en respuesta al enunciado de búsqueda de usuario; y la aplicación de terceros proporciona un lote de búsquedas de aplicaciones especifico para la aplicación de terceros para pasar registros a un indizador de búsqueda ejemplificado por el demonio de búsqueda para indizarse sin lanzar la aplicación de terceros.
14. El método de conformidad con la reivindicación 13, que además comprende: la aplicación de terceros cambia los registros del contenido asociado con la aplicación de terceros; almacenar identificadores de los registros cambiados en una lista accesible por el indizador de búsqueda.
15. El método de conformidad con la reivindicación 14, en donde el indizador de búsqueda recupera los identificadores de la lista después de que la aplicación de terceros ha terminado y usa los identificadores para obtener los records cambiados del lote de búsquedas de aplicaciones.
16. Un aparato que comprende: un indizador de aplicaciones ejecutable en un dispositivo de procesamiento de datos para correrse en un proceso que tiene privilegios idénticos a los privilegios de una aplicación de terceros ejecutable en el dispositivo de procesamiento de datos, en donde el proceso se separa de otros procesos que implican otras aplicaciones de terceros ejecutables en el dispositivo de procesamiento de datos; y una base de datos de búsqueda almacenada en un dispositivo de almacenamiento de datos acoplado al dispositivo de procesamiento de datos, en donde el indizador de aplicaciones es operable para ejemplificar un ejemplar de un lote de búsquedas de aplicaciones específico para la aplicación de terceros y para indizar registros del ejemplar del lote de búsquedas de aplicaciones para almacenar los registros indizados en la base de datos de búsqueda.
17. El aparato de conformidad con la reivindicación 12, en donde el lote de búsquedas de aplicaciones especifica un conjunto de atributos de los registros a utilizarse para indizar los registros y en donde otro indizador de aplicaciones es ejecutable en el sistema de procesamiento de datos en otro proceso que tiene privilegios idénticos a los privilegios de otra aplicación de terceros ejecutable en el sistema de procesamiento de datos.
18. El aparato de conformidad con la reivindicación 13, en donde el indizador de aplicaciones es operable para pasar identificaciones asociadas con los registros en una lista de actualización al lote de búsquedas de aplicaciones para solicitar los registros, en donde las identificaciones se han agregado en la lista de actualización cuando la aplicación de terceros cambia los registros.
19. El aparato de conformidad con la reivindicación 12, que además comprende: un dispositivo de visualización para mostrar una interfaz gráfica de usuario para recibir un enunciado de búsqueda de un usuario; y un demonio de búsqueda, ejecutable en el dispositivo de procesamiento de datos, para buscar los registros indizados en la base de datos de búsqueda para registros que coinciden con el enunciado de búsqueda sin invocar la aplicación de terceros.
20. El aparato de conformidad con la reivindicación 15, en donde la interfaz gráfica de usuario presenta los registros coincidentes con el enunciado de búsqueda y permite al usuario seleccionar un registro de los registros que coinciden con el enunciado de búsqueda, y en respuesta a que el usuario selecciona el registro, el dispositivo de procesamiento de datos es operable para lanzar la aplicación de terceros para presentar el registro seleccionado por el usuario.
MX2012011616A 2010-04-07 2010-09-23 Extensibilidad de busqueda a aplicaciones de terceros. MX2012011616A (es)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32176410P 2010-04-07 2010-04-07
US12/829,209 US9098363B2 (en) 2010-04-07 2010-07-01 Search extensibility to third party applications
PCT/US2010/050075 WO2011126510A1 (en) 2010-04-07 2010-09-23 Search extensibility to third party applications

Publications (1)

Publication Number Publication Date
MX2012011616A true MX2012011616A (es) 2012-11-30

Family

ID=44761677

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2012011616A MX2012011616A (es) 2010-04-07 2010-09-23 Extensibilidad de busqueda a aplicaciones de terceros.

Country Status (12)

Country Link
US (1) US9098363B2 (es)
EP (1) EP2556431B1 (es)
JP (2) JP5730985B2 (es)
KR (1) KR101517659B1 (es)
AU (1) AU2010350748B2 (es)
BR (1) BR112012025578B1 (es)
CA (1) CA2794715C (es)
DE (1) DE112010005475T5 (es)
HK (1) HK1163286A1 (es)
MX (1) MX2012011616A (es)
TW (1) TW201140436A (es)
WO (1) WO2011126510A1 (es)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2410441A1 (en) * 2010-07-16 2012-01-25 Research In Motion Limited Registration of applications and unified media search
US9262420B1 (en) 2012-04-23 2016-02-16 Google Inc. Third-party indexable text
US9195840B2 (en) 2012-04-23 2015-11-24 Google Inc. Application-specific file type generation and use
US9148429B2 (en) 2012-04-23 2015-09-29 Google Inc. Controlling access by web applications to resources on servers
US9176720B1 (en) 2012-04-23 2015-11-03 Google Inc. Installation of third-party web applications into a container
US8751493B2 (en) * 2012-04-23 2014-06-10 Google Inc. Associating a file type with an application in a network storage service
US8990183B2 (en) 2012-06-06 2015-03-24 Microsoft Technology Licensing, Llc Deep application crawling
US9317709B2 (en) 2012-06-26 2016-04-19 Google Inc. System and method for detecting and integrating with native applications enabled for web-based storage
CN103546358B (zh) * 2012-07-09 2016-05-04 腾讯科技(深圳)有限公司 面向第三方应用的即时通讯方法及系统
DE102012019063A1 (de) * 2012-09-28 2014-04-03 Audi Ag Verfahren und System zum Bereitstellen von Daten in einem Kraftwagen
US9135049B2 (en) * 2012-10-16 2015-09-15 Red Hat Israel, Ltd. Performing thin-provisioning operations on virtual disk images using native features of the storage domain
US9529785B2 (en) 2012-11-27 2016-12-27 Google Inc. Detecting relationships between edits and acting on a subset of edits
US9223870B2 (en) 2012-11-30 2015-12-29 Microsoft Technology Licensing, Llc Decoration of search results by third-party content providers
US9104787B2 (en) * 2012-12-14 2015-08-11 Microsoft Technology Licensing, Llc Augmenting search results with relevant third-party application content
US9632764B2 (en) * 2012-12-31 2017-04-25 Oracle International Corporation Defining configurable characteristics of a product and associating configuration with enterprise resources
US9002821B2 (en) 2013-01-16 2015-04-07 Google Inc. Indexing application pages of native applications
US9146972B2 (en) 2013-03-15 2015-09-29 Google Inc. Ranking of presentation modes for particular content
US9430578B2 (en) 2013-03-15 2016-08-30 Google Inc. System and method for anchoring third party metadata in a document
US8996520B2 (en) 2013-03-15 2015-03-31 Google Inc. Ranking of native application content
WO2014160934A1 (en) 2013-03-28 2014-10-02 Google Inc. System and method to store third-party metadata in a cloud storage system
US9461870B2 (en) 2013-05-14 2016-10-04 Google Inc. Systems and methods for providing third-party application specific storage in a cloud-based storage system
US9135346B2 (en) 2013-06-07 2015-09-15 Google Inc. Index data for native applications
US9971752B2 (en) 2013-08-19 2018-05-15 Google Llc Systems and methods for resolving privileged edits within suggested edits
US9311407B2 (en) 2013-09-05 2016-04-12 Google Inc. Native application search results
US9348803B2 (en) 2013-10-22 2016-05-24 Google Inc. Systems and methods for providing just-in-time preview of suggestion resolutions
US9720672B2 (en) * 2014-01-06 2017-08-01 Quixey, Inc. Searching and accessing application functionality
US9608870B1 (en) 2014-02-28 2017-03-28 Google Inc. Deep link verification for native applications
US9251224B2 (en) 2014-03-04 2016-02-02 Google Inc. Triggering and ranking of native applications
US9652508B1 (en) 2014-03-05 2017-05-16 Google Inc. Device specific adjustment based on resource utilities
US10061796B2 (en) 2014-03-11 2018-08-28 Google Llc Native application content verification
US9645980B1 (en) 2014-03-19 2017-05-09 Google Inc. Verification of native applications for indexing
US9524347B1 (en) 2014-04-01 2016-12-20 Google Inc. Automatically implementing an application in response to a search query
US9513961B1 (en) 2014-04-02 2016-12-06 Google Inc. Monitoring application loading
US9767159B2 (en) 2014-06-13 2017-09-19 Google Inc. Ranking search results
RU2710293C2 (ru) 2014-06-24 2019-12-25 Гугл Инк. Поисковые результаты для нативных приложений
US10210263B1 (en) 2014-06-24 2019-02-19 Google Llc Native application search results
US10013496B2 (en) 2014-06-24 2018-07-03 Google Llc Indexing actions for resources
WO2015200600A1 (en) 2014-06-25 2015-12-30 Google Inc. Deep links for native applications
US9892190B1 (en) 2014-06-25 2018-02-13 Google Inc. Search suggestions based on native application history
US10049367B2 (en) * 2014-09-26 2018-08-14 General Electric Company Product compliance fulfillment portal system and method
US11423023B2 (en) 2015-06-05 2022-08-23 Apple Inc. Systems and methods for providing improved search functionality on a client device
US10769184B2 (en) 2015-06-05 2020-09-08 Apple Inc. Systems and methods for providing improved search functionality on a client device
US9348671B1 (en) 2015-07-23 2016-05-24 Google Inc. Monitoring application loading
CN107045510A (zh) * 2016-02-05 2017-08-15 优信拍(北京)信息科技有限公司 一种数据搜索方法及装置
US10862968B2 (en) 2016-04-01 2020-12-08 Intel IP Corporation Sensor data search platform
US10931679B2 (en) 2016-06-07 2021-02-23 Microsoft Technology Licensing, Llc Service actions for digital assistants
KR102490426B1 (ko) 2018-01-31 2023-01-19 삼성전자주식회사 추천 어플리케이션을 실행하기 위한 전자 장치 및 그의 동작 방법
US11822699B1 (en) * 2021-10-21 2023-11-21 Secure Computing, Llc Preventing surreptitious access to file data by malware

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279154B1 (en) 1998-10-13 2001-08-21 Hewlett-Packard Company Apparatus and method for an install system for third party applications
US6338056B1 (en) 1998-12-14 2002-01-08 International Business Machines Corporation Relational database extender that supports user-defined index types and user-defined search
JP2000322418A (ja) * 1999-05-07 2000-11-24 Fujitsu Ltd データベース装置
US7448042B1 (en) * 2003-05-06 2008-11-04 Apple Inc. Method and apparatus for providing inter-application accessibility
US20050091658A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Operating system resource protection
EP1574970A1 (en) * 2004-03-09 2005-09-14 Exalead Computer program for accessing information records of different applications
US20060085401A1 (en) 2004-10-20 2006-04-20 Microsoft Corporation Analyzing operational and other data from search system or the like
US8677274B2 (en) * 2004-11-10 2014-03-18 Apple Inc. Highlighting items for search results
US10769215B2 (en) * 2005-07-14 2020-09-08 Conversant Wireless Licensing S.A R.L. Method, apparatus and computer program product providing an application integrated mobile device search solution using context information
EP1938184A4 (en) * 2005-08-19 2009-12-02 Google Inc SOFTWARE ARCHITECTURE FOR DISPLAYING INFORMATION CONTENT FROM PLUG-IN MODULES ON A USER INTERFACE
US7657585B2 (en) 2005-10-25 2010-02-02 Innternational Business Machines Corporation Automated process for identifying and delivering domain specific unstructured content for advanced business analysis
US8019632B2 (en) 2006-10-16 2011-09-13 Accenture Global Services Limited System and method of integrating enterprise applications
US7877368B2 (en) 2007-11-02 2011-01-25 Paglo Labs, Inc. Hosted searching of private local area network information with support for add-on applications
WO2009134430A1 (en) 2008-05-01 2009-11-05 Salesforce.Com, Inc. System, method and computer program product for generating a set of instructions to an on-demand database service

Also Published As

Publication number Publication date
JP5730985B2 (ja) 2015-06-10
KR20130008058A (ko) 2013-01-21
AU2010350748B2 (en) 2014-03-20
JP2015015055A (ja) 2015-01-22
DE112010005475T5 (de) 2013-01-31
BR112012025578B1 (pt) 2021-01-12
US9098363B2 (en) 2015-08-04
AU2010350748A1 (en) 2012-11-01
EP2556431A1 (en) 2013-02-13
US20110252038A1 (en) 2011-10-13
WO2011126510A1 (en) 2011-10-13
EP2556431B1 (en) 2024-01-24
TW201140436A (en) 2011-11-16
BR112012025578A2 (pt) 2017-11-28
JP2013527521A (ja) 2013-06-27
KR101517659B1 (ko) 2015-05-04
CA2794715A1 (en) 2011-10-13
HK1163286A1 (zh) 2012-09-07
CA2794715C (en) 2016-04-12

Similar Documents

Publication Publication Date Title
AU2010350748B2 (en) Search extensibility to third party applications
US8620272B2 (en) Capability model for mobile devices
US8498981B2 (en) Search capability implementation for a device
KR101633366B1 (ko) 앱스토어 서비스 제공 방법 및 시스템
JP6487149B2 (ja) 携帯端末機のアプリ提供方法、そのための電子装置及びそれを実行するためのプログラムを記録したコンピュータ読み取り可能な記憶媒体
US9513888B1 (en) Virtual preloads
US20090307679A1 (en) Communication device and a host device, a method of processing signal in the communication device and the host device, and a system having the communication device and the host device
CN107329985B (zh) 一种页面的收藏方法、装置和移动终端
CN108874466B (zh) 控件调用方法、电子装置及计算机可读存储介质
CN110869902B (zh) 一种浏览应用文件夹的方法及电子设备
WO2020238351A1 (zh) 应用程序下载分类方法及终端设备
CN115454286B (zh) 应用数据的处理方法、装置和终端设备
KR20060086305A (ko) 컨텍스트-인식 플랫폼을 위한 시스템 및 방법
WO2021135578A1 (zh) 页面处理方法、装置、存储介质及终端设备
CN102214093B (zh) 向第三方应用的搜索扩展能力
US9734538B2 (en) Integrated operation method for social network service function and system supporting the same
JP5997848B2 (ja) 移動端末リソースの処理方法、装置、クライアント側のコンピュータ、サーバ、移動端末、プログラム、及び記録媒体
US20130111405A1 (en) Controlling method for basic screen and portable device supporting the same
US8352468B2 (en) Top search hits based on learned user preferences
KR20130050705A (ko) 키워드 검색 방법 및 장치
CN115017473B (zh) 授权方法及电子设备
CN103984884A (zh) 软件许可方法和系统

Legal Events

Date Code Title Description
FG Grant or registration