• / 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://www.rgyfuv.icu/p-6409618.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图