太阳城集团

  • / 16
  • 下载费用:30 金币  

钩子框架.pdf

摘要
申请专利号:

CN201380076118.6

申请日:

2013.06.28

公开号:

CN105164644A

公开日:

2015.12.16

当前法律状态:

授权

有效性:

有权

法律详情: 授权|||专利申请权的转移IPC(主分类):G06F 9/46登记生效日:20180611变更事项:申请人变更前权利人:慧与发展有限责任合伙企业变更后权利人:安提特软件有限责任公司变更事项:地址变更前权利人:美国德克萨斯州变更后权利人:美国加利福尼亚州|||专利申请权的转移IPC(主分类):G06F 9/46登记生效日:20161019变更事项:申请人变更前权利人:惠普发展公司,有限责任合伙企业变更后权利人:慧与发展有限责任合伙企业变更事项:地址变更前权利人:美国德克萨斯州变更后权利人:美国德克萨斯州|||实质审查的生效IPC(主分类):G06F 9/46申请日:20130628|||公开
IPC分类号: G06F9/46 主分类号: G06F9/46
申请人: 惠普发展公司,有限责任合伙企业
发明人: 沙尼·因巴尔; 西加尔·毛恩; 阿米海·尼特桑
地址: 美国德克萨斯州
优先权:
专利代理机构: 北京德琦知识产权代理有限公司11018 代理人: 郭艳芳; 王琦
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

太阳城集团CN201380076118.6

授权太阳城集团号:

太阳城集团||||||||||||

法律状态太阳城集团日:

2018.10.16|||2018.06.29|||2016.11.09|||2016.01.13|||2015.12.16

法律状态类型:

太阳城集团授权|||专利申请权、专利权的转移|||专利申请权、专利权的转移|||实质审查的生效|||公开

摘要

太阳城集团可以基于初始化指令执行应用进程,其中该应用进程包括与钩子框架相关联的指令。可以启动一虚拟机,该虚拟机被配置为基于包括在该应用进程中的指令在该虚拟机上装载钩子框架,并且可以在虚拟机启动时执行与钩子框架相关联的指令,以在虚拟机上插入钩子。可以基于装载应用的请求而启动被配置为启动附加虚拟机的新生进程,其中该附加虚拟机经由被插入在虚拟机上的钩子被钩住。

权利要求书

权利要求书
1.  一种非临时性计算机可读介质,用于存储由处理资源可执行以进行以下操作的指令集:
基于初始化指令执行应用进程,其中所述应用进程包括与钩子框架相关联的指令;
启动一虚拟机,所述虚拟机被配置为基于包括在所述应用进程中的指令在所述虚拟机上装载所述钩子框架;
在所述虚拟机启动时执行与所述钩子框架相关联的指令,以在所述虚拟机上插入钩子;以及
启动被配置为基于装载应用的请求而启动附加虚拟机的新生进程,其中所述附加虚拟机经由被插入在所述虚拟机上的钩子被钩住。

2.  根据权利要求1所述的介质,其中指令是可执行的,以促使所述钩子收集与已经装载的应用相关联的数据。

3.  根据权利要求1所述的介质,其中指令是可执行的,以促使所述钩子收集与将在定义的太阳城集团内装载的应用相关联的数据。

4.  根据权利要求3所述的介质,其中指令是可执行的,以截获由所述虚拟机装载的应用所进行的库函数调用。

5.  根据权利要求1所述的介质,其中与所述钩子框架相关联的指令在所述虚拟机被启动之后且在所述新生进程被启动之前是可执行的。

6.  根据权利要求5所述的介质,其中基于装载应用的附加请求而装载的附加虚拟机经由被插入在所述虚拟机上的钩子被钩住。

7.  根据权利要求1所述的介质,其中指令是可执行的,以经由所述钩子监测与所述应用相关联的中央处理单元利用率、存储器需求、数据吞吐量和带宽中的至少一个。

8.  根据权利要求1所述的介质,其中指令是可执行的,以经由所述钩子执行应用中断。

9.  一种系统,包括与非临时性计算机可读介质进行通信的处理资源,所述非临时性计算机可读介质具有所述处理资源可执行以实施解释引擎、执行进程引擎、启动机器引擎、执行指令引擎以及启动进程引擎的指令,其中:
所述解释引擎用于解释初始化指令;
所述执行进程引擎用于基于所述初始化指令执行所述应用进程,其中所述应用进程包括与钩子框架相关联的指令;
所述启动机器引擎用于启动一虚拟机,所述虚拟机被配置为基于包括在所述应用 进程中的指令装载所述钩子框架;
所述执行指令引擎用于在所述虚拟机启动时执行与所述钩子框架相关联的指令,以在所述虚拟机上插入来自所述钩子框架的钩子;并且
所述启动进程引擎用于启动被配置为基于装载应用的请求而启动附加虚拟机的新生进程,其中所述附加虚拟机经由所述钩子被钩住,以收集与所述应用相关联的数据。

10.  根据权利要求9所述的系统,其中所述钩子被配置为执行应用记录。

11.  根据权利要求9所述的系统,其中所述钩子被配置为收集与所述应用相关联的传感器数据。

12.  一种方法,包括:
解释与移动设备的开启相关联的初始化指令;
基于所述初始化指令执行应用进程,其中所述应用进程包括与钩子框架相关联的指令;
启动一虚拟机,所述虚拟机被配置为基于包括在所述应用进程中的指令在所述虚拟机上装载所述钩子框架;
在所述虚拟机启动时执行与所述钩子框架相关联的指令,以在所述虚拟机上插入来自所述钩子框架的钩子;以及
启动被配置为基于装载应用的请求而启动附加虚拟机的新生进程,其中所述附加虚拟机经由所述钩子被钩住,以收集与所述应用相关联的传感器数据,并且其中所述钩子框架在所述虚拟机被启动之后且在所述新生进程被启动之前被执行。

13.  根据权利要求12所述的方法,其中所述方法包括经由所述钩子更换与所述应用相关联的指令。

14.  根据权利要求13所述的方法,其中所述方法包括执行更换的与所述应用相关联的指令。

15.  根据权利要求12所述的方法,其中收集与所述应用相关联的传感器数据包括从网络连接性传感器收集数据。

说明书

说明书钩子框架
背景技术
应用可以是能够促使计算设备执行特定功能的可执行指令的集合。计算设备可以包括移动电话(例如,智能电话),其可以具有能够运行各种应用的各种操作系统(OS)(例如,移动OS)。例如,应用可以包括游戏应用、导航应用、照相机应用,等等。能够针对每个相应OS来开发应用。
附图说明
图1图示出根据本公开、用于实施钩子框架的环境的示例。
图2A图示出根据本公开、用于实施钩子框架的流程图的示例。
图2B图示出根据本公开、用于实施用于特定操作系统的钩子框架的流程图的示例。
图3A图示出根据本公开、用于实施钩子框架的系统的示例的图。
图3B图示出根据本公开、用于实施钩子框架的计算设备的示例的图。
图4图示出根据本公开、用于实施钩子框架的方法的示例的流程图。
具体实施方式
移动式应用(例如,被配置用于移动设备的应用)开发是通过不断增长的数量的移动设备和与那些设备相关联的能力所激励的不断增长的实践。部分地由于与移动设备相关联的能力的增加,依靠设备特征和/或嵌入客户端逻辑(例如,JavaScript),应用已经变得越来越尖端。为了支持此类应用的开发,可能有益的是,提供可以与和移动设备相关联的特定操作系统(OS)集成的开发工具。例如,可能有益的是,与低层级接口中的特定OS集成,使得能够使用诸如测试工具、记录工具、监测工具等等的应用开发工具。也能够在消费者应用软件和/或企业应用软件中使用此类低层级OS交互,以便例如实现诸如根据企业策略保证设备安全的目标。
一些先前的方法通过钩子允许低层级OS交互。钩子可以包括修改应用的行为和/或通过截获在软件组件之间传递的数据来收集与应用相关联的数据。例如,钩子可指监测、改变,和/或以另外方式取得对应用的控制的各种技术。例如,可以通过钩子来 截获和/或复制传递到和/或来自于应用的函数调用、消息,和/或网络业务。钩住应用例如可以包括在应用执行之前将包括可执行的钩子指令的库注入到应用中,和/或在OS的运行太阳城集团期间和/或在应用的功能的执行期间将可执行的钩子指令注入到应用中。这些先前的方法能够被用于实施虚拟机的OS。例如,这些方法能够被用于LinuxOS和/或用于实施Java虚拟机(JVM)(例如,能够执行Java字节码的机器)的基于Java的OS。
然而,不能使用用于基于Linux和/或基于Java的OS的先前的方法来钩住诸如安卓OS之类的一些移动OS。例如,一些移动OS不包括用于钩住的应用编程接口,并且因为此类移动OS的启动序列不允许只读存储器(ROM)的改变,所以对于LinuxOS进行钩住的先前方法行不通。
此外,不可能使用用于基于Java的OS的先前方法钩住一些移动OS。在一示例中,能够使用类装载器钩住JVM。然而,其他移动OS(例如,安卓OS)以及它们相关联的虚拟机(例如,安卓Dalvik虚拟机(DVM))不支持类装载器的使用,并且因此不能使用该方法被钩住。
此外,能够证明对于钩住一些移动OS,其他先前的方法是不足的。例如,先前的方法能够模拟驱动层。然而,在一些移动OS中,驱动器是ROM相关的,并且在没有更换ROM的全部内核的情况下不能被更换,使该方法不切实际。其他先前的方法改变包装库层。然而,这在其中库文件(例如,“.so”文件)被预链接在ROM编译上的一些移动OS上可能是不实用的。照此,可以不装载原始库。
例如,先前的方法能够修改“.Jar”文件,“.jar”文件能够被定义为用于将Java“.class”文件和/或相关联的元数据聚合到一个文件中以在基于Java的OS上分配应用软件和/或库的档案文件格式。修改“.jar”文件可能牵涉提取“.jar”文件、手工地编辑“.smali”文件(例如,安卓的相当于字节码“.class”文件),并且再装载修改的“.jar”文件。然而,该方法可能较复杂、难维护,并且可能限制处理字节码。此外,该方法可能不支持使用JNI的修改方法,JNI是能够使在JVM中运行的Java指令能够调用以诸如C、C++和/或汇编之类的其他语言编写的本地应用和库和/或被其调用的编程框架。
相比之下,本公开的示例可以包括修改负责启动虚拟机(例如,DVM)、预装载由应用使用的系统类和/或启动其他进程的应用进程。本公开的示例能够修改应用进程以包括钩子框架,该钩子框架在虚拟机启动时能够被执行并且能够在虚拟机上插入钩子以经由钩子访问与应用相关联的数据。
图1图示出根据本公开、用于实施钩子框架的环境的示例。环境100被示为包括实施钩子框架的系统104、移动设备102-1、102-2、......、102-N、用户设备110-1、 110-2、......、110-P、数据存贮器108,和链路106。数据存贮器108能够与参考图3A讨论的那些相似。系统104能够包括与参考图3B讨论的计算设备相似的计算设备。在本文所描述的移动设备102-1、......、102-N可以是计算设备(例如,电子设备)。
用户设备110-1、......、110-P可表示如下计算设备,其被配置为访问与在移动设备102-1、......、102-N上已经装载和/或在定义的太阳城集团内将装载的应用相关联的数据(例如,电子数据)以传递这样的数据,和/或通过执行指令来改变该应用。用户设备110-1、......、110-P可以包括诸如图形用户界面(GUI)112的数字显示器。类似地,在一些示例中,移动设备102-1、......、102-N可以包括适于显示电子数据的数字显示器(未示出)。
用户接口可以包括硬件组件和/或计算机可读指令组件。例如,硬件组件可以包括输入组件(例如,鼠标、触摸屏,和键盘)和/或输出组件(例如,显示器)。示例性用户接口可以包括GUI112。GUI112例如能够数字地表示与经由钩子收集的应用相关联的数据。也就是说,在一些示例中,能够通过用户设备110-1、......、110-P的用户接口来显示电子表示。此类显示器能够促进用户与计算机之间的交互(例如,允许用户使用图像和/或文本与计算机交互)。
链路106(例如,网络)表示电缆、无线、光纤,或经由远程通信链路的远程连接、红外线链路、射频链路,和/或提供电子通信的其他连接器或系统。也就是说,链路106例如可以包括到内部网、因特网、或者两者的组合的链路,等等其他通信接口。链路106也可以包括中间代理(例如,中间代理服务器(未示出))、路由器、交换机、负载平衡器,等等。
在本文所描述的用于实施钩子框架的系统104能够表示实施钩子框架的硬件和指令的不同组合。用于实施钩子框架的系统104可以包括计算设备,例如,太阳城集团图3B所讨论的计算设备348。
图2A图示出根据本公开、用于实施钩子框架的流程图的示例。例如,流程图能够图示出诸如包括移动OS的移动设备之类的移动设备的开启。在开启移动设备时,能够解释初始化指令216。初始化指令216可以是在移动设备的开启期间启动的第一进程,并且能够负责提供启动虚拟机222和新生进程218的指令,如在本文讨论的。
在移动OS的正常(例如,未修改的)开启中,初始化指令216能够启动新生进程218和虚拟机222。新生进程218能够被定义为开始进程。例如,新生进程218可以是在移动OS的开启中启动的第一进程。在一些示例中,新生进程218可以负责预装载可由运行在移动设备上的应用使用的系统类。例如,新生进程218能够负责开始与应用相关联的进程。新生进程218可以在虚拟机222上运行。在一些示例中,新生 进程218可以被配置为装载应用。例如,新生进程218可以启动虚拟机222的一个或多个实例,并且新生进程218可以在虚拟机222上运行应用。
在一些示例中,对于所装载的每个应用,可以启动虚拟机222的实例。例如,新生进程218可以复制虚拟机222,以在复制的虚拟机上运行应用。虚拟机222可以访问包含用于在虚拟机222上运行的应用的指令的应用软件(例如,系统库)。
可以修改和/或更换初始化指令216,以包括与钩子框架相关联的指令。可以在虚拟机222启动时执行与钩子框架相关联的指令,以形成钩子框架220。例如,新生进程218可以基于装载应用的请求启动附加虚拟机,如在本文讨论的。在本公开的一些示例中,可以经由插入在虚拟机222上的钩子钩住附加虚拟机。照此,可以利用钩子来监测、改变和/或以另外方式取得对在附加虚拟机上运行的应用的控制。
在附加虚拟机上运行的应用可以访问与传感器服务相关联的传感器数据。例如,与电力管理服务相关联的应用可以访问与包括在传感器服务中的电力管理器传感器(例如,电压传感器)相关联的数据。照此,插入在虚拟机222上的钩子可以收集从包括在传感器服务中的电力管理器传感器传递到在附加虚拟机上运行的应用的数据。在一些示例中,所收集的数据可以用于保证应用如预期那样处理数据和/或调试未正确地处理数据的应用。替换地,可以在将数据传递到应用之前修改数据。
图2B图示出根据本公开、用于实施用于特定OS的钩子框架的流程图的示例。例如,流程图可以图示出诸如包括特定移动OS(诸如安卓OS)的移动设备之类的移动设备的开启。在移动设备开启时,可以解释初始化指令216,在安卓OS中该初始化指令216可以作为“init.rc”被引用。初始化指令216可以是在移动设备的开启期间启动的第一进程,并且可以负责提供执行应用进程224的指令。在一示例中,应用进程224可以是负责启动虚拟机222和新生进程218的主要进程,如在本文讨论的。
在移动OS的正常(例如,未修改的)开启中,在安卓OS中可以作为“app_process”被引用的应用进程224可以启动新生进程218和虚拟机222。新生进程218可以负责预装载可由运行在移动设备上的应用226(例如,App-1、App-2、App-r)使用的系统类。例如,可以在安卓OS中将新生进程218作为“Zygote”来引用,并且新生进程218可以负责开启与应用226相关联的进程和/或与应用226相关联的传感器服务228。新生进程218可以在虚拟机222上运行,其在安卓OS中可以作为DVM被引用。
新生进程218可以被配置为装载应用,在这种情况下,新生进程218被配置为基于装载应用的请求启动附加虚拟机。附加虚拟机可以是虚拟机222的副本。例如,可以由新生进程218启动虚拟机222的一个或多个实例。在一些示例中,对于所装载的每个应用,可以由新生进程218启动虚拟机222的附加实例。
附加虚拟机可以访问包含用于由附加机器装载的应用226的指令的应用软件(例如,系统库)。照此,可以由虚拟机执行与由虚拟机装载的应用226相关联的指令。
可以修改和/或更换应用进程224,以包括与钩子框架220相关联的指令。可以在虚拟机222启动时执行与钩子框架220相关联的指令,以形成钩子框架220。例如,可以在虚拟机222启动时执行与钩子框架220相关联的指令,以在虚拟机222上插入钩子。
新生进程218可以基于装载应用的请求启动附加虚拟机,如在本文讨论的。在本公开的一些示例中,可以经由插入在虚拟机222上的钩子钩住附加虚拟机。照此,可以利用钩子来监测、改变和/或以另外方式取得由附加虚拟机装载的应用226的控制。
应用226可以访问与传感器服务228相关联的传感器数据。例如,与电力管理服务相关联的应用可以访问与包括在传感器服务228中的电力管理器传感器(例如,电压传感器)相关联的数据。照此,插入在虚拟机222上的钩子可以收集从包括在传感器服务228中的电力管理器传感器传递到应用226的数据。
在一些示例中,传感器服务228可以包括网络连接性传感器(例如,与WiFi服务相关联的WiFi传感器、与蓝牙服务相关联的蓝牙传感器)、与电力管理服务相关联的电气传感器(例如,电流传感器),等等。在一些示例中,传感器服务228可以包括加速度计传感器、功率传感器、全球定位系统(GPS)传感器、陀螺传感器,等等。
在一些示例中,所收集的数据可以用于保证应用如预期那样处理数据和/或调试未正确地处理数据的应用。替换地,可以在将数据传递到应用226之前修改数据。
图3A图示出根据本公开、用于实施钩子框架的系统332的示例的图。系统332可以包括数据存贮器308(例如,与太阳城集团图1所讨论的数据存贮器108相似)、实施系统334,和/或若干引擎。实施系统334可以与数据存贮器308进行通信。在一些示例中,实施系统334可以包括若干引擎(例如,解释引擎336、执行进程引擎338、启动机器引擎340、执行指令引擎342、启动进程引擎344,等等)。与图示出的执行各种功能的引擎相比,实施系统334可以包括附加的或更少的引擎。
解释引擎334可以包括硬件和/或硬件和编程的组合,用于解释初始化指令。在一示例中,初始化指令可以提供用于应用进程的执行的指令。
执行进程引擎338可以包括硬件和/或硬件和编程的组合,用于基于初始化指令来执行应用进程。在一些示例中,应用进程可以包括与钩子框架相关联的指令。钩子框架可以包括插入钩子的指令。
启动机器引擎340可以包括硬件和/或硬件和编程的组合,用于启动被配置为基于包括在应用进程中的指令装载钩子框架的虚拟机。例如,在安卓OS中,虚拟机作为 DVM(其是JVM的实施方式)被引用,并且被设计为在使用安卓OS的移动设备上运行。钩子框架可以包括可被执行以插入钩子的指令。
执行指令引擎342可以包括硬件和/或硬件和编程的组合,用于在虚拟机启动时执行与钩子框架相关联的指令以在虚拟机上插入来自钩子框架的钩子。如在本文讨论的,随着应用被装载,可以复制虚拟机,以启动可运行应用的附加虚拟机。照此,插入在虚拟机上的钩子可以收集与在附加虚拟机上运行的应用相关联的数据。替换地,因为复制虚拟机来创建附加虚拟机,所以附加虚拟机也可以包括能够收集与在附加虚拟机上运行的应用相关联的数据的钩子。
启动进程引擎344可以包括硬件和/或硬件和编程的组合,用于启动被配置为基于装载应用的请求启动附加虚拟机的新生进程。例如,虚拟机可以运行新生进程,并且附加虚拟机可以运行应用。照此,可以由虚拟机上的钩子和/或附加虚拟机上的钩子来访问由应用从软件组件(例如,应用软件)和/或传感器请求的数据。
在一些示例中,可以在虚拟机被启动之后且在新生进程被启动之前,执行钩子框架。照此,钩子框架可以访问与应用相关联的从应用软件和/或传感器传递到在附加虚拟机上执行的应用的数据。
在一些示例中,在导航应用开启时,应用就可以访问应用软件,可以在附加虚拟机上执行该应用软件,以装载导航应用和/或执行与导航应用相关联的功能。另外,导航应用可以访问能够被传递到附加虚拟机的、与GPS传感器相关联的传感器数据。导航应用可以使用传感器数据,以例如确定导航应用所装载在其上的移动设备的位置。另外,导航应用可以访问与WiFi传感器相关联的传感器数据,以下载也可被传递到附加虚拟机的、到目的地的地图、方向,和/或与交通相关联的数据。照此,可以将应用软件、与GPS传感器相关联的传感器数据以及与WiFi传感器相关联的传感器数据都传递到附加虚拟机。
如在本文讨论的,因为在新生进程与虚拟机之间安置钩子,所以钩子可以被提供有对与应用相关联的从应用软件和/或传感器传递到在附加虚拟机上执行的应用的数据的访问。在一示例中,钩子可以被配置为收集与应用相关联的从应用软件和/或传感器传递到在附加虚拟机上执行的应用的数据。例如,钩子可以包括可被注入到与移动设备相关联的OS中的指令,使得能够进行利用钩子对应用进行应用记录、应用拦截、应用中断、应用监测,等等。
在一示例中,可以截获由与传感器相关联的应用进行的库函数调用,以记录传感器向应用发送和/或从应用接收的数据。记录指的是存储数据。可以将记录的数据和与其相关联的太阳城集团(例如,元数据)一起存储。这样的太阳城集团可以包括传感数据的生成时 间、与传感器数据相关联的应用的标识、提示要生成传感器数据的应用功能,和/或捕捉数据的传感器的标识,等等。这样的太阳城集团可以被存储在数据存贮器(例如,太阳城集团图1所讨论的数据存贮器108)中。对于希望调试应用(例如,现场环境中的应用)的应用开发者而言,此类钩子可能是有用的。
在一示例中,因为钩子提供对传递到和/或来自于应用的数据的访问,所以可以执行应用拦截。应用拦截可以包括控制应用。在一示例中,应用可以基于可从系统库中获取的应用软件执行功能。应用拦截例如可以包括经由钩子旁路系统库和向应用传递指令以提示应用执行特定功能。
在一示例中,应用中断可以被定义为发布使与应用相关联的操作中断的指令。可以通过经由钩子发布指令来执行应用中断,以中断与应用相关联的操作。例如,可以停止运行的应用,其可以允许对应用进行分析和/或调试。
在一些示例中,应用监测可以包括经由钩子提供与应用的操作相关联的详情。例如,可以经由钩子监测与和应用相关联的中央处理单元(CPU)利用率、存储器需求、数据吞吐量,和/或带宽相关联的详情。可以经由用户设备访问和监测与应用的操作相关联的详情,如太阳城集团图1所讨论的。
可以收集与已经装载的应用相关联的数据。例如,可以收集与当前运行的应用相关联的数据。替换地,可以经由钩子收集与将在定义的太阳城集团内装载的应用相关联的数据。例如,可以收集与当前没有运行但是将在将来运行的应用相关联的数据。
可以将应用装载在虚拟机的其自己的实例上。照此,基于装载附加应用的请求,可以启动附加虚拟机,并且可以经由钩子钩住附加虚拟机,以收集与应用相关联的数据。如在本文讨论的,可以由新生进程复制虚拟机,以创建附加虚拟机。通过利用新生进程复制虚拟机以创建附加虚拟机,钩住附加虚拟机,这是因为钩子已经被插入虚拟机中并且可以访问通过新生进程传递到附加虚拟机的数据。这可以使能够进行与应用相关联的数据的记录、拦截、中断、监测,等等。
图3B图示出根据本公开、用于实施钩子框架的计算设备的示例的图。计算设备348可以利用软件、硬件、固件和/或逻辑来执行在本文描述的若干功能。
计算设备348可以是用于共享太阳城集团的硬件和指令的组合。硬件例如可以包括处理资源350和/或存储器资源352(例如,计算机可读介质(CRM)、数据库,等等)。如在本文所使用的,处理资源350可以包括能够执行由存储器资源352存储的指令的若干处理器。可以将处理资源350集成在单个设备中或将其分布在多个设备上。指令(例如,计算机可读指令(CRI))可以包括存储在存储器资源352上并且可由处理资源350执行以实施特定功能(例如,实施钩子框架,等等)的指令。
存储器资源352可以与处理资源350进行通信。如在本文所使用的,存储器资源352可以包括能够存储可由处理资源350执行的指令的若干存储器组件。此类存储器资源352可以是非临时性CRM。可以将存储器资源352集成在单个设备中或将其分布在多个设备上。另外,存储器资源352可以全部地或部分地集成到与处理资源350相同的设备中,或其能够相对该设备和处理资源350是分离的但是可访问的。因而,请注意,可以在用户设备和/或用户设备的集合上、在移动设备和/或移动设备的集合上,和/或在用户设备和移动设备的组合上实施计算设备348。
存储器资源352可以经由通信链路354(例如,路径)与处理资源350进行通信。通信链路354对于与处理资源350相关联的计算设备可以是本地的或远程的。本地通信链路354的示例可以包括计算设备内部的电子总线,其中存储器资源352是经由电子总线与处理资源350进行通信的易失性、非易失性、固定和/或可移动的存贮介质之一。
存储器资源352可以包括若干模块,诸如执行进程模块358、启动机器模块360、执行指令模块362,和启动进程模块364。若干模块358、360、362、364可以包括当由处理资源350执行时能够执行若干功能的CRI。若干模块358、360、362、364可以是其他模块的子模块。例如,执行进程模块358和启动机器模块360可以是子模块和/或被包含在相同的计算设备内。在另一个示例中,若干模块358、360、362、364可以包括位于分离且不同的位置处的单独模块(例如,CRM,等等)。
若干模块358、360、362、364中的每一个可以包括当由处理资源350执行时能够充当在本文所描述的对应引擎的指令。在另一个示例中,启动进程模块364可以包括当由处理资源350执行时能够充当启动进程引擎344的指令。例如,启动进程模块364可以包括CRI,当该CRI由处理资源350执行时能够自动地促使用户设备启动被配置为基于装载应用的请求启动附加虚拟机的新生进程。
图4图示出根据本公开、用于实施钩子框架的方法的示例的流程图。该方法可以包括解释468与移动设备的开启相关联的初始化指令,如在本文讨论的。该方法可以包括基于初始化指令执行470应用进程。例如,应用进程可以包括与钩子框架相关联的指令。例如,与钩子框架相关联的指令可以包括与插入钩子相关联的指令,如在本文讨论的。
该方法可以包括启动472一虚拟机,该虚拟机被配置为基于包括在应用进程中的指令在该虚拟机上装载钩子框架。在一些示例中,虚拟机可以被配置为执行与钩子框架相关联的指令,以在虚拟机上装载钩子框架。
该方法可以包括在虚拟机启动时执行474与钩子框架相关联的指令,以在虚拟机 上插入来自钩子框架的钩子。该方法可以包括启动476被配置为基于装载应用的请求而启动附加虚拟机的新生进程。可以经由钩子钩住附加虚拟机,以收集与应用相关联的传感器数据。例如,钩子可以收集与应用相关联的传感器数据。传感器数据例如可以包括与诸如GPS传感器和/或陀螺传感器之类的传感器相关联的数据。
新生进程可以负责预装载能够由在移动设备上运行的应用使用的系统类。例如,新生进程能够基于装载应用的请求而启动附加虚拟机。例如,可以由新生进程对于被装载的每个附加应用启动附加虚拟机。附加虚拟机可以是虚拟机的副本,并且因此也可以被钩住,提供对与在附加虚拟机上运行的应用相关联的数据的访问。
该方法可以包括经由钩子更换与应用相关联的指令。钩子可以位于虚拟机上,创建虚拟机与新生进程之间的通过其可以传递应用软件(例如,指令)的接入点。照此,可以经由钩子截获、改变和/或更换通过新生进程向附加虚拟机传递以供附加虚拟机执行的指令。然后,可以由运行应用的虚拟机执行改变的和/或更换的指令,以例如改变应用的行为。
在一些示例中,可以在虚拟机被启动之后且在新生进程被启动之前,执行与钩子框架相关联的指令。通过以该次序执行指令,可以在新生进程和虚拟机之间安装钩子框架。照此,钩子框架可以截获传递到和/或来自于在附加虚拟机上运行的应用的、与应用软件和/或传感器相关联的数据。
如在本文使用的,“逻辑”是执行在本文描述的动作和/或功能等等的替换或附加的处理资源,其包括硬件(例如,各种形式的晶体管逻辑、专用集成电路(ASIC),等等),与存储在存储器中并且可由处理资源执行的计算机可执行指令(例如,软件、固件,等等)相反。
本文的图遵循编号规定,其中第一数字(一个或多个)对应于绘图图号,并且剩余的数字识别图中的元件或组件。可以通过使用类似的数字来识别不同的图之间的类似的元件或组件。例如,108可以引用图1中的元件“08”,并且在图3中类似的元件可以被引用为308。
说明书示例提供对本公开的系统和方法的应用以及使用的描述。因为可以在不背离本公开的系统和方法的精神和范围的情况下作出许多示例,因此本说明书阐述若干可能的示例配置以及实施方式中的一些。

关 键 词:
钩子 框架
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:钩子框架.pdf
链接地址:http://zh228.com/p-6409618.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');