CN107624180A - 用于提取和共享应用程序有关的用户数据的系统和方法 - Google Patents
用于提取和共享应用程序有关的用户数据的系统和方法 Download PDFInfo
- Publication number
- CN107624180A CN107624180A CN201680028292.7A CN201680028292A CN107624180A CN 107624180 A CN107624180 A CN 107624180A CN 201680028292 A CN201680028292 A CN 201680028292A CN 107624180 A CN107624180 A CN 107624180A
- Authority
- CN
- China
- Prior art keywords
- application
- user
- template
- service
- entity
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2448—Query languages for particular applications; for extensibility, e.g. user defined types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3438—Recording 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 monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24575—Query processing with adaptation to user needs using context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
- Document Processing Apparatus (AREA)
Abstract
公开了一种用于提取和共享应用程序有关的用户数据的系统和方法。方法可以包括提取在计算设备上运行的多个应用中的至少一个应用的应用内数据,该应用内数据包括当至少一个应用正在运行时由用户消耗的内容、和/或采取的与内容有关的至少一个用户动作。使用与应用相关联的实体模板,将应用内数据内的多个文本串分类为由模板指定的多个数据类型中的至少一个数据类型。可以通过组合经分类的多个文本串的至少一部分来生成至少一个用户数据项(UDI),至少一个UDI可由第二应用、在计算设备上运行的操作系统、操作系统的服务、和/或在至少另一设备上运行的服务来访问。
Description
背景技术
在移动设备上花费的至少一些时间是使用应用程序(或“应用”)花费的。一些已知的应用是孤立的程序,它们将内容显示为用户可以与其交互并在其间导航的页面集合。至少一些已知应用的功能被限于显示用户明确要求的内容。
用于跟踪和/或分析用户与应用的交互的已知方法和系统包括手动地注释应用。然而,手动地注释应用需要额外的编程时间和/或努力,并且可能是耗时、乏味和/或容易出错的。此外,用于跟踪和/或分析用户交互的已知方法和系统,特别是在几乎没有开发人员的努力的情况下完成的,都是计算繁重的,并且当被本地存储时需要大量的存储器或者在远程服务器上被执行时施加网络开销并且可能违反用户隐私。
发明内容
提供本发明内容以便以简化的形式介绍概念的选择,该概念在下面的具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
根据一个或多个方面,计算设备可以包括处理单元和存储多个应用程序(应用)的存储器。计算设备可以被配置为执行用于提取和共享应用程序有关的用户数据的操作。操作可以包括提取在计算设备上运行的多个应用中的至少一个应用的应用内数据,该应用内数据包括当该至少一个应用正在运行时由用户消耗的内容,和/或采取的与内容有关的至少一个用户操作。所述操作还包括使用与所述至少一个应用相关联的实体模板,将所述应用内数据内的多个文本串分类为由所述实体模板指定的多个数据类型中的至少一个数据类型。至少一个用户数据项(UDI)可以通过组合经分类的多个文本串的至少一部分来生成,至少一个UDI可由以下项中的至少一项访问:多个应用的第二应用、在计算设备上运行的操作系统、操作系统的服务、和/或在至少另一设备上运行的服务。
根据一个或多个方面,一种用于提取和共享应用程序有关的用户数据的方法可以包括:使用计算设备的操作系统内的跟踪器部件,以及当应用在计算设备上运行时,检测由用户动作触发的与应用的页面类有关的用户界面(UI)事件,UI事件与页面类的UI树相关联。使用计算设备的操作系统内的分析器部件,与在计算设备上运行的应用相关联的多个模板被接收,所述多个模板中的每个模板包括多个实体类型和动作类型。UI树中的多个文本串可以与多个模板中的至少一个模板进行匹配,以用多个实体类型的至少一个实体类型或者多个动作类型中的动作类型对UI树中的多个文本串进行分类。通过组合在UI树内的经分类的多个文本字符串的至少一部分,来执行行为数据项(BDI)。所生成的BDI被提供给以下项中的至少一项:在客户端设备上运行的另一应用、在客户端设备上运行的一个或多个服务、和/或另一设备。
根据一个或多个方面,公开了一种用于在客户端设备中提取和共享应用程序有关的用户数据的系统,并且可以包括跟踪器服务,该跟踪器服务可操作用于检测由用户动作触发的与应用的页面类有关的用户界面(UI)事件,UI事件在应用运行时与页面类的UI树相关联。系统可以包括分析器服务,该分析器服务可操作用于将UI树中的多个文本与用于应用的多个模板中的至少一个模板进行匹配,以至少用名称、数据类型以及组标识来对UI树中的多个文本进行分类,并且通过组合所述UI树内的、与所述至少一个用户动作相关联的并且有关的(例如,具有相同组标识)的经分类的多个实体的至少一部分来生成至少一个用户数据项(UDI)。该系统还可以包括存储服务,该存储服务可操作用于将所生成的至少一个UDI存储在网络存储装置中,并且至少向在客户端设备上运行的另一应用提供对所存储的至少一个UDI的访问。
如本文所述,可以根据需要将各种其它特征和优点并入到技术中。
附图说明
图1是图示包括可以在移动设备上被实现的一个或多个应用的示例性移动设备的示意图。
图2是图示诸如图1所示的应用的元件之间的关系的示意图。
图3A是图示包括一个或多个移动设备(诸如图1所示的包括分析服务的移动设备)以及被通信地耦合到所述一个或多个移动设备一个或多个服务器的示例系统的示意图。
图3B是图示根据一个或多个实施例的可以由图3A的分析服务使用的示例模板的示意图。
图4是图示根据一个或多个实施例的用于从分析服务访问用户数据项(UDI)的示例API使用的示意图。
图5是图示根据一个或多个实施例的分析服务的示例实现的示意图。
图6图示了根据一个或多个实施例的餐饮有关的应用的示例实体模板的部分。
图7图示了根据一个或多个实施例的具有用于访问图3A的分析服务的示例API的第一表,以及具有可以使用图3A的分析服务在安卓或微软手机环境中实现的示例用例的表。
图8-10是图示根据一个或多个实施例的用于提取和共享应用有关用户数据的示例方法的流程图。
图11是在其中可以实现一些所描述的实施例的示例计算系统的图。
图12图示了在其中可以实现所描述的实施例、技术和技术的合适的云支持环境的一般化示例。
图13是可以结合本文所描述的技术使用的示例移动设备。
具体实施方式
用户在应用中做什么(例如,浏览特定类型的餐馆、选择“喜欢”来表达对餐馆的积极偏好等)反映了用户的兴趣和偏好。这样的应用内用户数据可以被用作行为分析数据,并且可以是提供个性化用户体验和新功能的关键。然而,提取分析信息可能需要的高开发人员的努力阻止其广泛使用,现代应用的孤立性质限制了其实用性。
尽管它们有价值,但今天很少使用应用内行为分析。有两个关键原因。首先,提取信息的成本和复杂度很高,即使对于有经验的应用开发人员,她需要仔细地调整代码以捕获应用中的用户活动,然后推断关于活动的语义上有意义的信息。后者包括用户在应用中消耗的什么内容的语义(例如,素食餐馆)以及她如何与其交互(例如,她查看菜单或预定桌子)。现有的应用内分析系统不足以达到这一目的,因为它们达不到自动地提供语义信息,这是行为分析的关键。例如,他们可以记录一个点击事件,但不能报告它在与餐馆相关联的“喜欢”按钮上。
第二,由于安全和隐私的原因,今天的应用在孤岛中工作。移动操作系统(如iOS和微软手机操作系统)不允许应用在本地共享数据。因此,即使应用可以捕获用户的应用内行为,该信息也无法被其他应用访问。即使应用可以共享数据,协调行为数据交换的中央服务的缺乏可能会损害互操作性。这种孤立的结构限制了行为分析的实用性-因为典型的应用在短时间内仅观察用户活动的狭窄方面。从多个应用聚合信息可以提供用户的行为的整体和更准确的视图,并在应用之间共享数据可以使能新功能。例如,菜谱应用(诸如Epicurious)可以基于她在餐馆应用(如Yelp)中重复地搜索的日本餐馆的信息向用户建议日本菜谱。一个由于孤立的应用数据而今天不存在的新颖的应用可以聚合或混搭(mashup)用户在各种应用(诸如Pandora和Netflix)中消耗的所有数字媒体(例如,歌曲、电影、书籍等),以便用户可以稍后在一个地方搜索它们。该信息还可以有益于当今移动OS的第一方服务,诸如个人数字助理(Siri、Cortana、Google Now)。当用户要求数字助理打电话给餐馆或订购比萨饼时,助理可以使用餐馆预订应用或菜谱应用中的用户活动自动决定要打电话给哪种类型的或特定的餐馆(图7的表2中图示了本文所描述的技术的新用例的几个示例)。
根据本文所描述的技术,可以使用分析服务(其包括跟踪器部件、分析器部件和存储部件)来提取和共享应用有关用户数据(例如,行为分析数据)。分析服务可以被实现为例如设备OS的一部分,以在不需要开发人员的努力并且不需要用户数据漏出的情况下通过分析应用内交互并且使信息在应用之间可用来提取行为信息。更具体地,服务可以实现两阶段算法。它利用实体模板的简单匹配来代替移动设备上的昂贵的实体提取任务,其是由昂贵的文本挖掘算法离线地在云中并以用户不可知的方式自动地计算的。另外,提供了使能跨应用的有用的数据共享的分析数据的提取。分析服务将应用中的每个UI元素的内容表示为实体,其由名称和附加元数据(诸如名称所指的事物的类型)构成。然而,简单地提取应用页面中的所有实体是不够的,因为仅它们的子集可能与用户相关。因此,分析服务将实体与用户动作相结合,以生成行为数据项(BDI)(也称为用户数据项UDI)。动作以及其他使用统计(例如,用户是否轻敲实体、用户花费多少时间与实体进行交互)允许推断用户对它们的兴趣。
相同页面中的实体可以是相关的;例如,餐馆名称、其地址、及其电话号码都是相关的。分析服务捕获这种关系,以使应用能够自动完成任务(例如,呼叫给定的餐馆)。分析服务将从所有应用中收集的行为数据(例如,BDI/UDI)存储在应用(有权限)可以以编程方式查询(例如使用类似SQL的声明性语言)的OS保护的分析存储装置中。分析服务还可以为OS、OS服务和应用提供API,以消耗来自分析存储装置或来自另一存储装置(例如,云BDI/UDI存储装置)的行为信息(例如,BDI)。
由分析服务提取、聚合和共享的行为/用户应用有关数据(例如,BDI/UDI)可以使能以下场景中的一个或多个。首先,它将使能新的OS特征。当用户在屏幕上(在应用程序内)选择一些文本时,OS将自动显示上下文菜单,该菜单取决于所选择的文本是电话号码还是歌曲来分别给出“拨打电话”或“从在线商店购买”的选项。另一场景是任务完成,其中OS自动学习完成任务(诸如预订餐馆)所需的UI动作的顺序,并且可以通过使用类似可访问性服务来重放宏。
第二,分析服务将帮助OS提供的第一方应用提供个性化体验。个人数字助理(例如,Cortana、Siri、Google Now)可以基于用户如何与第三方音乐应用的交互来推荐应用。当用户在应用中浏览餐馆名称并说“Cortana,针对此做出预订”时,数字助理还会知道用户所指的是哪个餐馆。
最后,来自分析服务的行为数据(例如,BDI/UDI)将能够在现有第三方应用中实现新特征(例如,食品应用将基于用户在其他应用中浏览的菜肴和餐馆来对菜谱进行排序)。分析服务还可以使能新类型的应用,例如,用于从各种应用收集的关于晚餐计划或即将到来的旅行的所有信息的自动混搭。
本文所公开的分析服务使用自动实体提取技术并且可以被实现为OS服务。为了解决现有实体提取技术的效率-隐私折衷,分析服务可以使用分析引擎(例如,如下文所述的跟踪器和分析器)和分析存储装置来实现设备云混合方案,该分析引擎捕获应用内容和用户的应用内活动并推断其语义,该分析存储装置存储来自多个应用的行为数据,并为OS或第一方应用和第三方应用提供抽象以编程方式的访问它们。
图1是图示可以在移动设备上实现的一个或多个应用程序(“应用”)110的示例性移动设备100的示意图。在一些示例中,移动设备100在用户界面130(例如,触摸屏显示器)上为每个应用110呈现图标120,其使得应用110能够在移动设备100上被执行。移动设备100可以包括任意数量的应用110,其使得移动设备100能够如本文所描述的那样运行。
应用110包括一个或多个页面类140,每个页面类140由一个或多个页面实例化。在一些示例中,每个页面包括一个或多个用户界面(UI)元素190。示例UI元素190包括按钮、文本框、列表和图像。在至少一些示例中,UI元素190包括内容和/或与内容相关联(例如,文本框包括文本串和/或与文本串相关联)。在至少一些示例中,UI元素190嵌套在另一UI元素190内。例如,“父”UI元素190(例如,列表)包括和/或包含“父”UI元素190内的一个或多个“子”UI元素190(例如,文本框)。一些UI元素190(例如,按钮)是交互式的并且具有相关联的事件处理程序。例如,用户通过与在至少一些移动设备100上提供的UI元素190和后退按钮交互来与应用110的页面进行交互和在应用110的页面之间导航。
在一些示例中,基于在其页面类140中定义的UI布局或结构将内容布置在页面上。例如,从相同页面类140实例化的页面具有相同的UI结构,但是潜在地具有不同的内容。在该示例中,餐馆预订应用110包括两个页面类140:与示出包括多个餐馆的列表的一个或多个第一页160相关联的第一类(“类1”)150和与示出与餐馆相关联的详细信息的一个或多个第二页180相关联的第二类(“类2”)170。应用110可以包括任何数量的页面类140,其使得应用110能够如本文所述地运行。
在该示例中,第一页面160包括使得餐馆能够从餐馆列表中被选择的UI元素190,并且第二页面180包括使信息能够被查看、餐馆能够被联系、菜单能够被查看、餐馆能够被认可或“喜欢”、和/或预订可以被做出的UI元素190。在该示例中,第一页面160可以被实例化以示出邻近例如移动设备100的当前位置的餐馆列表,并且第二页面180可以被实例化以显示与例如从在第一页面160上示出的列表中所选餐馆相关联的详细信息。每个页面能够被实例化任意次数,使得应用110能够如本文所描述的那样运行。
图2是图示被包括在应用110(图1所示)中的UI元素190(图1所示)之间的关系的示意图。用户与应用110内的UI元素190交互或访问应用110内的UI元素190。在该示例中,UI元素190被示意性地布置为树200中的节点。应用110包括一个或多个页面210,诸如第一页面160或第二页180。在该示例中,页面210包括第一表格或网格220和第二表格或网格230。例如,子UI元素190(例如,第一网格220或第二网格230)被包含在其父UI元素190(例如,页210)内。
在该示例中,第一网格220包括按钮240和列表260,按钮240包括文本250,列表260包括多个定制布置270。在该示例中,每个定制布置270包括第一文本280(例如,名称)和第二文本290(例如,地址)。在该示例中,第二网格230包括表291和包括文本293的按钮292。
至少一些应用110包括多个UI元素190的重复序列或模式294。在该示例中,包括相应的第一文本280和相应的第二文本290的每个定制布置270被标识为模式294。此外,至少一些应用110包括重复序列或模式窗口295,重复序列或模式窗口295包括多个模式294。在该示例中,同构对象的列表状结构(例如,模式294)被标识为模式窗口295。
图3A是图示包括一个或多个移动设备(诸如图1所示的包括分析服务的移动设备)以及通信地耦合到一个或多个移动设备的一个或多个服务器的示例系统300的示意图。更具体地,系统300包括经由网络330彼此通信地耦合的移动设备100、应用服务器310(例如,应用的市场)以及模板服务器320。移动设备100、应用服务器310和模板服务器320之间的通信可以通过任何有线连接或无线连接使用任何协议或机制进行。在这方面,网络330可以包括因特网、无线网络和/或有线网络中的一个或多个。
在该示例中,应用服务器310被配置为提供和/或存储一个或多个应用110。应用110被配置为向移动设备100提供功能。示例应用包括邮件应用程序、网络浏览器、日历应用程序、地址簿应用程序、消息传送程序、媒体应用程序、基于位置的服务、搜索程序等。应用110可以经由网络330与可访问的对应应用或服务(诸如web服务)进行通信。例如,应用110可以表示移动设备100上的客户端应用,其对应于在云中执行的服务器侧服务和/或在云、应用服务器310、模板服务器320和/或由移动设备100可访问的其他存储区域中存储的服务器侧部件。这样的示例减少了移动设备100上的计算和存储负担。
在该示例中,模板服务器320被配置为提供和/或存储一个或多个模板328。在至少一些示例中,一个或多个模板328由模板服务器320生成和/或用在应用服务器310处的应用110下载而可获得。应用110的结构属性(例如,UI结构)被利用来用在运行时期内保持有效的语义信息(例如,诸如实体类型的元数据)来注释应用110。每个模板328包括与UI元素190相关联的多个实体。至少一些UI元素190与单个实体相关联。示例单实体UI元素190包括文本框,文本框包括用于一种类型的信息(例如,餐馆名称、地址、电话号码)的文本。每个单实体UI元素190是独立可定制的,因此可以用精确语义指派。在一些示例中,每个UI元素的文本与名称、各种相关元数据和/或使用信息相关联。在一些示例中,模板328被配置为在运行时上下文中提供用户与应用110的交互,并且因此用移动设备100上的低开销使得应用110能够被更高效且有效地利用。
在一些示例中,在应用110被更新时和/或之后模板328被更新。例如,对应用110的更新是由移动设备100检测和/或识别的,并且基于应用更新的标识,由移动设备100自动请求和/或下载相关联的模板328。在另一示例中,由模板服务器320检测和/或识别更新的应用110在移动设备100上,并且更新的模板328基于更新的应用110的标识由模板服务器320来自动地生成。在又一示例中,更新的模板328与在更新的应用110被移动设备100下载之前与更新的应用110相关联,并且更新的模板328由移动设备100与更新的应用110同时或在更新的应用110之后下载。备选地,应用110和模板328可以由或从任何计算设备并且在任何时间来更新和/或下载,其使能系统300能够如本文所描述的那样运行。
在一些示例中,模板服务器320包括UI自动化部件322、模板生成部件324和工具部件326。UI自动化部件322被配置为自动导航应用110并捕获和/或记录从应用110以用户交互方式和/或不涉及人的参与地与一个或多个UI元素190的一个或多个用户交互。模板生成部件324被配置为提取UI元素190以及包含的文本、将UI元素190与实体相关联、并且生成包括UI元素190与相关联的实体的映射的模板328。工具部件326被配置为将记录代码注入到应用110中。至少一些模板328和记录代码被注入到移动设备100上的应用二进制代码中,以使得应用110在运行时期间提取一个或多个实体。备选地或附加地,模板328和/或记录代码可以在使得应用110能够如本文所描述的运行的任何级别处被注入。在至少一些示例中,在没有额外的开发者输入的情况下注入模板和/或记录代码,使得移动设备100被配置为执行如本文所述的功能而不修改底层应用110。
在该示例中,移动设备100被配置为从应用服务器310取回和/或下载一个或多个应用110和/或从模板服务器320取回和/或下载一个或多个模板328,并且在移动设备100处本地地存储一个或多个的应用110和一个或多个模板328。在至少一些示例中,应用服务器310从模板服务器320取回和/或下载一个或多个模板328,并且移动设备100从应用服务器310取回和/或下载一个或多个应用110及其相应的模板328。在一些示例中,移动设备100包括实体提取部件,诸如分析服务340,其被配置为记录用户交互并使用模板328来分析用户交互。在至少一些示例中,在使用模板328提取的UI元素中包含的实体包括指示内容的各种语义信息的名称和键值对的列表,以及关于实体出现在应用中何处的句法信息。例如:
名称=‘Izumi’,
信息={类型=‘餐馆’,菜肴=‘日本’,价格=‘便宜’},
应用=‘[餐馆应用名称]’,应用页面=0xAD4352,用户界面元素=0x3425A
所提取的实体可以被存储在实体表中,如果授权的许可,操作系统(OS)服务和其他应用110可以通过使用例如标准结构化查询语言(SQL)查询来进行查询。例如:
SELECT菜肴FROM[应用名称]
WHERE信息.类型=‘餐馆’
AND交互.轻敲数>10
参考图3A,移动设备100可以包括合适的电路、接口、逻辑和/或代码,并且可以包括应用空间111、操作系统112、存储器113、CPU 114、输入/输出(IO)子系统115、通信子系统116、显示器117和感知子系统180。
应用110中的一个或多个可以被下载并安装在设备100的应用空间中,作为应用110a,...,110b。应用中的每一个可以分别包括用户界面(UI)框架302a,...,302b,其可以允许设备100(例如,分析服务340)的一个或多个其他部件订阅通知并在UI事件(例如,用户使用该应用触摸按钮、输入文本、滚动、喜欢页面等)发生时获得通知。
分析服务340可以包括合适的电路、接口、逻辑和/或代码,并且可操作用于记录用户与应用110a,...,110b中的一个或多个的交互,并且使用模板328来分析用户交互,以及提取一个或多个用户数据项350,一个或多个用户数据项350可以被存储在存储装置346中。分析服务340可以包括跟踪器部件342、分析器部件344和存储部件346。跟踪器342和分析器344在本文中被称作为“分析引擎”。跟踪器342可操作用于捕获原始应用内容(例如,应用内数据348),其可以包括一个或多个事件304(例如,用户动作,诸如按钮点击、按下喜欢按钮等等)和具有一个或多个文本串307的UI树306(UI树可以包括用户在应用的给定页面类中消耗的内容,包括该页面类中的文本串;例如,用户可以喜欢在给定的餐馆应用页面上示出的餐馆,并且餐馆名称将是文本字符串307,喜欢动作可以是事件304,并且喜欢动作被输入的页面类可以是UI树306)。跟踪器342将应用内数据348传送到分析器344,以使用模板328中的一个或多个进一步处理和生成用户数据项(UDI)350。UDI也可以被称为行为数据项(BDI)。
在生成一个或多个UDI 350之后,它们可以存储在存储装置346中,存储装置346可以由一个或多个其他应用,OS 112、OS 112的服务或另一设备(例如,服务器310)访问,使得UDI内容在应用、服务和设备之间被共享。
存储装置346可以在设备100(即,本地)和/或云(例如,在云服务器处,诸如图5中的512、310和/或320)中实现。设备100处的存储装置346在设备100处存储与应用110的使用相关联的UDI350。然而,如果该存储装置被实现在云服务器,则存储装置346可以不仅在设备100处还在(相同或不同的用户的)多个其他设备处存储与应用使用相关联的UDI。在这方面,存储装置346可附加地将对UDI的访问提供给来自相同的设备100和/或来自(相同用户或不同用户的)其他设备对应用、OS、OS服务。可以使用API并在访问认证时提供对UDI信息的访问(如图4所示)。根据一个或多个实施例,存储装置346还可以自动向一个或多个应用110、OS 112、OS服务(例如,可以是OS服务的数字个人助理或独立应用)和/或具有预授权访问并具有对一种或多种类型的UDI的订阅的一个或多个其他设备提供UDI。
主处理器114可以包括合适的逻辑、电路、接口和/或代码,其可操作用于处理数据,和/或控制和/或管理计算设备100的操作,和/或在其中执行的与本文所述的应用有关数据功能的提取和共享有关的任务和/或应用。在这方面,主处理器114可操作用于通过利用例如一个或多个控制信号来配置和/或控制计算设备100的各种部件和/或子系统的操作。主处理器114使能可以在例如系统存储器113中存储的应用、程序和/或代码的运行和/或执行。在某些实例中,在计算设备100上运行和/或执行的一个或多个应用(例如,应用110a,...,110b)可以生成和/或更新可以经由显示器117渲染的视频内容。
系统存储器113可以包括合适的逻辑、电路、接口和/或代码,其可以使能可以被使用、消耗和/或处理的数据、代码和/或其他信息的永久和/或非永久性存储、缓冲和/或取出。在这方面,系统存储器113可以包括不同的存储器技术,包括例如只读存储器(ROM)、随机存取存储器(RAM)、闪存、固态驱动器(SSD)和/可编程门阵列(FPGA)。系统存储器113可以存储例如配置数据,配置数据可以包括参数和/或代码,代码包括软件和/或固件。
通信子系统116可以包括合适的逻辑、电路、接口和/或代码,其可操作用于诸如经由一个或多个有线和/或无线连接以及网络330从计算设备100和/或向计算设备100传送数据。通信子系统116可以被配置为支持一个或多个有线协议(例如,以太网标准、MOCA等)和/或无线协议或接口(例如,CDMA、WCDMA、TDMA、GSM、GPRS、UMTS、EDGE、EGPRS、OFDM、TD-SCDMA、HSDPA、LTE、WiMAX、WiFi、蓝牙和/或任何其它可用的无线协议/接口),促进向计算设备102发送信号和/或从计算设备102接收信号,和/或根据适用的有线或无线协议对所发送或所接收的信号的处理。在这方面,信号处理操作可以包括滤波、放大、模数转换和/或数模转换、基带信号的上变频/下变频、编码/解码、加密/解密、和/或调制/解调。根据本公开的实施例,通信子系统116可以经由网络330向例如服务器310、320提供有线和/或无线连接。网络330可以包括因特网和/或一个或多个有线和/或无线网络。
感知子系统180可以包括用于获得和/或生成感知信息的合适的逻辑、电路、接口和/或代码,其可以涉及计算设备100、其用户和/或其环境。例如,感知子系统180可以包括定位传感器或位置传感器(例如,GPS或其他基于GNSS的传感器)、环境条件(例如,温度、湿度或光)传感器和/或运动有关传感器(例如,加速度计、陀螺仪、计步器和/或高度计)。
I/O子系统115可以包括适合的逻辑、电路、接口和/或代码,用于使用户能够与设备100进行交互,使能从用户获得输入和/或向用户提供输出。I/O子系统115可以支持各种类型的输入和/或输出,包括例如视频、音频和/或文本。在这方面,在I/O子系统115的操作期间,在计算设备100外部或集成在计算设备100内的专用I/O设备和/或部件可以被利用用于输入和/或输出数据。示例性I/O设备可以包括一个或多个内置摄像机(例如,前置和/或后置摄像机)、一个或多个显示器(例如,显示器117)、鼠标、键盘、触摸屏、语音输入接口和其他输入/输出接口或设备。对于视频输出,I/O子系统115可操作用于生成和/或处理视频内容、图形和/或文本数据,和/或基于此生成视频帧以例如经由显示器117进行显示。
显示器117可以包括可以使能视频内容的显示的合适的逻辑、电路、接口和/或代码,视频内容可以经由I/O子系统115来操作和/或处理。
图3B是图示根据一个或多个实施例的可以由图3A的分析服务使用的示例模板的示意图。参考图3B,可以为给定应用(例如App B)的给定页面类(例如,页面类A)生成示例模板328。模板328可以包括多个UI元素350,...,352,每个UI元素包括实体类型(例如,354,...,356)和相关联的实体组标识(例如,358,...,360)。UI元素还可以包括动作类型信息(或动作语义信息)362,...,364。图6图示了根据一个或多个实施例的餐饮有关应用的示例实体模板的部分。
根据一个或多个实施例,模板328可以包括实体关系信息366。实体关系366可以指示两个或更多个实体(或UI元素)350,...,352之间的关系。组标识信息358,...,360可以是一种类型的实体关系信息366。然而,实体关系信息366还可以指示其他类型的关系,诸如直接/显式关系。例如,实体关系信息366可以指示实体“汉堡王”和实体“快餐店”之间的明确关系(即,“汉堡王”是“快餐店”)。
分析引擎(跟踪器342和分析器344)。
在高水平上,分析引擎(342和344共同地)执行两个任务:(1)(由跟踪器342)捕获原始应用内容和应用内用户动作,以及(2)(由分析器344)推断内容和动作的语义。
捕获原始应用内容和用户动作的任务可以通过检测仪表装置应用来自动完成,或通过使用由OS提供的可访问性服务(例如,使用应用110的UI框架302a,...,302b)来完成。在这两种情况下,分析服务340可以捕获当前在设备屏幕上显示的(应用的)所有UI元素和内容(例如,UI树306和文本串307)以及诸如轻敲和页面转换的所有用户动作(例如事件304)。
在上述步骤中捕获的内容可能缺少语义。推断语义的任务更多地涉及并由分析器344执行。关键的挑战在于完成低开销的设备上服务,该低开销的设备上服务执行实体提取分析而不将任务卸载到云(隐私和低开销),也不将任务卸载到开发人员(零开发者努力)。我们对这个问题的解决方案来自于对移动应用如何显示内容的两个关键观察。
作为背景的一种方式,现代移动应用显示被组织为页面集合的内容,用户可以与页面集合交互并在页面集合间导航。典型的应用由少量的页面类构成,每个类都可以被实例化为与不同内容一样多的页面实例(或简称为页面)(例如,在餐馆应用中,奈良和泉津餐馆的详细信息被显示在“餐馆详细介绍”(“RestaurantDetails”)页面类的两个分离的实例中)。每个页面根据其页面类中定义的UI布局来显示内容。应用页面有UI元素集合,诸如按钮、文本框、列表和图像。页面中的元素被组织在UI树(如DOM树)中,其中节点是UI元素,并且子元素被包含在其父元素中。一些UI元素(例如,按钮)是可交互的并且具有相关联的事件处理程序。
使用上述术语,我们观察以下各项:
单例实体。
许多UI元素包含单个实体。例如,页面中的标题文本框(“TextBlock”)通常包含一种类型的信息,例如餐馆的名称。事实上,开发人员倾向于将各种类型的信息(诸如餐馆名称、地址和电话号码)放在不同的UI元素中,使得它们可以独立地被定制用于外观和轻敲动作。这使得能够为这些UI元素分配精确的语义。
少量、稳定的UI结构。
应用页面从少量页面类被实例化。这样可以通过在少量页面类中注释UI元素来覆盖应用中的所有UI元素。此外,注释随着时间保持稳定:注释为餐馆的UI元素可以在运行时被实例化,可能会有无数的名称,所有这些名称都将是餐馆。这意味着UI元素可以一旦离线而被注释,并稍后在运行时期间被重复使用。这个过程没有开发人员(也没有用户)参与,所以它可以离线执行,因此可能是昂贵的。
上述观察导致分析服务340的新颖的两阶段架构,如图所示。
给定从其中我们想要提取行为分析的应用,离线和没有任何用户参与,分析服务340利用UI自动化系统自动执行应用,UI自动化系统自动与应用交互,以通过各种应用页面导航并捕获由应用在运行时期间显示的所有内容。数据包括用户在各种应用页面(例如,在列表UI元素的列表项(“ListItem”)中包含的文本)上消耗的内容和用户动作(例如各种UI元素的轻敲)。模板生成模块324通过使用复杂实体提取技术来处理这些原始内容,以在应用中为每个页面类产生实体模板。页面模板是用其语义类别或实体类型(例如餐馆名称、歌曲标题、菜谱名称等)注释的UI元素的列表。
在线,在设备上的阶段:在运行时,跟踪器342捕获如本文所述的原始应用内数据。所收集的数据具有与UI自动化模块离线生成的格式相似的格式,但是这里捕获的内容是用户生成的,因此可能对隐私敏感。一旦数据被捕获,数据就如下被(由分析器344)分析。首先,对于每个应用页面,使用实体模板,将原始数据中出现的所有文本被分类为预定义的类别,例如企业名称、人员或位置。第二,通过使用模板,各种分类的文本可以被分组,使得每个组代表一个逻辑实体。例如,餐馆名称、其地址及其电话号码可以全部被组合成一个实体。在这方面,使用实体模板328,在线设备上阶段使用一个或多个匹配操作。
应用的实体模板是模板的集合,一个模板用于应用的每个页面类。每个模板本质上是一个注释的UI树。如图6所示,树中的每个UI元素用其叶到根路径表示并用实体类型(例如,餐馆)和实体组标识符(例如,组14)注释。空值的实体类型或组标识符指示UI元素的内容不能被分类为已知实体类型(例如文本“版权”)。组标识符允许聚类实体,使得地址和菜肴类型的实体被归因于正确的餐馆实体。类似地,包含用户动作的诸如按钮(“Button”)(在附图中未示出)的UI元素用其类型和组进行注释。为了生成实体模板(诸如刚描述的实体模板),分析服务340需要(1)生成应用页面的内容,以及(2)识别那些页面中的实体。在示例实施例中,可以广泛地使用组标识(和组标识符),使得如果这些实体以某种方式彼此相关联,则两个或更多个实体可以被放置在相同组中。例如,“喜欢”按钮和餐馆名称可以在相同组中,因为“喜欢”按钮指的是餐馆,如果地址属于餐馆等,则地址和餐馆名称在相同组中。
生成应用页面的内容。
为了捕获应用在运行时显示的内容,分析服务340可以使用UI自动化工具(用于WP和安卓),该UI自动化工具可以自动启动应用,与其UI元素交互(通过轻敲按钮、填写文本框、滑动页面),并导航到各种页面。服务340可以在云中运行UI自动化工具(例如,在模板服务器320处实现的)。UI自动化工具被配置为访问应用中的所有页面(或运行很长时间),并记录所有访问页面的UI结构和内容。为了获得良好的覆盖,UI自动化工具还会为需要用户名/密码的应用给定用户名/密码,并可能会执行多次以记录内容。
识别应用页面中的实体。
分析服务340从由UI自动化工具捕获的应用内容(当前仅文本)中提取实体。所提取的实体然后被用于生成实体模板。给定一些文本(网络文档、新闻文章),目标是标识命名的实体的提及(例如,酒店名称)。本质上,这是一个分类过程,其决定给定字符串指的什么实体。然而,由于含糊不清,可能并不总是确定名称所指的真实实体;在这种情况下,它返回具有相关联的概率的候选实体的列表。
实体提取中的关键挑战是消歧:实体的名称通常是不明确的,并且可以有许多不同的含义。例如,根据其使用,名称“Via Tribunali”可以指纽约的餐馆或意大利的街道名称。为了标识名称所指的正确实体,实体提取算法利用名称的“上下文”(即周围的文本),并将其与某些知识库或字典进行比较。在上述示例中,如果名称“Via Tribunali”出现在提及其他餐馆或食品实体的文档中,则它将以高概率被分类为餐馆。另一方面,如果文档包含其他地址、电话号码和地图,则很可能是街道名称。
UI自动化工具可以组装实体模板(例如,328)。对于页面类中的每个UI元素,UI自动化工具产生具有关联概率的可能的实体类型集合。对于每个元素,可以选择具有最大概率的实体类型。可以通过简单地将上面发现的模式序列应用到UI树的叶节点来分配实体组标识符。
Appstract API和用例。
分析服务340可以向OS和应用提供API。更具体地,分析服务340可以提供三个数据抽象:实体、用户动作和行为数据项(BDI)(或用户数据项、UDI;BDI和UDI在本文中可被互换地使用)。实体捕获用户消耗的“什么”内容。它们由类型和名称构成,例如<餐馆名称,“奈良”>。动作捕获用户“如何”与这些内容进行交互。动作也由类型和名称构成,其中可能的类型是“积极”、“消极”或“中性”(稍后有更多关于这一点)。动作的示例是<积极动作,“预定表”>。通过模板匹配提取实体和动作。实体、动作和交互历史被组合以形成BDI,其格式如下:
BDI:<标识符,时间戳,类型,名称,有关实体,动作,轻敲数,花费时间,BDI信息>
BDI信息:<应用名称,应用页,被点击,用户界面坐标,用户界面跟踪>。
单个BDI可以包含多个有关实体和多个动作(使用实体组标识符聚合的)。BDI还包含感兴趣的各种隐含的指示符。
1)积极情绪动作:在如具有标签(例如“喜欢”)或表明积极情绪的发射装置(例如,呼叫号码)的按钮或超链接的UI元素上的轻敲事件;同样,针对消极和中性的情绪动作。
2)轻敲事件的时间和频率:用户在页面上花费的时间以及她如何集中地交互。
3)相同实体随着时间和在不同应用中的再发生(以数据库计数计算)。
BDI信息包含关于实体在哪里被捕获(应用、页面类、UI元素坐标)、其是否被点击、导致包含其的页面的UI事件的顺序(UI跟踪)是什么的信息。此跟踪可被用于自动重播用户交互。BDI信息旨在仅由OS使用。
BDI给出用户交互的压缩表示,不仅因为它们聚合实体和随时间发生的动作,而且还因为“不相关”的内容被丢弃。一旦与应用的交互结束(即,应用被终止或在一段时间保持空闲),交互日志将被处理以消除由于后退过渡而产生的循环-这些可能包含用户错误地查看或者不是感兴趣的内容。此外,在具有相同类型的多个实体(例如,项目列表)的页面类中,仅保留用户与其进行交互的实体(例如,轻敲的项目)。
分析服务340可以提供两种类型的API(例如,图7中的表1)。在线、OS和应用可以请求当前在屏幕上显示的内容,或者可以在特定用户动作或实体类型发生时(例如当在“喜欢”上发生点击时的页面内容)请求被通知。通过这个API,能够获得用户的当前活动的一种快照。备选地,它展示了类似SQL的界面。以下是用于发现关于用户的菜肴偏好的查询的示例:
SELECT Appstract.元数据.菜肴,COUNT(实体标识)AS TOT
FROM Appstract
WHERE Appstract.POS_ACTION LIKE‘AddToFav’
GROUP BY菜肴
ORDER BY TOT;
上述查询返回根据发生排序的、用户添加到他的收藏夹的烹饪类型的实体(即餐馆)。
图7中的表2列出了可以使用分析服务340来实现的八个示例用例。由于缺乏空间,我们简要地仅描述了其中的四个。
上下文通知:预订的餐馆(由“预定表”动作检测)或用户喜欢(点击“喜欢”)的歌曲是“相关”实体的示例。OS用过滤器订阅对感兴趣的事件和/或实体的当前查看,并及时地针对其他应用生成消耗的通知。例如,日历应用可以自动创建餐馆预订的条目,并且如Google地图这样的地图应用可以缓存地址并在稍后提供导航。
应用任务器:可访问性服务(例如Google TalkBack)以及个人数字助理可以使用Appstract用于任务完成。想像用户要求“播放音乐”。应用任务在分析存储装置中查询与每个键入歌曲BDI相关联的UI跟踪,并推断:1)哪个应用可用于任务,以及2)任务涉及的UI事件序列。使用这种任务模板,服务可以更有效地引导用户,甚至自动完成任务。例如,如果UI跟踪报告在“MusicSelect.xaml”页面中,包含键入歌曲类型(“TYPE MUSIC GENRE”)实体的列表项0x1489A被单击,则当重播跟踪时,服务将自动地单击在用户的分析存储装置(“Analytics Store”)中发现的最常见的键入歌曲类型(“TYPE MUSIC GENRE”)实体(或者如果未知,则会向用户请求它)。为了透明地向用户重播UI事件序列,可以扩展如安卓可访问性服务的服务。
排序的列表(“RankedList”)和音乐新闻阅读器(“MusicNewsReader”):排序的列表是一种类型UI元素,其允许应用开发人员快速将个性化构建到他们的应用中。它提供了简单而强大的抽象。从开发人员的角度来看,这和创建列表UI元素一样简单(没有SQL查询,没有排序逻辑)。从功能的角度来看,它是强大的,因为它使用从不同类的多个应用中提取的行为分析来使能对象的排名。我们构建了音乐-新闻读取器(图4(d)),其使用这个API来基于用户的“最爱”音乐艺术家(定义为“用户最常听的音乐艺术家”(list.orderBy(键入音乐歌曲(“TYPE MUSIC SONG”),键入最频繁(“TYPE MOST FREQUENT”))))来对音乐新闻进行排名。该API可以如何被使用的其它示例是基于烹饪偏好对烹饪书籍进行排序的购物应用或者基于音乐偏好来建议铃声的应用。
图4是图示根据一个或多个实施例的用于从分析服务访问用户数据项(UDI)的示例API使用的示意图。参考图4,可以使用例如查询API 404来访问由分析器344生成的UDI和/或在存储装置346中存储的UDI中的一个或多个。例如,应用110a,...,110b中的一个或多个可以请求对UDI的访问,并且访问控制模块402(其可以是分析服务340的一部分)可以确定请求应用是否被授权访问存储装置346和/或分析器344以获得UDI。访问控制402可以经由策略文档来指定,该策略文档可以指定什么类型的数据可以在应用、OS、OS服务和/或其他设备(例如,相同用户的其他设备)之间被共享。
图5是图示了根据一个或多个实施例的分析服务的示例实现的示意图。如在图5中的实现520所看到的,分析服务340可以被实现为一个或多个现有应用(例如,502,...,504)的一部分。在实现530中,分析服务340可以作为独立应用被实现在设备100上。在实现540中,分析服务340可以被实现在云服务器512中,并且应用502,...504可以经由网络510访问分析服务340。分析服务340也可以被部分地实现在云服务器512处(例如,只有存储装置346可以是在服务器512处),并且跟踪器和分析器可以被实现在一个或多个应用502,...,504处(和/或用于对应设备的操作系统的一部分)。
图8-10是图示了根据一个或多个实施例的用于提取和共享应用有关用户数据的示例方法的流程图。参考图3A-8,示例方法800可以从810处当在计算设备(100)上运行的多个应用(110a)中的至少一个的应用内数据被提取时开始。应用内数据(348)包括在至少一个应用正在运行时由用户(例如,306、307)消耗的内容和/或采取的与内容有关的至少一个用户动作(304)。在820处,可以使用与至少一个应用相关联的实体模板(328)来将应用内数据内的多个文本串(307)分类成由实体模板(328)指定的多个数据类型(354,...,356)中的至少一个。在830处,通过组合所分类的多个文本串(307)的至少一部分,(例如由分析器344)生成至少一个用户数据项(UDI350)。至少一个UDI 350可以由以下各项中的至少一项来访问:多个应用中的第二应用、在计算设备上运行的操作系统(112)、操作系统的服务(例如,数字个人辅助服务)、和/或在至少另一设备(例如,设备100的用户的至少另一设备)上运行的服务。
参考图3A-7和9,示例方法900可以在902处当分析器服务340内的跟踪器342可以检测由用户动作触发的与应用(例如,110)的页面类有关的用户界面(UI)事件(例如,304)时开始。UI事件可以与页面类的UI树306相关联。可以使用分析服务340内的跟踪器部件342来执行检测,其可以是计算设备的操作系统112的一部分。可以在应用110在计算设备上运行时执行检测。
在904处,分析器服务340内的分析器344可以接收与在计算设备上运行的应用110相关联的多个模板328,多个模板中的每一个模板包括多个实体类型(354,...,356)和动作类型(362,...,364)。
在906处,分析器344可以将UI树中的多个文本串与多个模板328中的至少一个模板匹配,以至少用模板328内的多个实体类型的实体类型或多个动作类型的动作类型来对UI树中的多个文本串进行分类。
在908处,分析器344可以通过组合UI树内经分类的多个文本串的至少一部分来生成行为数据项(BDI)(例如,UDI 350)。
在910处,分析服务340可以向以下项中的至少一项提供所生成的BDI(例如,如在存储装置346中存储的):在客户端设备上运行的另一应用、在客户端设备上运行的一个或多个服务、和/或另一设备。
参考图3A-7和10,示例方法1000可以在1002开始,分析器服务340内的跟踪器342可以检测由用户动作触发的与应用(例如,110)的页面类有关的用户界面(UI)事件(例如,304)。UI事件可以与页面类的UI树306相关联。可以使用分析服务340内的跟踪器部件342来执行检测,其可以是计算设备的操作系统112的一部分。可以在应用110在计算设备上运行时执行检测。
在1004处,分析器服务340内的分析器344可以将UI树(例如,306)内的多个文本(例如,307)与应用(例如,110a,...,110b中的一个或多个)的多个模板(例如,328)中的至少一个进行匹配,以至少用名称、数据类型和/或组标识(或由实体关系信息366指定的另一类型的实体关系)来对UI树中的多个文本进行分类。
在1006处,分析器服务340内的分析器344可以通过组合UI树中经分类的多个实体的至少一部分来生成至少一个用户数据项(例如,UDI 350),其与至少一个用户动作相关联,并且具有相同的组标识(或者经由所标示的实体关系366以其他方式相关联)。
在1008处,分析服务340可以在网络存储装置(例如,存储装置346,其可以是以硬件和/或软件实现的设备上或远程存储装置)中存储所生成的至少一个UDI。
在1010处,分析服务340可以提供对存储装置346和所存储的至少一个UDI的访问。例如,可以向在客户端设备上运行的至少另一应用、OS 112、OS 112的服务(例如,数字个人助理)和/或其他计算设备提供访问。
图11是示例计算系统的图,在其中一些所描述的实施例可以被实现。计算系统1100不旨在对使用或功能性的范围提出任何限制,因为创新可以在多种通用或专用计算系统中被实现。
参考图11,计算系统1100包括一个或多个处理单元1110、1115和存储器1120、1125。在图11中,该基本配置1130被包括在虚线内。处理单元1110、1115执行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器、或任何其他类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图11示出了中央处理单元1110以及图形处理单元或协处理单元1115。有形存储器1120、1125可以是可由处理单元访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器例如ROM、EEPROM、闪存等)、或两者的某些组合。存储器1120、1125以可适于由处理单元执行的计算机可执行指令的形式存储实现本文描述的一个或多个创新的软件1180。
计算系统还可以具有附加特征。例如,计算系统1100包括存储装置1140、一个或多个输入设备1150、一个或多个输出设备1160以及一个或多个通信连接1170。诸如总线、控制器或网络的互连机构(未示出)将计算系统1100的部件互连。通常,操作系统软件(未示出)为计算系统1100中执行的其他软件提供操作环境,并且协调计算系统1100的部件的活动。
有形存储器1140可以是可移除的或不可移除的,并且包括磁盘,磁带或盒、CD-ROM、DVD或可以用于存储信息并且可以在计算系统1100内被访问的任何其他介质。存储装置1140存储实现本文所述的一个或多个创新的软件1180的指令。
输入设备1150可以是触摸输入设备,诸如键盘、鼠标、笔或轨迹球、语音输入设备、扫描设备或向计算系统1100提供输入的另一设备。对于视频编码,输入设备1150可以是摄像机、视频卡、TV调谐器卡、或以模拟或数字形式接受视频输入的类似设备、或者将视频采样读取到计算系统1100中的CD-ROM或CD-RW。输出设备1160可以是显示器、打印机、扬声器、CD刻录机或提供来自计算系统1100的输出的另一设备。
通信连接1170使能通过通信介质向另一计算实体的通信。通信介质传送诸如计算机可执行指令、音频或视频输入或输出、或调制数据信号中的其他数据的信息。调制数据信号是具有以将信息编码到信号中的方式设置的或改变得其特征中的一个或多个特征的信号。作为示例而非限制,通信介质可以使用电、光、RF或其它载体。
可以在目标实际或虚拟处理器上的计算系统中执行的计算机可执行指令(诸如在程序模块中包括的那些计算机可执行指令)的一般上下文中描述创新。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、部件、数据结构等。在各种实施例中,程序模块的功能可以根据需要在程序模块之间被组合或拆分。程序模块的计算机可执行指令可以在本地或分布式计算系统内执行。
术语“系统”和“设备”在本文中可互换使用。除非上下文另有明确指示,否则这两个术语均不意味着对一种类型的计算系统或计算设备的任何限制。通常,计算系统或计算设备可以是本地的或分布式的,并且可以包括具有实现本文所描述的功能的软件的专用硬件和/或通用硬件的任何组合。
为了呈现,详细描述使用如“确定”和“使用”的术语来描述计算系统中的计算机操作。这些术语是由计算机执行的操作的高级抽象,不应与人类执行的动作混淆。与这些术语相对应的实际计算机操作取决于实现。
图12图示了其中可以实现所描述的实施例、技术和工艺的合适的云支持环境1200的一般化示例。在示例环境1200中,各种类型的服务(例如,计算服务)由云1210提供。例如,云1210可以包括可以位于中央或分布式的计算设备的集合,其向经由诸如因特网的网络连接的各种类型的用户和设备提供基于云的服务。实现环境1200可以以不同的方式用于完成计算任务。例如,一些任务(例如,处理用户输入和呈现用户界面)可以在本地计算设备(例如,连接的设备1230、1240、1250)上执行,而其他任务(例如,在随后处理中将被使用的数据的存储)可以在云1210中执行。
在示例环境1200中,云1210为具有各种屏幕能力的连接设备1230、1240、1250提供服务。连接设备1230表示具有计算机屏幕1235(例如,中型屏幕)的设备。例如,连接设备1230可以是诸如台式计算机、膝上型计算机、笔记本计算机、上网本等的个人计算机。连接设备1240表示具有移动设备屏幕1245(例如,小尺寸屏幕)的设备。例如,连接设备1240可以是移动电话、智能电话、个人数字助理、平板计算机等。连接设备1250表示具有大屏幕1255的设备。例如,连接的设备1250可以是电视屏幕(例如,智能电视)或连接到电视机的另一设备(例如,机顶盒或游戏控制台)或类似设备。
连接设备1230、1240和/或1250中的一个或多个可以包括触摸屏能力。触摸屏可以以不同的方式接受输入。例如,当物体(例如,指尖或触控笔)扭曲或中断横过表面的电流时,电容式触摸屏检测触摸输入。作为另一示例,当来自光学传感器的光束被中断时,触摸屏可以使用光学传感器来检测触摸输入。与屏幕表面的物理接触对于某些触摸屏对输入的检测是不必要的。没有屏幕能力的设备也可以在示例环境1200中使用。例如,云1210可以为没有显示器的一个或多个计算机(例如,服务器计算机)提供服务。
可以由云1210通过分析服务1220提供与应用有关的用户数据的提取和共享有关的服务。服务1220可以具有类似于本文所述的分析服务340的功能。
在示例性环境1200中,云1210至少部分地使用RTAAS 1220向各种连接的设备1230、1240和/或1250提供本文描述的技术和解决方案中的一个或多个。
图13是可以结合本文所描述的技术使用的示例移动设备。参考图13,示例移动设备1300可以包括各种可选的硬件和软件部件,大体在1302处示出。移动设备1300中的任何部件1302可以与任何其他部件通信,尽管为了易于说明而未示出全部连接。移动设备1300可以是各种计算设备(例如,蜂窝电话、智能电话、手持计算机、个人数字助理(PDA)等)中的任何一个,并且可以允许与诸如蜂窝、卫星或其他网络的一个或多个移动通信网络1304的无线双向通信。
所图示的移动设备1300可以包括用于执行诸如信号编码、数据处理、输入/输出处理、功率控制和/或其他功能的任务的控制器或处理器1310(例如,信号处理器、微处理器、ASIC或其他控制和处理逻辑电路)。操作系统1312可以控制部件1302的分配和使用并支持一个或多个应用程序1314。应用程序可以包括常见的移动计算应用(例如,电子邮件应用、日历、联系人管理器、web浏览器、消息应用)、或任何其他计算应用。
所图示的移动设备1300可以包括存储器1320。存储器1320可以包括不可移除存储器1322和/或可移除存储器1324。不可移除存储器1322可以包括RAM、ROM、闪存、硬盘或其他公知的内存存储技术。可移除存储器1324可以包括闪存、或在GSM通信系统中公知的订户识别模块(SIM)卡、或诸如“智能卡”的其他公知的存储器存储技术。存储器1320可以用于存储用于运行操作系统1312和应用1314的数据和/或代码。示例数据可以包括网页、文本、图像、声音文件、视频数据或要经由一个或多个有线或无线网络向一个或多个网络服务器或其他设备发送和/或从一个或多个网络服务器或其他设备接收的其他数据集合。存储器1320可以用于存储诸如国际移动订户标识(IMSI)的订户标识符、以及诸如国际移动设备标识符(IMEI)的设备标识符。这样的标识符可以被发送到网络服务器以标识用户和设备。
移动设备1300可以支持一个或多个输入设备1330(诸如触摸屏1332、麦克风1334、摄像机1336、物理键盘1338和/或轨迹球1340)以及一个或多个输出设备1350(诸如扬声器1352和显示器1354)。其它可能的输出设备(未示出)可以包括压电或其他触觉输出设备。一些设备可以提供多于一个输入/输出功能。例如,触摸屏1332和显示器1354可以组合在单个输入/输出设备中。
输入设备1330可以包括自然用户界面(NUI)。NUI是使得用户能够以“自然”的方式与设备进行交互的任何接口技术,免于由诸如鼠标、键盘、遥控器等的输入设备施加的人为约束。NUI方法的示例包括依赖于语音识别、触摸和手写笔识别、屏幕上和屏幕附近两者的手势识别、空中手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势和机器智能的方法。NUI的其他示例包括使用加速度计/陀螺仪的运动手势检测、面部识别、3D显示、头部、眼睛和注视跟踪、沉浸式增强现实和虚拟现实系统(所有这些均提供了更自然的界面)、以及用于使用电场感测电极(EEG和相关方法)的感测脑活动的技术。因此,在一个具体示例中,操作系统1312或应用1314可以包括作为语音用户界面的一部分的语音识别软件,其允许用户经由语音命令来操作设备1300。此外,设备1300可以包括输入设备和软件,其允许用户经由用户的空间手势进行交互,诸如检测和解释手势以向游戏应用提供输入。
无线调制解调器1360可以耦合到天线(未示出),并且可以支持处理器1310和外部设备之间的双向通信,如本领域中所理解的。调制解调器1360被一般地示出,并且可以包括用于与移动通信网络1304和/或其他基于无线电的调制解调器(例如,蓝牙1364或Wi-Fi1362)进行通信的蜂窝调制解调器。无线调制解调器1360通常被配置为与一个或多个蜂窝网络通信,诸如用于单个蜂窝网络内、蜂窝网络之间、或者在移动设备与公共交换电话网(PSTN)之间的数据和语音通信的GSM网络。
移动设备还可以包括至少一个输入/输出端口1380、电源1382、卫星导航系统接收机1384(诸如全球定位系统(GPS)接收机)、加速度计1386和/或物理连接器1390,其可以是USB端口、IEEE 1394(FireWire)端口和/或RS-232端口。所图示的部件1302不是必需的或全部包括的,因为可以删除任何部件并且可以添加其他部件。
在本公开的示例实施例中,移动设备1300还可以包括分析服务1316,分析服务1316可以与(例如,独立应用)操作系统1312、应用1314、和/或设备处理器1310分离、或实现为操作系统1312、应用1314、和/或设备处理器1310的一部分。分析服务1316可以具有类似于分析服务340的功能,如本文所述。
尽管为了方便呈现以特定有序的顺序描述了所公开的方法中的一些的操作,但是应当理解,这种描述的方式涵盖重新布置,除非下文所述的特定语言需要特定的顺序。例如,顺序地描述的操作在某些情况下可以重新布置或同时执行。此外,为了简单起见,附图可能不示出所公开的方法可以结合其他方法使用的各种方式。
所公开的方法中的任何一种可被实现为在一个或多个计算机可读存储介质上存储的并在计算设备(例如,任何可用的计算设备,包括智能电话或其他包括计算硬件的移动设备)上执行的计算机可执行指令或计算机程序产品。计算机可读存储介质是可在计算环境内访问的任何可用有形介质(例如,诸如DVD或CD的一个或多个光学介质盘、易失性存储器部件(诸如DRAM或SRAM))、或非易失性存储器部件(例如,作为闪存或硬盘))。作为示例并参考图11,计算机可读存储介质包括存储器1120和1125以及存储装置1140。作为示例并参考图13,计算机可读存储介质可以包括存储器和存储装置1320、1322和1324。术语“计算机可读存储介质”不包括信号和载波。此外,术语“计算机可读存储介质”不包括通信连接(例如,1170、1360、1362和1364)。
根据本公开的示例性实施例,一种方法可以包括使用计算设备内的GNSS(例如,GPS)硬件处理器来跟踪一个或多个地理围栏。跟踪可以使用至少一个GNSS(例如,GPS)信号。跟踪期间的一个或多个地理围栏的状态变化可以保存在共享状态数据库中。共享状态数据库可以在GNSS硬件处理器和计算设备内的应用处理器之间共享。在检测到所述至少一个GNSS信号的劣化时,使用所述GNSS硬件处理器跟踪所述一个或多个地理围栏可以被切换到使用所述应用处理器来跟踪所述一个或多个地理围栏。在切换之后,可以使用在切换之前当前在共享状态数据库中存储的状态来设置一个或多个地理围栏中的每一个的初始状态。
根据本公开的另一示例实施例,计算设备可以包括GNSS(例如,GPS)硬件处理器,被配置为使用至少一个GNSS(例如,GPS)信号来跟踪一个或多个地理围栏;应用处理器,被配置为在所述至少一个GNSS信号劣化时接管跟踪所述一个或多个地理围栏;以及共享状态数据库,被配置为在跟踪期间存储所述一个或多个地理围栏的状态改变。共享状态数据库可以在GNSS硬件处理器和应用处理器之间被共享。当从使用GNSS硬件处理器跟踪一个或多个地理围栏切换到使用应用处理器跟踪一个或多个地理围栏时,应用处理器可以使用在切换之前当前存储在共享状态数据库中的状态,可操作地设置一个或多个地理围栏中的每一个的初始状态。在检测到所述至少一个GNSS信号的改进时,使用所述应用处理器跟踪所述一个或多个地理围栏可以被切换到使用所述GNSS硬件处理器跟踪所述一个或多个地理围栏。在切换回之后,可以使用在切换回之前当前存储在共享状态数据库中的状态来设置一个或多个地理围栏中的每一个的初始状态。
用于实现所公开的技术的任何计算机可执行指令以及在所公开的实施例的实现期间创建和使用的任何数据都可以被存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如专用软件应用或经由web浏览器或其他软件应用(诸如远程计算应用)访问或下载的软件应用的一部分。这样的软件可以例如在单个本地计算机(例如,任何合适的市售计算机)上或在网络环境中(例如,经由因特网、广域网、局域网、客户端-服务器网络(诸如云计算网络)或其他这样的网络)使用一个或多个网络计算机执行。
为了清楚起见,仅描述了基于软件的实现的某些所选的方面。省略了本领域公知的其他细节。例如,应当理解,所公开的技术不限于任何特定的计算机语言或程序。例如,所公开的技术可以由用C++、Java、Perl、JavaScript、Adobe Flash或任何其他合适的编程语言编写的软件来实现。同样地,所公开的技术不限于任何特定的计算机或硬件类型。合适的计算机和硬件的某些细节是公知的,并且不需要在本公开中详细阐述。
此外,基于软件的实施例(包括例如用于使计算机执行所公开的方法中的任意一个的计算机可执行指令)中的任意一个可以通过合适的通信部件上传、下载或远程访问。这种合适的通信部件包括例如因特网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信、或其他这样的通信手段。
所公开的方法、装置和系统不应被解释为以任何方式限制。相反,本公开针对各种公开的实施例(单独地和彼此的各种组合和子组合)的所有新颖和非显而易见的特征和方面。所公开的方法、装置和系统不限于任何特定方面或特征或其组合,所公开的实施例也不要求存在任何一个或多个具体优点或解决问题。
来自任何示例的技术可以与在其他示例中的任何一个或多个中描述的技术组合。鉴于所公开技术的原理的可以被应用到的许多可能的实施例,应当认识到,所示意的实施例是所公开技术的示例,并且不应被视为对所公开技术的范围的限制。相反,所公开的技术的范围包括所附权利要求的范围和精神所覆盖的范围。
Claims (15)
1.一种计算设备,包括:
处理单元;以及
存储器,存储多个应用程序(应用);
所述计算设备被配置为执行用于提取和共享应用程序有关的用户数据的操作,所述操作包括:
提取在所述计算设备上运行的所述多个应用中的至少一个应用的应用内数据,所述应用内数据包括在所述至少一个应用正在运行时由用户消耗的内容,和/或采取的与所述内容有关的至少一个用户动作;
使用与所述至少一个应用相关联的实体模板,将所述应用内数据内的多个文本串分类为由所述实体模板指定的多个数据类型中的至少一个数据类型;以及
通过组合经分类的所述多个文本串的至少一部分来生成至少一个用户数据项(UDI),所述至少一个UDI由以下项中的至少一项可访问:所述多个应用中的第二应用、在所述计算设备上运行的操作系统、所述操作系统的服务、和/或在至少另一设备上运行的服务。
2.根据权利要求1所述的计算设备,其中所述实体模板包括用于所述至少一个应用的对应的多个页面类的多个模板,所述多个模板中的每个模板包括具有多个用户界面(UI)元素的UI树,每个UI元素用实体类型和实体组标识符或者用动作类型来注释,并且其中所述UDI内的经分类的所述多个文本串的所述至少一部分通过具有相同的所述组标识符来关联。
3.根据权利要求2所述的计算设备,其中所述动作类型包括指示用户动作是否与用户对所述内容感兴趣或不感兴趣相关联的动作语义数据。
4.一种至少部分地由计算设备实现的用于提取和共享应用有关的用户数据的方法,所述方法包括:
使用所述计算设备的所述操作系统内的跟踪器部件:
当应用在所述计算设备上正在运行时,检测由用户动作触发的与所述应用的页面类有关的用户界面(UI)事件,所述UI事件与所述页面类的UI树相关联;以及
使用所述计算设备的所述操作系统内的分析器部件:
接收与在所述计算设备上运行的所述应用相关联的多个模板,所述多个模板中的每一个模板包括多个实体类型和动作类型;
将所述UI树内的多个文本串与所述多个模板中的至少一个模板进行匹配,以至少用所述多个实体类型的实体类型或所述多个动作类型的动作类型来对所述UI树中的所述多个文本串进行分类;
通过组合所述UI树内的经分类的所述多个文本串的至少一部分来生成行为数据项(BDI);以及
向以下项中的至少一项提供经生成的所述BDI:在所述客户端设备上运行的另一应用、在所述客户端设备上运行的一个或多个服务、和/或另一设备。
5.根据权利要求4所述的方法,其中所述UI事件包括在所述应用正在运行时输入所述多个文本串;以及
其中所述UI树内的经分类的所述多个文本还与至少一个用户动作相关联。
6.根据权利要求4所述的方法,其中所述跟踪器部件和所述分析器部件被实现为以下项中的一项或多项:所述操作系统的一部分、在所述计算设备上运行的独立应用的一部分、或在所述计算设备上运行的应用的一部分。
7.根据权利要求6所述的方法,其中所述应用是数字个人助理,并且所述方法还包括:
由所述数字个人助理使用应用编程接口(API)从所述分析器部件接收所述BDI;以及
由所述数字个人助理基于所接收的所述BDI来生成响应。
8.一种用于在客户端设备中提取和共享应用有关的用户数据的系统,所述系统包括:
跟踪器服务,可操作用于:
检测由用户动作触发的与应用的页面类有关的用户界面(UI)事件,所述UI事件在所述应用正在运行时与所述页面类的UI树相关联;
分析器服务,可操作用于:
将所述UI树内的多个文本与所述应用的多个模板中的至少一个模板进行匹配,以至少用名称、数据类型和组标识对所述UI树中的所述多个文本进行分类;
通过组合所述UI树内的、与至少一个用户动作相关联的并具有相同的所述组标识的经分类的多个实体中的至少一部分来生成至少一个用户数据项(UDI);以及
存储服务,可操作用于:
将所生成的所述至少一个UDI存储在网络存储装置中;以及
向在所述客户端设备上运行的至少另一应用提供对所存储的所述至少一个UDI的访问。
9.根据权利要求8所述的系统,其中所述网络存储装置在通信地耦合到所述客户端设备的服务器计算机处,并且所述存储服务还可操作用于:
存储在所述客户端设备和至少另一设备处生成的多个UDI,所述客户端设备和所述至少另一设备与相同用户相关联。
10.根据权利要求8所述的系统,其中:
所述跟踪器服务和所述分析器服务被实现为在所述客户端设备上运行的所述操作系统的一部分,或被实现为在所述客户端设备上运行的独立应用的一部分。
11.根据权利要求8所述的系统,其中所述分析器服务还可操作用于:
从通信地耦合到所述客户端设备的网络设备接收与所述应用相关联的所述多个模板,所述多个模板中的每一个模板包括多个经分类的实体,每个实体至少包括所述名称、所述数据类型和所述组标识。
12.根据权利要求8所述的系统,其中所述存储服务还可操作用于:
从所述设备的操作系统、在所述设备上运行的至少另一应用、和/或所述操作系统的服务接收针对所述至少一个UDI的请求。
13.根据权利要求12所述的系统,其中所述存储服务还可操作用于:
验证所述请求;以及
在所述请求的成功验证之后,使用应用编程接口(API)向所述操作系统、所述至少另一应用和/或所述操作系统的所述服务提供所述至少一个UDI。
14.根据权利要求4所述的方法,其中所述模板内的每个实体类型包括实体组标识,并且所述方法还包括:
还基于所述组标识对所述UI树中的所述多个文本串进行分类;以及
通过组合具有相同的所述组标识的经分类的所述多个文本串的至少一部分来生成所述BDI。
15.根据权利要求4所述的方法,还包括用以下项中的一项或多项来附加所述BDI:
所述BDI的标识号;
与所述用户动作相关联的时间戳;
用于所述BDI中的经分类的所述多个文本的所述至少一部分的实体类型;
用于所述BDI中的经分类的所述多个文本的所述至少一部分的实体名称;
至少基于相同的所述组标识具有相关联的关系的一个或多个其他实体;
与所述BDI的一个或多个实体相关联的可能的用户动作的标识;
与和所述BDI中的所述多个实体的用户交互相关联的多个UI轻敲;以及
在所述用户交互发生的所述页面类处花费的时间量。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562162594P | 2015-05-15 | 2015-05-15 | |
US62/162,594 | 2015-05-15 | ||
US14/734,991 US10324926B2 (en) | 2015-05-15 | 2015-06-09 | System and method for extracting and sharing application-related user data |
US14/734,991 | 2015-06-09 | ||
PCT/US2016/030614 WO2016186833A1 (en) | 2015-05-15 | 2016-05-04 | System and method for extracting and sharing application-related user data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107624180A true CN107624180A (zh) | 2018-01-23 |
CN107624180B CN107624180B (zh) | 2022-03-25 |
Family
ID=57276064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680028292.7A Active CN107624180B (zh) | 2015-05-15 | 2016-05-04 | 用于提取和共享应用程序有关的用户数据的系统和方法 |
Country Status (14)
Country | Link |
---|---|
US (2) | US10324926B2 (zh) |
EP (1) | EP3281103B1 (zh) |
KR (1) | KR102613774B1 (zh) |
CN (1) | CN107624180B (zh) |
AU (1) | AU2016265408A1 (zh) |
BR (1) | BR112017021986A2 (zh) |
CA (1) | CA2983279A1 (zh) |
CL (1) | CL2017002847A1 (zh) |
CO (1) | CO2017011544A2 (zh) |
IL (1) | IL254942A0 (zh) |
MX (1) | MX2017014355A (zh) |
PH (1) | PH12017550113A1 (zh) |
RU (1) | RU2017134532A (zh) |
WO (1) | WO2016186833A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363655A (zh) * | 2018-02-11 | 2018-08-03 | 百度在线网络技术(北京)有限公司 | 用户行为特征分析方法及装置 |
CN108469977A (zh) * | 2018-03-26 | 2018-08-31 | 张�林 | 一种界面数据管理方法 |
CN109976868A (zh) * | 2019-04-11 | 2019-07-05 | 北京阿尔山区块链联盟科技有限公司 | DApp定制方法、装置及电子设备 |
CN110210455A (zh) * | 2019-06-18 | 2019-09-06 | 石家庄捷弘科技有限公司 | 一种打印内容格式化提取方法 |
CN112486796A (zh) * | 2020-12-30 | 2021-03-12 | 智道网联科技(北京)有限公司 | 一种采集车载智能终端信息的方法和装置 |
CN112800303A (zh) * | 2019-11-13 | 2021-05-14 | 马上消费金融股份有限公司 | 一种浏览器数据的存储、读取方法及相关装置 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9996848B2 (en) | 2014-06-12 | 2018-06-12 | Outfit7 Limited | Communication of reward data between applications |
US10643239B2 (en) | 2014-10-01 | 2020-05-05 | Outfit7 Limited | Monitoring an application on a processing device and generating rewards |
US10413818B2 (en) * | 2014-10-01 | 2019-09-17 | Outfit7 Limited | Monitoring an application on a processing device |
US10503341B2 (en) * | 2015-07-09 | 2019-12-10 | International Business Machines Corporation | Usability analysis for user interface based systems |
US10289262B2 (en) | 2015-09-29 | 2019-05-14 | Pegasystems Inc. | Method and system for determining user interface usage |
US10650081B2 (en) * | 2016-08-25 | 2020-05-12 | Adobe Inc. | Television application page tracking using declarative page tracking |
US10395652B2 (en) * | 2016-09-20 | 2019-08-27 | Allstate Insurance Company | Personal information assistant computing system |
EP3619629A4 (en) | 2017-05-10 | 2020-12-09 | Embee Mobile, Inc. | SYSTEM AND METHOD FOR DETECTING MOBILE BEHAVIOR, USE OR CONTENT EXPOSURE |
JP6954023B2 (ja) * | 2017-11-13 | 2021-10-27 | トヨタ自動車株式会社 | シェアリングシステム、シェアリング方法および管理サーバ |
US10970486B2 (en) * | 2018-09-18 | 2021-04-06 | Salesforce.Com, Inc. | Using unstructured input to update heterogeneous data stores |
KR102637614B1 (ko) * | 2019-03-13 | 2024-02-16 | 구글 엘엘씨 | 애플리케이션 전달 서버를 통해 전달을 위한 애플리케이션 디버깅 |
US11093715B2 (en) * | 2019-03-29 | 2021-08-17 | Samsung Electronics Co., Ltd. | Method and system for learning and enabling commands via user demonstration |
CN111221711A (zh) * | 2019-10-12 | 2020-06-02 | 中国平安财产保险股份有限公司 | 用户行为数据处理方法、服务器及存储介质 |
US20210312901A1 (en) * | 2020-04-02 | 2021-10-07 | Soundhound, Inc. | Automatic learning of entities, words, pronunciations, and parts of speech |
KR20210141031A (ko) | 2020-05-15 | 2021-11-23 | 주식회사 티디아이 | 고객정보 리사이클링 플랫폼 시스템 |
US11609843B2 (en) * | 2021-04-14 | 2023-03-21 | At&T Intellectual Property I, L.P. | Systems and methods for validation of configurations and/or dependencies associated with software, software components, microservices, functions and the like |
KR20240040984A (ko) * | 2022-09-22 | 2024-03-29 | 삼성전자주식회사 | Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법 |
WO2024101882A1 (ko) * | 2022-11-08 | 2024-05-16 | 삼성전자 주식회사 | 화면 설정을 공유하는 전자 장치 및 이의 제어 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090234844A1 (en) * | 2008-03-14 | 2009-09-17 | Adrian Kaehler | Systems and Methods for Extracting Application Relevant Data from Messages |
US20140149579A1 (en) * | 2012-11-26 | 2014-05-29 | Google Inc. | Centralized dispatching of application analytics |
CN104615619A (zh) * | 2013-11-05 | 2015-05-13 | 现代自动车株式会社 | 经验信息管理设备及其方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019777B2 (en) | 2006-03-16 | 2011-09-13 | Nexify, Inc. | Digital content personalization method and system |
US8620913B2 (en) | 2008-04-07 | 2013-12-31 | Microsoft Corporation | Information management through a single application |
US9378472B2 (en) | 2008-12-22 | 2016-06-28 | Adobe Systems Incorporated | Systems and methods for enabling and configuring tracking of user interactions on computer applications |
US20120143677A1 (en) | 2010-12-03 | 2012-06-07 | Microsoft Corporation | Discoverability Using Behavioral Data |
KR101164999B1 (ko) | 2010-12-07 | 2012-07-13 | 주식회사에이메일 | 모바일 애플리케이션 분석과 대응하는 서비스정보 제공 시스템 및 그 방법 |
US8468164B1 (en) | 2011-03-09 | 2013-06-18 | Amazon Technologies, Inc. | Personalized recommendations based on related users |
US9519726B2 (en) | 2011-06-16 | 2016-12-13 | Amit Kumar | Surfacing applications based on browsing activity |
US20130031110A1 (en) | 2011-07-28 | 2013-01-31 | Kikin Inc. | Systems and methods for rich query construction |
US8914496B1 (en) * | 2011-09-12 | 2014-12-16 | Amazon Technologies, Inc. | Tracking user behavior relative to a network page |
US8924942B1 (en) | 2012-02-01 | 2014-12-30 | Amazon Technologies, Inc. | Identifying user interface improvements from observed user behavior |
KR101340780B1 (ko) * | 2012-02-29 | 2013-12-11 | 주식회사 팬택 | 데이터 공유 시스템 및 방법 |
US8990183B2 (en) | 2012-06-06 | 2015-03-24 | Microsoft Technology Licensing, Llc | Deep application crawling |
US8832847B2 (en) | 2012-07-10 | 2014-09-09 | International Business Machines Corporation | Coordinating data sharing among applications in mobile devices |
EP2880614A4 (en) | 2012-07-11 | 2016-06-15 | Char Software Inc D B A Lacalytics | SYSTEM AND METHOD FOR REALIZING ANALYZES AND APPLICATION LEVEL TESTS TO ADAPT ACTIONS AND COMMUNICATIONS TO A USER'S EXPERIENCE |
US9239771B2 (en) | 2012-07-24 | 2016-01-19 | Appboy, Inc. | Method and system for collecting and providing application usage analytics |
US9009243B2 (en) | 2012-09-28 | 2015-04-14 | Defy Media, Llc | Tracking usage of and sharing data between mobile device applications |
TWI478043B (zh) | 2012-11-22 | 2015-03-21 | Inst Information Industry | 行動裝置應用頁面樣版之產生系統、方法及其記錄媒體 |
US9626629B2 (en) * | 2013-02-14 | 2017-04-18 | 24/7 Customer, Inc. | Categorization of user interactions into predefined hierarchical categories |
US9946739B2 (en) * | 2013-03-15 | 2018-04-17 | Neura Labs Corp. | Intelligent internet system with adaptive user interface providing one-step access to knowledge |
US20140358887A1 (en) | 2013-05-29 | 2014-12-04 | Microsoft Corporation | Application content search management |
US10003620B2 (en) | 2013-06-26 | 2018-06-19 | International Business Machines Corporation | Collaborative analytics with edge devices |
US9514477B2 (en) * | 2013-07-10 | 2016-12-06 | AVG Netherlands B.V. | Systems and methods for providing user-specific content on an electronic device |
US10120800B2 (en) * | 2014-07-18 | 2018-11-06 | Oracle International Corporation | History based memory speculation for partitioned cache memories |
US9703570B2 (en) * | 2014-10-01 | 2017-07-11 | Fujitsu Limited | Dynamic device drivers |
US9626525B2 (en) * | 2014-12-31 | 2017-04-18 | Citrix Systems, Inc. | Shared secret vault for applications with single sign on |
US10028116B2 (en) | 2015-02-10 | 2018-07-17 | Microsoft Technology Licensing, Llc | De-siloing applications for personalization and task completion services |
KR101715759B1 (ko) | 2015-09-22 | 2017-03-15 | 한국전자통신연구원 | 멀티코어 환경에서의 악성코드 분석 장치 및 방법 |
-
2015
- 2015-06-09 US US14/734,991 patent/US10324926B2/en active Active
-
2016
- 2016-05-04 BR BR112017021986A patent/BR112017021986A2/pt not_active Application Discontinuation
- 2016-05-04 CA CA2983279A patent/CA2983279A1/en not_active Abandoned
- 2016-05-04 KR KR1020177032966A patent/KR102613774B1/ko active IP Right Grant
- 2016-05-04 CN CN201680028292.7A patent/CN107624180B/zh active Active
- 2016-05-04 AU AU2016265408A patent/AU2016265408A1/en not_active Abandoned
- 2016-05-04 RU RU2017134532A patent/RU2017134532A/ru not_active Application Discontinuation
- 2016-05-04 MX MX2017014355A patent/MX2017014355A/es unknown
- 2016-05-04 WO PCT/US2016/030614 patent/WO2016186833A1/en active Application Filing
- 2016-05-04 EP EP16723875.7A patent/EP3281103B1/en active Active
-
2017
- 2017-10-09 IL IL254942A patent/IL254942A0/en unknown
- 2017-10-17 PH PH12017550113A patent/PH12017550113A1/en unknown
- 2017-11-10 CL CL2017002847A patent/CL2017002847A1/es unknown
- 2017-11-10 CO CONC2017/0011544A patent/CO2017011544A2/es unknown
-
2019
- 2019-06-13 US US16/440,188 patent/US11169991B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090234844A1 (en) * | 2008-03-14 | 2009-09-17 | Adrian Kaehler | Systems and Methods for Extracting Application Relevant Data from Messages |
US20140149579A1 (en) * | 2012-11-26 | 2014-05-29 | Google Inc. | Centralized dispatching of application analytics |
CN104615619A (zh) * | 2013-11-05 | 2015-05-13 | 现代自动车株式会社 | 经验信息管理设备及其方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363655A (zh) * | 2018-02-11 | 2018-08-03 | 百度在线网络技术(北京)有限公司 | 用户行为特征分析方法及装置 |
CN108363655B (zh) * | 2018-02-11 | 2021-07-13 | 百度在线网络技术(北京)有限公司 | 用户行为特征分析方法及装置 |
CN108469977A (zh) * | 2018-03-26 | 2018-08-31 | 张�林 | 一种界面数据管理方法 |
CN108469977B (zh) * | 2018-03-26 | 2021-05-25 | 张�林 | 一种界面数据管理方法 |
CN109976868A (zh) * | 2019-04-11 | 2019-07-05 | 北京阿尔山区块链联盟科技有限公司 | DApp定制方法、装置及电子设备 |
CN110210455A (zh) * | 2019-06-18 | 2019-09-06 | 石家庄捷弘科技有限公司 | 一种打印内容格式化提取方法 |
CN112800303A (zh) * | 2019-11-13 | 2021-05-14 | 马上消费金融股份有限公司 | 一种浏览器数据的存储、读取方法及相关装置 |
CN112800303B (zh) * | 2019-11-13 | 2023-05-05 | 马上消费金融股份有限公司 | 一种浏览器数据的存储、读取方法及相关装置 |
CN112486796A (zh) * | 2020-12-30 | 2021-03-12 | 智道网联科技(北京)有限公司 | 一种采集车载智能终端信息的方法和装置 |
CN112486796B (zh) * | 2020-12-30 | 2023-07-11 | 智道网联科技(北京)有限公司 | 一种采集车载智能终端信息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CO2017011544A2 (es) | 2017-11-21 |
US20160335316A1 (en) | 2016-11-17 |
US11169991B2 (en) | 2021-11-09 |
US10324926B2 (en) | 2019-06-18 |
EP3281103B1 (en) | 2023-06-21 |
PH12017550113A1 (en) | 2018-02-12 |
MX2017014355A (es) | 2018-03-23 |
EP3281103A1 (en) | 2018-02-14 |
US20190294606A1 (en) | 2019-09-26 |
WO2016186833A1 (en) | 2016-11-24 |
KR102613774B1 (ko) | 2023-12-13 |
AU2016265408A1 (en) | 2017-10-26 |
CA2983279A1 (en) | 2016-11-24 |
IL254942A0 (en) | 2017-12-31 |
RU2017134532A (ru) | 2019-04-04 |
CL2017002847A1 (es) | 2018-04-13 |
BR112017021986A2 (pt) | 2018-07-10 |
CN107624180B (zh) | 2022-03-25 |
KR20180008480A (ko) | 2018-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107624180A (zh) | 用于提取和共享应用程序有关的用户数据的系统和方法 | |
CN107209905B (zh) | 针对个性化和任务完成服务而对应用去主题归类 | |
CN104412265B (zh) | 更新用于促进应用搜索的搜索索引 | |
US10824403B2 (en) | Application builder with automated data objects creation | |
WO2020197793A1 (en) | Method and system for intelligently suggesting tags for documents | |
Martella et al. | Practical graph analytics with apache giraph | |
US20180284959A1 (en) | Collection and control of user activity set data and activity set user interface | |
CN108965389B (zh) | 用于展示信息的方法 | |
CN105556517B (zh) | 智能搜索精细化 | |
CN109074277A (zh) | 在移动应用中启用有状态动态链接 | |
US20190050378A1 (en) | Serializable and serialized interaction representations | |
US11580088B2 (en) | Creation, management, and transfer of interaction representation sets | |
CN110494852A (zh) | 智能匹配自动完成系统 | |
EP3586246A1 (en) | Collection and control of user activity information and activity user interface | |
US20160077673A1 (en) | Intelligent Canvas | |
CN106796608A (zh) | 上下文搜索字符串同义词的自动生成 | |
US10732796B2 (en) | Control of displayed activity information using navigational mnemonics | |
CN110196833A (zh) | 应用程序的搜索方法、装置、终端及存储介质 | |
CN107735785A (zh) | 自动信息检索 | |
Fernández-García et al. | A microservice-based architecture for enhancing the user experience in cross-device distributed mashup UIs with multiple forms of interaction | |
EP4156009A1 (en) | Systematic identification and masking of private data for replaying user sessions | |
AU2016385256A1 (en) | Mobile device and method of acquiring and searching for information thereof | |
US20170193063A1 (en) | Mobile device and method of acquiring and searching for information thereof | |
Lo Truglio | From Analysis to Application: Employing AI to Enhance User Experience at ESA | |
Scaffidi III | The smartphone as a data collection device |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |