国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      自定義類庫(kù)生成方法和裝置與流程

      文檔序號(hào):11530611閱讀:175來(lái)源:國(guó)知局
      自定義類庫(kù)生成方法和裝置與流程

      本公開(kāi)涉及計(jì)算領(lǐng)域,特別涉及與生成用于設(shè)備的自定義類庫(kù)相關(guān)聯(lián)的裝置、方法和存儲(chǔ)介質(zhì)。

      背景

      本文提供的背景描述是為了一般地介紹本公開(kāi)的上下文的目的。除非本文另有說(shuō)明,本部分中描述的材料不是本申請(qǐng)中的權(quán)利要求的現(xiàn)有技術(shù),并且不被承認(rèn)為包括在本部分中的現(xiàn)有技術(shù)。

      物聯(lián)網(wǎng)(iot)正在蓬勃發(fā)展。部署中的巨量iot傳感器、控制器和智能儀表通常被設(shè)計(jì)成在供應(yīng)用運(yùn)行的存儲(chǔ)器和閃存空間方面具有非常有限的資源。例如,大多數(shù)邊緣設(shè)備具有小于1mb的總存儲(chǔ)器。

      尤其是,因?yàn)榭缙脚_(tái)應(yīng)用可移植性和大量java?開(kāi)發(fā)者基礎(chǔ)的原因,在這些設(shè)備上運(yùn)行java?應(yīng)用具有強(qiáng)烈的需求。然而,標(biāo)準(zhǔn)java?虛擬機(jī)(jvm)類庫(kù)通常太大以致于無(wú)法納入微小iot設(shè)備。例如,標(biāo)準(zhǔn)jvm運(yùn)行時(shí)通常包含大型庫(kù),諸如java7的openjdk庫(kù),它包含4024個(gè)應(yīng)用編程接口(api)并需要大約80mb的存儲(chǔ)。

      解決這個(gè)問(wèn)題的典型解決方案是通過(guò)減少java?類庫(kù)的功能而創(chuàng)建小型版本的java?,諸如oracle的javacard(java卡)和j2me。然而,這種做法犧牲了功能并破壞了與臺(tái)式機(jī)和服務(wù)器的java?應(yīng)用的兼容性。

      附圖說(shuō)明

      結(jié)合附圖通過(guò)以下的詳細(xì)描述將容易理解實(shí)施例。為了便于這一描述,相同的附圖標(biāo)記標(biāo)示相同的結(jié)構(gòu)元件。在附圖的圖中,通過(guò)舉例而非不是通過(guò)限制的方式示出了實(shí)施例。

      圖1示出根據(jù)各種實(shí)施例的用于生成用于設(shè)備的自定義類庫(kù)的本公開(kāi)的組件視圖。

      圖2示出根據(jù)各種實(shí)施例的用于生成用于設(shè)備的自定義類庫(kù)的過(guò)程的總觀。

      圖3示出根據(jù)各種實(shí)施例的庫(kù)內(nèi)部api調(diào)用鏈的生成。

      圖4示出根據(jù)各種實(shí)施例的工作負(fù)載完全api調(diào)用鏈的生成。

      圖5示出根據(jù)各種實(shí)施例的自定義類庫(kù)的進(jìn)一步詳細(xì)的生成。

      圖6示出根據(jù)各種實(shí)施例的適合于實(shí)施本公開(kāi)的示例計(jì)算機(jī)系統(tǒng)的組件視圖。

      圖7示出根據(jù)各種實(shí)施例的具有被配置成使計(jì)算設(shè)備能夠?qū)嵤┍竟_(kāi)的指令的示例存儲(chǔ)介質(zhì)。

      詳細(xì)說(shuō)明

      本文公開(kāi)了與生成自定義類庫(kù)相關(guān)聯(lián)的裝置、方法和存儲(chǔ)介質(zhì)。在實(shí)施例中,一種裝置可以包括分析器,所述分析器被配置成接收工作負(fù)載和類庫(kù),分析工作負(fù)載和類庫(kù),識(shí)別一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈,并且生成關(guān)于所述一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈的信息。所述一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈可以包括來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用和來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用導(dǎo)致的類庫(kù)之內(nèi)的而且后續(xù)調(diào)用。所述裝置還可以包括生成器,用于至少部分地基于一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈從類庫(kù)生成比所述類庫(kù)小的用于工作負(fù)載的自定義類庫(kù)。類庫(kù)的示例可以是jvm類庫(kù)。工作負(fù)載的示例可以是用于iot設(shè)備的工作負(fù)載。

      在下面的詳細(xì)描述中,參考了附圖,附圖形成本描述的一部分,其中相同的數(shù)字始終標(biāo)示相同部分,并且還通過(guò)舉例說(shuō)明的方式示出了可以實(shí)施的實(shí)施例。應(yīng)當(dāng)理解:在不脫離本公開(kāi)的范圍的情況下,可以利用其它實(shí)施例并且可以做出結(jié)構(gòu)或邏輯改變。因此,以下的詳細(xì)描述不應(yīng)被認(rèn)為具有限制意義,并且某些實(shí)施例的范圍由所附權(quán)利要求及其等同物限定。

      各種方法的操作可以采用最有助于理解要求保護(hù)的主題的方式依次被描述為多個(gè)分離的操作或動(dòng)作。然而,本描述的順序不應(yīng)被解釋為意味著這些操作必定是依賴順序的。特別是,這些操作可以不按照介紹的順序被執(zhí)行。所描述的操作可以采用不同于所描述的實(shí)施例的順序被執(zhí)行。在附加的實(shí)施例中可以省略、分割或組合所描述的操作和/或可以執(zhí)行各種附加操作。

      為了本公開(kāi)的目的,表達(dá)方式“a和/或b”是指(a),(b)或(a和b)。為了本公開(kāi)的目的,表達(dá)方式“a,b和/或c”是指(a),(b),(c),(a和b),(a和c),(b和c),或(a,b和c)。

      本描述可以使用表達(dá)方式“在一個(gè)實(shí)施例中”或“在多個(gè)實(shí)施例中”,所述表達(dá)方式均可以指代相同或不同實(shí)施例中的一個(gè)或多個(gè)。此外,相對(duì)于本公開(kāi)的實(shí)施例所使用的術(shù)語(yǔ)“包含”,“包括”,“具有”等等是同義的。

      如本文在此之后(包括權(quán)利要求書(shū))所使用的,術(shù)語(yǔ)“模塊”可以指代成為以下項(xiàng)的一部分(或包括):專用集成電路(asic)、電子電路、執(zhí)行一個(gè)或多個(gè)軟件或固件程序的(共享、專用或組式)處理器和/或(共享、專用或組式)存儲(chǔ)器、組合邏輯電路和/或提供所描述的功能的其它合適的組件。

      現(xiàn)在參考圖1,示出了根據(jù)各種實(shí)施例的用于生成用于設(shè)備的自定義類庫(kù)的本公開(kāi)的組件視圖。如圖所示,用于生成用于設(shè)備的自定義類庫(kù)(例如用于iot設(shè)備的自定義java?類庫(kù))的裝置100可以包括分析器102和生成器104。在實(shí)施例中,分析器102可以被配置成接收用于設(shè)備的工作負(fù)載112和工作負(fù)載112所使用的類庫(kù)114作為輸入,分析工作負(fù)載112和類庫(kù)114以識(shí)別一個(gè)或多個(gè)庫(kù)內(nèi)部api調(diào)用鏈116和一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈118。此外,分析器102可以被配置來(lái)生成關(guān)于所述一個(gè)或多個(gè)庫(kù)內(nèi)部api調(diào)用鏈116和一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈118的信息。一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈118可以包括來(lái)自工作負(fù)載112對(duì)類庫(kù)114的直接調(diào)用和來(lái)自工作負(fù)載112對(duì)類庫(kù)114的直接調(diào)用導(dǎo)致的類庫(kù)114之內(nèi)的后續(xù)調(diào)用。生成器104還可以被配置成用于至少部分地基于所述一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈118從類庫(kù)114生成比所述類庫(kù)114小的用于工作負(fù)載112的自定義類庫(kù)120。較小的尺寸可以通過(guò)排除完全類庫(kù)的未被調(diào)用類和api來(lái)實(shí)現(xiàn)。作為結(jié)果,可以為資源有限并且只運(yùn)行相對(duì)小的工作負(fù)載的各種各樣的小iot設(shè)備來(lái)生成相對(duì)小巧的自定義類庫(kù)120,同時(shí)為工作負(fù)載112維持了跨平臺(tái)的兼容性。iot設(shè)備的示例可以包括但不限于:可穿戴設(shè)備、工業(yè)互聯(lián)網(wǎng)設(shè)備、家庭自動(dòng)化設(shè)備等等。

      現(xiàn)在參考圖2,示出根據(jù)各種實(shí)施例的用于生成用于設(shè)備的自定義類庫(kù)的過(guò)程的總觀。如圖所示,用于生成用于設(shè)備的自定義類庫(kù)120的過(guò)程200可以包括在塊202-206執(zhí)行的操作。塊202和204的操作可以例如由圖1的早先描述的分析器102執(zhí)行。塊206的操作可以例如由圖1的早先描述的生成器104執(zhí)行。

      過(guò)程200可以在塊202開(kāi)始。在塊202,可以掃描和分析類庫(kù)以識(shí)別庫(kù)內(nèi)部api調(diào)用鏈,并生成關(guān)于這些庫(kù)內(nèi)部api調(diào)用鏈的信息。所述操作稍后將參考圖3進(jìn)一步描述下去。從塊202,過(guò)程200可以進(jìn)行到塊204。

      在塊204,工作負(fù)載可以被掃描和分析,以識(shí)別工作負(fù)載完全api調(diào)用鏈并生成關(guān)于這些工作負(fù)載完全api調(diào)用鏈的信息。請(qǐng)記?。阂粋€(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈可以包括來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用和來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用導(dǎo)致的類庫(kù)之內(nèi)的后續(xù)調(diào)用。在實(shí)施例中,可以在寬度優(yōu)先搜索(bfs)的基礎(chǔ)上類似地掃描和分析工作負(fù)載。所述操作稍后將參考圖4進(jìn)一步描述下去。從塊204,過(guò)程200可以進(jìn)行到塊206。

      在塊206,可以至少部分地基于所述工作負(fù)載完全api調(diào)用鏈從類庫(kù)生成比所述類庫(kù)小的自定義類庫(kù)。所述操作稍后將參考圖5進(jìn)一步描述下去。從塊206,過(guò)程200可以結(jié)束。

      現(xiàn)在參照?qǐng)D3,示出根據(jù)各種實(shí)施例的庫(kù)內(nèi)部api調(diào)用鏈的生成。如所圖示的,在實(shí)施例中,在類庫(kù)(例如,類庫(kù)114)中的類文件302均可以包括具有超類名稱、內(nèi)部類名稱、方法池、域池、接口名稱等等的類文件布局304??梢話呙韬头治鲱愇募?02中的依賴性以生成用以表示類庫(kù)中的api和/或每個(gè)類之間的調(diào)用關(guān)系的拓?fù)溥B通圖。在實(shí)施例中,可以在寬度優(yōu)先搜索(bfs)的基礎(chǔ)上掃描和分析類文件302。從掃描和分析得到的所有類庫(kù)內(nèi)部api調(diào)用以及被調(diào)用關(guān)系的信息可以被存儲(chǔ)在依賴性數(shù)據(jù)庫(kù)(db)306中。在實(shí)施例中,所述信息可以被存儲(chǔ)在至少四個(gè)表中,api信息表308、方法調(diào)用表310、域調(diào)用表312和類表314。在替代實(shí)施例中,更多或更少的表或其它數(shù)據(jù)結(jié)構(gòu)也可以被代替使用。

      api信息表308可以存儲(chǔ)apiid、api的原型和api的包含類id。在實(shí)施例中,所述apiid可以是唯一標(biāo)識(shí)符,作為掃描分析的一部分,所述唯一標(biāo)識(shí)符被分配給每個(gè)api(在java?的情況下,包括每個(gè)java?域和每個(gè)java?方法)。所述api原型(返回值和參數(shù))可以被從類文件302獲得??梢詮谋眍?14中(所述表類已被建成之后)通過(guò)搜索類名稱來(lái)獲得包含類id。

      方法調(diào)用表310可以存儲(chǔ)由給定的api直接調(diào)用的方法(多個(gè))的信息。在java?的情況下,被調(diào)用的方法(多個(gè))的一部分可以被從invoke_virtual(調(diào)用_虛擬)和invoke_static(調(diào)用_靜態(tài))的字節(jié)碼獲得。字節(jié)碼的操作數(shù)指示被調(diào)用的api名稱和包含類。被調(diào)用的方法(多個(gè))的另一部分可以被從invoke_special(調(diào)用_特殊)和invoke_interface(調(diào)用_接口)的字節(jié)碼來(lái)獲得。字節(jié)碼的操作數(shù)指示被調(diào)用的api并且準(zhǔn)確的超類或接口可以通過(guò)(在類表304已被建成之后)搜索類表304來(lái)確定。

      域調(diào)用表312可以存儲(chǔ)給定的api直接調(diào)用域(多個(gè))的信息。在java?的情況下,被調(diào)用域的名稱(多個(gè))可以從putfield(放域)、getfield(取得域)、putstatic(放靜態(tài))和getstatic(取得靜態(tài))的字節(jié)碼來(lái)獲得。字節(jié)碼的操作數(shù)是被調(diào)用的域名稱,并且它們可以通過(guò)搜索api信息表308被轉(zhuǎn)換成apiid。

      類表314可存儲(chǔ)每個(gè)類/接口以及在掃描期間所獲得的它們的繼承關(guān)系的信息。

      現(xiàn)在參照?qǐng)D4,示出根據(jù)各種實(shí)施例的工作負(fù)載完全api調(diào)用鏈的生成。如所示出的,在實(shí)施例中,工作負(fù)載(例如,工作負(fù)載112)中的類文件402可以包括類文件布局404,類文件布局404具有類似于早前所描述的類文件布局304的信息。類文件402可以被掃描和分析以識(shí)別來(lái)自工作負(fù)載對(duì)類庫(kù)的所有直接調(diào)用。來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用導(dǎo)致的類庫(kù)之內(nèi)的后續(xù)引用可以被從依賴性db406(類似于早前描述的依賴性db306)獲得,所述依賴性db406具有類庫(kù)內(nèi)部調(diào)用鏈信息。與類文件302的掃描和分析類似,類文件402連同類庫(kù)之內(nèi)的后續(xù)調(diào)用可以被同樣地在寬度優(yōu)先搜索(bfs)的基礎(chǔ)上掃描和分析。作為結(jié)果,可以生成最終的被調(diào)用api列表408,最終的被調(diào)用api列表408具有工作負(fù)載完全api調(diào)用鏈,所述工作負(fù)載完全api調(diào)用鏈包括所述庫(kù)之內(nèi)作為結(jié)果的后續(xù)調(diào)用。

      現(xiàn)在參照?qǐng)D5,示出根據(jù)各種實(shí)施例的自定義類庫(kù)的進(jìn)一步詳細(xì)的生成。如圖所示,用于生成自定義類庫(kù)的操作500可以包括在塊502-508執(zhí)行的操作。所述操作可以被例如圖1的早前描述的生成器104執(zhí)行。

      在塊502,可以例如從早前描述的依賴性db306中的api表308中檢索api。

      在塊504,可以例如從早前描述的依賴性db306中的api表308做出關(guān)于用于api的包含類的確定。

      在塊506,所檢索的api和它的包含類可以被復(fù)制到自定義類庫(kù)中。

      在塊508,可以確定是否所有可應(yīng)用的api都已經(jīng)被檢查了,即,按照工作負(fù)載完全api調(diào)用鏈的指示而涉及的所有api。所述確定可以例如基于所有api是否都已經(jīng)從依賴性數(shù)據(jù)庫(kù)306中的api表308檢索并檢查了而做出。如果已經(jīng)檢查了所有可應(yīng)用的api,則生成操作可以結(jié)束。然而,如果不是所有可應(yīng)用的api都已經(jīng)被檢查了,則操作500可以繼續(xù)并返回到塊502,如早前所描述的。

      然后可以重復(fù)塊502-508處的操作。在塊502-508的操作然后可以被重復(fù)到和需要的次數(shù)一樣多,直到所有可用的api(例如,在依賴性db306中的api表308內(nèi)的所有api)都已經(jīng)被檢查和處理了為止。

      現(xiàn)在參照?qǐng)D6,其中,示出根據(jù)各種實(shí)施例的適合于供圖1的裝置使用的示例計(jì)算機(jī)。如所示的,計(jì)算機(jī)600可以包括一個(gè)或多個(gè)處理器或處理器核心602以及系統(tǒng)存儲(chǔ)器604。在實(shí)施例中,多個(gè)處理器核心602可以被設(shè)置在一個(gè)管芯上。為了本申請(qǐng)(包括權(quán)利要求)的目的,術(shù)語(yǔ)“處理器”和“處理器核心”可以被認(rèn)為是同義的,除非上下文另外清楚地要求。另外,計(jì)算機(jī)600可以包括大容量存儲(chǔ)設(shè)備(多個(gè))606(諸如軟盤(pán)、硬盤(pán)驅(qū)動(dòng)器、光盤(pán)只讀存儲(chǔ)器(cd-rom)等等)、輸入/輸出設(shè)備(多個(gè))608(諸如顯示器、鍵盤(pán)、光標(biāo)控制等等)以及通信接口610(諸如網(wǎng)絡(luò)接口卡、調(diào)制解調(diào)器等等)。在實(shí)施例中,顯示單元可以是觸屏敏感的并且包括顯示屏、一個(gè)或多個(gè)處理器、存儲(chǔ)介質(zhì)和通信元件,它還可以從具有鍵盤(pán)的基礎(chǔ)平臺(tái)可拆卸地入站(dock)或者出站(undock)。所述元件可以經(jīng)由系統(tǒng)總線612耦合到彼此,系統(tǒng)總線612可以表示一條或多條總線。在多條總線的情況下,它們可以通過(guò)一個(gè)或多個(gè)總線橋(未示出)橋接。

      這些元件中的每一個(gè)可以執(zhí)行其在本領(lǐng)域中已知的常規(guī)功能。特別地,系統(tǒng)存儲(chǔ)器604和大容量存儲(chǔ)設(shè)備(多個(gè))606可以被利用來(lái)存儲(chǔ)工作副本和編程指令的持久性拷貝(被標(biāo)示為計(jì)算邏輯622),所述編程指令實(shí)現(xiàn)早前描述的操作,所述操作例如但不限于:與分析器102和/或生成器104相關(guān)聯(lián)的操作。各種元件可以通過(guò)由(多個(gè))處理器602或高級(jí)語(yǔ)言(諸如像c)支持的匯編指令來(lái)實(shí)現(xiàn),所述高級(jí)語(yǔ)言能夠被編譯成這樣的指令。

      可以在工廠或者在現(xiàn)場(chǎng)通過(guò)例如(未示出的)分發(fā)介質(zhì)(諸如壓縮盤(pán)(cd))或通過(guò)通信接口610(從分發(fā)服務(wù)器(未示出))把所述編程指令的持久性拷貝放置在持久性大容量存儲(chǔ)設(shè)備(多個(gè))606中。即,可以采用具有代理程序的實(shí)現(xiàn)的一個(gè)或多個(gè)分發(fā)介質(zhì)來(lái)分發(fā)代理和程序給各個(gè)計(jì)算設(shè)備。

      這些元件610-612的數(shù)量、能力和/或容量可以變化,這取決于示例計(jì)算機(jī)600的預(yù)計(jì)用途,例如示例計(jì)算機(jī)600是智能電話、平板電腦、超極本、手提電腦還是服務(wù)器。這些元件610-612的構(gòu)成以別的方式是已知的,并且因此將不作進(jìn)一步描述。

      圖7示出根據(jù)各種實(shí)施例的具有被配置成實(shí)施與早前所描述的分析器102和/或生成器104相關(guān)聯(lián)的操作中的全部操作或者選定的操作的指令的示例非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。如圖所示,非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)702可以包括多個(gè)編程指令704。編程指令704可以被配置到使設(shè)備(例如,計(jì)算機(jī)600)能夠響應(yīng)于所述編程指令的執(zhí)行來(lái)分別執(zhí)行例如與圖1的分析器102和/或生成器104相關(guān)聯(lián)的各種操作或圖2-5的各種操作。在替代實(shí)施例中,編程指令704可以改為被設(shè)置在多個(gè)非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)702上。在再有的其它實(shí)施例中,編程指令704可以被編碼在臨時(shí)性計(jì)算機(jī)可讀信號(hào)中。

      向回參照?qǐng)D6,對(duì)于一個(gè)實(shí)施例,處理器602中的至少一個(gè)可以被和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)封裝在一起,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有計(jì)算邏輯622(代替存儲(chǔ)在系統(tǒng)存儲(chǔ)器604和/或大容量存儲(chǔ)設(shè)備606中),計(jì)算邏輯622被配置成實(shí)施與圖1的分析器102和/或生成器104相關(guān)聯(lián)的操作中的全部操作或者選定的操作或圖2-5的操作的各方面。對(duì)于一個(gè)實(shí)施例,處理器602中的至少一個(gè)可以被與具有計(jì)算邏輯622的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)封裝在一起以形成系統(tǒng)級(jí)封裝(sip)。對(duì)于一個(gè)實(shí)施例,處理器602中的至少一個(gè)可以與具有計(jì)算邏輯622的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)集成在相同的管芯上。對(duì)于一個(gè)實(shí)施例,處理器602中的至少一個(gè)可以與具有計(jì)算邏輯622的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)封裝在一起以形成以形成片上系統(tǒng)(soc)。對(duì)于至少一個(gè)實(shí)施例中,soc可以被利用在例如但不限于混合計(jì)算平板/便攜式電腦中。

      因此,已經(jīng)描述了生成用于設(shè)備的自定義類庫(kù)的實(shí)施例。示例實(shí)施例可以包括以下。

      示例1可以是用于生成用于設(shè)備的自定義類庫(kù)的裝置。所述裝置可以包括分析器和一個(gè)或多個(gè)處理器。所述分析器可以被一個(gè)或多個(gè)處理器操作來(lái)接收用于所述設(shè)備的工作負(fù)載和所述工作負(fù)載使用的類庫(kù),分析所述工作負(fù)載和所述類庫(kù),識(shí)別一個(gè)或多個(gè)工作負(fù)載完全應(yīng)用編程接口api調(diào)用鏈,所述工作負(fù)載完全應(yīng)用編程接口api調(diào)用鏈包括來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用和來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用導(dǎo)致的類庫(kù)之內(nèi)的后續(xù)調(diào)用,以及生成關(guān)于一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈的信息。

      示例2可以是示例1,其中,所述分析器可以解析類庫(kù),并且基于所述解析的結(jié)果,生成描述類庫(kù)中每個(gè)類或api之間的調(diào)用關(guān)系的連接信息。

      示例3可以是示例2,其中分析器還可以基于解析的結(jié)果生成api信息表,所述api信息表為每個(gè)api存儲(chǔ)api的唯一標(biāo)識(shí)符、具有返回值和一個(gè)或多個(gè)參數(shù)的api的原型以及api的包含類標(biāo)識(shí)符。

      示例4可以是示例2,其中分析器還可以基于解析的結(jié)果生成方法調(diào)用表,所述方法調(diào)用表為每個(gè)api存儲(chǔ)標(biāo)識(shí)由api直接調(diào)用的一個(gè)或多個(gè)方法的一個(gè)或多個(gè)方法標(biāo)識(shí)符。

      示例5可以是示例2,其中分析器還可以基于解析的結(jié)果生成域調(diào)用表,所述域調(diào)用表為每個(gè)api存儲(chǔ)標(biāo)識(shí)由api調(diào)用的一個(gè)或多個(gè)域的一個(gè)或多個(gè)域標(biāo)識(shí)符。

      示例6可以是示例1-5中的任何一個(gè),其中分析器可以解析工作負(fù)載,并且基于解析工作負(fù)載的結(jié)果,生成工作負(fù)載或類庫(kù)的api調(diào)用的一個(gè)或多個(gè)記錄。

      示例7可以是示例6,其中分析器可以至少部分地基于工作負(fù)載或類庫(kù)的api調(diào)用的一個(gè)或多個(gè)記錄識(shí)別一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈以及識(shí)別描述類庫(kù)中的每個(gè)類或api之間的調(diào)用關(guān)系的連接信息。

      示例8可以是示例1-7中的任何一個(gè),還包括:生成器,用以由所述一個(gè)或多個(gè)處理器操作來(lái)至少部分地基于所述一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈從類庫(kù)生成比所述類庫(kù)小的用于工作負(fù)載的自定義類庫(kù)。

      示例9可以是示例8,其中類庫(kù)可以包括java?虛擬機(jī)、jvm、類庫(kù)。

      示例10可以是示例8,其中工作負(fù)載可以包括用于物聯(lián)網(wǎng)(iot)設(shè)備的工作負(fù)載。

      示例11可以是用于生成用于設(shè)備的自定義類庫(kù)的方法。所述方法可以包括:由計(jì)算設(shè)備接收用于所述設(shè)備的工作負(fù)載和所述工作負(fù)載使用的類庫(kù);由計(jì)算設(shè)備分析所述工作負(fù)載和所述類庫(kù)以識(shí)別一個(gè)或多個(gè)工作負(fù)載完全應(yīng)用編程接口api調(diào)用鏈,所述工作負(fù)載完全應(yīng)用編程接口api調(diào)用鏈包括來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用和來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用導(dǎo)致的類庫(kù)之內(nèi)的后續(xù)調(diào)用;以及由計(jì)算設(shè)備生成關(guān)于一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈的信息。

      示例12可以是示例11,其中分析可以包括解析類庫(kù),并且基于所述解析的結(jié)果,生成描述類庫(kù)中每個(gè)類或api之間的調(diào)用關(guān)系的連接信息。

      示例13可以是示例12,其中分析還可以包括基于解析的結(jié)果生成api信息表,所述api信息表為每個(gè)api存儲(chǔ)api的唯一標(biāo)識(shí)符、具有返回值和一個(gè)或多個(gè)參數(shù)的api的原型以及所述api的包含類標(biāo)識(shí)符。

      示例14可以是示例12,其中分析還可以包括基于解析的結(jié)果生成方法調(diào)用表,所述方法調(diào)用表為每個(gè)api存儲(chǔ)標(biāo)識(shí)由api直接調(diào)用的一個(gè)或多個(gè)方法的一個(gè)或多個(gè)方法標(biāo)識(shí)符。

      示例15可以是示例12,其中分析還可以包括:基于解析的結(jié)果生成域調(diào)用表,所述域調(diào)用表為每個(gè)api存儲(chǔ)標(biāo)識(shí)由api調(diào)用的一個(gè)或多個(gè)域的一個(gè)或多個(gè)域標(biāo)識(shí)符。

      示例16可以是示例11-15中的任何一個(gè),其中分析可以包括解析工作負(fù)載,并且基于解析工作負(fù)載的結(jié)果,生成工作負(fù)載或類庫(kù)的api調(diào)用的一個(gè)或多個(gè)記錄。

      示例17可以是示例16,其中分析可以包括至少部分地基于工作負(fù)載或類庫(kù)的api調(diào)用的一個(gè)或多個(gè)記錄識(shí)別一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈以及識(shí)別描述類庫(kù)中的每個(gè)類或api之間的調(diào)用關(guān)系的連接信息。

      示例18可以是示例11-17中的任何一個(gè),還包括由計(jì)算設(shè)備至少部分地基于所述一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈從類庫(kù)生成比所述類庫(kù)小的用于工作負(fù)載的自定義類庫(kù)。

      示例19可以是示例18,其中類庫(kù)可以包括java?虛擬機(jī)、jvm、類庫(kù)。

      示例20可以是示例18,其中工作負(fù)載可以包括用于物聯(lián)網(wǎng)(iot)設(shè)備的工作負(fù)載。

      示例21可以是用于生成用于設(shè)備的自定義類庫(kù)的裝置。所述裝置可以包括用于接收用于所述設(shè)備的工作負(fù)載和所述工作負(fù)載使用的類庫(kù)的部件;用于分析所述工作負(fù)載和所述類庫(kù)以識(shí)別一個(gè)或多個(gè)工作負(fù)載完全應(yīng)用編程接口api調(diào)用鏈的部件,所述工作負(fù)載完全應(yīng)用編程接口api調(diào)用鏈包括來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用和來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用導(dǎo)致的類庫(kù)之內(nèi)的后續(xù)調(diào)用;以及用于生成關(guān)于一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈的信息的部件。

      示例22可以示例21,其中,用于分析的部件可以包括用于解析類庫(kù)并且基于所述解析的結(jié)果生成描述類庫(kù)中每個(gè)類或api之間的調(diào)用關(guān)系的連接信息的部件。

      示例23可以是示例22,其中用于分析的部件還可以包括用于基于解析的結(jié)果生成api信息表的部件,所述api信息表為每個(gè)api存儲(chǔ)api的唯一標(biāo)識(shí)符、具有返回值和一個(gè)或多個(gè)參數(shù)的api的原型以及api的包含類標(biāo)識(shí)符。

      示例24可以是示例22,其中,用于分析的部件可以進(jìn)一步包括用于基于解析的結(jié)果生成方法調(diào)用表的部件,所述方法調(diào)用表為每個(gè)api存儲(chǔ)標(biāo)識(shí)由api直接調(diào)用的一個(gè)或多個(gè)方法的一個(gè)或多個(gè)方法標(biāo)識(shí)符。

      示例25可以是示例22,其中,用于分析的部件可以進(jìn)一步包括用于基于解析的結(jié)果生成域調(diào)用表的部件,所述域調(diào)用表為每個(gè)api存儲(chǔ)標(biāo)識(shí)由api調(diào)用的一個(gè)或多個(gè)域的一個(gè)或多個(gè)域標(biāo)識(shí)符。

      示例26可以是示例21-25中的任何一個(gè),其中,用于分析的部件可以包括用于解析工作負(fù)載并且基于解析工作負(fù)載的結(jié)果生成工作負(fù)載或類庫(kù)的api調(diào)用的一個(gè)或多個(gè)記錄的部件。

      示例27可以是示例26,其中用于分析的部件可以包括用于至少部分地基于工作負(fù)載或類庫(kù)的api調(diào)用的一個(gè)或多個(gè)記錄識(shí)別一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈以及識(shí)別描述類庫(kù)中的每個(gè)類或api之間的調(diào)用關(guān)系的連接信息的部件。

      示例28可以是示例21-27中的任何一個(gè),還包括:用于至少部分地基于一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈從類庫(kù)生成比所述類庫(kù)小的用于工作負(fù)載的自定義類庫(kù)的部件。

      示例29可以是示例28,其中類庫(kù)可以包括java?虛擬機(jī)、jvm、類庫(kù)。

      示例30可以是示例28,其中工作負(fù)載可以包括用于物聯(lián)網(wǎng)(iot)設(shè)備的工作負(fù)載。

      示例31可以是具有指令的一個(gè)或多個(gè)非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令響應(yīng)于由裝置對(duì)指令的執(zhí)行而使得所述裝置:接收用于所述設(shè)備的工作負(fù)載和所述工作負(fù)載使用的類庫(kù);分析所述工作負(fù)載和所述類庫(kù);識(shí)別一個(gè)或多個(gè)工作負(fù)載完全應(yīng)用編程接口api調(diào)用鏈,所述工作負(fù)載完全應(yīng)用編程接口api調(diào)用鏈包括來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用和來(lái)自工作負(fù)載對(duì)類庫(kù)的直接調(diào)用導(dǎo)致的類庫(kù)之內(nèi)的后續(xù)調(diào)用;以及生成關(guān)于一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈的信息。

      示例32可以是示例31,其中,分析可以包括:解析類庫(kù),并且基于所述解析的結(jié)果生成描述類庫(kù)中每個(gè)類或api之間的調(diào)用關(guān)系的連接信息。

      示例33可以是示例32,其中,分析可以包括:基于解析的結(jié)果還生成api信息表,所述api信息表為每個(gè)api存儲(chǔ)api的唯一標(biāo)識(shí)符、具有返回值和一個(gè)或多個(gè)參數(shù)的api的原型以及api的包含類標(biāo)識(shí)符。

      示例34可以是示例32,其中分析可以包括:基于解析的結(jié)果還生成方法調(diào)用表,所述方法調(diào)用表為每個(gè)api存儲(chǔ)標(biāo)識(shí)由api直接調(diào)用的一個(gè)或多個(gè)方法的一個(gè)或多個(gè)方法標(biāo)識(shí)符。

      示例35可以是示例34,其中,分析可以包括:基于解析的結(jié)果還生成域調(diào)用表,所述域調(diào)用表為每個(gè)api存儲(chǔ)標(biāo)識(shí)由api調(diào)用的一個(gè)或多個(gè)域的一個(gè)或多個(gè)域標(biāo)識(shí)符。

      示例36可以是示例31-35中的任何一個(gè),其中,分析可以包括:解析工作負(fù)載,并且基于解析工作負(fù)載的結(jié)果,生成工作負(fù)載或類庫(kù)的api調(diào)用的一個(gè)或多個(gè)記錄。

      示例37可以是示例36,其中分析還可以包括:至少部分地基于工作負(fù)載或類庫(kù)的api調(diào)用的一個(gè)或多個(gè)記錄識(shí)別一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈,以及識(shí)別描述類庫(kù)中的每個(gè)類或api之間的調(diào)用關(guān)系的連接信息。

      示例38可以是示例31-37中的任何一個(gè),其中所述裝置可以進(jìn)一步被引發(fā)去至少部分地基于一個(gè)或多個(gè)工作負(fù)載完全api調(diào)用鏈從類庫(kù)生成比所述類庫(kù)小的用于工作負(fù)載的自定義類庫(kù)。

      示例39可以是示例38,其中類庫(kù)可以包括java?虛擬機(jī)、jvm、類庫(kù)。

      示例40可以是示例38,其中工作負(fù)載可以包括用于物聯(lián)網(wǎng)(iot)設(shè)備的工作負(fù)載。

      雖然為了本申請(qǐng)的目的,本文已經(jīng)說(shuō)明和描述了某些示例,但是被計(jì)算來(lái)實(shí)現(xiàn)相同目的的多種多樣的可替換和/或等效的實(shí)施例或者實(shí)現(xiàn)方式在不脫離本公開(kāi)的范圍的情況下都可以替換所示出和描述的實(shí)施例。本申請(qǐng)旨在涵蓋本文討論的實(shí)施例的任何適配或變化。因此,顯然意圖在于:本文所描述的某些實(shí)施例僅應(yīng)由權(quán)利要求來(lái)限定。

      在本公開(kāi)記載“一個(gè)”或“第一”元件或其等效物的情況下,這樣的公開(kāi)包括一個(gè)或多個(gè)這樣的元件,既不要求也不排除兩個(gè)或更多這樣的元件。另外,對(duì)所標(biāo)識(shí)的元件序數(shù)的指示(例如,第一,第二或第三)被使用來(lái)在這些元件之間做出區(qū)分,并且不指示或意味著這樣的元件的數(shù)量是必須的或者有限的,它們也不指示這樣的元件的特定位置或者順序,除非另有特別說(shuō)明。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1