CN107408065B - 监视应用加载 - Google Patents

监视应用加载 Download PDF

Info

Publication number
CN107408065B
CN107408065B CN201680018508.1A CN201680018508A CN107408065B CN 107408065 B CN107408065 B CN 107408065B CN 201680018508 A CN201680018508 A CN 201680018508A CN 107408065 B CN107408065 B CN 107408065B
Authority
CN
China
Prior art keywords
native application
application instance
memory footprint
load signal
monitoring
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680018508.1A
Other languages
English (en)
Other versions
CN107408065A (zh
Inventor
陈驷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN107408065A publication Critical patent/CN107408065A/zh
Application granted granted Critical
Publication of CN107408065B publication Critical patent/CN107408065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及用于确定应用何时被充分实例化以进行爬取操作的方法、系统、以及设备。在一个方面中,一种方法包括实例化本原应用实例,所述本原应用实例生成环境实例以用于在所述本原应用实例中的用户装置上显示;响应于对所述本原应用实例的所述实例化:监视所述本原应用实例的活动生命周期事件的发生,监视所述本原应用实例的存储器占用的变化,以及响应于对所述生命周期事件的监视和对所述存储器占用的变化的监视指示所述本原应用实例被充分实例化以进行爬取操作,生成负载信号,所述负载信号指示所述本原应用实例被充分实例化以进行所述爬取操作。

Description

监视应用加载
背景技术
互联网提供了对广泛多种信息的访问。例如,特定主题或者特定新闻文章的数字图像文件、视频和/或音频文件、以及网页资源都可通过互联网访问。关于网页资源,这些资源中的许多旨在促进特定功能的执行——诸如:银行业务、酒店预订、购物等,或者提供结构化信息——诸如:在线百科、电影数据库等。
此外,随着平板计算机和智能电话的出现,现在正大量提供本原应用(nativeapplication),其促进通过使用网页资源来促进的相同功能的执行。另外,不具有带有诸如游戏的同步内容的网站的本原应用在平板计算机和智能电话中也非常流行。因此,搜索系统现在还促进这些本原应用的搜索。
搜索系统为本原应用收集信息的一个过程是通过访问本原应用的“深度链接”来进行的。深度链接是指定本原应用的特定环境实例并且配置为当在用户装置上被选择时使得该本原应用实例化指定本原应用的环境实例的指令。本原应用生成环境实例以供在用户装置上的本原应用内显示。
一旦本原应用被实例化,搜索系统就可以爬取并且索引在环境实例中提供的内容。
发明内容
本说明书描述了与监视应用加载以确定应用何时被充分实例化以进行爬取操作有关的技术。
通常,在本说明书所描述的主题的一个创新方面包括实例化本原应用实例的动作,该本原应用实例生成环境实例以用于在用户装置上在本原应用实例内显示;响应于对本原应用实例的实例化:监视本原应用实例的活动生命周期事件的发生,监视本原应用实例的存储器占用的变化,以及响应于对生命周期事件的监视和对存储器占用的变化的监视指示本原应用实例被充分实例化以进行爬取操作,生成负载信号,所述负载信号指示本原应用实例被充分实例化以进行爬取操作。该方面的其它实施例包括对应的系统、设备、和配置为执行该方法的动作的、编码在计算机存储装置上的计算机程序。
可以实现本说明书所描述的主题的特定实施例,以便实现一个或者多个下面的优点。通过监视请求的子集、活动生命周期事件、以及存储器占用,系统不需要依靠固定超时,并且因此比使用和请求固定超时以发起爬取操作的其它系统更好地利用资源。这使系统资源的利用更有效率,这是因为时间没有浪费在太长的超时上,并且需要更少的由于不完整的负载导致的对本原应用的重新爬取。进一步地,监视请求的子集、活动生命周期事件和存储器占用减少了爬取和索引操作失败或者遗漏来自爬取和索引操作的信息的可能性。该方法还对于每个特定应用自动调整,并且不需要单独调谐或者以其他方式请求特定于应用的参数。这提供了不需要通过管理来进行系统调谐的附加益处,进一步降低了系统维护成本。
在下面的附图和说明中阐述了本说明书中描述的主题的一个或者多个实施例的细节。主题的其它特征、方面、和优点将通过说明书、附图、和权利要求书而变得显而易见。
附图说明
图1是本原应用响应于确定本原应用被充分实例化而被索引的示例环境的框图。
图2是用于确定应用是否被充分实例化的示例过程的流程图。
图3是用于确定是否已经满足了请求的示例过程的流程图。
图4是用于确定本原应用的活动生命周期是否指示充分实例化的示例过程的流程图。
图5是用于确定本原应用的存储器占用是否指示充分实例化的示例过程的流程图。
在各附图中,类似的附图标记和名称指示类似的元素。
具体实施方式
系统接收本原应用的深度链接集,并且针对每个深度链接,实例化本原应用以准备对本原应用响应于该深度链接所提供的内容进行爬取和索引。如本文所使用的,本原应用生成环境实例以供在本原应用的环境内的用户装置上显示,并且独立于浏览器应用在用户装置上操作。本原应用是具体设计为在特定用户装置操作系统和机器固件上运行的应用。因此,本原应用与基于浏览器的应用和浏览器渲染的资源不同。后者要求每当其被实例化或者渲染时从网络服务器下载的所有或者至少一些元素或者指令。此外,基于浏览器的应用和浏览器渲染的资源可以由所有支持web的移动装置在浏览器内处理,并且因此不是特定于操作系统的。
深度链接是指定本原应用的特定环境实例并且配置为当在用户装置上被选择时使得该本原应用实例化指定本原应用的环境实例的指令。本原应用生成环境实例以供在用户装置上的本原应用内显示。例如,深度链接可以指定游戏环境的选择菜单;或者来自网站——诸如新闻网站、论坛等——的内容;或者烹饪应用的特定菜谱;等等。
为了正确爬取和索引本原应用内容,系统必须确定本原应用何时被充分实例化——例如完成了加载并且显示应当针对深度链接爬取的内容)。然而,应用可能会经历许多状态:取得一些内容、处理内容、在显示最终结果之前示出中间结果等等。
本说明书中的系统和方法执行自动的且独立于应用的方式来确定应用被充分实例化以供爬取和索引操作的时间。在一个实施方式中,响应于本原应用实例的实例化,系统监视本原应用实例的活动生命周期事件的发生并且监视本原应用实例的存储器占用的变化。当该监视指示本原应用被充分实例化以进行爬取操作时,系统生成负载信号。该负载信号使得爬取系统爬取并且索引本原应用实例的内容。
在一些实施方式中,基于监视到不存在新的活动生命周期事件并且监视到稳定的存储器占用来生成负载信号。还可以考虑监视附加负载因子,诸如是否存在未解决的内容请求。在一些实施方式中,每个所监视的负载因子必须在生成本原应用的负载信号之前使构成负载信号被生成。在其它实施方式中,构成负载信号可以用作选票,并且当生成大多数构成信号时生成本原应用的负载信号。在另外其它实施方式中,任何给定的构成负载信号都可以取决于另一个构成负载信号,例如,可以在生成活动生命周期事件的构成负载信号之前不生成存储器占用的构成负载信号,或者反之亦然。
下文将对这些特征和附加特征进行详细描述。
图1是本原应用响应于确定本原应用被充分实例化而被索引的示例环境100的框图。
诸如互联网的计算机网络102连接资源发布者网站104、应用发布者106、用户装置108、和搜索系统110。
资源发布者网站104包括与域相关联的并且由处于一个或者多个位置中的一个或者多个服务器托管的一个或者多个web资源105。通常,资源发布者网站是以包含文本、图像、多媒体内容、和编程元素的超文本标记语言(HTML)格式化的网页集合。每个网站104由内容发布者维护,该内容发布者是控制、管理和/或拥有网站104的实体。
网页资源是可以由发布者网站104通过网络102提供并且具有资源地址——例如统一资源定位符(URL)——的任何数据。Web资源可以是HTML页面、图像文件、视频文件、音频文件、和馈源等,仅举几例。资源可以包括嵌入式信息——例如元信息和超链接)、和/或嵌入式指令——例如客户端侧脚本。
应用发布者网站106还可以包括一个或者多个web资源105,并且还提供本原应用107。如上面所描述的,本原应用107是具体设计为在特定用户装置操作系统和机器固件上运行的应用。如本说明书中使用的,“环境实例”是在本原应用内的显示环境,并且其中显示内容——诸如文本、图像等)。环境实例特定于特定本原应用,并且本原应用特定于用户装置108的特定操作系统。环境实例与渲染的web资源不同在于:环境实例是在本原应用内生成的并且特定于本原应用,而web资源可以在兼容网页资源的任何浏览器中进行渲染,并且独立于用户装置的操作系统。
用户装置108是在用户控制下的电子装置。用户装置108通常能够通过网络102来请求并且接收网页资源105和本原应用107。示例用户装置108包括个人计算机、移动通信装置、和平板计算机。
为了搜索web资源105和本原应用107,搜索系统110访问web索引112和应用索引114。Web索引112是例如已经通过爬取发布者网站104而建立的web资源105的索引。应用索引114是本原应用107的环境实例的索引,并且通过使用索引器114来构造,该索引器114接收从本原应用的应用实例122爬取的数据。虽然web索引112和应用索引114被示出为单独的索引,但是可以将web索引112和应用索引114合并成单个索引。
用户装置108将搜索查询提交至搜索系统110。响应于每个查询,搜索系统110访问web索引112和应用索引114以分别识别与该查询相关的资源和应用。搜索系统110可以,例如,分别识别处于web资源搜索结果和本原应用搜索结果形式的资源和应用。一旦生成搜索结果,则将搜索结果提供至从其接收到查询的用户装置108。
web资源搜索结果是由识别web资源并且提供满足特定搜索查询的信息的搜索系统110生成的数据。资源的web资源搜索结果能够包括网页标题、从资源提取的文本片段、以及资源的资源定位符——例如网页的URL。本原应用搜索结果指定本原应用并且响应于对环境实例的应用索引114的搜索来生成。本原应用搜索结果包括“深度链接”,该“深度链接”指定本原应用的特定环境实例并且配置为使得本原应用实例化指定环境实例。例如,本原应用搜索结果的选择可以使得本原应用启动(如果安装在用户装置108上)并且生成在应用搜索结果中以屏幕截图的形式引用的环境实例。
如上面所描述的,提供本原应用107的发布者106也向搜索系统110提供深度链接。此外,第三方也可以提供本原应用的深度链接。另外,搜索系统110可以从其它多个源——诸如app地图、网页标注等——中发现深度链接,并且因此深度链接集可能会不断变化。例如,应用发布者可以提供处于统一资源标识符(URI)形式(或者发布者发行的特定于本原应用的其它指令类型)的深度链接109的列表。这些深度链接是发布者106期望在应用索引114中爬取并且索引的深度链接。
在一些实施方式中,为了爬取和索引本原应用107,搜索系统110或者与搜索系统110相关联的系统使用操作系统模拟器120,该操作系统模拟器120模拟在其上执行本原应用107的操作系统。操作系统模拟器120针对每个深度链接109实例化本原应用的实例122。在实例化期间,负载检测器130从请求监视器124、活动监视器125、和存储器监视器126接收数据,并且使用接收到的数据来确定本原应用实例122是否被充分实例化以用于爬取和索引操作。当负载检测器确定本原应用实例122被充分实例化以用于爬取和索引操作时,负载检测器130生成负载信号。数据提取器128接收负载信号,并且作为响应,爬取本原应用实例122的内容。将爬取到的内容提供至索引器140,索引器140然后在应用索引114中索引本原应用的内容。
当在模拟器120的场境中描述了以下示例时,可以使用其它装置和环境来监视应用的状态。例如,可以使用虚拟机或者甚至仪器化的移动装置。
参照图2更详细地描述了负载信号的生成,图2是用于确定是否加载了应用的示例过程200的流程图。可以将过程200实现在数据处理设备——诸如彼此数据通信的一个或者多个计算机——中。
过程200实例化本原应用的实例(202)。例如,OS模拟器120选择深度链接109以实例化本原应用。OS模拟器120配置为对本原应用的实例122进行仪器化,从而使请求监视器124、活动监视器125和存储器监视器126可以分别监视与本原应用的实例化相关的请求、活动和存储器的状态。请求监视器124、活动监视器125和存储器监视器126中的每一个可以包括加载在相同的应用进程空间中或者与应用实例122完全分开加载的进程。
过程200监视构成负载信号源,在当前实施方式中该构成负载信号源可以包括对从本原应用实例发送至在本原应用实例外的服务实体的内容、本原应用实例的活动生命周期、以及本原应用实例的存储器占用的请求(204)。在当前的实施方式中,不要求按照特定的顺序或者定义的顺序监视构成负载信号,并且可以同时监视构成负载信号。在其它实施方式中,对构成负载信号的监视可以取决于彼此,例如,监视活动生命周期事件直到生成构成活动生命周期负载信号,并且然后监视本原应用的存储器占用。
在一些实施方式中,不监视构成负载信号源直到已经发生启动超时。例如,在本原应用实例的实例化之后,启动超时可以在监视爬取操作参数之前发生。
请求监视器124可以监视对从本原应用实例发送至在本原应用实例外部的服务实体的内容的请求(204a)。例如,请求监视器124可以配置为用作代理,其拦截请求,记录请求、并且然后将请求发送至外部服务。请求监视器124监视发送请求的时间并且还要监视响应于该请求而接收到的内容。当响应于请求而接收到内容时,请求监视器124向应用实例122提供该内容。在一些实施方式中,确定是否满足每个监视请求。针对每个请求,例如,请求监视器124确定针对该请求是否已经接收到内容。如果针对该请求已经接收到内容,则请求监视器124可以确定该内容是否响应于该请求。另外,请求监视器124也可以确定请求是否已经超时,例如,在预定义超时时段内尚未接收到响应。下面的图3更详细地描述了确定是否满足请求的示例过程300。
当请求监视器124基于监视对于内容的请求来确定本原应用实例被充分实例化以进行爬取操作时,其生成请求负载信号。该请求负载信号是本原应用被充分加载以被爬取的构成指示。
活动监视器125可以监视本原应用实例的活动生命周期事件(204b)。活动生命周期事件是描述在应用生命周期中不同状态之间的转换的事件。例如,在启动画面期间,应用可以处于第一生命周期事件,并且然后从启动画面至主菜单的转换可以由第二生命周期事件指示。相继发生的这两个事件可以相同,也可以不同。
可以将实现应用实例122的OS模拟器120仪器化以监视生命周期事件并且确定本原应用的活动生命周期事件状态。例如,除了其他以外,活动的状态可以是运行、暂停、后台、或者停止。由本原应用执行的操作可能会引起活动生命周期状态变化。除了其他以外,示例活动生命周期事件包括OnCreate()、OnStart()、OnResume()、OnPause()、OnStop()、OnRestart()、和OnDestroy()。在一些实施方式中,活动生命周期可以是OS模拟器120针对应用实例122的每个活动所调用的方法的集合,并且活动生命周期事件可以发生在OS模拟器120针对应用实例122的活动来调用方法时。
在一些实施方式中,活动监视器125可以例如通过拦截来监视对应用实例122的活动的OS模拟器120调用,以便确定针对应用实例122的活动是否已经发生了活动生命周期事件。在一些实施方式中,活动生命周期的监视可以通过沙盒化或者以其他方式隔离应用实例122来执行。下面的图4更详细地描述了确定本原应用的活动生命周期是否指示充分实例化的示例过程400。
当活动监视器125基于所监视的活动生命周期事件来确定本原应用实例被充分实例化以进行爬取操作时,生成活动生命周期负载信号。该活动生命周期负载信号是本原应用被充分加载以进行爬取的构成指示。
存储器监视器126可以监视本原应用实例的存储器占用的操作参数(204c)。例如,存储器监视器126可以监视存储器占用或者应用实例122正在消耗的存储器量。在应用实例122的操作期间,应用实例122将会消耗OS模拟器120的存储器,并且在启动应用实例122时,由应用实例122消耗的存储器量将增加。在一些实施方式中,在启动应用实例122之后,可以实现应用实例122的稳定存储器占用。存储器监视器126可以连续地或者在不同的时间点确定应用实例122的存储器占用,其可以是按照规则间隔、不规则间隔、或者按照应用的不同转换点。例如,在启动应用实例122时,存储器监视器126可以确定应用实例122的存储器占用,并且然后当发起新的应用实例122活动时确定存储器占用。下面的图5更详细地描述了确定本原应用的存储器占用是否指示充分实例化的示例过程500。
当存储器监视器126基于所监视的存储器占用值来确定本原应用实例被充分实例化以进行爬取操作时,其生成存储器占用负载信号。该存储器占用负载信号是本原应用被充分加载以被爬取的构成指示。
基于监视构成负载信号源和生成的任何得到的构成负载信号,系统确定是否要生成负载信号(206)。例如,负载检测器130可以接收来自请求监视器124、活动监视器125和存储器监视器126的数据,并且使用接收到的数据来确定本原应用实例122是否被充分实例化以进行爬取和索引操作。
在一些实施方式中,每个所监视的负载因子必须在生成本原应用的负载信号之前使构成负载信号被生成,例如,负载信号是构成负载信号的逻辑与。在其它实施方式中,构成负载信号可以由负载检测器130记为选票,并且当生成大多数构成信号时,生成本原应用的负载信号。
在另外其它实施方式中,任何给定的构成负载信号可以取决于另一个构成负载信号,例如,可以直到生成活动生命周期事件的构成负载信号才生成存储器占用的构成负载信号,或者反之亦然。
也可以使用处理构成负载信号的其它合适的方式来确定是否生成负载信号。
当负载检测器确定本原应用实例122被充分实例化以进行爬取和索引操作时,负载检测器130生成负载信号(208),并且作为响应,数据提取器128接收该负载信号并且爬取本原应用实例122的内容。索引器140然后索引爬取到的数据。否则,如果过程200基于监视构成负载信号源来确定应用实例122未被充分实例化以进行爬取过程,则过程200返回监视构成负载信号源(204)。
图3是用于确定是否已经满足请求的示例过程300的流程图。过程300监视请求(302)。例如,如上面所描述的,请求监视器124监视针对请求要返回的内容。
过程300确定针对请求是否返回了内容(304)。如果针对每个请求返回了内容,则该过程可以根据返回的内容来确定满足了请求并且生成构成请求负载信号(306)。例如,在一些实施方式中,只有当接收到的内容响应于请求并且不指示不完整的响应或者错误时才认为满足了请求。错误可以是该请求所发往的地址无法解析或者被请求的资源不再存在的通知。在一些实施方式中,未能满足请求会阻止对本原应用实例122的爬取和索引。这样的结果可以有利于确保搜索系统110只针对内容可用的深度链接提供搜索结果。
在其它实施方式中,即使接收到的内容指示了不完整的响应或者错误,仍然认为满足了请求。当期望使用“尽力而为(best efforts)”来索引本原应用时,这种情况可以发生。因此,即使所有请求的内容都不可用,至少接收到的内容将被爬取和索引。
如果过程300确定针对所有请求都未返回内容,则过程300确定是否已经发生需处理请求的超时(308)。该阶段可以是可选的,并且可以实现在期望使用上面所描述的“尽力而为”来索引本原应用时。请求超时可以是被选择以使得在时间段期满时要不是因为错误则很可能已经满足了请求的时间段。该时间可以基于历史观察来选择,或者可以是固定的时间段,例如,五秒。通过请求处置器124发送请求的时间来测量该时间段。
如果过程300确定已经发生请求超时,则过程300确定满足了请求并且生成构成请求负载信号(306)。否则,过程300确定没有满足请求并且继续监视请求。
图4是用于确定本原应用的活动生命周期事件是否指示充分实例化的示例过程400的流程图。如先前所描述的,活动监视器125可以监视本原应用实例的活动生命周期(402)。活动监视器125可以监视(例如,拦截)OS模拟器120对应用实例122的活动的调用,以便确定针对应用实例122的活动是否已经发生活动生命周期事件。
活动监视器125确定在时间段内是否已经发生生命周期事件(404)。如果确定在该时间段内已经有新的活动生命周期事件,则活动监视器125重置该时间段并且监视该活动生命周期事件,返回步骤402。与启动超时、超时请求、或者与存储器监视器126相关联的任何超时相比,活动生命周期超时可以是相同的或者不同的时间。活动生命周期的时间段可以是被确定为足够应用实例122进行实例化的时间,并且可以由系统管理员设置或者被机器学习系统学习。
当在活动生命周期超时内没有活动生命周期事件时(406),活动监视器125生成构成活动生命周期负载信号(406)。然后,负载检测器130可以使用该信息连同其它构成负载信号一起来确定应用实例122是否具有充分实例化来进行爬取操作。
图5是用于确定本原应用的存储器占用是否指示充分实例化的示例过程500的流程图。在过程500中,可以在第一时间处确定应用实例122的存储器占用(502)。存储器监视器126可以监视存储器占用或者应用实例122正在消耗的存储器量。如先前所描述的,在应用实例122的操作期间,应用实例122将会消耗OS模拟器120的存储器,并且当启动应用实例122时,由应用实例122消耗的存储器量将增加。在一些实施方式中,在启动应用实例122之后,应用实例122的稳定存储器占用可以发生在完全加载应用之后。存储器占用可以是应用实例122的存储器占用,应用实例122的存储器占用可以是应用实例122在特定时间正在使用或者引用的用户装置108的主存储器量。在一些实施方式中,可以根据与本原应用相关联的堆大小来确定应用实例122的存储器占用。
用于确定应用实例122的存储器占用的第一时间可以是启动应用的时间。然而,在获取第一存储器占用之前,在启动应用实例122之后也可能存在存储器占用超时。该超时可以是与先前所描述的超时相同或者不同的时间。替选地,当生成构成活动生命周期负载信号时,可以获取第一存储器占用。
在第二时间处确定应用实例122的存储器占用(504)。距离第一时间,第二时间可以是规则间隔(例如,50毫秒)、不规则间隔(例如,两秒与十秒之间的范围)、或者在一些其它本原应用事件之后。
过程500确定在第二时间处的存储器占用是否大于在第一时间处的存储器占用(506)。在启动应用实例122时,应用实例122消耗的存储器量将增加,并且在启动应用实例122完成之后,可以达到应用实例122的稳定并且不变的存储器占用。如果在第二时间处的存储器占用不大于在第一时间处的存储器占用(508),则基于由存储器监视器126确定的存储器占用而存在指示:应用实例122已经达到进行爬取操作的充分实例化点。然后,存储器监视器生成构成存储器占用负载信号(508)。
然而,如果在第二时间处的存储器占用大于在第一时间处的存储器占用,则过程500可以返回步骤502。替选地,在第二时间处的存储器占用大于在第一时间处的存储器占用的第一确定之后,过程500可以作为替代返回步骤504以将在步骤504的另一迭代处采集的当前占用值与在步骤504的先前迭代处采集的先前占用值进行比较。如先前所描述的,如果在第二时间处的存储器占用大于在第一时间处的存储器占用(或者在当前时间处的存储器占用大于在先前时间处的存储器占用),则存在指示:应用实例122尚未达到进行爬取操作的充分实例化点。
在此处讨论的系统采集关于用户的个人信息或者利用个人信息的情况下,可以为用户提供机会来控制程序或者特征是否采集用户信息(例如,有关用户的社交网络、社交动作或者活动、职业、用户的偏好、或者用户的当前位置的信息)或者控制是否和/或如何从内容服务器接收可能与用户更有关的内容。此外,在存储或者使用特定数据之前,可以按照一种或者多种方式来处理该特定数据,使得可以去除个人可识别信息。例如,可以处理用户的身份以使得无法确定用户的个人可识别信息,或者可以在获得位置信息的情况下将用户的的地理位置一般化(诸如到城市、邮政编码、或者州县等级),使得无法确定用户的特定位置。因此,用户可以控制如何采集关于用户的信息和内容服务器如何使用该信息。
可以在数字电子电路系统中、或者在计算机软件、固件、或者硬件中——包括本说明书所公开的结构及其结构等效物、或者它们中的一个或者多个的组合中实现本说明书中描述的主题的实施例和操作。可以将本说明书中描述的主题的实施例实现为一个或者多个计算机程序,即,编码在计算机存储介质上以由数据处理设备执行或者以控制该数据处理设备的操作的计算机程序指令的一个或者多个模块。
计算机存储介质可以是计算机可读存储装置、计算机可读存储基板、随机或者串行存取存储器阵列或者装置、或者它们中的一个或者多个的组合,或者包括在其中。此外,当计算机存储介质不是传播信号时,计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或者多个单独的物理组件或者介质(例如,多个CD、磁盘、或者其它存储装置),或者包括在其中。
可以将本说明书中描述的操作实现为由数据处理设备对存储在一个或者多个计算机可读存储装置或者从其它源接收到的数据执行的操作。
术语“数据处理设备”涵盖了用于处理数据的所有种类的设备、装置、和机器,包括:例如,可编程处理器、计算机、片上系统、或者前述中的多种或者组合。设备可以包括专用逻辑电路系统,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件之外,该设备还可以包括为讨论中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机、或者它们中的一个或者多个的组合的代码。该设备和执行环境可以实现各种不同的计算模型基础设施,诸如,web服务、分布式计算和网格计算基础设施。
可以用任何形式的编程语言——包括编译语言或者解译语言、声明性语言或者过程语言来编写计算机程序(也称为程序、软件、软件应用、脚本、或者代码),并且可以按照任何形式——包括作为独立程序或者模块、组件、子例程、对象、或者适合用于计算环境的其它单元——来部署计算机程序。计算机程序可以但并非必须与文件系统中的文件相对应。可以将程序存储在保持其它程序或者数据(例如,存储在标记语言文档中的一个或者多个脚本)的文件的一部分中,或者存储在专用于所讨论中的程序的单个文件中,或者存储在多个协作文件(例如,存储一个或者多个模块、子程序、或者部分代码的文件)中。可以将计算机程序部署为在一个计算机上执行或者在位于一个站点处或者跨多个站点分布并且通过通信网络互相连接的多个计算机上执行。
可以通过一个或者多个可编程处理器来执行本说明书中描述的过程和逻辑流程,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过操作输入数据并且生成输出来执行动作。也可以通过专用逻辑电路系统——例如FPGA(现场可编程门阵列)或者ASIC(专用集成电路))来执行过程和逻辑流程,并且也可以将设备实施为专用逻辑电路系统。
适合执行计算机程序的处理器包括:例如,通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。通常,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是:用于根据指令执行动作的处理器、和用于存储指令和数据的一个或者多个存储器装置。一般而言,计算机还将包括用于存储数据的一个或者多个大容量存储装置——例如磁盘、磁光盘、或者光盘,或者计算机可以操作地耦合以接收来自该大容量存储装置的数据或者将数据传输至该大容量存储装置,或者进行两者。然而,计算机无需具有这样的装置。此外,计算机可以嵌入在另一装置中,例如,移动电话、个人数字助理(PDA)、移动音频或者视频播放器、游戏控制台、全球定位系统(GPS)接收器、或者便携式存储装置(例如,通用串行总线(USB)闪存驱动),仅举数例。适合于存储计算机程序指令和数据的装置包括所有形式的非易失性存储器、介质和存储器装置,包括:例如,半导体存储器装置——例如EPROM、EEPROM、和闪速存储器装置;、磁盘——例如内部硬盘或者可移动盘;磁光盘;以及CD-ROM盘和DVD-ROM盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。
为了提供与用户的交互,可以在计算机上实现本说明书所描述的主题的实施例,该计算机具有:用于向用户显示信息的显示装置,例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器;以及键盘和指示装置——例如鼠标或者轨迹球,用户可以通过该键盘和该指示装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用任何形式——包括声输入、语音输入或者触觉输入——来接收来自用户的输入。另外,计算机可以通过将文档发送到用户所使用的装置并且接收来自该装置的文档来与用户交互;例如,通过响应于从web浏览器接收的请求来将网页发送至在用户的用户装置上的web浏览器。
可以将本说明书中描述的主题的实施例实现在包括后台组件的计算系统(例如,作为数据服务器)、或者包括中间件组件的计算系统(例如,应用服务器)、或者包括前端组件的计算系统——例如具有用户可以通过其来与本发明所描述的主题的实施方式交互的图形用户界面或者web浏览器的用户计算机、或者包括一个或者多个这样的后台组件、中间件组件或者前端组件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信——例如通信网络来将系统的组件互连。通信网络的示例包括:局域网(“LAN”)和广域网(“WAN”)、网际网(例如,互联网)、以及对等网络(例如,点对点对等网络)。
计算机系统可以包括用户和服务器。用户和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有用户-服务器关系的计算机程序来产生用户和服务器的关系。在一些实施例中,服务器将数据(例如,HTML页面)传送至用户装置(例如,为了向与用户装置交互的用户显示数据并且接收来自该用户的用户输入)。可以从在服务器处的用户装置接收在用户装置处生成的数据(例如,用户交互的结果)。
虽然本说明书包含了许多具体实施细节,但是不应当将这些细节视为对任何发明或者可能被要求的内容的范围的限制,而是作为特定于特定发明的特定实施例的特征的描述。在本说明书中在单独实施例的场境下描述的某些特征还可以组合地实现在单个实施例中。相反,在单个实施例的场境中描述的各种特征也可以单独地或者按照任何合适的子组合实现在多个实施例中。此外,虽然可以将特征描述为以某些组合的方式起作用,并且甚至描述为最初如此要求保护,但要求保护的组合的一个或者多个特征在某些情况下可以从组合中被切除,并且所要求保护的组合可以涉及子组合或者子组合的变型。
相似地,虽然在附图中按照特定顺序描绘操作,但是这不应被理解为要求按照所示的特定顺序或者按相继顺序执行这样的操作,或者执行所有所示的操作以实现期望的结果。在某些情形下,多任务处理和并行处理可以是有利的。此外,不应当将在上述实施例中的各种系统组件的分离理解为在所有实施例中需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。
因此,已经描述了本主题的特定实施例。其它实施例在所附权利要求书的范围内。在某些情况下,在权利要求书中记载的动作可以按照不同的顺序来进行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定需要所示的特定顺序或者相继顺序来实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。

Claims (17)

1.一种由数据处理设备执行的计算机实现的方法,所述方法包括:
实例化本原应用实例,所述本原应用实例生成环境实例以用于在用户装置上在所述本原应用实例内显示;
响应于对所述本原应用实例的所述实例化:
监视所述本原应用实例的活动生命周期事件的发生;
监视所述本原应用实例的存储器占用的变化,包括:
在第一时间处确定所述本原应用实例的第一存储器占用;
在第二时间处确定所述本原应用实例的第二存储器占用,所述第二时间在所述第一时间之后;
确定在所述第二时间处的所述本原应用实例的存储器占用是否大于在所述第一时间处的所述本原应用实例的存储器占用;以及
响应于确定在所述第二时间处的所述本原应用实例的存储器占用不大于在所述第一时间处的所述本原应用实例的存储器占用,生成存储器占用负载信号,所述存储器占用负载信号是基于对所述存储器占用的变化的监视来指示所述本原应用实例被充分实例化以进行爬取操作的构成指示;以及
响应于对所述活动生命周期事件的监视和对所述存储器占用的变化的监视指示所述本原应用实例被充分实例化以进行爬取操作,生成负载信号,所述负载信号指示所述本原应用实例被充分实例化以进行所述爬取操作。
2.根据权利要求1所述的计算机实现的方法,其中,监视所述本原应用实例的活动生命周期事件的发生包括:
确定在生命周期监视时间段内是否发生所述本原应用实例的活动生命周期事件;以及
响应于确定在所述生命周期监视时间段内尚未发生所述本原应用实例的活动生命周期事件,生成活动生命周期负载信号,所述活动生命周期负载信号是基于对活动生命周期事件的发生的监视来指示所述本原应用实例被充分实例化以进行所述爬取操作的构成指示。
3.根据权利要求2所述的计算机实现的方法,其中,生成指示所述本原应用实例被充分实例化以进行所述爬取操作的负载信号包括:仅响应于所述活动生命周期负载信号和所述存储器占用负载信号二者的生成来生成所述负载信号。
4.根据权利要求2所述的计算机实现的方法,进一步包括:响应于所述本原应用实例的所述实例化:
监视对从所述本原应用实例发送至在所述本原应用实例外部的服务实体的内容的请求;
确定每个所监视的请求是否已经被满足;以及
响应于确定每个所监视的请求已经被满足,生成请求负载信号,所述请求负载信号是基于监视对内容的请求来指示所述本原应用实例被充分实例化以进行所述爬取操作的构成指示。
5.根据权利要求4所述的计算机实现的方法,其中,生成指示所述本原应用实例被充分实例化以进行所述爬取操作的负载信号包括:仅响应于所述活动生命周期负载信号、所述存储器占用负载信号、以及所述请求负载信号的生成来生成所述负载信号。
6.根据权利要求1所述的计算机实现的方法,其中,生成所述存储器占用负载信号包括仅在已经生成所述活动生命周期信号时生成所述存储器占用负载信号。
7.根据权利要求2所述的计算机实现的方法,其中,生成所述活动生命周期负载信号包括仅在已经生成所述存储器占用负载信号时生成所述活动生命周期负载信号。
8.根据权利要求1所述的计算机实现的方法,其中,监视所述本原应用实例的活动生命周期事件的发生和监视所述本原应用实例的存储器占用变化仅在启动超时期满之后开始。
9.一种用于监视应用加载的系统,包括:
包括一个或多个处理器的数据处理设备;以及
存储在非暂时性计算机可读存储介质中的软件,所述非暂时性计算机可读存储介质存储能够由所述数据处理设备执行的指令,并且所述指令在被执行时使得所述数据处理设备执行操作,所述操作包括:
实例化本原应用实例,所述本原应用实例生成环境实例以用于在用户装置上在所述本原应用实例内显示;
响应于对所述本原应用实例的所述实例化:
监视所述本原应用实例的活动生命周期事件的发生;
监视所述本原应用实例的存储器占用的变化,包括:
在第一时间处确定所述本原应用实例的第一存储器占用;
第二时间处确定所述本原应用实例的第二存储器占用,所述第二时间在所述第一时间之后;
确定在所述第二时间处的所述本原应用实例的存储器占用是否大于在所述第一时间处的所述本原应用实例的存储器占用;以及
响应于确定在所述第二时间处的所述本原应用实例的存储器占用大于在所述第一时间处的所述本原应用实例的存储器占用,生成存储器占用负载信号,所述存储器占用负载信号是基于对所述存储器占用的变化的监视来指示所述本原应用实例被充分实例化以进行爬取操作的构成指示;以及
响应于对所述活动生命周期事件的监视和对所述存储器占用的变化的监视指示所述本原应用实例被充分实例化以进行爬取操作,生成负载信号,所述负载信号指示所述本原应用实例被充分实例化以进行所述爬取操作。
10.根据权利要求9所述的系统,其中,监视所述本原应用实例的活动生命周期事件的发生包括:
确定在生命周期监视时间段内是否发生所述本原应用实例的活动生命周期事件;以及
响应于确定在所述生命周期监视时间段内尚未发生所述本原应用实例的活动生命周期事件,生成活动生命周期负载信号,所述活动生命周期负载信号是基于对活动生命周期事件的发生的监视来指示所述本原应用实例被充分实例化以进行所述爬取操作的构成指示。
11.根据权利要求10所述的系统,其中,生成指示所述本原应用实例被充分实例化以进行所述爬取操作的负载信号包括:仅响应于所述活动生命周期负载信号和所述存储器占用负载信号二者的生成来生成所述负载信号。
12.根据权利要求10所述的系统,进一步包括:响应于所述本原应用实例的所述实例化:
监视对从所述本原应用实例发送至在所述本原应用实例外部的服务实体的内容的请求;
确定每个所监视的请求是否已经被满足;以及
响应于确定每个所监视的请求已经被满足,生成请求负载信号,所述请求负载信号是基于监视对内容的请求来指示所述本原应用实例被充分实例化以进行所述爬取操作的构成指示。
13.根据权利要求12所述的系统,其中,生成指示所述本原应用实例被充分实例化以进行所述爬取操作的负载信号包括:仅响应于所述活动生命周期负载信号、所述存储器占用负载信号、以及所述请求负载信号的生成来生成所述负载信号。
14.根据权利要求10所述的系统,其中,生成所述存储器占用负载信号包括仅在已经生成所述活动生命周期信号时生成所述存储器占用负载信号。
15.根据权利要求10所述的系统,其中,生成所述活动生命周期负载信号包括仅在已经生成所述存储器占用负载信号时生成所述活动生命周期负载信号。
16.根据权利要求9所述的系统,其中,监视所述本原应用实例的活动生命周期事件的发生和监视所述本原应用实例的存储器占用的变化仅在启动超时期满之后开始。
17.一种编码有计算机程序的计算机存储介质,所述程序包括指令,所述指令在由数据处理设备执行时使得所述数据处理设备执行操作,所述操作包括:
实例化本原应用实例,所述本原应用实例生成环境实例以用于在用户装置上在所述本原应用实例内显示;
响应于对所述本原应用实例的所述实例化:
监视所述本原应用实例的活动生命周期事件的发生;
监视所述本原应用实例的存储器占用的变化,包括:
在第一时间处确定所述本原应用实例的第一存储器占用;
第二时间处确定所述本原应用实例的第二存储器占用,所述第二时间在所述第一时间之后;
确定在所述第二时间处的所述本原应用实例的存储器占用是否大于在所述第一时间处的所述本原应用实例的存储器占用;以及
响应于确定在所述第二时间处的所述本原应用实例的存储器占用大于在所述第一时间处的所述本原应用实例的存储器占用,生成存储器占用负载信号,所述存储器占用负载信号是基于对所述存储器占用的变化的监视来指示所述本原应用实例被充分实例化以进行爬取操作的构成指示;以及
响应于对所述活动生命周期事件的监视和对所述存储器占用的变化的监视指示所述本原应用实例被充分实例化以进行爬取操作,生成负载信号,所述负载信号指示所述本原应用实例被充分实例化以进行所述爬取操作。
CN201680018508.1A 2015-07-23 2016-07-15 监视应用加载 Active CN107408065B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/807,772 2015-07-23
US14/807,772 US9348671B1 (en) 2015-07-23 2015-07-23 Monitoring application loading
PCT/US2016/042566 WO2017015139A1 (en) 2015-07-23 2016-07-15 Monitoring application loading

Publications (2)

Publication Number Publication Date
CN107408065A CN107408065A (zh) 2017-11-28
CN107408065B true CN107408065B (zh) 2021-02-12

Family

ID=55969693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680018508.1A Active CN107408065B (zh) 2015-07-23 2016-07-15 监视应用加载

Country Status (4)

Country Link
US (2) US9348671B1 (zh)
EP (1) EP3251013B1 (zh)
CN (1) CN107408065B (zh)
WO (1) WO2017015139A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990183B2 (en) * 2012-06-06 2015-03-24 Microsoft Technology Licensing, Llc Deep application crawling
US10303802B2 (en) 2013-03-15 2019-05-28 Gadget Software, Inc. System for mobile application search
US9984132B2 (en) * 2015-12-31 2018-05-29 Samsung Electronics Co., Ltd. Combining search results to generate customized software application functions
EP3627322A4 (en) 2017-06-14 2020-04-29 Beijing Xiaomi Mobile Software Co., Ltd. APPLICATION INTERACTION METHOD, INTERACTION METHOD AND DEVICE
CN109815083B (zh) * 2018-12-21 2021-06-04 瑞庭网络技术(上海)有限公司 一种应用崩溃的监控方法、装置、电子设备及介质
CN110430324B (zh) * 2019-08-07 2021-07-09 华为技术有限公司 一种应用开屏信息的显示方法、电子设备和存储介质
US11301267B2 (en) * 2020-05-22 2022-04-12 Servicenow, Inc. Automated task management techniques
CN113835957A (zh) * 2021-09-22 2021-12-24 上海妙一生物科技有限公司 一种爬虫任务的监控方法和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060218141A1 (en) * 2004-11-22 2006-09-28 Truveo, Inc. Method and apparatus for a ranking engine
CN101443751A (zh) * 2004-11-22 2009-05-27 特鲁维奥公司 用于应用爬取器的方法和装置
US20110029820A1 (en) * 2009-07-31 2011-02-03 Google Inc. Native code module security for 64-bit instruction set architectures
US7925855B1 (en) * 2002-12-30 2011-04-12 O'clair Brian Method and system for using external storage to amortize CPU cycle utilization
US20120144388A1 (en) * 2010-12-06 2012-06-07 International Business Machines Corporation Database Access for Native Applications in a Virtualized Environment
US20140201179A1 (en) * 2013-01-16 2014-07-17 Google Inc. Indexing application pages of native applications
US20140365462A1 (en) * 2013-06-07 2014-12-11 Google Inc. Index data for native applications
US20150066886A1 (en) * 2013-09-05 2015-03-05 Google Inc. Native application search results

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6253317B1 (en) * 1997-01-09 2001-06-26 Sun Microsystems, Inc. Method and apparatus for providing and handling traps
WO2003058410A1 (en) * 2001-12-28 2003-07-17 Access Co., Ltd. Usage period management system for applications
US20040030882A1 (en) 2002-08-08 2004-02-12 Forman George Henry Managed application pre-launching
US7076616B2 (en) 2003-03-24 2006-07-11 Sony Corporation Application pre-launch to reduce user interface latency
US7730012B2 (en) 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7584194B2 (en) * 2004-11-22 2009-09-01 Truveo, Inc. Method and apparatus for an application crawler
US8707451B2 (en) 2006-03-01 2014-04-22 Oracle International Corporation Search hit URL modification for secure application integration
US8086957B2 (en) 2008-05-21 2011-12-27 International Business Machines Corporation Method and system to selectively secure the display of advertisements on web browsers
US20100257466A1 (en) 2009-04-01 2010-10-07 Yahoo! Inc. Method and system for generating a mini-software application corresponding to a web site
CA2763668A1 (en) 2009-05-27 2010-12-02 Google Inc. Computer application data in search results
US8458384B2 (en) 2010-02-03 2013-06-04 National Instruments Corporation Automatically launching a measurement application in response to measurement device connection
US9098363B2 (en) 2010-04-07 2015-08-04 Apple Inc. Search extensibility to third party applications
US8515979B2 (en) 2010-06-18 2013-08-20 Verizon Patent And Licensing, Inc. Cross application execution service
US20120124061A1 (en) 2010-11-12 2012-05-17 Microsoft Corporation Rich Search Over and Deep Integration with Applications
EP2533161A1 (en) 2010-11-29 2012-12-12 Hughes Network Systems, LLC Computer networking system and method with javascript injection for web page response time determination
US9317621B2 (en) 2011-01-06 2016-04-19 Microsoft Technology Licensing, Llc Providing deep links in association with toolbars
US9858092B2 (en) 2011-01-06 2018-01-02 Mitel Networks Corporation Contextual application launch via search query
US20120316955A1 (en) 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
WO2012154848A1 (en) 2011-05-09 2012-11-15 Google Inc. Recommending applications for mobile devices based on installation histories
US9519726B2 (en) 2011-06-16 2016-12-13 Amit Kumar Surfacing applications based on browsing activity
US8650139B2 (en) 2011-07-01 2014-02-11 Google Inc. Predicting user navigation events
KR101491878B1 (ko) 2011-08-31 2015-02-09 라인 가부시키가이샤 사용자 단말에서 취득한 정보를 기반으로 모바일 애플리케이션의 순위를 제공하는 시스템 및 방법
US20130110815A1 (en) 2011-10-28 2013-05-02 Microsoft Corporation Generating and presenting deep links
US9355186B2 (en) 2011-11-01 2016-05-31 Google Inc. Launching applications from webpages
US8554345B2 (en) 2011-11-10 2013-10-08 Cbs Interactive, Inc. APP rating system
KR101295644B1 (ko) 2011-11-11 2013-09-16 한국전자통신연구원 스마트폰 앱 검증 시스템 및 그 방법
US20130124606A1 (en) 2011-11-14 2013-05-16 Boopsie, Inc. Automatic personalization of downloadable mobile apps
US8793235B2 (en) 2012-01-19 2014-07-29 Google Inc. System and method for improving access to search results
GB2501276A (en) 2012-04-18 2013-10-23 Ibm Determining web page loading at a client
US9510141B2 (en) 2012-06-04 2016-11-29 Apple Inc. App recommendation using crowd-sourced localized app usage data
US8510764B1 (en) 2012-11-02 2013-08-13 Google Inc. Method and system for deep links in application contexts
US9305322B2 (en) * 2013-07-23 2016-04-05 Facebook, Inc. Native application testing
US20150205595A1 (en) * 2014-01-20 2015-07-23 Vonage Network Llc Method and system for intelligent configuration of a native application

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7925855B1 (en) * 2002-12-30 2011-04-12 O'clair Brian Method and system for using external storage to amortize CPU cycle utilization
US20060218141A1 (en) * 2004-11-22 2006-09-28 Truveo, Inc. Method and apparatus for a ranking engine
CN101443751A (zh) * 2004-11-22 2009-05-27 特鲁维奥公司 用于应用爬取器的方法和装置
US20110029820A1 (en) * 2009-07-31 2011-02-03 Google Inc. Native code module security for 64-bit instruction set architectures
US20120144388A1 (en) * 2010-12-06 2012-06-07 International Business Machines Corporation Database Access for Native Applications in a Virtualized Environment
US20140201179A1 (en) * 2013-01-16 2014-07-17 Google Inc. Indexing application pages of native applications
US20150169660A1 (en) * 2013-01-16 2015-06-18 Google Inc. Indexing application pages of native applications
US20140365462A1 (en) * 2013-06-07 2014-12-11 Google Inc. Index data for native applications
US20150066886A1 (en) * 2013-09-05 2015-03-05 Google Inc. Native application search results

Also Published As

Publication number Publication date
US9436531B1 (en) 2016-09-06
CN107408065A (zh) 2017-11-28
EP3251013A1 (en) 2017-12-06
US9348671B1 (en) 2016-05-24
WO2017015139A1 (en) 2017-01-26
EP3251013B1 (en) 2018-12-05

Similar Documents

Publication Publication Date Title
CN107408065B (zh) 监视应用加载
KR102254117B1 (ko) 네이티브 어플리케이션의 어플리케이션 페이지 인덱싱
US10068028B1 (en) Deep link verification for native applications
US9547721B2 (en) Native application search results
JP6370408B2 (ja) ネイティブアプリケーションに関するディープリンク
US9146972B2 (en) Ranking of presentation modes for particular content
US11989247B2 (en) Indexing access limited native applications
JP6410992B1 (ja) バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化
US9645980B1 (en) Verification of native applications for indexing
CN107430614B (zh) 到对应资源的应用局部深度链接
US9513961B1 (en) Monitoring application loading
CN106471492B (zh) 索引资源的动作
US11003728B1 (en) Native application search results
RU2774319C2 (ru) Глубинные ссылки для нативных приложений

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant