欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

插件運行方法及裝置與流程

文檔序號:12824449閱讀:425來源:國知局
插件運行方法及裝置與流程

本發(fā)明實施例涉及計算機技術(shù)領(lǐng)域,尤其涉及一種插件運行方法及裝置。



背景技術(shù):

目前,終端中安裝的應(yīng)用程序(application,簡稱app)可以包括多個插件,各插件分別在進程中運行,由于進程在運行時需要占用獨立的內(nèi)存空間,因此,在同一app中的多個插件同時運行時,為了減少終端中進程所占用的內(nèi)存,可以在一個進程中運行多個插件。

在實際應(yīng)用過程中,同一app中的多個插件通常包括相同的公共類,在終端通過進程運行第一個插件時,在內(nèi)存中加載第一個插件對應(yīng)的公共類,并將該公共類加載至緩存中,當(dāng)通過該進程運行第二個插件時,在緩存中查找是否存在第二個插件的公共類,由于第一個插件與第二個插件的公共類相同,則在運行第二個插件時,在緩存中查找到第一個插件對應(yīng)的公共類,然后根據(jù)第二個插件的參數(shù)對第一個插件對應(yīng)的公共類進行操作,由于第一個插件和第二個插件均對緩存中的第一個插件對應(yīng)的公共類進行操作,導(dǎo)致該兩個插件在進程內(nèi)部產(chǎn)生沖突,均無法正常運行。

在現(xiàn)有技術(shù)中,為了避免進程中的插件發(fā)產(chǎn)生沖突,在加載插件時,為可能發(fā)生沖突的插件分別創(chuàng)建獨立的進程,使得可能發(fā)生沖突的插件分別在各自的進程中獨立運行,使得終端中創(chuàng)建的進程較多,占用終端較多的內(nèi)存,使得終端的運行速度變慢,導(dǎo)致用戶體驗較差。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例提供一種插件運行方法及裝置,用于在同一進程中運行多個插件時,在避免插件之間發(fā)生沖突的基礎(chǔ)上,減少終端中創(chuàng)建的進程個數(shù),提供終端的運行速度,進而提高用戶體驗。

第一方面,本發(fā)明實施例提供一種插件運行方法,包括:

確定待加載第一插件的進程,所述第一插件中包括所述第一插件對應(yīng)的第一公共類;

在通過所述進程加載所述第一公共類時,判斷所述進程對應(yīng)的緩存中是否存在與所述第一公共類的名稱相同的第二公共類,所述第二公共類為第二插件對應(yīng)的公共類,所述第一插件和所述第二插件為同一應(yīng)用程序app中的插件;

若是,在緩存中刪除所述第二公共類;

通過所述進程加載所述第一公共類,并根據(jù)所述第一公共類,通過所述進程運行所述第一插件。

第二方面,本發(fā)明實施例提供一種插件運行裝置,包括確定模塊、判斷模塊、刪除模塊以及運行模塊,其中,

所述確定模塊用于,確定待加載第一插件的進程,所述第一插件中包括所述第一插件對應(yīng)的第一公共類;

所述判斷模塊用于,在通過所述進程加載所述第一公共類時,判斷所述進程對應(yīng)的緩存中是否存在與所述第一公共類的名稱相同的第二公共類,所述第二公共類為第二插件對應(yīng)的公共類,所述第一插件和所述第二插件為同一應(yīng)用程序app中的插件;

所述刪除模塊用于,在所述判斷模塊判斷所述進程對應(yīng)的緩存中存在與所述第一公共類的名稱相同的第二公共類時,在緩存中刪除所述第二公共類;

所述運行模塊用于,通過所述進程加載所述第一公共類,并根據(jù)所述第一公共類,通過所述進程運行所述第一插件。

本發(fā)明實施例提供的插件運行方法及裝置,確定待加載第一插件的進程,第一插件中包括第一插件對應(yīng)的第一公共類;在通過該進程加載第一公共類時,若判斷進程對應(yīng)的緩存中存在與第一公共類的名稱相同的第二公共類,則在緩存中刪除第二公共類,第二公共類為第二插件對應(yīng)的公共類,第一插件和第二插件為同一應(yīng)用程序app中的插件;通過進程加載第一公共類,并根據(jù)第一公共類,通過進程運行第一插件;在上述過程中,在進程加載第一公共類時,若緩存中存在第二公共類,則先刪除第一公共類,再加載第一公共類,避免了通過第一插件的參數(shù)對第二插件對應(yīng)的第二公共類進行操作, 進而避免了在同一進程中運行第一插件和第二插件時產(chǎn)生沖突,進一步的,由于無需為可能發(fā)生沖突的第一插件和第二插件分別創(chuàng)建對立的進程,減少了終端中創(chuàng)建的進程個數(shù),進而減少了終端中進程所占用的內(nèi)存,提高了終端的運行速度,進而提高用戶體驗。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明提供的插件運行方法的流程示意圖一;

圖2為本發(fā)明提供的插件運行方法的流程示意圖二;

圖3為本發(fā)明提供的插件運行裝置的結(jié)構(gòu)示意圖一;

圖4為本發(fā)明提供的插件運行裝置的結(jié)構(gòu)示意圖二。

具體實施方式

為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

本發(fā)明實施例中的終端可以包括但不限于手機、平板電腦等移動通訊設(shè)備,終端的系統(tǒng)可以為android、ios等應(yīng)用系統(tǒng);本發(fā)明實施例中的終端可以安裝包括多個插件的app,并且可以通過一個進程運行同一app中的多個插件;本發(fā)明實施例涉及的方法,旨在解決現(xiàn)有技術(shù)中,當(dāng)進程中運行的插件發(fā)生沖突時,使得終端運行速度變慢,而導(dǎo)致用戶體驗差的問題;下面采用具體實施例對插件運行方法進行詳細說明。

圖1為本發(fā)明提供的插件運行方法的流程示意圖一,該方法的執(zhí)行主體為終端,該終端可以通過軟件和/或硬件實現(xiàn),請參照圖1,該方法可以包括:

s101、確定待加載第一插件的進程,第一插件中包括第一插件對應(yīng)的第 一公共類;

s102、在通過進程加載第一公共類時,判斷進程對應(yīng)的緩存中是否存在與第一公共類的名稱相同的第二公共類;

其中,第二公共類為第二插件對應(yīng)的公共類,第一插件和第二插件為同一應(yīng)用程序app中的插件;

若是,執(zhí)行s103;

若否,執(zhí)行s104;

s103、在緩存中刪除第二公共類;

在s103之后,執(zhí)行s104;

s104、通過進程加載第一公共類,并根據(jù)第一公共類,通過進程運行第一插件。

在圖1所示的實施例中,第一插件和第二插件為同一app中的插件,且第一插件對應(yīng)的第一公共類與第二插件對應(yīng)的第二公共類名稱相同,本領(lǐng)域技術(shù)人員可以理解的是,在應(yīng)用系統(tǒng)中具有相同名稱的類的實質(zhì)內(nèi)容也相同;可選的,第一公共類和第二公共類可以為界面類。

例如,針對終端中的任一app,第一插件和第二插件分別為該app的皮膚插件和圖片插件,由于皮膚插件和圖片插件需要共用該app中的顯示界面,因此,皮膚插件和圖片插件中均包括與該app的顯示界面相關(guān)的界面類,即皮膚插件對應(yīng)的界面類和圖片插件對應(yīng)的界面類的名稱相同、實質(zhì)內(nèi)容也相同。

在實際應(yīng)用過程中,app中可以包括多個插件,當(dāng)app調(diào)用插件時,需要通過進程實現(xiàn)運行該插件,在通過進程實現(xiàn)運行該插件之前,需要先加載該插件中的類;插件中的類可以包括公共類和/或非公共類,當(dāng)進程加載插件的非公共類時,將非公共類加載至內(nèi)存中,當(dāng)進程加載插件的公共類時,將公共類加載至內(nèi)存中,同時將公共類加載至緩存中,本領(lǐng)域技術(shù)人員可以理解的是,在進程加載插件的類時,創(chuàng)建與類相關(guān)的對象,并將對象保存在內(nèi)存或緩存中,本發(fā)明對此不再進行贅述。

下面,以通過進程運行app中的第一插件為例,對圖1所示的插件運行方法進行詳細說明,其中,app中還包括第二插件,第一插件包括第一公共類,第二插件包括第二公共類,且第一公共類和第二公共類的名稱相同。

在確定對第一插件進行加載的進程后,通過該進程對第一插件對應(yīng)的類進行加載,在通過進程加載第一插件對應(yīng)的第一公共類時,判斷緩存中是否存在與第一公共類名稱相同的第二公共類,可選的,通過反射機制在緩存中獲取所有參數(shù)名稱,根據(jù)所有參數(shù)名稱與第一公共類的名稱,判斷進程對應(yīng)的緩存中是否存在與第一公共類的名稱相同的第二公共類,若緩存中的參數(shù)名稱包括第一公共類的名稱,則確定緩存中存在與第一公共類名稱相同的第二公共類,否則,則確定緩存中不存在與第一公共類名稱相同的第二公共類。

若確定緩存中存在與第一公共類名稱相同的第二公共類,由于在加載第一公共類時,需要在緩存中加載第一公共類,且緩存中無法同時存在兩個類名稱相同的公共類,因此,在加載第一公共類時,先在緩存中刪除第二公共類,然后,向第二插件發(fā)送通知消息,以使得當(dāng)?shù)诙寮{(diào)用第二公共類時,從第二插件對應(yīng)的內(nèi)存中調(diào)用第二公共類。在確定緩存中不存在與第一公共類名稱相同的第二公共類后,通過進程加載第一公共類,并將第一公共類加載至第一插件對應(yīng)的內(nèi)存中,同時將第一公共類加載至緩存中,以使得第一插件既可以在第一插件對應(yīng)的內(nèi)存中調(diào)用第一公共類,又可以在緩存中調(diào)用公共類。

本發(fā)明實施例提供的插件運行方法,確定待加載第一插件的進程,第一插件中包括第一插件對應(yīng)的第一公共類;在通過該進程加載第一公共類時,若判斷進程對應(yīng)的緩存中存在與第一公共類的名稱相同的第二公共類,則在緩存中刪除第二公共類,第二公共類為第二插件對應(yīng)的公共類,第一插件和第二插件為同一應(yīng)用程序app中的插件;通過進程加載第一公共類,并根據(jù)第一公共類,通過進程運行第一插件;在上述過程中,在進程加載第一公共類時,若緩存中存在第二公共類,則先刪除第一公共類,再加載第一公共類,避免了通過第一插件的參數(shù)對第二插件對應(yīng)的第二公共類進行操作,進而避免了在同一進程中運行第一插件和第二插件時產(chǎn)生沖突,進一步的,由于無需為可能發(fā)生沖突第一插件和第二插件分別創(chuàng)建對立的進程,減少了終端中創(chuàng)建的進程個數(shù),進而減少了終端中進程所占用的內(nèi)存,提高了終端的運行速度,進而提高用戶體驗。

下面,通過圖2所示的實施例,對通過進程加載包括第二公共類的第二插件之后,再加載包括第一公共類的第一插件的過程進行詳細說明。

圖2為本發(fā)明提供的插件運行方法的流程示意圖二,該方法的執(zhí)行主體為終端,該終端可以通過軟件和/或硬件實現(xiàn),在圖1所示實施例的基礎(chǔ)上,請參照圖2,該方法可以包括:

s201、進程加載第二插件,將第二公共類加載至第二插件對應(yīng)的內(nèi)存中以及將第二公共類加載至緩存中;

s202、確定待加載第一插件的進程,第一插件中包括第一插件對應(yīng)的第一公共類;

s203、在通過進程加載第一公共類時,確定緩存中存在與第一公共類的名稱相同的第二公共類;

其中,第二公共類為第二插件對應(yīng)的公共類,第一插件和第二插件為同一應(yīng)用程序app中的插件;

s204、在緩存中刪除第二公共類;

s205、向第二插件發(fā)送通知消息,以使得當(dāng)?shù)诙寮{(diào)用第二公共類時,在第二插件對應(yīng)的內(nèi)存中調(diào)用第二公共類;

s206、通過進程加載第一公共類;

s207、通過進程加載第一插件的應(yīng)用資源;

s208、根據(jù)第一公共類和應(yīng)用資源,通過進程運行第一插件。

在s201中,進程加載第二插件的過程,與圖1所示實施例中的進程加載第一插件的過程類似,此處不再進行贅述。

s202-s204與圖1所示實施例中的s101-s103類似,s208與圖1所示實施例中的s104類似,此處不再進行贅述。

在s205中,在第二插件收到通知消息之前,即在緩存中存在第二公共類,當(dāng)?shù)诙寮枰{(diào)用第二公共類時,從緩存中調(diào)用第二公共類;在緩存中刪除第二插件對應(yīng)的公共類后,向第二插件發(fā)送通知消息,以使的第二插件在需要對第二公共類進行調(diào)用時,從第二插件對應(yīng)的內(nèi)存中進行調(diào)用,避免了第二插件在緩存中調(diào)用第一插件的第一公共類,進而避免了第一插件和第二插件無法正常工作。

在s206中,可選的,可以通過以下可行的實現(xiàn)方式實現(xiàn)加載第一公共類,具體的:判斷緩存中是否存在第一插件對應(yīng)的類加載器;若否,創(chuàng)建第一插件對應(yīng)的類加載器;通過第一插件對應(yīng)的類加載器加載第一公共類。

在通過進程加載第一公共類時,當(dāng)判斷緩存中存在第一插件對應(yīng)的類加載器時,直接通過已存在的類加載器加載第一公共類,進而提高加載第一公共類的效率,當(dāng)判斷緩存中不存在第一插件對應(yīng)的類加載器時,先創(chuàng)建第一插件對應(yīng)的類加載器,并根據(jù)新創(chuàng)建的類加載器加載第一公共類。

進一步的,可選的,通過所述進程加載所述第一公共類可以包括:通過進程將第一公共類加載至第一插件對應(yīng)的內(nèi)存中,以及通過進程將第一公共類加載至緩存中,進而在第一插件對第一公共類進行調(diào)用時,第一插件可以從第一插件對應(yīng)的內(nèi)存中調(diào)用第一公共類,或者從緩存中調(diào)用第一公共類。

在s207中,可選的,可以通過以下可行的實現(xiàn)方式實現(xiàn)加載第一插件的應(yīng)用資源:判斷緩存中是否存在第一插件對應(yīng)的資源加載器,當(dāng)存在資源加載器時,直接通過已存在的資源加載器加載第一插件的應(yīng)用資源,這樣可以提高加載第一插件的應(yīng)用資源的效率,當(dāng)判斷緩存中不存在第一插件對應(yīng)的資源加載器時,創(chuàng)建新的資源加載器,并通過新創(chuàng)建的資源加載器加載第一插件的應(yīng)用資源。

在圖2所示的實施例中,先通過進程加載了包括第二公共類的第二插件,因此,在緩存中包括第二公共類,在通過該進程加載第一插件對應(yīng)的第一公共類時,先刪除緩存中的第二公共類,然后通過該進程加載第一公共類,避免了通過第一插中運行第一插件和件的參數(shù)對第二插件對應(yīng)的公共類進行操作,進而避免了在同一進程第二插件時產(chǎn)生沖突,進一步的,由于無需為可能發(fā)生沖突的第一插件和第二插件分別創(chuàng)建對立的進程,減少了終端中創(chuàng)建的進程個數(shù),進而減少了終端中進程所占用的內(nèi)存,提高了終端的運行速度,進而提高用戶體驗。

下面,通過具體示例對圖1-圖2所示的插件運行方法進行詳細說明。

假設(shè)終端中包括app1,該app1包括視頻插件以及語音插件,在app1調(diào)用視頻插件以及語音插件時,均需要在終端的界面上進行顯示,因此,視頻插件和語音插件中均包括用于顯示界面的界面類,該界面類為公共類,為了便于下文描述,將視頻插件對應(yīng)的界面類稱為界面類1,將語音插件對應(yīng)的界面類稱為界面類2。

當(dāng)app1需要調(diào)用視頻插件時,確定通過新創(chuàng)建的進程1加載該視頻插件,當(dāng)通過進程1加載界面類1時,先判斷緩存中是否存在與界面類1的名 稱相同的公共類,由于進程1為新創(chuàng)建的進程,因此,進程1中不存在與界面類1的名稱相同的公共類,則通過進程1將界面類1加載至視頻插件對應(yīng)的內(nèi)存中,同時將界面類1加載至緩存中。

在app1調(diào)用視頻插件之后,又需要調(diào)用語音插件時,確定還通過進程1對語音插件進行加載,在通過進程1加載界面類2時,先判斷緩存中是否存在與界面類2的名稱相同的公共類,由于已經(jīng)通過進程1將界面類1加載至了緩存中,因此,先刪除緩存中加載的界面類1,并向視頻插件發(fā)送通知消息,以使得視頻插件需要調(diào)用界面類1時,直接從視頻插件對應(yīng)的內(nèi)存中進行調(diào)用;然后,通過進程1將界面類2加載至語音插件對應(yīng)的內(nèi)存中,同時將界面類2加載至緩存中,以使得當(dāng)語音插件需要調(diào)用界面類2時,可以在語音插件對應(yīng)的內(nèi)存中調(diào)用界面類2,也可以在緩存中調(diào)用界面類2。

在上述過程中,由于視頻插件和語音插件中包括相同的界面類,因此第一插件和第二插件為可能產(chǎn)生沖突的插件,然而,通過本發(fā)明實施例所示的方法,在同一進程中運行視頻插件和語音插件時,可以避免視頻插件和語音插件產(chǎn)生沖突,無需為視頻插件和語音插件分別創(chuàng)建獨立的進程,減少了終端中創(chuàng)建的進程個數(shù),進而減少了終端中進程所占用的內(nèi)存,提高了終端的運行速度,進而提高用戶體驗。

圖3為本發(fā)明提供的插件運行裝置的結(jié)構(gòu)示意圖一,請參照圖3,該插件運行裝置包括確定模塊301、判斷模塊302、刪除模塊303以及運行模塊304,其中

確定模塊301用于,確定待加載第一插件的進程,第一插件中包括第一插件對應(yīng)的第一公共類;

判斷模塊302用于,在通過進程加載第一公共類時,判斷進程對應(yīng)的緩存中是否存在與第一公共類的名稱相同的第二公共類,第二公共類為第二插件對應(yīng)的公共類,第一插件和第二插件為同一應(yīng)用程序app中的插件;

刪除模塊303用于,在判斷模塊302判斷進程對應(yīng)的緩存中存在與第一公共類的名稱相同的第二公共類時,在緩存中刪除第二公共類;

運行模塊304用于,通過進程加載第一公共類,并根據(jù)第一公共類,通過進程運行第一插件。

圖4為本發(fā)明提供的插件運行裝置的結(jié)構(gòu)示意圖二,在圖3所示實施例 的基礎(chǔ)上,請參照圖4,插件運行裝置還包括發(fā)送模塊305,其中,

運行模塊304還用于,在刪除模塊303刪除第二公共類之前,通過進程加載第二插件,將第二公共類加載至第二插件對應(yīng)的內(nèi)存中以及將第二公共類加載至緩存中;

發(fā)送模塊305用于,在刪除模塊刪除第二公共類之后,向第二插件發(fā)送通知消息,以使得當(dāng)?shù)诙寮{(diào)用第二公共類時,在第二插件對應(yīng)的內(nèi)存中調(diào)用第二公共類。

具體的,運行模塊具體可以用于:通過進程將第一公共類加載至第一插件對應(yīng)的內(nèi)存中,以及通過進程將第一公共類加載至緩存中。

可選的,判斷模塊302具體可以用于:

通過反射機制在緩存中獲取所有參數(shù)名稱;

根據(jù)所有參數(shù)名稱與第一公共類的名稱,判斷進程對應(yīng)的緩存中是否存在與第一公共類的名稱相同的第二公共類。

可選的,運行模塊304具體可以用于:

判斷緩存中是否存在第一插件對應(yīng)的類加載器;

若否,創(chuàng)建第一插件對應(yīng)的類加載器;

通過第一插件對應(yīng)的類加載器加載第一公共類。

進一步,運行模塊304在通過進程加載第一公共類之后,還可以用于:

通過進程加載第一插件的應(yīng)用資源;

相應(yīng)的,根據(jù)第一公共類,通過進程運行第一插件,包括:

根據(jù)第一公共類和應(yīng)用資源,通過進程運行第一插件。

在圖3和圖4所示的實施例中,可選的,第一公共類和第二公共類可以為界面類。

本實施例所示的裝置,可執(zhí)行上述方法實施例的技術(shù)方案,其實現(xiàn)原理和技術(shù)效果類似,本實施例此處不再贅述。

本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
洮南市| 鹿邑县| 科尔| 普洱| 资中县| 阳原县| 襄城县| 南溪县| 石景山区| 普陀区| 广宁县| 乌兰县| 峨眉山市| 芒康县| 犍为县| 铁力市| 长春市| 涡阳县| 香格里拉县| 嵊泗县| 定边县| 安庆市| 崇阳县| 海丰县| 德钦县| 十堰市| 沂水县| 瑞金市| 应城市| 大港区| 牟定县| 广丰县| 古交市| 出国| 阿城市| 九台市| 突泉县| 奉新县| 广灵县| 雅江县| 临沧市|