应用程序内历史搜索的制作方法

文档序号:13741937阅读:273来源:国知局
应用程序内历史搜索的制作方法

相关专利申请

申请人要求2015年6月5日提交的在先共同未决的临时申请序列号62/171,982的优先权权益,其全部内容以引用方式并入本文。

本发明整体涉及搜索技术,更具体地讲,涉及在设备上和多个设备之间搜索应用程序历史,以及生成用于在搜索索引中使用的应用程序视图。



背景技术:

设备上的用户常常会执行查询搜索以在web上或从一些其他数据源查找信息,诸如本地存储在该设备上的对象。查询搜索一开始从客户端接收查询字符串,该查询字符串被发送到搜索服务。搜索服务接收该查询字符串,并搜索一个或多个搜索索引来查找与该查询字符串匹配的结果。索引可以引用网页或网络上可用的其他对象,或者可以包括关于本地位于该设备上的对象(例如,文件、媒体、联系人和/或本地存储在该设备上的其他类型的对象)的信息。另外,用户执行的许多查询会获得web历史结果。例如,web浏览器中的查询输入在60%的时间可以获得来自web历史的结果。

因此,能够搜索web浏览器历史可以是有用的。此外,搜索设备上的其他应用程序的历史将是有用的。这是因为用户将有使用该设备的例程。对于便携式设备,该例程可以包括使用应用程序,特别是非web浏览器应用程序。例如,智能电话用户平均花费86%的时间来使用非web浏览器应用程序。但是,能够搜索非web浏览器应用程序的历史可能较困难,因为应用程序的使用历史的数据难以访问(如果真的可以的话)并且可能采用专有格式。因此,难以搜索应用程序历史。



技术实现要素:

描述了使用多个应用程序状态执行搜索的方法和设备的装置。在一个示例性实施方案中,设备从在设备运行上的多个应用程序接收多个应用程序状态。设备还创建多个应用程序状态的索引。另外,设备接收查询以搜索存储在设备上的数据。此外,设备使用索引和查询来搜索多个应用程序状态。设备另外确定针对多个应用程序状态中的一个应用程序状态的查询的匹配,并返回针对匹配的应用程序状态的匹配。

在另一个实施方案中,设备使用设备上的多个应用程序状态来执行查询。在该实施方案中,设备执行使用存储在设备上的索引来执行查询。设备还接收与查询匹配的多个结果。另外,设备确定对应于应用程序状态的多个结果的子组,该应用程序状态对应于安装在设备上的原生应用程序。此外,设备针对多个结果的子组中的每个结果呈现该结果以及对应于该结果的原生应用程序的表示。

在又一个实施方案中,设备选择用于在多设备搜索中使用的应用程序状态。在该实施方案中,设备在设备上检测到该应用程序状态已经被选择为该设备上的设备级搜索的查询结果。设备进一步将该应用程序状态发送到服务器,在那里该应用程序状态将与来自其他设备的其他应用程序状态一起被编索引。

在另一个实施方案中,设备使用从第二设备接收的应用程序状态来执行对第一设备的搜索。在该实施方案中,设备从在多个设备上运行的多个应用程序接收多个应用程序状态。设备还创建多个应用程序状态的索引。设备另外接收查询以搜索存储在设备上的数据。另外,设备使用索引和搜索查询来搜索多个应用程序状态,并返回针对匹配的应用程序状态的匹配。

在又一个实施方案中,设备执行搜索。在该实施方案中,设备向服务器发送查询,并接收与该查询匹配的多个结果。设备进一步确定多个结果的子组,该子组包括在另一个设备上生成的对应于安装在设备上的原生应用程序的应用程序状态。另外,设备针对多个结果的子组中的每个结果呈现链接以及原生应用程序的表示。

在另一个实施方案中,设备将应用程序状态编入搜索查询索引中。在该实施方案中,设备从耦接到服务器的另一设备接收应用程序的应用程序状态。设备还生成对应于应用程序状态的应用程序视图,其中该视图是对应于应用程序状态的应用程序的用户界面的表示。另外,设备将该视图编入搜索查询索引中。

在又一个实施方案中,设备检索具有与查询结果相关联的视图的应用程序状态。在该实施方案中,设备向服务器发送查询。设备进一步从服务器接收查询结果,该结果包括对应于该结果的应用程序的应用程序状态的视图,并且视图为对应于应用程序状态的应用程序的用户界面的表示。设备另外呈现结果以及视图的指示。

还描述了其他方法和装置。

附图说明

本发明以举例的方式进行说明并且不仅限于各个附图的图形,在附图中类似的标号指示类似的元件。

图1是对用于在本地设备搜索索引中使用的应用程序状态编索引的系统的一个实施方案的框图。

图2是使用设备上应用程序状态搜索索引来搜索应用程序状态的系统的一个实施方案的框图。

图3是在其他查询结果中显示应用程序状态查询结果的用户界面的实施方案的框图。

图4a是用于将从设备上的多个不同应用程序接收的应用程序状态编索引的过程的一个实施方案的流程图。

图4b是使用应用程序状态索引确定查询的查询结果的过程的一个实施方案的流程图。

图5是接收和呈现作为查询结果的一部分的应用程序状态的过程的一个实施方案的流程图。

图6是对用于在远程搜索索引中使用的应用程序状态编索引的系统的一个实施方案的框图。

图7是使用远程应用程序状态搜索索引来搜索应用程序状态的系统的一个实施方案的框图。

图8是将应用程序状态添加到应用程序状态索引的过程的一个实施方案的流程图。

图9是将应用程序状态导出到应用程序状态索引服务的过程的一个实施方案的流程图。

图10是使用应用程序状态索引执行查询搜索的过程的一个实施方案的流程图。

图11是接收和呈现作为查询结果的一部分的应用程序状态的过程的一个实施方案的流程图。

图12是对用于在远程搜索索引中使用的应用程序状态视图编索引的系统的一个实施方案的框图。

图13是应用程序视图的一个实施方案的框图。

图14是使用应用程序状态来生成应用程序状态视图的过程的一个实施方案的流程图。

图15是接收和呈现应用程序状态的过程的一个实施方案的流程图,该应用程序状态包括应用程序状态视图作为查询结果的一部分。

图16是将从设备上的多个不同应用程序接收的应用程序状态编索引的应用程序状态索引模块的一个实施方案的框图。

图17是使用应用程序状态索引确定查询的查询结果的结果模块的一个实施方案的框图。

图18是接收和呈现作为查询结果的一部分的应用程序状态的呈现模块的一个实施方案的框图。

图19是将应用程序状态添加到应用程序状态索引的应用程序状态模块的一个实施方案的框图。

图20是将应用程序状态导出到应用程序状态索引服务的应用程序状态导出模块的一个实施方案的框图。

图21是使用应用程序状态索引执行查询搜索的查询模块的一个实施方案的框图。

图22是接收和呈现作为查询结果的一部分的应用程序状态的另一个呈现模块的一个实施方案的框图。

图23是使用应用程序状态来生成应用程序状态视图的应用程序状态视图模块的一个实施方案的框图。

图24是应用程序状态视图呈现模块的一个实施方案的框图,该模块接收和呈现包括应用程序状态视图作为查询结果的一部分的应用程序状态。

图25示出了可与本文所述的实施方案一起使用的典型计算机系统的一个示例。

图26示出了数据处理系统的一个示例,该数据处理系统可与本发明的一个实施方案一起使用。

具体实施方式

描述了使用多个应用程序状态执行搜索的方法和设备的装置。在以下说明中示出了许多具体细节,以提供对本发明的实施方案的彻底解释。然而,对于本领域的技术人员显而易见的是,本发明的实施方案可在不具有这些具体细节的情况下被实施。在其他情况下,尚未详细示出熟知的部件、结构和技术,以免模糊对此说明的理解。

在本说明书中提到的“一个实施方案”是指结合实施方案所述的特定特征、结构或特性可被包括在本发明的至少一个实施方案中。在本说明书中的不同位置出现的短语“在一个实施方案中”不一定都是指同一个实施方案。

在以下描述和权利要求中,可以使用术语“耦接”和“连接”及其派生词。应当理解,这些术语并非意在彼此同义。“耦接”被用于表示可能或可能不彼此直接物理或电接触的两个或更多个元件彼此合作或交互。“连接”被用于表示彼此耦接的两个或更多元件之间通信的建立。

下图中示出的过程通过处理逻辑部件来执行,该处理逻辑部件包括硬件(例如,电路、专用逻辑部件等)、软件(诸如在通用计算机系统或专用机上运行的软件)、或两者的组合。虽然下文按照某些顺序操作来描述该过程,但应当理解,所述的某些操作可以不同的顺序来执行。此外,某些操作也可并行执行而并非按顺序执行。

术语“服务器”、“客户端”和“设备”旨在通常指数据处理系统,而不是具体地指服务器、客户端和/或设备的特定形状因数。

描述了使用多个应用程序状态执行搜索的方法和设备的装置。如上所述,能够搜索web浏览器历史是有用的,因为用户具有使用web浏览器的数字例程。这个数字例程可以进一步包括重复访问相同的应用程序,以及使用这些应用程序用于相同类型的操作。如上所述,智能电话用户平均花费86%的时间来使用非web浏览器应用程序。但是,能够搜索非web浏览器应用程序的历史可能较困难,因为应用程序的使用历史的数据难以访问(如果真的可以的话)并且采用的是专有格式。因此,难以搜索应用程序历史。

在一个实施方案中,设备生成并存储执行中的应用程序的应用程序状态。该设备进一步将这些应用程序状态编索引,使得该设备上运行的本地搜索服务可以搜索已编索引的应用程序状态来用作查询的结果。在该实施方案中,应用程序状态是应用程序的时间快照。应用程序状态类似于存储在web浏览器历史中的web浏览器状态。在一个实施方案中,应用程序状态是针对非web浏览器应用程序的。在一个实施方案中,应用程序的应用程序状态可以包括标题、视图、在该视图中显示的日期、相关联的元数据和/或该状态的其他状态信息。例如并且在一个实施方案中,应用程序可以是显示某个地理区域的不同商业和服务的评论的点评类应用程序。在该示例中,每个应用程序状态可能是对某个商业或服务的一组评论和相关信息(例如,名称、地址、联系信息、营业时间、该商业或服务的描述、该服务或商业的访问者或用户提交的一组评论、和/或与该商业或服务相关的任何其他类型的信息)。每个应用程序状态可以显示在一个用户界面页面上,也可以显示在多个用户页面上,其中每个页面的内容都经过组织以用于显示。在一个实施方案中,每个执行中的应用程序导出一个或多个应用程序状态,其中该设备将这些应用程序状态编入应用程序状态索引中。

通过将应用程序状态编索引,用户可以搜索应用程序的历史。这允许用户搜索和查找先前的应用程序状态。利用找到的应用程序状态,用户可以使用此应用程序状态启动相应的应用程序,这使该应用程序进入当该应用程序导出该应用程序状态时该应用程序执行的点。用户可以经由用于多个不同应用程序的通用机制,使用已编索引的应用程序状态来使应用程序返回到先前使用状态。例如并且在一个实施方案中,应用程序状态可以是运输系统的特定路线的运输应用程序的页面。在该示例中,用户可以在该运输应用程序中导航到特定路线,诸如本地公交线路7。通过导航到该特定路线,该运输应用程序将该本地公交线路页面的应用程序状态导出到应用程序状态索引。在该应用程序状态被编索引的情况下,用户可以经由查询来检索该应用程序状态。例如并且在一个实施方案中,用户可以在查询中输入“公交线路7”,并且本地公交线路7的应用程序状态将作为查询结果出现。在选择该应用程序状态之后,该运输应用程序将被加载本地公交线路7的应用程序状态,并且该运输应用程序中的本地公交线路7的页面将被显示给用户。因此,在该示例中,运输应用程序进入到与先前执行的状态相同的状态。

在另一个实施方案中,该设备可以将应用程序状态导出到远程应用程序状态索引器,该远程应用程序状态索引器可以用来支持来自没有生成这些应用程序状态的设备的查询。在该实施方案中,该设备将用户已占用的应用程序状态导出,其中所占用的应用程序状态是响应于用户在设备上的查询而作为查询结果返回的应用程序状态,并且该用户已经选择了该应用程序状态另外,该设备通过在导出应用程序状态之前移除私人信息来清理应用程序状态。如果远程应用程序状态索引器已接收到该应用程序状态必需的次数,则远程应用程序状态索引器接收该应用程序状态并将该应用程序状态编索引。在该实施方案中,通过在必需的次数之后将该应用程序状态编索引,该应用程序状态已经被众包,这样在本地搜索中有许多不同的用户和/或设备已经占用了该应用程序状态。在一个实施方案中,需要对应用程序状态的一定数量的占用增大了该应用程序状态对其他用户有用的可能性。编索引后,远程搜索服务可以搜索远程应用程序状态索引,以确定是否存在与查询匹配的应用程序状态。对于每个匹配,远程搜索服务将匹配的应用程序状态返回给客户端。在该客户端上,用户可以选择该应用程序状态,在这种情况下启动相应的应用程序,并使该应用程序进入当该应用程序导出该应用程序状态时该应用程序执行的点。

在又一个实施方案中,设备为不同的应用程序状态生成应用程序状态视图。在该实施方案中,应用程序状态视图是对应于该应用程序状态的应用程序的用户界面的表示。例如并且在一个实施方案中,具有对商业或服务的数千或数百万条评论的内容的访问权限的点评类应用程序可以具有针对这数千或数百万条评论中的每一条的视图。这些视图可以用来预览应用程序状态以及大致该应用程序。在一个实施方案中,可以使用这些应用程序状态视图来预览在针对查询的一组结果中返回的应用程序状态,或者可以大致用于预览应用程序。在一个实施方案中,收集一个应用程序的多个应用程序状态视图可以用于在应用程序商店中预览该应用程序。例如并且在一个实施方案中,点评类应用程序可以具有可用于该应用程序的数十个应用程序状态视图。

图1是对用于在本地设备搜索索引中使用的应用程序状态编索引的系统的一个实施方案的框图。在图1中,设备100包括耦接到应用程序状态索引器104的多个应用程序102。在一个实施方案中,设备100是可以与另一个设备(例如,个人计算机、膝上型计算机、服务器、移动设备(例如,电话、智能电话、智能手表、个人游戏设备等)、另一个网络元件等)传送网络数据的任何类型的设备。在一个实施方案中,设备100可以是虚拟机或者可以是托管一个或多个虚拟机的设备。在一个实施方案中,设备100另外包括应用程序状态搜索索引108。在一个实施方案中,每个应用程序102是在该应用程序运行时经历一系列状态的执行中的程序。例如并且在一个实施方案中,应用程序102可以是文字处理应用程序、电子表格、联系人、邮件、电话、web浏览器、媒体播放器、点评应用程序、分类广告应用程序、社交网络、生产力、公用事业、游戏、不动产、照片、视频、电子商务、店面、优惠券、操作系统和/或可以在该设备上运行的任何其他类型的应用程序。

如上所述,每个应用程序102在该应用程序执行时经历一系列状态。在一个实施方案中,这些应用程序状态中的一个是该应用程序的时间快照。在一个实施方案中,应用程序102的应用程序状态可以包括标题、用户界面状态、显示在该用户界面中的数据、相关联的元数据和/或该状态的其他状态信息。在又一个实施方案中,应用程序状态包括描述该状态应如何在搜索结果中呈现的信息。例如并且在一个实施方案中,应用程序102可以是显示某个地理区域的不同商业和服务的评论的点评类应用程序。在该示例中,每个应用程序状态可能是对某个商业或服务的一组评论和相关信息(例如,名称、地址、联系信息、营业时间、该商业或服务的描述、该服务或商业的访问者或用户提交的一组评论、和/或与该商业或服务相关的任何其他类型的信息)。在一个实施方案中,应用程序状态标题是针对该应用程序状态给出的标题,诸如在点评类应用程序的情况下,是商业或服务的名称。应用程序状态视图是可以对应于该应用程序状态的应用程序102的用户界面的表示。在该实施方案中,该用户界面状态可以包括用户界面的表示、用户界面滚动到哪个位置或用户界面的哪个部件被激活,和/或该应用程序可以处于什么模式(例如,应用程序102可以具有用于向用户呈现信息的不同模式)。在又一个实施方案中,应用程序可以足够小以包括标题加上统一资源定位符或应用程序的与该状态兼容的应用程序标识符和版本号。

在一个实施方案中,每个应用程序状态包括标题、可搜索数据和/或元数据以及特定于应用程序的不透明数据。在该实施方案中,可搜索数据和/或元数据是由应用程序102指定为可由搜索索引服务和/或查询搜索服务访问的数据,其中该可搜索数据和/或元数据可用于将应用程序状态变索引,也可以用来将应用程序状态作为查询结果返回。例如并且在一个实施方案中,可搜索数据和/或元数据可以是应用程序状态中的内容(例如,应用程序状态标题、在用户界面状态中显示的内容、媒体数据、位置数据、时间数据或者可用于搜索索引的其他类型的数据或元数据)。在一个实施方案中,特定于应用程序的不透明数据是用于将应用程序返回到其先前状态的特定于应用程序的数据,并且可以是或可以不是可搜索数据。在该实施方案中,由相应应用程序102加载应用程序状态使该应用程序返回到该应用程序状态。例如并且在一个实施方案中,特定于应用程序的不透明数据可以包括用户界面状态、用户界面模式和/或对资源的引用。用户界面模式可以是用户界面当前正在使用的模式的类型。例如并且在一个实施方案中,文字处理程序可以是草稿布局视图或打印布局视图;并且图像编辑程序可以处于资料库模式、图像编辑模式或打印模式。在一个实施方案中,所引用的资源可以是正在被查看或编辑的文件,可以是在该设备或另一个设备(诸如网络上的服务器)上的资源的统一资源定位符。在一个实施方案中,作为应用程序状态的一部分的数据可以在具有(键、值)对的词典中。

在一个实施方案中,一个或多个应用程序102各自将一个或多个应用程序状态导出到应用程序状态索引器104。在该实施方案中,应用程序102可以各自按照固定或可变的时间表导出应用程序状态。例如并且在一个实施方案中,应用程序102可以按照固定的时间导出应用程序状态,为每个新的用户界面状态导出应用程序状态,在与用户的一个或多个交互之后或者按照某种其他度量导出应用程序状态。又如并且在另一个实施方案中,点评应用程序可以导航到新的评论或评论搜索。在该示例中,通过导航到新的评论或评论搜索,生成新的视图,并且创建新的应用程序状态并将其导出到应用程序状态索引器104。应用程序状态索引器接收应用程序状态并将应用程序状态添加到应用程序索引108。通过向该索引添加应用程序状态,新的应用程序状态可用于本地搜索服务,以匹配由本地搜索服务接收到的查询。在另一个实施方案中,应用程序状态可以被导出到远程搜索应用程序状态索引108,其在下面的图6至图11中被描述。

图2是使用设备上应用程序状态搜索索引来搜索应用程序状态的系统的一个实施方案的框图。在图2中,设备200包括耦接到本地搜索服务208的应用程序204。本地搜索服务208进一步耦接到应用程序状态搜索索引212和本地搜索索引214。在一个实施方案中,设备200是如图1所示的设备。在一个实施方案中,应用程序204包括搜索输入栏206。在该实施方案中,搜索输入栏用于输入可由本地搜索服务使用的查询以使用该查询执行搜索。如果查询被输入到搜索输入206,则应用程序204将该查询发送到本地搜索服务208。本地搜索服务208接收查询并通过搜索本地搜索索引214和/或应用程序状态搜索索引212确定针对该查询的一组结果,来产生经排序的结果。另外,本地搜索服务208对结果进行排序并将它们发送回应用程序204。

在该实施方案中,搜索可以包括对存储在设备200上的对象的搜索。例如并且在一个实施方案中,对象可以是存储在本地搜索索引中的文档、图片、音乐、应用程序、电子邮件、日历条目和/或其他对象。在一个实施方案中,搜索是基于由搜索模块维护的索引。在该实施方案中,该索引是存储在设备的对象中的元数据的索引。在一个另选实施方案中,本地搜索服务208还可以将查询应用于应用程序状态搜索索引212。在该实施方案中,本地搜索服务208将查询应用于应用程序状态搜索索引212以确定是否存在与查询匹配的任何应用程序状态。例如并且在一个实施方案中,本地搜索服务208将查询应用于存储在索引212中的每个应用程序状态的可搜索数据。在该示例中,如果索引212中存在针对一个或多个应用程序状态的查询的匹配,则本地搜索服务208将一组结果返回到包括这些一个或多个应用程序状态的应用程序204。应用程序204显示经排序的结果。如果显示的排序结果中的一个是应用程序状态,则该应用程序可以显示该应用程序的图标、应用程序状态标题和应用程序状态摘要。在一个实施方案中,在选择所显示的应用程序状态之后,对应于该应用程序状态的应用程序被加载该应用程序状态。在该实施方案中,通过为应用程序加载该应用程序状态,应用程序被加载到对应于该应用程序状态的执行状态。例如,在一个实施方案中,如果应用程序状态是优惠券应用程序的特定优惠券(例如,“周末租车5折!”),则该优惠券应用程序被加载该应用程序状态,并且该应用程序状态显示特定优惠券,犹如用户已经导航到该优惠券一样。

图3是在其他查询结果中显示应用程序状态查询结果的用户界面的实施方案的框图。在图3中,示出了用于在设备上显示应用程序状态的三个不同的可能的用户界面300a至300c。在一个实施方案中,用户界面300a包括搜索输入302、应用程序状态显示314a、其他动作310a和屏幕键盘312a。在一个实施方案中,搜索输入302a用于由设备的用户输入查询。在该实施方案中,可以输入部分或整个查询并将其发送到本地搜索服务,以便确定一组或多组查询结果。在一个实施方案中,查询的结果是在输入搜索的一个或多个字符时返回的。另外,应用程序状态显示314a包括应用程序图标304a、应用程序状态标题306a和应用程序状态摘要308a。在一个实施方案中,应用程序图标304a是表示对应于应用程序状态的应用程序的图标。在该实施方案中,应用程序图标304a可以是从查询返回的或者基于存储在应用程序状态中的信息检索到的应用程序状态的一部分。在一个实施方案中,应用程序状态标题306a是存储在应用程序状态中的应用程序状态的标题。此外,应用程序状态摘要308a是应用程序状态的摘要。例如并且在一个实施方案中,应用程序状态摘要308a包括应用程序状态的描述,诸如应用程序状态的内容的描述。在该示例中,应用程序状态摘要308a可以向用户指示与该应用程序状态相关联的内容。

在一个实施方案中,除了显示包括应用程序状态314a的查询结果之外,用户界面300a还可以包括其他动作310a。例如,在一个实施方案中,其他动作310a可以包括用于利用查询来搜索网络或者利用查询来搜索在线百科全书的链接。用户界面300a还可以包括由用户用来输入搜索查询的屏幕键盘312a。另选地,可以经由其他装置(例如,经由耦接到设备的麦克风、通过耦接到该设备的另一个设备,诸如耦接到便携式设备的智能手表)来输入查询。在一个实施方案中,图标304a可以是特定于由应用程序提供的应用程序状态的图像缩略图。另外,图标304a也可以是视频或视频预览。在又一个实施方案中,应用程序状态摘要可以包括“动作”按钮,诸如电话呼叫图标、播放、方向、购买。

在一个实施方案中,有许多不同类型的可以作为查询结果显示的应用程序状态。例如,在一个实施方案中,应用程序状态可以是运输系统的特定路线的运输应用程序的视图。在该示例中,用户可以在该运输应用程序中导航到特定路线,诸如本地公交线路7。通过导航到该特定路线,该运输应用程序将把该本地公交线路视图的应用程序状态导出到应用程序状态索引。在该应用程序状态被编索引的情况下,用户可以经由查询来检索该应用程序状态。例如并且在一个实施方案中,用户可以在查询中输入“公交线路7”,并且本地公交线路7的应用程序状态将作为查询结果出现。在选择该应用程序状态之后,该运输应用程序将被加载本地公交线路7的应用程序状态,并且该运输应用程序中的本地公交线路7的用户界面将被显示给用户。因此,在该示例中,运输应用程序进入到与先前查看的状态相同的状态。

又如并且在另一个实施方案中,用户可以使用订餐应用程序,并且用户只是想再次订购其先前的订单中的一个。在该示例中,用户可以使用该地方餐饮店专用的应用程序从该地方餐饮店订购越南河粉汤。在这个订单中,该地方餐饮店应用程序将导出对应于越南河粉汤的订单的应用程序状态。该应用程序状态将被编入索引,并可由本地搜索服务访问。用户稍后可以输入查询“越南河粉汤”、“越南菜餐厅”或该地方餐饮店的名称,并且对应于该订单的应用程序状态可以是结果中的一个。该应用程序状态也可以是该结果的首选项。选择该应用程序状态后,该地方餐饮店应用程序将被启动并且显示用户可以完成河粉汤的订单的先前河粉汤订单。

在又一个示例和实施方案中,用户可以维护图片板来规划其下一次野外旅行。在该示例中,用户使用图片板应用程序来链接关于该下一次旅行的图片和评论。用户将使用图片板应用程序回到这个特定的图像板,以便添加来自设备剪贴板的链接。图片板应用程序将为将由本地搜索服务提供的处于这一应用程序状态下的野外旅行导出图像板的这一应用程序状态。通过搜索该应用程序状态,诸如旅行地点的名称,用户可以经由查询而不是启动图片板应用程序并导航到该特定图片板视图,快速地转到图片板应用程序内的该野外旅行图片板。

在一个实施方案中,可以使用保存应用程序状态来快速访问可能难以导航到的实用工具的特定视图。例如并且在一个实施方案中,设备设置应用程序可以具有许多级别深度的多个选项。在该示例中,用户可以转到设置应用程序中的电池用量页面,以查看哪个应用程序正在消耗大部分电池电量。电池用量页面可以在四层或更多层深度,并且难以访问。通过导出应用程序状态来实现设置应用程序的更好的用量页面,用户可以能够输入查询“电池用量”、“电池电”、“电池”或字词“电池用量”的一些其他前缀来使设置应用程序的电池用量页面的应用程序状态显示为查询的结果。这将提供对设置应用程序中可能难以导航到页面的快速访问。

在另一个实施方案中,针对查询的应用程序状态结果可以与来自其他域的其他查询结果一起显示,诸如上面图2中所描述的本地搜索索引。在图3中,用户界面300b显示应用程序状态314b以及其他查询结果310b。在该用户界面300b中,搜索输入302b与应用程序状态314b、其他查询结果310b以及屏幕键盘312b一起显示。在一个实施方案中,搜索输入302b和屏幕键盘312c与以上针对用户界面300a所描述的相同。另外,应用程序状态314b包括应用程序图标304b、应用程序状态标题306b和应用程序状态摘要308b,这三者与以上针对用户界面300a所描述的应用程序图标、应用程序状态标题和应用程序状态摘要相同。此外,用户界面300b包括其他查询结果310b,其可以是来自其他域或应用程序状态的其他查询结果。例如并且在一个实施方案中,针对查询“电池”的其他查询结果310b可以包括与字词“电池”匹配的本地搜索索引中的对象索引、与字词“电池”匹配的其他应用程序状态、或与匹配字词“电池”的本地或远程搜索索引(例如,web搜索索引)匹配的其他查询结果。

如上所述,还可以为在设备上运行的实用工具应用程序保存应用程序状态。例如并且在一个实施方案中,设备的用于配置该设备的这些设置应用程序也可以导出应用程序状态。用户界面300c是包括用于设置应用程序的应用程序状态的查询结果的一个示例。在图3中,用户界面300c、搜索输入302c与应用程序状态314b、其他动作310c以及屏幕键盘312c一起显示。在一个实施方案中,搜索输入302c和屏幕键盘312c与以上针对用户界面300a所描述的相同。另外,应用程序状态314c包括应用程序图标304b、用于设置应用程序的部件(例如,电池用量)的应用程序状态标题306c,以及用于设置应用程序的部件(电池使用)的应用程序状态摘要308c。

如上所述,为了使应用程序状态可由本地搜索服务访问,应用程序状态被添加到可由本地搜索服务访问的索引。图4a是用于将从设备上的多个不同应用程序接收的应用程序状态编索引的过程400的一个实施方案的流程图。在一个实施方案中,过程400由应用程序状态索引器执行,诸如上面在图1中描述的应用程序状态索引器104。在图4a中,过程400开始于在框402处从设备上的多个应用程序接收多个应用程序状态。例如并且在一个实施方案中,过程400可以从多种应用程序接收应用程序状态,这些应用程序诸如文字处理应用程序、电子表格、联系人、邮件、电话、web浏览器、媒体播放器、点评应用程序、分类广告应用程序、社交网络、生产力、公用事业、游戏、不动产、照片、视频、电子商务、店面、优惠券、操作系统和/或可以在该设备上运行的任何其他类型的应用程序。在一个实施方案中,应用程序可以同时、串行地和/或组合地将应用程序状态发送到处理器400。在框404处,对于过程400接收的每个应用程序状态,过程400将这些应用程序状态添加到应用程序状态索引。在一个实施方案中,过程400通过将应用程序状态标识符、可索引文本、应用程序标识符和/或插入时间添加到搜索索引数据结构(例如,倒排索引和完成尝试)来将应用程序状态添加到应用程序状态索引。

通过将多个应用程序状态添加到应用程序状态索引,这些索引应用程序状态可供由本地搜索服务执行的查询搜索使用。图4b是使用应用程序状态索引确定查询的查询结果的过程450的一个实施方案的流程图。在一个实施方案中,过程450由本地搜索服务执行以使用应用程序状态索引(诸如上面图2中所述的本地搜索服务208)来确定查询的查询结果。在图4b中,过程450开始于在框452处接收请求。在一个实施方案中,查询是由用户在应用程序中输入并被发送到过程450的搜索字符串。在一个实施方案中,输入可以通过文本、说出词语、自动生成的和/或用以输入查询前缀的某种其他方式来输入。例如并且在一个实施方案中,用户可以在web浏览器或文件浏览器中输入查询。在框454处,过程450使用本地应用程序状态索引确定针对该查询的一组查询结果。在一个实施方案中,过程450使用查询中的信息来确定本地应用程序状态索引中的匹配的应用程序状态。在框456处,过程450对这组查询结果进行排序。在一个实施方案中,排名是基于匹配该查询的每个应用程序状态的分数。过程450在框458处返回经排序的这组查询结果。在一个实施方案中,过程450将经排序的这组查询结果发送回给将该查询发送到过程450的应用程序。

图5是接收和呈现作为查询结果的一部分的应用程序状态的过程500的一个实施方案的流程图。在一个实施方案中,过程500由应用程序执行以接收和呈现作为查询结果的一部分的应用程序状态,诸如以上在图2中描述的应用程序204。在图5中,过程500开始于在框502处将查询发送到本地搜索服务。在一个实施方案中,查询可以是由用户在应用程序中输入并被发送到本地搜索服务的搜索字符串。在该实施方案中,输入可以通过文本、说出词语、自动生成的、从耦接的设备(例如,耦接到便携式设备的智能手表)接收的、和/或用以输入搜索字符串的某种其他方式来输入。在另一个实施方案中,查询可以由搜索系统建议,并且用户可以从多个选项中选出一个查询。另选地,查询可以从上下文中提取。例如并且在一个实施方案中,用户正在阅读文本消息并进行搜索,该查询由数据检测系统提取并自动发出,或者被建议给用户。此外,可以通过跟踪来自另一个应用程序的链接来发出查询。在框504处,过程500接收一组结果,其中这些结果包括应用程序状态。在一个实施方案中,这组结果的排序是以排名最高的结果作为首选项。在框506处,过程500在用户界面中呈现应用程序状态。在本实施方案中,应用程序状态包括应用程序状态标题、摘要以及对应于针对该应用程序状态的应用程序的图标的指示。在一个实施方案中,过程500显示如上面图3所述的应用程序状态。响应于应用程序被选择,过程500使用选择的应用程序状态启动相应的应用程序。例如并且在一个实施方案中,如果应用程序状态是点评类应用程序中对地方餐饮店的评论,则过程500启动具有该地方餐饮店应用程序状态的点评类应用程序。在该示例中,该点评类应用程序将被启动,使得呈现给用户的视图是该点评类应用程序中的地方餐饮店中的一个。在一个实施方案中,如果该应用程序未安装在设备上,则过程500可以从远程源诸如应用程序商店、网页或其他远程服务器下载该应用程序。在该实施方案中,过程500将安装该应用程序并使用选择的应用程序状态启动该应用程序。

如上所述,多个应用程序可以导出在执行这些应用程序的设备上被本地编索引的应用程序状态。在一个实施方案中,这些应用程序状态可以进一步被导出到远程应用程序状态索引器,并被用于支持来自没有生成这些应用程序状态的设备的查询。图6是对用于在远程搜索索引中使用的应用程序状态编索引的系统618的一个实施方案的框图。在图6中,设备600耦接到远程应用程序状态索引器610。在一个实施方案中,每个设备600包括在该设备600上执行的多个应用程序602,并且每个应用程序602耦接到该设备上的应用程序状态模块604。在该实施方案中,每个应用程序602将把一个或多个应用程序状态612导出到应用程序状态模块604。在该实施方案中,应用程序状态模块604如上文在图1至图5中所描述的那样将接收到的应用程序状态编入应用程序状态搜索索引608中。在另一个实施方案中,这些应用程序状态可以被发送到远程应用程序状态索引器610。通过将应用程序状态发送到远程应用程序状态索引器610,可以使这些应用程序状态可用以支持来自未示出的其他设备的查询。因此,在该实施方案中,来自在多个设备上运行的多个应用程序的已编索引的应用程序状态可以响应于由未生成这些应用程序状态的设备发送的查询而用于查询结果。

在一个实施方案中,被本地编索引的每个应用程序状态也可以被导出到远程应用程序状态索引器610。在该实施方案中,可以生成数千或数百万个应用程序状态并将其发送到远程应用程序状态索引器610。但是,在这些许多应用程序状态被导出和编索引的情况下,这可以创建一个应用程序状态索引,该索引太大和/或有许多无用的虚假条目。另外,这些导出的应用程序状态中的一些或全部可能包括不希望被包括在已编索引的应用程序状态614中的私人信息。

在一个实施方案中,如果这些应用程序状态已经在设备上被占用,则应用程序状态模块604将这些应用程序状态导出到远程应用程序状态索引器610。在该实施方案中,为了占用应用程序状态,应用程序状态模块确定该应用程序状态是否已经响应于用户在设备上的查询并且该用户已经选择了该应用程序状态而作为查询结果被返回。在一个实施方案中,占用应用程序状态意味着用户已经向本地搜索服务发送了查询,本地搜索服务已经在一组查询结果中返回了该应用程序状态,并且用户已经选择或者查看了该应用程序状态。在一个实施方案中,占用应用程序状态向应用程序状态模块604指示该特定应用程序状态可能比由设备600生成的其他应用程序状态更重要。对于每个被占用的应用程序状态,应用程序状态模块604将该应用程序状态导出到远程应用程序状态索引器610。

在又一个实施方案中,在将被占用的应用程序状态导出到远程应用程序状态索引器610之前,应用程序状态模块604通过移除可能在该应用程序状态中的任何可能的私人信息来清理该应用程序状态。在一个实施方案中,该应用程序状态可以包括私人信息,诸如用户名、私人联系信息、位置、访问时间、社会安全号码、银行账号和/或可能在该应用程序状态中的任何其他类型的私人信息。在一个实施方案中,创建该应用程序状态的应用程序可以将某些信息标记为存储在该应用程序状态中的私人信息。在另一个实施方案中,设备可以将私人信息添加到该应用程序状态。另选地,应用程序状态模块604可以知道某些信息是私人的,而不管该信息是否被标记为私人。在这些实施方案中的任何一个中,应用程序状态模块604将移除该私人信息。

在一个实施方案中,远程应用程序状态索引器610从多个设备600接收应用程序状态。远程应用程序状态索引器610可以从少量设备或从多达数千或数百万设备接收应用程序状态。另外并且在一个实施方案中,远程应用程序状态索引器610维护两组应用程序状态。一组应用程序状态是已编索引的应用程序状态614。这些是已编索引并可供搜索服务使用的一组应用程序状态。另一组应用程序状态是未编索引的应用程序状态616。在一个实施方案中,一旦应用程序状态已被一个或多个设备占用必要的次数,则远程应用程序状态索引器610将该应用程序状态添加到应用程序状态的索引组。例如并且在一个实施方案中,如果应用程序状态被占用50次,则该应用程状态被添加到应用程序状态的索引组。在另选实施方案中,如果应用程序状态已经被占用更多或更少次,则该应用程序状态可以被添加到应用程序状态的索引组。在一个实施方案中,在被编入应用程序索引中之前要被占用的必要次数和应用程序状态可以根据应用程序状态的类型而变化。例如并且在一个实施方案中,与不具有地理上定位的信息的应用程序状态相比,包括地理上定位的信息(例如,针对区域优惠券的应用程序状态)的应用程序状态可能需要被占用更少的次数。

在该实施方案中,在该应用程序状态已被占用必要次数之后将该应用程序状态编索引增加了该应用程序状态对其他用户有用的可能性。例如并且在一个实施方案中,不同设备上的许多不同用户使用本地运输应用程序并且为本地公交线路7生成应用程序状态。在该示例中,这是受欢迎的线路,所以该应用程序状态通过用户经由本地搜索服务访问该应用程序状态而被占用。该应用程序状态由远程应用程序状态索引器610编索引,并可供远程搜索服务使用。

在一个实施方案中,远程应用程序索引器610通过计算应用程序状态的散列来确定该应用程序状态是否之前已经被发送。如果该散列与由远程应用程序索引器610存储的其他散列匹配,则远程应用程序索引器610增加远程应用程序索引器已经接收到该应用程序状态的次数。如果已经接收到必要的次数,则远程应用程序索引器610将该应用程序状态编索引。在下面的图9中进一步描述了将应用程序状态编索引。

另选地,设备600也可以将应用程序状态直接发送给设备600所信任的其他设备。在一个实施方案中,设备600将应用程序状态发送给设备600所信任的其他设备。例如并且在一个实施方案中,设备600可以与其他设备处于一个信任圈内。设备600可以发送应用程序状态,如同它们是由设备600生成的,或者设备可以发送如上所述已经由用户占用和/或清理的应用程序状态。其他设备可以通过将这些接收到的应用程序状态添加到本地维护的应用程序状态索引来使用这些应用程序状态用于查询搜索。另选地,每个其他设备可以将已经接收到必要次数的应用程序状态编索引。

图7是使用远程应用程序状态搜索索引来搜索应用程序状态的系统的一个实施方案的框图。在图7中,设备702耦接到远程应用程序状态搜索服务714。在一个实施方案中,设备702包括耦接到本地搜索服务708的应用程序704。本地搜索服务708进一步耦接到应用程序状态搜索索引716。在一个实施方案中,设备702、应用程序704、本地搜索服务708和应用程序状态搜索索引716是如上面图2中所描述的设备、应用程序、本地搜索服务和应用程序状态搜索索引。在另一个实施方案中,本地搜索服务708可以将查询转发到远程应用程序搜索服务714,其中远程应用程序搜索服务714确定是否存在针对该查询的一组结果。远程应用程序搜索服务714将这组结果返回给本地搜索服务708,该本地搜索服务又将这组结果返回给应用程序704。另选地,应用程序704可以将该查询发送到远程应用程序搜索服务714,该远程应用程序搜索服务又将这组查询结果发送回应用程序704。

如上所述,远程应用程序状态搜索服务714从设备702接收查询,并将针对该查询的一组查询结果返回给设备702。在一个实施方案中,远程应用程序状态搜索服务714接收查询,搜索索引应用程序状态712以寻找与接收到的查询匹配的应用程序状态,对每个匹配的应用程序状态进行评分,对这组结果进行排序,并将排序的结果返回给应用程序。应用程序704显示包括该应用程序状态的结果。在一个实施方案中,应用程序704显示该应用程序的图标、应用程序状态标题和应用程序状态摘要,如上面图3中所述。在选择所显示的应用程序状态之后,该应用程序被加载该应用程序状态。在一个实施方案中,如果该应用程序状态本地存储在该设备上,则该应用程序处于与该应用程序相同的状态,就像用户已经占用该应用程序状态一样。

图8是将应用程序状态添加到应用程序状态索引的过程800的一个实施方案的流程图。在一个实施方案中,过程800由应用程序状态导出器模块执行,以将应用程序状态添加到应用程序状态索引,诸如上面图6中所描述的应用程序状态导出器模块606。在图8中,过程800开始于在框802处接收应用程序状态。在一个实施方案中,应用程序状态由过程800从正在执行过程800的设备上运行的一个或多个应用程序接收。在框802处,过程800确定应用程序状态是否已被占用。在一个实施方案中,如果应用程序状态在与查询匹配的一组结果中返回,并且用户已经选择该应用程序状态以加载到应用中,则该应用程序状态被占用。如果该应用程序状态没有被占用,则执行继续到上面的框802。如果该应用程序状态已经被占用,则过程800对框806的应用程序状态进行清理。在一个实施方案中,过程800通过如上文在图6中所述移除与该应用程序状态相关联和/或存储在该应用程序状态中的私人信息来清理该应用程序状态。在框808处,过程800将清理的应用程序状态发送到远程应用程序状态索引服务。在一个实施方案中,远程应用程序状态索引服务可能将该应用程序状态添加到应用程序状态索引。

图9是由应用程序状态索引服务将应用程序状态编索引的过程900的一个实施方案的流程图。在一个实施方案中,过程900由远程应用程序状态索引器执行以将应用程序状态编索引,诸如以上图6中所描述的远程应用程序状态索引器610。在图6中,过程900开始于在框902处从设备接收指示应用程序状态。在一个实施方案中,应用程序状态指示是应用程序状态的散列。通过接收应用程序状态散列而不是完整的应用程序状态,过程900直到该应用程序状态是多个客户端所共有的或被占用了必要次数之后才接收该应用程序状态。在框904处,过程900增加该应用程序状态的发生次数。在一个实施方案中,过程900维护该应用程序状态散列的计数器。如果这是过程900第一次接收到该指示,则该计数器为1。过程900在框906处确定发生次数是否大于阈值。在一个实施方案中,过程900已经接收到应用程序状态必要的次数意味着该应用程序状态已被多次占用,并且是将被编索引和可共服务查询使用的一个候选者。例如并且在一个实施方案中,如果针对优惠券应用程序的特定优惠券的应用程序状态已经被占用了50次,则可以使该应用程序状态可供应用程序状态索引使用。如果发生的次数大于阈值,则过程900向发送了最后的应用程序状态指示的设备发送对完整应用程序状态的请求。过程900在框910处接收该应用程序状态。过程900在框910处将该应用程序状态编索引。通过将该应用程序状态编索引,过程900使得该应用程序状态可用于作为查询的一组结果的一部分。

在另一个实施方案中,不同于在最后接收到应用程序状态指示时请求完整应用程序状态,过程900开始增量地构建应用程序状态,直到过程900接收到应用程序状态的最后一段并将该应用程序状态编索引。例如并且在一个实施方案中,过程900请求最后m个客户向过程900发送应用程序状态的1/m。在该示例中,由于该应用程序状态生成相同的应用程序状态散列,因此这是相同的应用程序状态。这意味着该应用程序状态的这m段可以由过程900接合。该实施方案可以提供额外的隐私性,因为每次发送应用程序状态的一些部分允许过程900构建完整的应用程序状态。

图10是使用应用程序状态索引执行查询搜索的过程1000的一个实施方案的流程图。在一个实施方案中,过程1000由远程应用程序状态搜索服务执行,以使用应用程序状态索引执行查询搜索,诸如上面在图7中所描述的远程应用程序状态搜索服务714。在图10中,过程1000开始于在框1002处从客户端接收查询。在一个实施方案中,查询是由用户在应用程序中输入并被发送到如上所述的远程搜索服务的搜索字符串。在框1004处,过程1000使用该查询来搜索应用程序状态索引。在一个实施方案中,过程1000确定是否存在任何与该查询匹配的应用程序状态。过程1000在框1006处确定该查询的一组结果。在一个实施方案中,这组结果包括与该查询中的一些或全部文本匹配的一个或多个应用程序状态。在框1008处,过程1000对这组结果进行排序。在一个实施方案中,过程1000通过确定每个结果的得分并使用那些得分对这些结果进行排序,来将这组结果进行排序。在框1010处,过程1000将一组结果与来自其他搜索域的结果进行组合。在一个实施方案中,如果搜索是整合搜索,这种情况使用相同的查询来搜索不同的索引,则过程1000将来自其他搜索域的结果与使用该应用程序状态索引确定的这组结果进行组合。例如并且在一个实施方案中,查询可以用于搜索应用程序状态索引、通用web搜索索引和/或不同索引(例如,媒体索引、应用程序商店索引、地图索引、在线百科全书索引和/或另一种类型的索引)。在框1012处,过程1000将一组经排序的结果连同在框1010中生成的其他结果一起返回给客户端。

图11是接收和呈现作为查询结果的一部分的应用程序状态的过程1100的一个实施方案的流程图。在一个实施方案中,过程1100由应用程序执行以接收和呈现作为查询结果的一部分的应用程序状态,诸如以上在图7中描述的应用程序704。在图11中,过程1100开始于在框1102处将查询发送到远程搜索服务。在一个实施方案中,查询可以是由用户在应用程序中输入并被发送到远程搜索服务的搜索字符串。在该实施方案中,输入可以通过文本、说出词语、自动生成的、从耦接的设备(例如,耦接到便携式设备的智能手表)接收的、和/或用以输入搜索字符串的某种其他方式来输入。在框1104处,过程1100接收一组结果,其中这些结果包括应用程序状态。在该实施方案中,应用程序状态是如上面图6中所描述的已经由用户占用了必要次数的经清理的应用程序状态。在一个实施方案中,这组结果的排序是以排名最高的结果作为首选项。在框1106处,过程1100在用户界面中呈现应用程序状态。在本实施方案中,应用程序状态包括应用程序状态标题、摘要以及对应于针对该应用程序状态的应用程序的图标的指示。在一个实施方案中,过程1100显示如上面图3所述的应用程序状态。响应于应用程序被选择,过程1100使用选择的应用程序状态启动相应的应用程序。例如并且在一个实施方案中,如果应用程序状态是点评类应用程序中对地方餐饮店的评论,则过程1100启动具有该地方餐饮店应用程序状态的点评类应用程序。在该示例中,该点评类应用程序将被启动,使得呈现给用户的视图是该点评类应用程序中的地方餐饮店中的一个。在一个实施方案中,如果该应用程序未安装在设备上,则过程1100可以从远程源诸如应用程序商店、网页或其他远程服务器下载该应用程序。在该实施方案中,过程1100将安装该应用程序并使用选择的应用程序状态启动该应用程序。

图12是对用于在远程搜索索引中使用的应用程序状态视图编索引的系统1200的一个实施方案的框图。在图12中,设备1202耦接到应用程序状态存储装置1206和应用程序状态索引1208。在一个实施方案中,设备1202检索存储在应用程序状态存储装置1206中的应用程序状态,并且对于每个应用程序状态,设备1202为这些应用程序状态中的每一个生成视图。在一个实施方案中,应用程序状态的视图是对应于该应用程序状态的应用程序的用户界面的表示。例如在一个实施方案中,用户界面可以包括文本、图像、视频、音频、动画、图形和/或其他类型的用户界面部件。在该示例中,相应的视图是用户界面的二维表示。在一个实施方案中,一个应用程序可以具有基于与该应用程序相关联的不同应用程序状态而生成的许多不同视图。例如并且在一个实施方案中,具有对商业或服务的数千或数百万条评论的内容的访问权限的点评类应用程序可以具有针对这数千或数百万条评论中的每一条的视图。在下面的图13中进一步描述了视图。

在一个实施方案中,存储在应用程序状态存储装置1206中的应用程序状态可以是如上面在图6中所解释的已由用户占用了必要次数的应用程序状态。另选地,应用程序状态存储装置1206还可以包括未被编索引的应用程序状态。另外,应用程序状态索引1208包括具有为这些应用程序状态生成的视图的已编索引的应用程序状态。在该实施方案中,这些视图可以与应用程序状态一起返回,作为针对查询的一组结果的一部分。搜索引擎1210包括从设备1214接收查询的应用程序状态搜索服务1212。应用程序状态搜索服务1212从设备1214接收查询,使用这些查询来搜索应用程序状态索引,为具有关联视图的查询确定匹配的应用程序状态,对匹配的应用程序状态进行评分,对匹配的应用程序状态进行排序,并且返回这些匹配的应用程序状态作为去往发送原始查询的设备的一组结果。

如上所述,应用程序状态可以具有关联的视图。图13是应用程序状态视图1302的一个实施方案的框图。在图13中,设备1300具有在特定应用程序状态下执行的应用程序。该应用程序状态下的应用程序显示应用程序状态用户界面1302。应用程序状态用户界面1302可以包括各种部件,诸如图标、文本、图像、视频、音频、动画、图形和/或其他类型的用户界面部件。例如并且在一个实施方案中,应用程序状态用户界面1302包括图像1304、文本1306和图标1308。在一个实施方案中,可以从该应用程序状态用户界面1302生成视图。在此环境中,该视图是可以在应用程序状态索引中与该应用程序状态一起保存和编索引的应用程序状态用户界面1302的表示。例如并且在一个实施方案中,应用程序状态用户界面1302的视图是二维图像,诸如gif、jpeg、png和/或另一类型的二维图像。在该示例中,视图的二维图像可以与应用程序状态一起存储在应用程序状态索引中。

图14是使用应用程序状态来生成应用程序状态视图的过程1400的一个实施方案的流程图。在一个实施方案中,过程1400由应用程序状态视图生成器和索引器执行,以使用应用程序状态来生成应用程序状态视图,诸如上面图12中描述的应用程序状态视图生成器和索引器1204。在图14中,过程1400开始于在框1402处接收应用程序状态。在一个实施方案中,过程1400从应用程序状态存储装置(诸如,如上面图12中所描述的应用程序状态存储装置1206)接收应用程序状态。在框1404处,过程1400使用该应用程序状态来生成应用程序状态视图。在一个实施方案中,过程1400通过使用该应用程序状态模拟该应用程序来生成应用程序状态视图。在该实施方案中,该应用程序在具有该应用程序状态的模拟器中执行。过程1400可以使用模拟器的私有框架来捕获该应用程序状态的应用程序用户界面。另选地,过程1400可以将该应用程序加载到虚拟平台或设备本身上,并使用一种机制来生成该应用程序状态的视图。在框1406处,过程1400将该应用程序状态视图添加到用于相应应用程序状态的应用程序状态索引。

通过生成这些应用程序状态视图,过程1400可以为一个或多个应用程序生成多个视图。这些视图可以用来预览应用程序状态以及大致该应用程序。在一个实施方案中,可以使用这些应用程序状态视图来预览在针对查询的一组结果中返回的应用程序状态,或者可以大致用于预览应用程序。在下面的图15中进一步描述了将该视图与查询一起使用。在一个实施方案中,收集一个应用程序的多个应用程序状态视图可以用于预览该应用程序。例如并且在一个实施方案中,点评类应用程序可以具有可用于该应用程序的数十个应用程序状态视图。对于对该点评类应用程序感兴趣的人,例如在应用程序商店中查看该应用程序的人,可以向其提供这些应用程序状态视图,使得该用户可以在购买和/或下载该应用程序之前预览该应用程序。在该示例中,用户可以向前和向后浏览这数十个视图以了解该应用程序的外观。

图15是接收和呈现应用程序状态的过程1500的一个实施方案的流程图,该应用程序状态包括应用程序状态视图作为查询结果的一部分。在一个实施方案中,过程1500由设备执行以接收和呈现作为查询结果的一部分的应用程序状态视图,诸如以上在图12中描述的设备1214。在图15中,过程1500开始于在框1502处将查询发送到远程搜索服务。在一个实施方案中,查询可以是由用户在应用程序中输入并被发送到远程搜索服务的搜索字符串。在该实施方案中,输入可以通过文本、说出词语、自动生成的、从耦接的设备(例如,耦接到便携式设备的智能手表)接收的、和/或用以输入搜索字符串的某种其他方式来输入。在框1504处,过程1500接收一组结果,其中这些结果包括应用程序状态。在该实施方案中,应用程序状态是如上面图6中所描述的已经由用户占用了必要次数的经清理的应用程序状态。在一个实施方案中,这组结果的排序是以排名最高的结果作为首选项。在框1506处,过程1500在用户界面中呈现应用程序状态。在本实施方案中,应用程序状态包括应用程序状态标题、摘要、对应于针对该应用程序状态的应用程序的图标的指示,以及相应应用程序视图的可用性的指示。响应于该应用程序状态视图被选择,过程1500检索并呈现应用程序状态视图。在一个实施方案中,通过显示应用程序状态视图,用户可以获得在该应用程序状态下执行的应用程序的预览。这可以有助于用户决定是否选择该应用程序状态。在另一个实施方案中,即使应用程序安装在设备上,预览视图也可能比启动具有该应用程序状态的应用程序更快。例如并且在一个实施方案中,如果应用程序状态视图是点评类应用程序中对地方餐饮店的评论,则过程1500检索并显示该应用程序状态视图。

图16是将从设备上的多个不同应用程序接收的应用程序状态编索引的应用程序状态索引模块106的一个实施方案的框图。在一个实施方案中,应用程序状态索引模块106包括接收应用程序索引模块1602和添加应用程序状态模块1604。在一个实施方案中,接收应用索引模块1602接收多个应用程序状态,如上面图4a的框402中所述。添加应用程序状态模块1604将应用程序状态添加到索引,如上面图4a的框404中所述。

图17是使用应用程序状态索引确定查询的查询结果的结果模块1700的一个实施方案的框图。在一个实施方案中,结果模块1700包括接收查询模块1702、查询结果模块1704、排序结果模块1706和返回结果模块1708。在一个实施方案中,接收查询模块1702接收查询,如上面图4b的框452中所述。查询结果模块1704确定一组结果,如上面图4b的框454中所述。排序结果模块1706对结果进行排序,如上面图4b的框456中所述。返回结果模块1708将结果返回,如上面图4b的框458中所述。

图18是接收和呈现作为查询结果的一部分的应用程序状态的呈现模块1800的一个实施方案的框图。在一个实施方案中,呈现模块1800包括发送查询模块1802、接收结果模块1804、呈现结果模块1806和启动应用程序模块1808。在一个实施方案中,发送查询模块1802发送查询,如上面图5的框502中所述。接收结果模块1804接收这组结果,如上面图5的框504中所述。呈现结果模块1806呈现结果,如上面图5的框506中所述。启动应用程序模块1808启动应用程序,如上面图5的框508中所述。

图19是将应用程序状态添加到应用程序状态索引的应用程序状态模块1900的一个实施方案的框图。在一个实施方案中,应用程序状态模块1900包括接收应用程序状态模块1902、占用模块1904、清理模块1906和发送应用程序状态模块1908。在一个实施方案中,接收应用程序状态模块1902接收应用程序状态,如上面图8的框802中所述。占用模块1904确定应用程序状态是否已经被占用,如上面图8的框804中所述。清理模块1906清理应用程序状态,如上面图8的框806中所述。发送应用程序状态模块1908发送应用程序,如上面图8的框808中所述。

图20是将应用程序状态导出到应用程序状态索引服务的应用程序状态导出模块2000的一个实施方案的框图。在一个实施方案中,应用程序状态导出模块2000包括接收应用程序状态模块2002、递增模块2004、比较模块2006、发送应用程序状态请求模块2008、接收应用程序状态模块2010和索引应用程序状态模块2012。在一个实施方案中,接收应用程序状态模块2002接收应用程序状态的指示,如上面图9的框902中所述。递增模块2004增加应用程序状态的发生,如上面图9的框904中所述。比较模块2006比较发生的次数,如上面图9的框906中所述。发送应用程序状态请求模块2008将应用程序状态请求发送到设备,如上面图9的框908中所述。接收应用程序状态模块2010接收应用程序状态,如上面图9的框910中所述。索引应用程序状态模块2012将应用程序状态编索引,如上面图9的框912中所述。

图21是使用应用程序状态索引执行查询搜索的查询模块2100的一个实施方案的框图。在一个实施方案中,查询模块2100包括接收查询模块2102、搜索模块2104、确定结果模块2106、排序结果模块2108、组合结果模块2110和返回结果模块2108。在一个实施方案中,接收查询模块2102接收查询,如上面图10的框1002中所述。搜索模块2104搜索索引,如上面图10的框1004中所述。查询结果模块2106确定一组结果,如上面图10的框1006中所述。排序结果模块2108对结果进行排序,如上面图10的框1008中所述。组合结果模块2110组合来自其他搜索域的结果,如上面图10的框1010中所述。返回结果模块2112将结果返回,如上面图10的框1012中所述。

图22是接收和呈现作为查询结果的一部分的应用程序状态的另一个呈现模块2200的一个实施方案的框图。在一个实施方案中,呈现模块2200包括发送查询模块2202、接收结果模块2204、呈现结果模块2206和启动应用程序模块2208。在一个实施方案中,发送查询模块2202发送查询,如上面图11的框1102中所述。接收结果模块2204接收这组结果,如上面图11的框1104中所述。呈现结果模块2206呈现结果,如上面图11的框1106中所述。启动应用程序模块2208启动应用程序,如上面图11的框1108中所述。

图23是使用应用程序状态来生成应用程序状态视图的应用程序状态视图模块2300的一个实施方案的框图。在一个实施方案中,应用程序状态视图模块2300包括接收应用程序状态模块2302、生成应用程序视图模块2304和添加应用程序视图模块2306。接收应用程序状态模块2302接收应用程序状态,如上面图14的框1402中所述。生成应用程序视图模块2304生成应用程序状态视图,如上面图14的框1404中所述。添加应用程序视图模块2306将应用程序视图添加到索引,如上面图14的框1406中所述。

图24是应用程序状态视图呈现模块2400的一个实施方案的框图,该模块接收和呈现包括应用程序状态视图作为查询结果的一部分的应用程序状态。在一个实施方案中,应用程序状态视图呈现模块2400包括发送查询模块2402、接收结果模块2404、呈现结果模块2406和显示应用程序视图模块2408。在一个实施方案中,发送查询模块2402发送查询,如上面图15的框1502中所述。接收结果模块2404接收这组结果,如上面图15的框1504中所述。呈现应用程序状态模块2406呈现应用程序状态,如上面图15的框1506中所述。显示应用程序视图模块2408显示应用程序视图,如上面图15的框1508中所述。

上面描述的实施方案已经示出了第一设备接收查询输入,发送查询,接收查询结果以及在设备上启动应用程序。在另选实施方案中,第一设备(例如,智能电话或另一类型的便携式设备)通过个人局域网诸如蓝牙耦接到第二便携式设备(例如,可穿戴设备诸如智能手表,或其他类型的可穿戴或便携式设备)。在这些实施方案中,第二便携式设备可以执行关于履行查询搜索的上述任何动作。例如并且在一个实施方案中,第二便携式设备可以通过多种手段(例如,输入文本、手势、语音和/或另一种类型的输入)从用户接收输入的查询,其中第一设备将该查询发送到搜索服务。另选地,第二设备可以显示查询结果,其中第一设备接收查询结果并将这些结果中继到第二设备。在又一个实施方案中,对结果的显示和选择可以在第二设备上启动应用程序。如果该应用程序未安装在第二设备上,则可以在该应用程序启动之前下载该应用程序并安装在第二设备上。例如并且在一个实施方案中,可以在第一或第二设备上显示结果,并且在选择该结果后,在第二设备上启动应用程序。另选地,可以在第二设备上显示结果,并在第一设备上启动应用程序。

作为又一个示例和实施方案,智能手表经由蓝牙连接耦接到智能电话。在该实施方案中,智能电话或智能手表接收用户输入的查询。如果在智能手表上接收到查询,则将查询发送到智能电话。智能电话将查询发送到搜索服务,搜索服务可以是本地或远程搜索服务。智能电话接收搜索结果,这些结果可显示在智能电话、智能手表和/或其组合上。在选择智能手表或智能电话上的结果中的一者后,可以在智能电话、智能手表和/或其组合上启动应用程序。如果该应用程序未安装在相关设备上,则可以在启动该应用程序之前下载该应用程序并安装在所述设备上。

本公开认识到在本发明技术中使用此类个人信息数据可用于使用户受益。例如,该个人信息数据可用于递送用户较感兴趣的目标内容。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还设想个人信息数据有益于用户的其他用途。

本公开还设想负责此类个人信息数据的收集、分析、公开、传送、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。

不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。

图25示出了数据处理系统2500的一个示例,该数据处理系统可与本发明的一个实施方案一起使用。例如,可实现包括如图1所示的设备100的系统2500。需注意,虽然图25示出了计算机系统的各种部件,但是其并不旨在表示使这些部件互连的任何特定构造或方式,因此此类细节与本发明并无密切关系。还应理解,具有较少部件或可能较多部件的网络计算机以及其他数据处理系统或其他消费电子设备也可用于本发明。

如图25所示,数据处理系统形式的计算机系统2500包括耦接到一个或多个微处理器2505、rom(只读存储器)2507、易失性ram2509和非易失性存储器2511的总线2503。微处理器2505可以包括一个或多个cpu、gpu、专用处理器和/或其组合。微处理器2505可从存储器2507,2509,2511检索指令并执行所述指令以执行上述操作。总线2503与这些各种部件互连在一起,并且将这些部件2505,2507,2509和2511互连至显示控制器和显示设备2513,以及互连至外围设备诸如输入/输出(i/o)设备,该输入/输出(i/o)设备可以是鼠标、键盘、调制解调器、网络接口、打印机和本领域熟知的其他设备。通常,输入/输出设备2515通过输入/输出控制器2513耦接到系统。该易失性ram(随机存取存储器)2509通常被实现为需要连续供电以刷新或保持存储器中的数据的动态ram(dram)。

该海量存储装置2511通常为即使在系统断电后也保持数据(例如,大量数据)的磁性硬盘驱动器、或磁光驱动器、或光驱、或dvdram、或闪存存储器、或其他类型的存储器系统。通常,海量存储装置2511也可以是随机存取存储器,虽然这并非是必需的。虽然图25显示海量存储装置2511为直接耦接到数据处理系统中的其余部件的本地设备,但应当理解,本发明可利用远离系统的非易失性存储器,诸如通过网络接口诸如调制解调器、以太网接口或无线网络耦接到数据处理系统的网络存储设备。该总线2503可包括通过本领域熟知的各种桥接器、控制器和/或适配器相互连接的一个或多个总线。

图26示出了另一个数据处理系统2600的一个示例,该数据处理系统可与本发明的一个实施方案一起使用。例如,系统2600可被实现为图1所示的设备100。图26中所示的数据处理系统2600包括处理系统2611,该处理系统可以是一个或多个微处理器,或者可以是片上系统集成电路,并且该系统还包括存储器2601以用于存储由该处理系统执行的数据和程序。系统2600还可以包括音频输入/输出子系统2605,该子系统可以包括麦克风和扬声器,用于例如通过扬声器和麦克风回放音乐或提供电话功能。

显示控制器和显示设备2609为用户提供可视用户界面;该数字接口可以包括图形用户界面,其类似于在运行osx操作系统软件时在macintosh计算机上显示的图形用户界面,或者在运行ios操作系统时在appleiphone或applewatch上显示的图形用户界面等。系统2600还包括一个或多个无线收发器2603以与另一个数据处理系统(诸如图26的系统2600)进行通信。无线收发器可为wlan收发器、红外收发器、蓝牙收发器和/或无线蜂窝电话收发器。应当理解,在一些实施方案中,未示出的额外部件也可以是系统2600的部分,并且在一些实施方案中,也可以在数据处理系统中使用比图26中所示更少的部件。系统2600还包括一个或多个通信端口2617以与另一个数据处理系统(诸如图15的系统1500)进行通信。通信端口可为usb端口、火线端口、蓝牙接口等。

数据处理系统2600还包括一个或多个输入设备2613,提供这些输入设备以允许用户向该系统提供输入。这些输入设备可为小键盘或键盘或触摸面板或多点触摸面板。数据处理系统2600还包括可选的输入/输出设备2615,其可以是用于对接头的连接器。应当理解,如本领域所熟知的,可以使用未示出的一个或多个总线互连各种部件。图26中所示的数据处理系统可以是手持式计算机或个人数字助理(pda),或者具有pda相似功能的蜂窝电话,或者包括蜂窝电话的手持式计算机,或者媒体播放器诸如ipod,或者将这些设备的方面或功能组合在一起的设备,诸如在一个设备或嵌入式设备或其他消费电子设备中与pda和蜂窝电话组合的媒体播放器。在其他实施方案中,数据处理系统2600可以是网络计算机或另一个设备内的嵌入式处理设备,或者具有比图26中示出的部件更少或更多的部件的其它类型的数据处理系统。

本发明的至少某些实施方案可以是数字媒体播放器的一部分,例如便携式音乐和/或视频媒体播放器,数字媒体播放器可包括呈现媒体的媒体处理系统、存储媒体的存储设备,并且可以进一步包括与天线系统和媒体处理系统耦合的射频(rf)收发器(例如,用于蜂窝电话的rf收发器)。在某些实施方案中,存储在远程存储设备上的媒体可通过rf收发器发送到媒体播放器。例如,媒体可以是音乐或其他音频、静态图片或运动图片中的一个或多个。

便携式媒体播放器可包括媒体选择设备,例如得自appleinc.(cupertino,ca)的或ipod媒体播放器上的点击轮(clickwheel)输入设备、触摸屏输入设备、按钮设备、可移动指示输入设备或其他输入设备。可以使用媒体选择设备来选择存储在存储设备和/或远程存储设备上的媒体。在至少某些实施方案中,便携式媒体播放器可包括显示设备,该显示设备耦合到媒体处理系统以显示通过输入设备选择的并且通过扬声器或耳机或者在显示设备上、或者在显示设备上且在扬声器或耳机上呈现的媒体的标题或其他指示符。在已公布的美国专利7,310,671和美国已公布的专利2004/0224638中描述了便携式媒体播放器的示例,这两个专利以引用方式并入本文。

上述内容的部分可使利用辑电路诸如专用逻辑电路来实现,或利用微控制器或用于执行程序代码指令的其他形式的处理核心来实现。从而,可利用程序代码诸如机器可执行指令来执行上述讨论所教导的过程,该机器可执行指令使得机器执行这些指令以执行某些函数。在该上下文中,“机器”可为将中间形式(或“抽象”)指令转换为特定于处理器的指令(例如,抽象执行环境诸如“虚拟机”(例如,java虚拟机)、解译器、公共语言运行时、高级语言虚拟机等)的机器,和/或被设置在半导体芯片(例如,利用晶体管实现的“逻辑电路”)上的电子电路,该电子电路被设计用于执行指令,该处理器诸如通用处理器和/或专用处理器。上述讨论所教导的过程也可通过(作为机器的替代或与机器结合)电子电路来执行,该电子电路被设计用于执行过程(或其一部分)而不执行程序代码。

本发明还涉及一种用于执行本文所述的操作的装置。该装置可专门构造用于所需的目的,或者其可包括由被存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可被存储在计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、cd-rom和磁光盘,只读存储器(rom)、ram、eprom、eeprom、磁卡或光卡、或适用于存储电子指令的任何类型的介质,并且每一者均耦接到计算机系统总线。

机器可读介质包括以机器(例如,计算机)可读形式存储或传输信息的任何机构。例如,机器可读介质包括只读存储器(“rom”);随机存取存储器(“ram”);磁盘存储介质;光学存储介质;闪存存储器设备等。

制造的制品可用于存储程序代码。存储程序代码的制造的制品可体现为但不限于一个或多个存储器(例如,一个或多个闪存存储器、随机存取存储器(静态、动态或其他))、光盘、cd-rom、dvdrom、eprom、eeprom、磁卡或光卡、或适用于存储电子指令的其他类型的机器可读介质。也可借助于包含在传播介质(例如,经由通信链路(例如网络连接))中的数据信号将程序代码从远程计算机(例如,服务器)下载到请求计算机(例如,客户端)。

已按照对计算机存储器内的数据位进行操作的算法和符号表示来呈现前面的详细描述。这些算法描述和表示是数据处理领域的技术人员所使用的工具,而这些工具也能最有效地将其工作实质传达给该领域的其他技术人员。算法在这里并通常是指导致所希望的结果的操作的自相一致的序列。操作是需要对物理量进行物理操纵的那些操作。通常,尽管不是必须的,但这些量采用能够被存储、传送、组合、比较以及换句话讲操纵的电信号或磁信号的形式。已被证明其在主要出于通用原因而将这些信号指代为位、值、元素、符号、字符、术语、数字等时是方便的。

然而,应当牢记的是,所有这些以及类似的术语都与适当的物理量相关联,并且其只是应用于这些量的方便标签。除非另外特别说明,否则从上述讨论中显而易见的是,可以理解,在整个说明书中,使用术语诸如“检测”、“排序”、“接收”、“确定”、“搜索”、“发送”、“修改”、“执行”、“筛选”、“添加”、“创建”、“呈现”、“检测”、“编索引”、“生成”、“链接”、“模拟”、“捕获”等的讨论是指对计算机系统或类似的电子计算设备的行动和处理,这些设备可对计算机系统的寄存器和存储器中表示为物理(电子)量的数据进行操纵,并将其转换成在计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备中相似地表示为物理量的其他数据。

本文中所呈现的过程和显示并不固有地与任何特定计算机或其他装置相关。根据本文的教导内容,各种通用系统可与程序一起使用,或者可证明其便于构造用于执行所述操作的更专用的装置。根据下文的描述,用于各种这些系统的所需结构将是显而易见的。此外,本发明未参照任何特定的编程语言进行描述。应当理解,多种编程语言可用于实现如本文所述的本发明的教导内容。

前面的讨论仅描述了本发明的一些示例性实施方案。本领域的技术人员将易于从此类讨论、附图和权利要求书中认识到,可在不脱离本发明的实质和范围的情况下进行各种修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1