專利名稱:向第三方應(yīng)用的搜索擴(kuò)展能力的制作方法
技術(shù)領(lǐng)域:
本公開涉及將搜索能力擴(kuò)展到計(jì)算裝置上的第三方應(yīng)用。
背景技術(shù):
當(dāng)前,已經(jīng)開發(fā)了許多應(yīng)用以在多功能裝置上運(yùn)行,例如包括媒體播放器的蜂窩電話、個人數(shù)字助理(PDA)等。許多這些應(yīng)用是由多功能裝置的賣方之外的來源提供的,因此它們通常稱為第三方應(yīng)用。這些應(yīng)用可以執(zhí)行各種功能,例如提供娛樂、社交網(wǎng)絡(luò)等。在執(zhí)行這些功能中,多功能裝置可以訪問存儲在這些多功能裝置中的內(nèi)容或基于網(wǎng)絡(luò)(例如因特網(wǎng))的內(nèi)容。為了使多功能裝置的用戶能夠更簡單更便利地組織和管理多功能裝置,安裝在多功能裝置上的操作系統(tǒng)通常提供搜索能力。因?yàn)榘惭b在多功能裝置上的許多應(yīng)用是第三方應(yīng)用,所以傳統(tǒng)的安裝在多功能裝置上的操作系統(tǒng)沒有將它們的搜索能力擴(kuò)展到這些第三方應(yīng)用。
發(fā)明內(nèi)容
某些實(shí)施例包括環(huán)境中的一個或多個應(yīng)用程序接口(API),與其他程序代碼進(jìn)行交互的調(diào)用程序代碼被通過這一個或多個接口而調(diào)用。經(jīng)由調(diào)用程序與被調(diào)用代碼之間的 API,可以發(fā)送各種函數(shù)調(diào)用、消息或其他類型的調(diào)用,這些調(diào)用和消息還可以包括各種參數(shù)。另外,API可以給調(diào)用程序代碼提供下述能力能夠使用在API中定義、并在被調(diào)用的程序代碼中實(shí)現(xiàn)的數(shù)據(jù)類型或類。至少某些實(shí)施例包括由調(diào)用軟件組件通過API而與被調(diào)用的軟件組件進(jìn)行交互的環(huán)境。用于通過API在這種環(huán)境下進(jìn)行操作的方法包括通過API發(fā)送一個或多個函數(shù)調(diào)用、消息、其他類型的調(diào)用或參數(shù)。本發(fā)明的至少某些實(shí)施例包括環(huán)境中的一個或多個API,搜索能力被擴(kuò)展到多功能裝置上的一個或多個第三方應(yīng)用。各種函數(shù)調(diào)用或消息經(jīng)由多功能裝置的操作系統(tǒng)和第三方應(yīng)用之間的API被發(fā)送。示例性的API發(fā)送函數(shù)調(diào)用以實(shí)現(xiàn)對與第三方應(yīng)用相關(guān)聯(lián)的內(nèi)容的標(biāo)引和搜索。本公開的某些實(shí)施例包括用于將搜索能力擴(kuò)展到安裝在多功能裝置上的第三方應(yīng)用的方法。在一個實(shí)施例中,與第三方應(yīng)用相關(guān)聯(lián)的記錄在下述過程中被標(biāo)引該過程與安裝在使用專用于第三方應(yīng)用的搜索插件的多功能裝置上的其他第三方應(yīng)用、系統(tǒng)應(yīng)用和搜索包是分開的。注意,標(biāo)引可以在不調(diào)用第三方應(yīng)用的情況下執(zhí)行。另外,被標(biāo)引的記錄可以響應(yīng)于用戶的搜索查詢而在不調(diào)用(諸如,發(fā)起或運(yùn)行)第三方應(yīng)用的情況下被搜索。根據(jù)本公開的某些實(shí)施例,安裝在多功能裝置上的第三方應(yīng)用可以提供專用于該第三方應(yīng)用的搜索插件。該搜索插件可以被發(fā)起以將與第三方應(yīng)用相關(guān)聯(lián)的記錄傳送到多功能裝置上在單獨(dú)過程中運(yùn)行的搜索后臺程序。記錄的標(biāo)識符(ID)可以指定當(dāng)在響應(yīng)于用戶搜索查詢而產(chǎn)生的搜索結(jié)果中顯示記錄時,記錄的特征應(yīng)當(dāng)如何。每個ID可以進(jìn)一步包括本地ID,本地ID具有與相應(yīng)的記錄相關(guān)聯(lián)的文檔內(nèi)的不同類型內(nèi)容相對應(yīng)的子ID。還描述了執(zhí)行以上提及的方法中一種或多種的各種裝置以及在被處理系統(tǒng)執(zhí)行時使處理系統(tǒng)執(zhí)行這些方法的機(jī)器可讀介質(zhì)。還描述了其他的方法、裝置和機(jī)器可讀介質(zhì)。
將參考附圖來對本發(fā)明進(jìn)行描述,其中圖1顯示了可用于本發(fā)明的某些實(shí)施例的示例性API結(jié)構(gòu)的方框圖;圖2為可用于本發(fā)明的某些實(shí)施例的軟件棧的示例性實(shí)施例;圖3為根據(jù)本發(fā)明的一個實(shí)施例,搜索后臺程序與運(yùn)行在多功能裝置上的第三方應(yīng)用之間交互的圖;圖4是多功能裝置上給第三方應(yīng)用建立搜索和標(biāo)引能力的方法的一個實(shí)施例的流程圖;圖5是多功能裝置上由第三方應(yīng)用處理應(yīng)用數(shù)據(jù)中的變化的方法的一個實(shí)施例的流程圖;圖6是多功能裝置上由搜索后臺程序處理與第三方應(yīng)用相關(guān)聯(lián)的應(yīng)用中的數(shù)據(jù)變化的方法的一個實(shí)施例的流程圖;圖7是多功能裝置上由搜索后臺程序標(biāo)引應(yīng)用數(shù)據(jù)的方法的一個實(shí)施例的流程圖;圖8是多功能裝置上由應(yīng)用標(biāo)引器標(biāo)引應(yīng)用數(shù)據(jù)的方法的一個實(shí)施例的流程圖;圖9是搜索后臺程序?qū)εc第三方應(yīng)用相關(guān)聯(lián)的經(jīng)標(biāo)引應(yīng)用數(shù)據(jù)進(jìn)行搜索的方法的一個實(shí)施例的流程圖;圖10為在多功能裝置上的搜索數(shù)據(jù)庫的一個實(shí)施例;圖11為一個示例性文檔的本地標(biāo)識符的一個實(shí)施例;圖12是根據(jù)本發(fā)明的一個實(shí)施例的裝置的透視圖;圖13顯示了包括無線通信能力的無線裝置的實(shí)施例;圖14顯示了根據(jù)本發(fā)明的一個實(shí)施例的裝置的另一個實(shí)例。
具體實(shí)施例方式本公開的各種實(shí)施例和方面將參考以下的詳細(xì)討論來描述,并且附圖將示例說明各種實(shí)施例。以下說明和附圖是對本發(fā)明的示例說明,不能解釋為對本公開的限制。許多具體細(xì)節(jié)被描述以提供對本發(fā)明的各種實(shí)施例的全面理解。然而,在某些例子中,為了提供對本發(fā)明的實(shí)施例的簡要的討論,已知的或傳統(tǒng)的細(xì)節(jié)不被描述。以下具體實(shí)施方式
的某些部分將以算法的形式來呈現(xiàn),這些算法包括對存儲在計(jì)算機(jī)存儲器中的數(shù)據(jù)的操作。算法總的來說是導(dǎo)向期望的結(jié)果的操作的自洽序列。這些操作通常需要或涉及到物理量的物理操作。通常地,盡管不是必須地,這些量采用能夠進(jìn)行存儲、傳輸、組合、比較和以其他方式操作的電信號或磁信號的形式。已經(jīng)發(fā)現(xiàn),主要出于通常使用的原因,將這些信號稱為比特、值、要素、符號、字符、項(xiàng)、數(shù)字等有時是便利的。然而應(yīng)該牢記,所有的這些和相似的術(shù)語與適當(dāng)?shù)奈锢韰?shù)有關(guān),并且僅僅是應(yīng)用到這些參數(shù)的便利標(biāo)記。除非在以下討論中明確地另外特別說明,應(yīng)當(dāng)知道,貫穿全文, 利用諸如“處理”、“計(jì)算”、“運(yùn)算”、“確定”、“顯示”或類似的術(shù)語進(jìn)行的討論可以指數(shù)據(jù)處理系統(tǒng)或類似的電子裝置的動作和處理,這些動作和處理用來將系統(tǒng)寄存器和存儲器中表示物理(電子)量的數(shù)據(jù)操縱和轉(zhuǎn)換為類似地在系統(tǒng)存儲器或寄存器或其它這樣的信息存儲器、傳輸或顯示裝置中表示物理量的其它數(shù)據(jù)。本發(fā)明涉及的設(shè)備用來執(zhí)行這里描述的操作中的一項(xiàng)或多項(xiàng)。該設(shè)備可以是為了所需目的而專門構(gòu)造的,也可以包括由存儲在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇性地激活或重新配置的通用計(jì)算機(jī)。這樣的計(jì)算機(jī)程序可以被存儲在機(jī)器(例如計(jì)算機(jī))可讀存儲介質(zhì)上, 該介質(zhì)例如但不限于任何類型的盤,包括軟盤、光盤、CD-ROM、磁光盤、只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、閃存、磁卡或光卡、或適合用來存儲電子指令的任何種類的介質(zhì),各個介質(zhì)與總線耦合。機(jī)器可讀介質(zhì)包括用來以機(jī)器(例如計(jì)算機(jī))可讀形式存儲或傳輸信息的任何裝置。例如,機(jī)器使用機(jī)器可讀介質(zhì)(例如,機(jī)器可讀存儲介質(zhì),如磁盤;光盤;隨機(jī)存取存儲器;只讀存儲器;閃存裝置;相變存儲器)和機(jī)器可讀通信介質(zhì)(例如,電的、光的、聲的或其他形式的傳播信號——例如載波、紅外信號、數(shù)字信號等)存儲和發(fā)送(在內(nèi)部,或通過網(wǎng)絡(luò)而向其他裝置)代碼和數(shù)據(jù)。本公開的至少某些實(shí)施例包括具有與軟件應(yīng)用交互的搜索軟件的環(huán)境中的一個或多個應(yīng)用程序接口。各種功能調(diào)用或消息經(jīng)由搜索軟件和軟件應(yīng)用之間的應(yīng)用程序接口被發(fā)送。發(fā)送功能調(diào)用或消息可以包括發(fā)布、發(fā)起、調(diào)用或接收功能調(diào)用或消息。示例的應(yīng)用程序接口發(fā)送功能調(diào)用以對具有顯示區(qū)域的裝置實(shí)現(xiàn)各種操作(例如,搜索、聯(lián)網(wǎng)、服務(wù)發(fā)現(xiàn)(service discovery)等)。API可以實(shí)現(xiàn)具有參數(shù)、變量或指針的函數(shù)。API可以以所公開的參數(shù)組合或其他參數(shù)組合的形式接收參數(shù)。除了所公開的API,其他API以可以單獨(dú)地或組合地執(zhí)行與所公開的API類似的功能。顯示區(qū)域可以以窗口的形式呈現(xiàn)。窗口是可以具有、也可以不具有邊緣的顯示區(qū)域,并且可以是顯示器的整個顯示區(qū)域或部分。在某些實(shí)施例中,顯示區(qū)域可以具有至少一個窗口和/或至少一個視圖(例如,網(wǎng)頁、文本或圖像內(nèi)容)。公開的方法、系統(tǒng)和設(shè)備可以通過顯示區(qū)域、窗口和/或視圖來實(shí)現(xiàn)。本公開的至少某些實(shí)施例可以是諸如數(shù)字媒體播放器(例如,便攜式音樂和/或視頻媒體播放器)的便攜式電子裝置的一部分,該裝置可以包括用于呈現(xiàn)媒體的媒體處理系統(tǒng)、用于存儲媒體的存儲裝置,并可以進(jìn)一步包括與天線系統(tǒng)和媒體處理系統(tǒng)耦接的射頻(RF)收發(fā)機(jī)(例如,用于蜂窩電話的RF收發(fā)機(jī))。在某些實(shí)施例中,存儲在遠(yuǎn)程存儲裝置上的數(shù)據(jù)可以通過RF收發(fā)機(jī)發(fā)送到便攜式電子裝置。數(shù)據(jù)例如可以是音樂或其他音頻、靜止畫面或動畫等中的一種或多種。便攜式媒體播放器可以包括媒體選擇裝置,例如,Cupertino, CA的 AppleComputer, Inc.的iPod 或 iPod Nano 媒體播放器上的點(diǎn)擊操作輪(click wheel) 裝置、觸摸屏輸入裝置、按鈕裝置、可移動指點(diǎn)裝置或其他輸入裝置。媒體選擇裝置可以被用來選擇存儲在存儲裝置和/或遠(yuǎn)程存儲裝置上的媒體。在至少某些實(shí)施例中,便攜式媒體播放器可以包括顯示裝置,該顯示裝置耦接到媒體處理系統(tǒng)以顯示媒體的標(biāo)題或其他指示符,所述媒體是通過輸入裝置而選擇的,并通過揚(yáng)聲器或(一個或多個)耳機(jī)、或者在顯示裝置上、或者既在顯示裝置又在揚(yáng)聲器或(一個或多個)耳機(jī)上呈現(xiàn)的。在某些實(shí)施例中,顯示裝置和輸入裝置集成為一體,而在另一些實(shí)施例中,顯示裝置和輸入裝置是分離的
直ο這里描述的發(fā)明的實(shí)施例可以是其他類型的數(shù)據(jù)處理系統(tǒng)的一部分,例如,娛樂系統(tǒng)或個人數(shù)字助理(PDA)、或通用計(jì)算機(jī)系統(tǒng)、或?qū)S糜?jì)算機(jī)系統(tǒng)、或另一個裝置中的嵌入式裝置、或不包括媒體播放器的蜂窩電話、或多功能觸摸平板裝置、或其他的多功能觸摸裝置、或?qū)⑦@些裝置的多個方面或功能組合的裝置(例如,將媒體播放器(例如iPod 便攜式媒體播放器)與PDA、娛樂系統(tǒng)和蜂窩電話組合在一個裝置中,iPhone )。因?yàn)檫@些裝置通常具有多種功能,所以這些裝置在下文中也可以稱為多功能裝置。在本公開中,電子裝置和消費(fèi)者裝置是裝置類型。在某些實(shí)施例中,平臺提供各種搜索、服務(wù)發(fā)現(xiàn)和聯(lián)網(wǎng)操作。平臺包括硬件組件和操作系統(tǒng)。硬件組件可以包括耦接到輸入面板的處理單元和耦接到處理器的存儲器。操作系統(tǒng)包括存儲在存儲器中、并被配置為由處理單元執(zhí)行的一個或多個程序。一個或多個程序包括用于通過應(yīng)用程序接口(API)而傳輸功能調(diào)用或消息的各種指令,以執(zhí)行各種搜索、服務(wù)發(fā)現(xiàn)和聯(lián)網(wǎng)操作。某些實(shí)施例中可以使用一個或多個API。API是由程序代碼組件或硬件組件(下文中稱為“API實(shí)現(xiàn)組件(API-implementing component)”)實(shí)現(xiàn)的接口,允許不同的程序代碼組件或硬件組件(下文中稱為“API調(diào)用組件(API-callingcomponent)”)來訪問和使用一個或多個函數(shù)、方法、過程、數(shù)據(jù)結(jié)構(gòu)、類和/或由API實(shí)現(xiàn)組件提供的其他服務(wù)。API 可以定義API調(diào)用組件與API實(shí)現(xiàn)組件之間傳送的一個或多個參數(shù)。API允許API調(diào)用組件的開發(fā)者(可以是第三方應(yīng)用的開發(fā)者)提高(leverage) 由API實(shí)現(xiàn)組件提供的專門的特性??梢杂幸粋€API調(diào)用組件,也可以有多于一個這樣的組件。API可以是由計(jì)算機(jī)系統(tǒng)或程序庫提供的源代碼接口,用于支持來自應(yīng)用的服務(wù)請求。操作系統(tǒng)(OS)可以具有多個API,以允許運(yùn)行在OS上的應(yīng)用調(diào)用這些API中的一個或多個,服務(wù)(例如程序庫)可以具有多個API,以允許使用這些服務(wù)的應(yīng)用調(diào)用這些API中的一個或者多個。在建立應(yīng)用時被解釋或編譯的程序設(shè)計(jì)語言方面,API可以是指定的。在某些實(shí)施例中,API實(shí)現(xiàn)組件可以提供多于一個API,其中每一個都提供由API 實(shí)現(xiàn)組件所實(shí)現(xiàn)的功能的不同的視圖或具有訪問該功能不同方面的不同方面。例如,API 實(shí)現(xiàn)組件的一個API可以提供第一組函數(shù),并可以被公開給第三方開發(fā)者,API實(shí)現(xiàn)組件的另一個API可以被隱藏(沒有公開)并提供第一組函數(shù)的子集以及另一組函數(shù),例如第一組函數(shù)以外的測試或調(diào)試函數(shù)。在另一些實(shí)施例中,API實(shí)現(xiàn)組件自身可以通過基礎(chǔ)的API 調(diào)用一個或多個其它的組件,因而既是API調(diào)用組件又是API實(shí)現(xiàn)組件。
API定義了 API調(diào)用組件在訪問和使用API實(shí)現(xiàn)組件的專用特性時所使用的語言和參數(shù)。例如,API調(diào)用組件通過被API公開的一個或多個API調(diào)用(callsor invocations, 例如通過函數(shù)或方法的調(diào)用來實(shí)現(xiàn))而訪問API實(shí)現(xiàn)組件的指定特性,并且經(jīng)由API調(diào)用來使用參數(shù)傳遞數(shù)據(jù)和控制信息。響應(yīng)于來自API調(diào)用組件的API調(diào)用,API實(shí)現(xiàn)組件可以通過API返回?cái)?shù)值。雖然API定義了 API調(diào)用的語法和結(jié)果(例如,如何調(diào)用API調(diào)用和API調(diào)用做什么)JfiAPI不能反映API調(diào)用如何完成由API調(diào)用所指定的功能。各種 API調(diào)用經(jīng)由調(diào)用(API調(diào)用組件)與API實(shí)現(xiàn)組件之間的一個或多個應(yīng)用程序接口而被發(fā)送。發(fā)送API調(diào)用可以包括發(fā)布、發(fā)起、調(diào)用、接收、返回、或者對函數(shù)調(diào)用或消息作出響應(yīng); 換句話說,發(fā)送可以描述由API調(diào)用組件或由API實(shí)現(xiàn)組件進(jìn)行的動作。API的函數(shù)調(diào)用或其他調(diào)用可以通過參數(shù)列表或其他結(jié)構(gòu)發(fā)送或接收一個或多個參數(shù)。參數(shù)可以是常量、 鍵值、數(shù)據(jù)結(jié)構(gòu)、對象、對象類、變量、數(shù)據(jù)類型、指針、數(shù)組、列表、或者指向函數(shù)或方法的指針,或?qū)δ軌蛲ㄟ^API而傳遞的數(shù)據(jù)或其他項(xiàng)目進(jìn)行引用的其他方式。而且,數(shù)據(jù)類型或類可以由API提供并且由API實(shí)現(xiàn)組件實(shí)現(xiàn)。因而,API調(diào)用組件可以聲明變量、使用指針、通過使用API中提供的定義來對這些類型或類的常量值進(jìn)行使用或?qū)嵗?instantiate)。通常,API可以被用來訪問由API實(shí)現(xiàn)組件提供的服務(wù)或數(shù)據(jù),或發(fā)起執(zhí)行由API 實(shí)現(xiàn)組件所提供的操作或計(jì)算。例如,API實(shí)現(xiàn)組件和API調(diào)用組件各自可以是操作系統(tǒng)、 庫、設(shè)備驅(qū)動器、API、應(yīng)用程序或其他模塊(應(yīng)當(dāng)理解,API實(shí)現(xiàn)組件和API調(diào)用組件可以是彼此相同或者不同類型的模塊)中的任意一種。在某些情況下,API實(shí)現(xiàn)組件可以至少部分地由固件、微代碼或其它硬件邏輯來實(shí)現(xiàn)。在某些實(shí)施例中,API可以允許客戶端程序使用由軟件開發(fā)工具包(SDK)庫提供的服務(wù)。在另一些實(shí)施例中,應(yīng)用或其他客戶程序可以使用由應(yīng)用基本框架(Application Framework)提供的API。在這些實(shí)施例中,應(yīng)用或客戶程序可以將對于由SDK提供的和由API提供的功能或方法的調(diào)用相結(jié)合,或者使用SDK中定義并由API提供的數(shù)據(jù)類型或?qū)ο蟆T谶@些實(shí)施例中,應(yīng)用基礎(chǔ)框架可以提供用于程序的主事件循環(huán),以響應(yīng)由框架定義的各種事件。API允許使用應(yīng)用基本框架而由應(yīng)用來指明事件和響應(yīng)事件。在某些實(shí)施例中,API調(diào)用可以向應(yīng)用報(bào)告硬件設(shè)備的能力或狀態(tài),包括與諸如輸入能力和狀態(tài)、輸出能力和狀態(tài)、處理能力、電力狀態(tài)、存儲容量和狀態(tài)、通信能力等方面有關(guān)的能力或狀態(tài),API可以部分地通過固件、微代碼來實(shí)現(xiàn),或通過部分地在硬件組件上執(zhí)行的其他低級邏輯來實(shí)現(xiàn)。API調(diào)用組件可以是本地組件(即與API實(shí)現(xiàn)組件在同一數(shù)據(jù)處理系統(tǒng)上)或者是通過基于網(wǎng)絡(luò)的API而與API實(shí)現(xiàn)組件通信的遠(yuǎn)程組件(即,在與API實(shí)現(xiàn)組件不同的數(shù)據(jù)處理系統(tǒng)上)。應(yīng)當(dāng)了解,API實(shí)現(xiàn)組件也可以作為API調(diào)用組件(即,它可以對由其他 API實(shí)現(xiàn)組件公開的API進(jìn)行API調(diào)用),并且,通過實(shí)現(xiàn)對另一 API調(diào)用組件公開的API, API調(diào)用組件也可以作為API實(shí)現(xiàn)組件。API可以允許使用不同程序設(shè)計(jì)語言編寫的多個API調(diào)用組件來與API實(shí)現(xiàn)組件進(jìn)行通信(因而API可以包括一些特性,用于對API實(shí)現(xiàn)組件和API調(diào)用組件之間的調(diào)用和返回進(jìn)行翻譯);然而,API可以由專門的程序設(shè)計(jì)語言來實(shí)現(xiàn)。在一個實(shí)施例中,API調(diào)用組件能夠調(diào)用來自不同供應(yīng)商的API,諸如一組來自O(shè)S供應(yīng)商的API、另一組來自插件 (plug-in)供應(yīng)商的API、以及另一組來自另一個供應(yīng)商(例如,軟件庫的供應(yīng)商)或所述另一組API的創(chuàng)建者的API。圖1顯示了被用在本發(fā)明的某些實(shí)施例中的示例性API體系結(jié)構(gòu)的方框圖。如圖 1所示,API體系結(jié)構(gòu)100包括實(shí)現(xiàn)API 120的API實(shí)現(xiàn)組件110 (例如,操作系統(tǒng)、庫、設(shè)備驅(qū)動器、API、應(yīng)用程序、軟件或其他模塊)。API 120指明了可以被API調(diào)用組件130使用的API實(shí)現(xiàn)組件的一個或多個函數(shù)、方法、類、對象、協(xié)議、數(shù)據(jù)結(jié)構(gòu)、格式和/或其他特性。 API 120能夠指明至少一個調(diào)用約定(convention),該約定指明了 API實(shí)現(xiàn)組件中的函數(shù)如何從API調(diào)用組件接收參數(shù),以及該函數(shù)如何向API調(diào)用組件返回結(jié)果。API調(diào)用組件 130(例如,操作系統(tǒng)、庫、設(shè)備驅(qū)動器、API、應(yīng)用程序、軟件或其他模塊)通過API 120進(jìn)行 API調(diào)用,以訪問和使用由API 120指明的API實(shí)現(xiàn)組件110的特性。API實(shí)現(xiàn)組件110可以響應(yīng)于API調(diào)用而通過API 120向API調(diào)用組件130返回?cái)?shù)值。應(yīng)當(dāng)知道,API實(shí)現(xiàn)組件110可以包括沒有由API 120指明、并對于API調(diào)用組件 130而言不可用的另外的函數(shù)、方法、類、數(shù)據(jù)結(jié)構(gòu)和/或其他特性。應(yīng)當(dāng)了解,API調(diào)用組件130可以與API實(shí)現(xiàn)組件110在同一系統(tǒng)上,也可以位于遠(yuǎn)程并且使用API 120通過網(wǎng)絡(luò)來訪問API實(shí)現(xiàn)組件110。雖然圖1顯示了與API 120交互的單個的API調(diào)用組件130, 但應(yīng)當(dāng)知道,可以使用與API調(diào)用組件130用不同語言(或相同語言)編寫的其他API調(diào)用組件來使用API 120。API實(shí)現(xiàn)組件110、API 120和API調(diào)用組件130可以存儲在機(jī)器可讀介質(zhì)中,所述介質(zhì)包括用來存儲機(jī)器(例如,計(jì)算機(jī)或其他數(shù)據(jù)處理系統(tǒng))可讀形式的信息的任何裝置。例如,機(jī)器可讀介質(zhì)包括磁盤、光盤、隨機(jī)訪問存儲器、只讀存儲器、閃存裝置等。在圖2( “軟件?!?的一種示例性實(shí)施例中,應(yīng)用可以使用幾個服務(wù)API來調(diào)用服務(wù)1或2,并使用幾個操作系統(tǒng)(OS)API來調(diào)用OS。服務(wù)A和B可以使用幾個OS API來調(diào)用OS。注意,服務(wù)2有兩個API,其中一個(服務(wù)2API 1)接收來自應(yīng)用1的調(diào)用并向應(yīng)用1返回值,另一個(服務(wù)2API 2)接收來自應(yīng)用2的調(diào)用并向應(yīng)用2返回值。服務(wù)1(例如可以是軟件庫)調(diào)用OS API 1并從OS API 1接收返回值,服務(wù)2(例如可以是軟件庫) 調(diào)用OS API 1和OS API2,并從OS API 1和OS API2接收返回值。應(yīng)用2調(diào)用OS API2并從OS API2接收返回值。圖3為根據(jù)本發(fā)明的一個實(shí)施例,運(yùn)行在多功能裝置上的搜索后臺程序(search daemon) 320與第三方應(yīng)用310之間交互的圖。本申請中所用的第三方應(yīng)用泛指由除了多功能裝置制造商之外的實(shí)體所提供的軟件應(yīng)用。典型地,多功能裝置的用戶可以安裝一個或多個可在多功能裝置上執(zhí)行的第三方應(yīng)用以執(zhí)行一組特定的任務(wù)或功能。第三方應(yīng)用的一些例子包括電子書閱讀器、社交網(wǎng)絡(luò)管理器等??偟膩碚f,多功能裝置可以在多功能裝置上的搜索數(shù)據(jù)庫380中儲存由搜索后臺程序320所標(biāo)引(index)的第三方應(yīng)用310相關(guān)聯(lián)的應(yīng)用數(shù)據(jù)。在一個實(shí)施例中,裝置可以具有多個第三方應(yīng)用(例如應(yīng)用310),每個第三方應(yīng)用以本申請中所述的方式工作,并具有搜索后臺程序320或搜索后臺程序320的實(shí)例(instance),該實(shí)例是針對使用該實(shí)例的相應(yīng)的第三方應(yīng)用而創(chuàng)建的。在某些實(shí)施例中,搜索后臺程序320可以發(fā)起(launch)應(yīng)用標(biāo)引器(indexer)330以標(biāo)引應(yīng)用數(shù)據(jù)。特別地,應(yīng)用標(biāo)引器330可以發(fā)起由第三方應(yīng)用 310提供的應(yīng)用搜索包(bundle) 340的實(shí)例,以取回(retrieve)應(yīng)用數(shù)據(jù)的記錄來進(jìn)行標(biāo)引。注意,出于安全原因,應(yīng)用搜索包340是在與其他第三方應(yīng)用、系統(tǒng)應(yīng)用和搜索包分開的過程中被發(fā)起的。而且,所述分開的過程(應(yīng)用搜索包340在該過程中被發(fā)起)和與應(yīng)用搜索包340相關(guān)聯(lián)的第三方應(yīng)用310可以具有相同的特權(quán)(privilege)(例如,對于存儲器空間的選定部分進(jìn)行讀取和寫入、但對存儲器的其他部分讀取和寫入以其他方式受限的特權(quán))。因此,應(yīng)用搜索包340被賦予了對允許第三方應(yīng)用310訪問的內(nèi)容進(jìn)行訪問的許可, 并且被禁止訪問不允許第三方應(yīng)用310訪問的內(nèi)容。在某些實(shí)施例中,搜索后臺程序320 的一些部分(例如應(yīng)用標(biāo)引器330)可以被賦予與第三方應(yīng)用310相同的特權(quán)(例如,存儲器空間限制)。在某些實(shí)施例中,響應(yīng)于用戶請求,搜索后臺程序320可以在不發(fā)起第三方應(yīng)用310的情況下,在搜索數(shù)據(jù)庫380中搜索被標(biāo)引的應(yīng)用數(shù)據(jù)。在搜索后臺程序320與第三方應(yīng)用310之間進(jìn)行交互以標(biāo)引和搜索應(yīng)用數(shù)據(jù)的某些實(shí)施例的詳情將在下文討論以便進(jìn)一步闡明以上概念。在一個實(shí)施例中,第三方應(yīng)用310被發(fā)起以在多功能裝置上運(yùn)行。當(dāng)運(yùn)行時,第三方應(yīng)用310使得應(yīng)用數(shù)據(jù)315改變。例如,第三方應(yīng)用310可以修改存儲在多功能裝置上的已有記錄、下載新的記錄到多功能裝置上、和/或移除(或刪除)存儲在多功能裝置上的已有記錄。當(dāng)?shù)谌綉?yīng)用310改變應(yīng)用數(shù)據(jù)315時,第三方應(yīng)用310還向搜索后臺程序320 發(fā)送應(yīng)用數(shù)據(jù)315中經(jīng)過改變的記錄的標(biāo)識符(ID)。搜索后臺程序320可以在更新列表 325中臨時存儲經(jīng)改變后記錄的ID。之后,當(dāng)搜索后臺程序320需要建立被標(biāo)引數(shù)據(jù)時,搜索后臺程序320可以發(fā)起單獨(dú)的過程以運(yùn)行應(yīng)用標(biāo)引器330。搜索后臺程序320可以周期性地、或者在請求了搜索時、 或者在其它時間或時間間隔建立被標(biāo)引數(shù)據(jù)??商娲?,當(dāng)搜索后臺程序320在更新列表 325中發(fā)現(xiàn)新的信息時,搜索后臺程序320可以建立被標(biāo)引數(shù)據(jù)。這可以在第三方應(yīng)用310 將更新標(biāo)識符通知給搜索后臺程序320的時候發(fā)生。應(yīng)用310的外部也可以存在可以使標(biāo)引開始的觸發(fā)器,例如應(yīng)用更新、系統(tǒng)恢復(fù)、系統(tǒng)更新等。應(yīng)用標(biāo)引器330可以裝載應(yīng)用搜索包340。在某些實(shí)施例中,應(yīng)用搜索包340是專用于第三方應(yīng)用310的、與搜索相關(guān)的插件。第三方應(yīng)用310可能在將第三方應(yīng)用310安裝在多功能裝置上時已經(jīng)提供了應(yīng)用搜索包340。應(yīng)用標(biāo)引器330可以從更新列表325到應(yīng)用搜索包340提供經(jīng)改變的記錄的ID。 作為響應(yīng),應(yīng)用搜索包340提供經(jīng)改變的記錄到應(yīng)用標(biāo)引器330以被標(biāo)引??商娲兀瑧?yīng)用標(biāo)引器330可以從應(yīng)用搜索包340請求所有的與第三方應(yīng)用310相關(guān)聯(lián)的記錄。在某一實(shí)施例中,用于第三方應(yīng)用310的應(yīng)用標(biāo)引器330的實(shí)例在其自己的過程中運(yùn)行,并具有與第三方應(yīng)用310相同的特權(quán)(對應(yīng)于存儲器控制、存儲器空間、存儲器分配、文件系統(tǒng)控制和網(wǎng)絡(luò)控制)。在某些實(shí)施例中,如果與用戶搜索查詢相匹配,則每條記錄包括一組屬性,描述了相應(yīng)的記錄應(yīng)當(dāng)如何在搜索結(jié)果中顯示。例如,示例性的記錄可以包括ID、內(nèi)容標(biāo)題、內(nèi)容子標(biāo)題和專用于應(yīng)用的ID (也稱為本地ID)。當(dāng)記錄與用戶搜索查詢相匹配時,記錄的標(biāo)題和子標(biāo)題可以呈現(xiàn)在用戶搜索查詢的搜索結(jié)果中。使用來自應(yīng)用搜索包340的記錄,應(yīng)用標(biāo)引器330可以在搜索數(shù)據(jù)庫380中建立或增加記錄,該數(shù)據(jù)庫可以包括與記錄相關(guān)聯(lián)的內(nèi)容的元數(shù)據(jù)。在某些實(shí)施例中,搜索數(shù)據(jù)庫380包括彼此同步的多個數(shù)據(jù)庫。例如,搜索數(shù)據(jù)庫380可以包括用來存儲被標(biāo)引內(nèi)容的第一數(shù)據(jù)庫和用來存儲被標(biāo)引內(nèi)容的記錄的第二數(shù)據(jù)庫。搜索數(shù)據(jù)庫的一個實(shí)施例的更詳細(xì)內(nèi)容將在下文討論。當(dāng)用戶提交用戶搜索查詢時,搜索后臺程序320可以訪問搜索數(shù)據(jù)庫380以尋找與用戶搜索查詢相匹配的記錄。注意,搜索后臺程序320可以在不發(fā)起第三方應(yīng)用310的情況下,搜索與第三方應(yīng)用310的應(yīng)用數(shù)據(jù)相關(guān)聯(lián)的記錄。搜索后臺程序320可以呈現(xiàn)與用戶搜索查詢相匹配的記錄的部分,例如,在窗口內(nèi)的搜索結(jié)果區(qū)域中顯示匹配記錄的標(biāo)題和子標(biāo)題。在某些實(shí)施例中,用戶可以從匹配記錄中選擇記錄。響應(yīng)于用戶的選擇,搜索后臺程序320可以在多功能裝置上發(fā)起第三方應(yīng)用310以呈現(xiàn)與選擇的記錄相關(guān)聯(lián)的內(nèi)容。例如,內(nèi)容可以包括視頻數(shù)據(jù),第三方應(yīng)用310可以被啟動以播放視頻;或者,內(nèi)容可以包括電子書,第三方應(yīng)用310可以被啟動以顯示電子書。圖4是用于在多功能裝置上對第三方應(yīng)用建立搜索和標(biāo)引能力的方法的一個實(shí)施例的流程圖。該方法可以通過硬件、軟件、固件或它們的任意組合來執(zhí)行。在某些實(shí)施例中,在方框410,在多功能裝置上發(fā)起第三方應(yīng)用的安裝。在方框 420,專用于第三方應(yīng)用的應(yīng)用搜索包被存儲在多功能裝置的第三方應(yīng)用的預(yù)定的位置。廣義上來說,應(yīng)用搜索包是第三方應(yīng)用提供的插件。應(yīng)用搜索包可以被載入以傳輸與第三方應(yīng)用相關(guān)聯(lián)的內(nèi)容的記錄。在方框430,第三方應(yīng)用的元數(shù)據(jù)被檢查,以確定第三方應(yīng)用是否想要標(biāo)引與第三方應(yīng)用相關(guān)聯(lián)的內(nèi)容。在方框445,假如第三方應(yīng)用想要標(biāo)引內(nèi)容,則第三方應(yīng)用被登記。例如,如下文所述,運(yùn)行在多功能裝置上的搜索后臺程序可在中心位置保存登記的應(yīng)用的列表的軌跡,搜索后臺程序可以標(biāo)引與第三方應(yīng)用相關(guān)聯(lián)的內(nèi)容。圖5是在多功能裝置上由第三方應(yīng)用對應(yīng)用數(shù)據(jù)中的變化進(jìn)行處理的方法的實(shí)施例的流程圖。該方法可以由硬件、軟件、固件或者它們的任意組合來執(zhí)行。在某些實(shí)施例中,在方框510,在多功能裝置上運(yùn)行第三方應(yīng)用。在方框520,第三方應(yīng)用改變與第三方應(yīng)用相關(guān)聯(lián)的應(yīng)用數(shù)據(jù)的記錄。在方框530,第三方應(yīng)用向運(yùn)行在多功能裝置上的搜索后臺程序發(fā)送經(jīng)改變的記錄的標(biāo)識符(ID)。圖6是在多功能裝置上由搜索后臺程序?qū)εc第三方應(yīng)用相關(guān)聯(lián)的應(yīng)用數(shù)據(jù)中的變化進(jìn)行處理的方法的實(shí)施例的流程圖。該方法可以由硬件、軟件、固件或者它們的任意組合來執(zhí)行。在方框610,運(yùn)行在多功能裝置上的搜索后臺程序接收與第三方應(yīng)用相關(guān)聯(lián)的應(yīng)用數(shù)據(jù)的經(jīng)改變的記錄的ID。在方框620,搜索后臺程序?qū)⒔邮盏降腎D放置到更新列表中。如在下文所述,搜索后臺程序可以在此后使用更新列表以確定它是否需要對記錄進(jìn)行標(biāo)引。圖7是在多功能裝置上由搜索后臺程序標(biāo)引應(yīng)用數(shù)據(jù)的方法的一個實(shí)施例的流程圖。該方法可以由硬件、軟件、固件或它們的任意組合來執(zhí)行。在方框710,搜索后臺程序檢查更新列表,以確定是否有任何記錄被改變。在某些實(shí)施例中,搜索后臺程序可以周期性地檢查更新列表。假如有記錄改變,那么搜索后臺程序?qū)⑿枰獦?biāo)引經(jīng)改變的記錄。在方框720,搜索后臺程序可以在單獨(dú)的過程中發(fā)起應(yīng)用標(biāo)引器以標(biāo)引經(jīng)改變的記錄。圖8是在多功能裝置由應(yīng)用標(biāo)引器標(biāo)引應(yīng)用數(shù)據(jù)的方法的一個實(shí)施例的流程圖。 該方法可以由硬件、軟件、固件或者它們的任意組合來執(zhí)行。在方框810,運(yùn)行在多功能裝置上的應(yīng)用標(biāo)引器在與其他第三方應(yīng)用、系統(tǒng)應(yīng)用和搜索包分開的單獨(dú)過程中對應(yīng)用搜索包的實(shí)例進(jìn)行實(shí)例化。應(yīng)用搜索包是安裝在多功能裝置上第三方應(yīng)用所專用的插件。在方框820,應(yīng)用標(biāo)引器傳送經(jīng)改變的記錄的ID給應(yīng)用搜索包,以從應(yīng)用搜索包請求經(jīng)改變的記錄。可替代地,應(yīng)用標(biāo)引器可以決定對所有與第三方應(yīng)用相關(guān)聯(lián)的記錄進(jìn)行標(biāo)引,并從而從應(yīng)用搜索包請求與第三方應(yīng)用相關(guān)聯(lián)的所有記錄。在方框830,應(yīng)用標(biāo)引器從應(yīng)用搜索包接收所請求的記錄。每個記錄可以包含與記錄相關(guān)聯(lián)的內(nèi)容的一組屬性,例如,內(nèi)容的標(biāo)題、內(nèi)容的子標(biāo)題和被第三方應(yīng)用使用的內(nèi)容的本地標(biāo)識符。在方框840,應(yīng)用標(biāo)引器對所接收的記錄進(jìn)行標(biāo)引,并在多功能裝置的搜索數(shù)據(jù)庫中存儲所標(biāo)引的記錄。圖9是由搜索后臺程序搜索所標(biāo)引的與第三方應(yīng)用相關(guān)聯(lián)的應(yīng)用數(shù)據(jù)的方法的一種實(shí)施例的流程圖。該方法可以由硬件、軟件、固件或它們的任意的組合來執(zhí)行。在方框910,搜索后臺程序接收用戶搜索查詢。例如,用戶可以提交用戶搜索查詢以尋找標(biāo)題具有特定文本字符串(例如“spring”)的記錄。在方框920,搜索后臺程序?qū)Π薪?jīng)標(biāo)引的記錄的搜索數(shù)據(jù)庫進(jìn)行搜索,以搜索與用戶搜索查詢相匹配的記錄。在方框930,搜索后臺程序在要呈現(xiàn)給用戶的搜索結(jié)果中返回與用戶搜索查詢相匹配的每個記錄的標(biāo)識符。在某些實(shí)施例中,標(biāo)識符包括標(biāo)題、子標(biāo)題、對于相關(guān)聯(lián)的第三方應(yīng)用的引用、本地標(biāo)識符(專用于第三方應(yīng)用)和種類。在某些實(shí)施例中,搜索框(用戶搜索查詢被輸入該框中)的主人在查詢時從搜索后臺程序接收搜索結(jié)果。用戶可以選擇來自搜索結(jié)果的記錄。主人可以是搜索應(yīng)用或第三方應(yīng)用。假如主人是執(zhí)行全局搜索的搜索應(yīng)用,則搜索應(yīng)用可以發(fā)起第三方應(yīng)用并且在來自搜索后臺程序的本地標(biāo)識符和種類中傳送。如果主人是第三方應(yīng)用,則它可以簡單地呈現(xiàn)與所選擇的記錄相關(guān)聯(lián)的內(nèi)容。注意,在主人是第三方應(yīng)用時,搜索結(jié)果中僅與第三方應(yīng)用有關(guān)的記錄可以被顯示。圖10顯示了多功能裝置上的搜索數(shù)據(jù)庫1000的一個實(shí)施例。搜索數(shù)據(jù)庫1000 包括第一數(shù)據(jù)庫1010和第二數(shù)據(jù)庫1020。在另一些實(shí)施例中,搜索數(shù)據(jù)庫1000可以包括多于兩個數(shù)據(jù)庫。在某些實(shí)施例中,第一數(shù)據(jù)庫存儲與某些第三方應(yīng)用相關(guān)聯(lián)的內(nèi)容(例如,文檔、 網(wǎng)頁、電子書、視頻等)和它們相應(yīng)的ID。第二數(shù)據(jù)庫1020可以存儲內(nèi)容的記錄。在當(dāng)前的例子中,每一個記錄包括內(nèi)容的ID、內(nèi)容的標(biāo)題、內(nèi)容的子標(biāo)題和內(nèi)容的本地ID。本地ID 被第三方應(yīng)用在訪問和處理內(nèi)容時使用。因此,本地ID也可以被稱為應(yīng)用ID。本地ID的一個實(shí)施例的詳情被顯示在圖11中。在搜索數(shù)據(jù)庫1000中的內(nèi)容通過對記錄進(jìn)行標(biāo)引用而被組織。運(yùn)行在多功能裝置上的搜索后臺程序可對記錄進(jìn)行標(biāo)引,并響應(yīng)于如上所述的用戶搜索查詢而對搜索數(shù)據(jù)庫1000進(jìn)行搜索。在某些實(shí)施例中,搜索數(shù)據(jù)庫1000在多功能裝置上存儲所有種類(例如,音樂、視頻、電子書、播客(podcast)等)的內(nèi)容。盡管在搜索數(shù)據(jù)庫1000中執(zhí)行的搜索可能很快, 但搜索數(shù)據(jù)庫1000可能變得太大而難以備份。這樣,如果需要,搜索數(shù)據(jù)庫1000就不得不從頭開始重建??商娲兀诙喙δ苎b置上對于每個種類的內(nèi)容有一個搜索數(shù)據(jù)庫。例如,第一搜索數(shù)據(jù)庫可以被建立用于音樂,第二搜索數(shù)據(jù)庫可以被建立用于播客,第三搜索數(shù)據(jù)庫可以被建立用于電子書,第四搜索數(shù)據(jù)庫用于第一個第三方應(yīng)用,第五搜索數(shù)據(jù)庫用于第二個第三方應(yīng)用等等。通過將不同種類的內(nèi)容分割為不同搜索數(shù)據(jù)庫,搜索數(shù)據(jù)庫可以取決于每個搜索數(shù)據(jù)庫中內(nèi)容的穩(wěn)定度而以不同的頻率被備份。內(nèi)容越穩(wěn)定,相應(yīng)的搜索數(shù)據(jù)庫需要備份的頻率越低。然而,由于有多個搜索數(shù)據(jù)庫,搜索數(shù)據(jù)庫中內(nèi)容的搜索會變慢。 為了減輕對性能的影響,可以在多功能裝置上實(shí)現(xiàn)高速緩存以存儲被頻繁訪問的內(nèi)容的記錄。這樣,搜索可以變得更快。圖11顯示了示例性文件ID的一個實(shí)施例。ID 1100包括示例性文檔的標(biāo)題1110、 示例性文檔的子標(biāo)題1120、與示例性文檔相關(guān)聯(lián)的第三方應(yīng)用1130、示例性文檔的種類標(biāo)識符1140和示例性文檔的應(yīng)用專用ID 1150。在某些實(shí)施例中,ID 1100僅對第三方應(yīng)用中的特定種類是唯一的。種類是內(nèi)容的類型,例如,幻燈片、視頻、文檔、播客等。因此,應(yīng)用專用ID 1150對于每一種類是唯一的, 并且每一個種類在第三方應(yīng)用中是唯一的。在某些實(shí)施例中,第三方應(yīng)用可以與多個種類的內(nèi)容相關(guān)聯(lián)。例如,第三方應(yīng)用可以與視頻和播客所嵌入到的文件相關(guān)聯(lián)。只要考慮到搜索后臺程序,第三方應(yīng)用可以將這樣的文件(例如,文檔)放在單個種類下。假如第三方應(yīng)用希望能夠以更精細(xì)的間距 (granularity)返回結(jié)果,例如恰好返回文件的播客部分,則它可以提供直接指向播客的 ID并在播客種類中對其進(jìn)行標(biāo)引。第三方應(yīng)用可以選擇提交這二者中的一者,或者全部兩者,以用來標(biāo)引。搜索后臺程序可以不對細(xì)分情況下的結(jié)果和一體的結(jié)果進(jìn)行區(qū)分。在某些實(shí)施例中,本公開的方法、系統(tǒng)和設(shè)備可以在各種裝置中執(zhí)行,這些裝置包括電子裝置、消費(fèi)者裝置、數(shù)據(jù)處理裝置、桌上型電腦、便攜式電腦、無線裝置、蜂窩裝置、平板裝置、手持裝置、多點(diǎn)觸摸裝置、多點(diǎn)觸摸數(shù)據(jù)處理裝置、這些裝置的任意組合,或其他類似裝置。圖12-14顯示了這樣裝置的一些例子。圖12顯示了根據(jù)本公開的一個實(shí)施例的裝置四50。裝置四50可以包括外殼四52、顯示/輸入裝置、揚(yáng)聲器四56、麥克風(fēng)四58和可選的天線四60 (其在外殼的外部可見或者隱藏在外殼內(nèi))。裝置四50還可以包括接近度傳感器四62和加速度計(jì)2964。 裝置四50可以是蜂窩電話,或集成了 PDA和蜂窩電話的裝置,或集成了媒體播放器和蜂窩電話的裝置,或既是娛樂系統(tǒng)(例如用于玩游戲)又是蜂窩電話的裝置,裝置四50也可以是這里描述的其他種類裝置。在一個具體實(shí)施例中,裝置四50可以包括蜂窩電話、媒體播放器和PDA,它們都被容納在外殼四52內(nèi)。裝置四50可以具有這樣的形狀系數(shù)其小到足以放在成人的手掌中,并且輕到足以使成人可用一只手拿起??梢岳斫?,術(shù)語“便攜式”意味著裝置能夠很容易地拿在成年使用者手(一只或者兩只)中,例如,膝上電腦、iPhone 和iPod 都是便攜式裝置。在本公開的某些實(shí)施例中,裝置四50可以被用來實(shí)現(xiàn)本發(fā)明中討論的至少某些方法。圖13顯示了無線裝置的實(shí)施例,該無線裝置包括進(jìn)行無線通信的能力。無線裝置 3100可以包括天線系統(tǒng)3101。無線裝置3100還可以包括數(shù)字和/或模擬的射頻(RF)收發(fā)機(jī)3102,該收發(fā)機(jī)耦接到天線系統(tǒng)3101,以通過天線系統(tǒng)3101發(fā)送和/或接收語音、數(shù)
字?jǐn)?shù)據(jù)和/或媒體信號。無線裝置3100還可以包括數(shù)字處理系統(tǒng)3103,以控制數(shù)字RF收發(fā)機(jī)并管理語音、 數(shù)字?jǐn)?shù)據(jù)和/或媒體信號。數(shù)字處理系統(tǒng)3103可以是通用處理裝置,例如微處理器或控制器。數(shù)字處理系統(tǒng)3103也可以是專用處理裝置,例如ASIC(專用集成電路)、FPGA(現(xiàn)場可編程門陣列)或DSP (數(shù)字信號處理器)。數(shù)字處理系統(tǒng)3103也可以包括本領(lǐng)域已知的其他裝置以與無線裝置3100的其他組件進(jìn)行接口。例如,數(shù)字處理系統(tǒng)3103可以包括模數(shù)和數(shù)模轉(zhuǎn)換器以與無線裝置3100的其他組件進(jìn)行接口。數(shù)字處理系統(tǒng)3103可以包括媒體處理系統(tǒng)3109,媒體處理系統(tǒng)也可以包括通用或?qū)S锰幚硌b置以管理媒體,例如音頻數(shù)據(jù)的文件。無線裝置3100也可以包括耦接到數(shù)字處理系統(tǒng)的存儲裝置3104,以存儲用于無線裝置3100的數(shù)據(jù)和/或操作程序。存儲裝置3104也可以是例如任何類型的固態(tài)或磁性存儲裝置。存儲裝置3104可以是機(jī)器可讀介質(zhì),或者也可以包括機(jī)器可讀介質(zhì)。無線裝置3100也可以包括耦接到數(shù)字處理系統(tǒng)3103的一個或多個輸入裝置 3105,以接受用戶輸入(例如,電話號碼、姓名、地址、媒體選擇等)。輸入裝置3105也可以是例如鍵盤、觸摸板、觸摸屏、與顯示裝置相結(jié)合的指點(diǎn)裝置、或類似輸入裝置中的一種或幾種。無線裝置3100還可以包括耦接到數(shù)字處理系統(tǒng)3103的至少一個顯示裝置3106, 以顯示信息(例如消息、電話呼叫信息、聯(lián)系人信息、圖片、電影和/或標(biāo)題),或通過輸入裝置3105而選擇的媒體的其他指示符。例如,顯示裝置3106可以是IXD顯示裝置。在一個實(shí)施例中,顯示裝置3106和輸入裝置3105可以集成在相同的裝置中(例如觸摸屏IXD,諸如與顯示裝置(例如LCD顯示裝置)集成的多點(diǎn)觸摸輸入板)。顯示裝置3106可以包括背光3106A以在某些情況下照亮顯示裝置3106。可以理解,無線裝置3100可以包括多個顯示
ο無線裝置3100還可以包括電池3107以向系統(tǒng)組件提供工作電力,這些組件包括數(shù)字RF收發(fā)機(jī)3102、數(shù)字處理系統(tǒng)3103、存儲裝置3104、輸入裝置3105、麥克風(fēng)3105A、音頻換能器3108、媒體處理系統(tǒng)3109、(一個或多個)傳感器3110和顯示裝置3106。例如, 電池3107可以是可再充電或不可再充電的鋰或鎳金屬氫化物電池。無線裝置3100也可以包括音頻換能器3108,其可以包括一個或多個揚(yáng)聲器和至少一個麥克風(fēng)3105A。在本發(fā)明的某些實(shí)施例中,無線裝置3100可以被用來實(shí)現(xiàn)在本公開中討論的至少部分方法。圖14顯示了根據(jù)本發(fā)明的一個實(shí)施例的裝置的另一個例子。該裝置3200可以包括諸如微處理器3202的處理器和存儲器3204,它們通過總線3206相互耦接。裝置3200可以可選地包括耦接到微處理器3202上的緩存3208。該裝置可以可選地包括存儲裝置3240, 該存儲裝置可以是例如任何類型的固態(tài)或磁性存儲裝置。存儲裝置3240可以是機(jī)器可讀介質(zhì),也可以包括機(jī)器可讀介質(zhì)。該裝置還可以可選地包括顯示控制器和顯示裝置3210,該顯示裝置通過總線 3206耦接到其他組件。一個或者多個輸入/輸出控制器3212也可以耦接到總線3206,以給輸入/輸出裝置3214提供接口并給用來感知用戶活動的一個或多個傳感器3216提供接口??偩€3206可以包括通過本領(lǐng)域公知的各種橋、控制器和/或適配器來相互連接的一個或多個總線。輸入/輸出裝置3214可以包括輔助鍵區(qū)(keypad)、鍵盤或諸如觸摸輸入板的光標(biāo)控制裝置。而且,輸入/輸出裝置3214也可以包括網(wǎng)絡(luò)接口,該接口可以用于有線網(wǎng)絡(luò)或者用于無線網(wǎng)絡(luò)(諸如RF收發(fā)機(jī))。傳感器3216可以是這里描述的傳感器的任意一種,例如包括接近度傳感器或環(huán)境光傳感器。在裝置3200的至少某些實(shí)現(xiàn)方式中,微處理器3202可以接收來自一個或多個傳感器3216的數(shù)據(jù),并可以用這里描述的方式執(zhí)行這些數(shù)據(jù)的分析。在本發(fā)明的某些實(shí)施例中,裝置3200可以被用來實(shí)現(xiàn)本發(fā)明中討論的至少某些方法。在上述說明書中,已經(jīng)參考其具體的示例性實(shí)施例描述了本發(fā)明。顯然,在不脫離所附權(quán)利要求的更廣精神和范圍的情況下,可以對其作出各種改變。因而,說明書和附圖應(yīng)當(dāng)認(rèn)為是示例性的,而不是限定性的。
權(quán)利要求
1.一種具有應(yīng)用程序接口(API)的數(shù)據(jù)處理系統(tǒng),所述應(yīng)用程序接口允許由API實(shí)現(xiàn)組件執(zhí)行操作,所述系統(tǒng)包括用于發(fā)起應(yīng)用標(biāo)引器的裝置,所述應(yīng)用標(biāo)引器在下述過程中運(yùn)行所述過程具有與可在處理器上執(zhí)行的第三方應(yīng)用的特權(quán)相同的特權(quán),其中,該過程與可在所述處理器上執(zhí)行的其他第三方應(yīng)用所涉及的其他過程是分開的;用于由所述應(yīng)用標(biāo)引器對專用于所述第三方應(yīng)用的應(yīng)用搜索包的實(shí)例進(jìn)行實(shí)例化的裝置,其中,所述應(yīng)用標(biāo)引器對來自所述應(yīng)用搜索包的實(shí)例的記錄進(jìn)行標(biāo)引,以把經(jīng)過標(biāo)引的記錄存儲在搜索數(shù)據(jù)庫中。
2.如權(quán)利要求1所述的系統(tǒng),其中,應(yīng)用搜索包指明對所述記錄進(jìn)行標(biāo)引所用的一組記錄屬性,所述其他過程包括所述其他第三方應(yīng)用的搜索過程和標(biāo)引過程,專用于所述第三方應(yīng)用的應(yīng)用搜索包的所述實(shí)例被限制在與所述第三方應(yīng)用相同的存儲器特權(quán)。
3.如權(quán)利要求1所述的系統(tǒng),還包括用于在更新列表中向所述應(yīng)用搜索包傳送與所述記錄相關(guān)聯(lián)的標(biāo)識以請求所述記錄的裝置,其中,所述標(biāo)識已在所述第三方應(yīng)用改變所述記錄時被增加到所述更新列表。
4.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括標(biāo)引與被安裝在下述裝置上的第三方應(yīng)用相關(guān)聯(lián)的記錄該裝置使用專用于所述第三方應(yīng)用的搜索插件,其中,用于標(biāo)引所述記錄的過程與安裝在所述裝置上的其他第三方應(yīng)用被隔離開;和響應(yīng)于用戶搜索查詢,使用被標(biāo)引的記錄來搜索內(nèi)容。
5.如權(quán)利要求4所述的方法,還包括經(jīng)由圖形用戶接口呈現(xiàn)與所述用戶搜索查詢相匹配的記錄;和允許用戶經(jīng)由所述圖形用戶接口從與所述用戶搜索查詢相匹配的記錄中選擇記錄,其中,所述搜索插件被限制為與所述第三方應(yīng)用相同的存儲器特權(quán)。
6.如權(quán)利要求5所述的方法,還包括響應(yīng)于所述用戶選擇所述記錄,發(fā)起所述第三方應(yīng)用以呈現(xiàn)所述記錄。
7.如權(quán)利要求5所述的方法,其中,呈現(xiàn)與所述用戶搜索查詢相匹配的記錄的步驟包括在所述圖形用戶接口上顯示所述記錄的一組屬性,其中,這組屬性由專用于所述第三方應(yīng)用的搜索插件指明。
8.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括在計(jì)算裝置上安裝第三方應(yīng)用;檢查所述第三方應(yīng)用的元數(shù)據(jù),以確定所述第三方應(yīng)用是否想要標(biāo)弓I與所述第三方應(yīng)用相關(guān)聯(lián)的內(nèi)容;以及如果所述第三方應(yīng)用想要標(biāo)引與所述第三方應(yīng)用相關(guān)聯(lián)的內(nèi)容,則登記所述第三方應(yīng)用。
9.如權(quán)利要求8所述方法,還包括響應(yīng)于用戶請求而發(fā)起所述第三方應(yīng)用,其中,所述第三方應(yīng)用改變記錄并把被改變的記錄的標(biāo)識發(fā)送到所述計(jì)算裝置上運(yùn)行的搜索后臺程序以存儲在更新列表中,所述更新列表可由所述搜索后臺程序使用以標(biāo)引經(jīng)改變的記錄。
10.如權(quán)利要求9所述的方法,還包括在單獨(dú)的過程中調(diào)用專用于所述第三方應(yīng)用的搜索插件,以向所述搜索后臺程序傳送所述經(jīng)改變的記錄的一組屬性來進(jìn)行標(biāo)引。
11.如權(quán)利要求10所述的方法,其中,在所述第三方應(yīng)用被終止后,所述搜索插件被調(diào)用。
12.如權(quán)利要求10所述的方法,還包括向所述單獨(dú)的過程提供與授予所述第三方應(yīng)用的特權(quán)相同的特權(quán)。
13.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,包括由可在數(shù)據(jù)處理裝置上執(zhí)行的第三方應(yīng)用指明下述記錄的一組屬性當(dāng)所述記錄成為由搜索后臺程序響應(yīng)于用戶搜索查詢而執(zhí)行的搜索的搜索結(jié)果的一部分時,所述記錄被呈現(xiàn);和在不發(fā)起所述第三方應(yīng)用的情況下,所述第三方應(yīng)用提供專用于所述第三方應(yīng)用的應(yīng)用搜索包,以向由所述搜索后臺程序?qū)嵗乃阉鳂?biāo)引器傳送記錄來進(jìn)行標(biāo)引。
14.如權(quán)利要求13所述的方法,還包括所述第三方應(yīng)用改變與所述第三方應(yīng)用相關(guān)聯(lián)的內(nèi)容的記錄;在可由所述搜索標(biāo)引器訪問的列表中存儲被改變的那些記錄的標(biāo)識符。
15.如權(quán)利要求14所述的方法,其中,所述搜索標(biāo)引器在所述第三方應(yīng)用已經(jīng)終止之后從所述列表中取回所述標(biāo)識符,并且使用所述標(biāo)識符以從所述應(yīng)用搜索包獲得經(jīng)改變的記錄。
16.一種設(shè)備,包括用于應(yīng)用標(biāo)引器的裝置,所述應(yīng)用標(biāo)引器可在數(shù)據(jù)處理裝置上執(zhí)行,并在下述過程中運(yùn)行所述過程具有與可在所述數(shù)據(jù)處理裝置上執(zhí)行的所述第三方應(yīng)用的特權(quán)相同的特權(quán),其中,所述過程與可在所述數(shù)據(jù)處理裝置上執(zhí)行的其他第三方應(yīng)用所涉及的其他過程是分開的;和用于搜索數(shù)據(jù)庫的裝置,所述搜索數(shù)據(jù)庫被存儲在與所述數(shù)據(jù)處理裝置耦接的數(shù)據(jù)存儲裝置上,其中,所述應(yīng)用標(biāo)引器能夠?qū)S糜谒龅谌綉?yīng)用的應(yīng)用搜索包的實(shí)例進(jìn)行實(shí)例化,并對來自所述應(yīng)用搜索包的實(shí)例的記錄進(jìn)行標(biāo)引以把被標(biāo)引的記錄存儲在所述搜索數(shù)據(jù)庫中。
17.如權(quán)利要求16所述的設(shè)備,其中,應(yīng)用搜索包指明用來對記錄進(jìn)行標(biāo)引的一組記錄屬性,并且,另一個應(yīng)用標(biāo)引器可在所述數(shù)據(jù)處理系統(tǒng)上在另一個過程中執(zhí)行,所述另一個過程具有與可在所述數(shù)據(jù)處理系統(tǒng)上執(zhí)行的另一個第三方應(yīng)用的特權(quán)相同的特權(quán)。
18.如權(quán)利要求17所述的設(shè)備,其中,所述應(yīng)用標(biāo)引器能夠在更新列表中向所述應(yīng)用搜索包傳送與所述記錄相關(guān)聯(lián)的標(biāo)識符以請求所述記錄,其中,所述標(biāo)識符已在所述第三方應(yīng)用改變所述記錄時被增加到所述列表中。
19.如權(quán)利要求16所述的設(shè)備,還包括顯示裝置,用于顯示圖形用戶接口以接收來自用戶的搜索查詢;和用于提供搜索后臺程序的裝置,所述搜索后臺程序可在所述數(shù)據(jù)處理裝置上執(zhí)行,以在不調(diào)用所述第三方應(yīng)用的情況下在所述搜索數(shù)據(jù)庫中對被標(biāo)引的記錄進(jìn)行搜索,來搜索與所述搜索查詢相匹配的那些記錄。
20.如權(quán)利要求19所述的設(shè)備,其中,所述圖形用戶接口呈現(xiàn)與所述搜索查詢相匹配的記錄,并允許用戶從與所述搜索查詢相匹配的記錄中選擇記錄,并且,響應(yīng)于所述用戶選擇記錄,所述數(shù)據(jù)處理裝置能夠發(fā)起所述第三方應(yīng)用以呈現(xiàn)由用戶所選擇的記錄。
全文摘要
本發(fā)明涉及向第三方應(yīng)用的搜索擴(kuò)展能力,其中的至少某些實(shí)施例包括用來將搜索能力擴(kuò)展到安裝在裝置上的第三方應(yīng)用的方法。在一個實(shí)施例中,在與安裝在使用專用于第三方應(yīng)用的搜索插件的裝置的其他第三方應(yīng)用分開的過程中,對與第三方應(yīng)用相關(guān)聯(lián)的記錄進(jìn)行標(biāo)引。而且,響應(yīng)于用戶搜索,能夠在不調(diào)用第三方應(yīng)用的情況下,對被標(biāo)引的記錄進(jìn)行搜索。
文檔編號G06F9/44GK102214093SQ201010553619
公開日2011年10月12日 申請日期2010年9月25日 優(yōu)先權(quán)日2010年4月7日
發(fā)明者大衛(wèi)·拉哈特賈, 戈登·J·弗里德曼, 本杰明·S·菲利普斯, 愛德華·T·施密特 申請人:蘋果公司