亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種加載插件的方法和裝置與流程

文檔序號:12063403閱讀:211來源:國知局
一種加載插件的方法和裝置與流程

本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種加載插件的方法和裝置。



背景技術(shù):

隨著終端技術(shù)的發(fā)展,終端的應(yīng)用越來越廣泛,功能也越來越強大。終端上可以安裝多個客戶端,客戶端在啟動時通常需要加載插件,終端在第一次加載某插件時,會對該插件的代碼進(jìn)行優(yōu)化,生成該插件對應(yīng)的odex文件,odex文件中包括該插件的代碼,以及根據(jù)該插件的代碼生成的索引數(shù)據(jù),然后加載該odex文件,這樣,終端可以根據(jù)索引數(shù)據(jù)快速的調(diào)用該插件的代碼,從而提高處理效率。

在實際中,不法分子會對客戶端的odex文件進(jìn)行篡改,以謀取利益。例如,可以用偽造的odex文件替換客戶端中的odex文件,偽造的odex文件運行后,會將用戶在該客戶端中輸入的賬號和密碼發(fā)送給不法分子設(shè)置的服務(wù)器,這樣,不法分子可以獲取用戶在該客戶端中輸入的賬號和密碼,進(jìn)而竊取該賬戶中的資源(如資金或虛擬物品等)。

為了避免此類現(xiàn)象發(fā)生,在加載odex文件之前,終端通常會對odex文件進(jìn)行安全性驗證。終端可以在最初生成odex文件后,根據(jù)預(yù)設(shè)的文件特征值算法(如MD5算法),以及該odex文件的全部內(nèi)容,計算該odex文件對應(yīng)的特征值,并對該特征值進(jìn)行存儲。由于odex文件被篡改后,計算出的特征值會發(fā)生變化,因此,終端在每次加載odex文件之前,可以獲取當(dāng)前的odex文件,然后根據(jù)預(yù)設(shè)的文件特征值算法,重新計算該odex文件的特征值,進(jìn)而可以判斷計算出的特征值,與預(yù)先存儲的特征值是否相同。如果相同,則說明odex文件沒有被篡改,加載該odex文件,如果不相同,則判定該odex文件已經(jīng)被篡改,刪除該odex文件。

在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:

在計算odex文件的特征值時,需要根據(jù)odex文件的全部內(nèi)容,計算該odex文件的特征值,這樣會占用終端大量的處理資源。



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

為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實施例提供了一種加載插件的方法和裝置。所述技術(shù)方案如下:

第一方面,提供了一種加載插件的方法,所述方法包括:

在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取所述目標(biāo)插件的odex文件,在所述odex文件中,獲取DexFile部分的文件數(shù)據(jù);

通過預(yù)先存儲的文件特征值算法,確定所述DexFile部分的文件數(shù)據(jù)的特征值;

如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載所述odex文件,其中,所述基準(zhǔn)特征值是在基于所述目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及所述文件特征值算法確定出的。

可選的,所述方法還包括:

如果所述確定出的特征值與所述基準(zhǔn)特征值不匹配,則刪除所述odex文件,生成所述目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

可選的,所述基準(zhǔn)特征值是在基于所述目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexOptHeader部分和DexFile部分的文件數(shù)據(jù),以及所述文件特征值算法確定出的;

所述通過預(yù)先存儲的文件特征值算法,確定所述DexFile部分的文件數(shù)據(jù)的特征值,包括:

在所述odex文件中,獲取DexOptHeader部分的文件數(shù)據(jù);

通過預(yù)先存儲的文件特征值算法,確定所述DexOptHeader部分和DexFile部分的文件數(shù)據(jù)的特征值。

這樣,可以根據(jù)DexOptHeader部分和DexFile部分的文件數(shù)據(jù)來計算特征值,然后再進(jìn)行判斷,可以提高判斷的準(zhǔn)確度。

可選的,所述如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載所述odex文件,包括:

如果所述確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則對所述目標(biāo)插件的odex文件進(jìn)行系統(tǒng)校驗,如果校驗通過,則加載所述odex文件。

這樣,可以通過系統(tǒng)校驗對odex文件進(jìn)行進(jìn)一步驗證,可以提高驗證的準(zhǔn)確度。

可選的,所述方法還包括:

在加載所述odex文件的過程中,當(dāng)檢測到對應(yīng)所述odex文件的讀寫指令時,獲取讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù);

通過預(yù)先存儲的文件特征值算法,確定所述讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù)的特征值;

如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則繼續(xù)加載所述odex文件;如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值不匹配,則停止加載所述odex文件,刪除所述odex文件,生成所述目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

這樣,可以實現(xiàn)在加載odex文件的過程中,實時監(jiān)測odex文件是否被篡改,并在監(jiān)測到odex文件發(fā)生篡改時,停止加載該odex文件。

第二方面,提供了一種加載插件的裝置,所述裝置包括:

第一獲取模塊,用于在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取所述目標(biāo)插件的odex文件,在所述odex文件中,獲取DexFile部分的文件數(shù)據(jù);

第一確定模塊,用于通過預(yù)先存儲的文件特征值算法,確定所述DexFile部分的文件數(shù)據(jù)的特征值;

第一加載模塊,用于如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載所述odex文件,其中,所述基準(zhǔn)特征值是在基于所述目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及所述文件特征值算法確定出的。

可選的,所述裝置還包括:

刪除模塊,用于如果所述確定出的特征值與所述基準(zhǔn)特征值不匹配,則刪除所述odex文件,生成所述目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

可選的,所述基準(zhǔn)特征值是在基于所述目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexOptHeader部分和DexFile部分的文件數(shù)據(jù),以及所述文件特征值算法確定出的;

所述第一確定模塊,包括:

獲取子模塊,用于在所述odex文件中,獲取DexOptHeader部分的文件數(shù)據(jù);

確定子模塊,用于通過預(yù)先存儲的文件特征值算法,確定所述DexOptHeader部分和DexFile部分的文件數(shù)據(jù)的特征值。

可選的,所述第一加載模塊,用于:

如果所述確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則對所述目標(biāo)插件的odex文件進(jìn)行系統(tǒng)校驗,如果校驗通過,則加載所述odex文件。

可選的,所述裝置還包括:

第二獲取模塊,用于在加載所述odex文件的過程中,當(dāng)檢測到對應(yīng)所述odex文件的讀寫指令時,獲取讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù);

第二確定模塊,用于通過預(yù)先存儲的文件特征值算法,確定所述讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù)的特征值;

第二加載模塊,用于如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則繼續(xù)加載所述odex文件;如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值不匹配,則停止加載所述odex文件,刪除所述odex文件,生成所述目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:

本發(fā)明實施例中,在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取目標(biāo)插件的odex文件,在odex文件中,獲取DexFile部分的文件數(shù)據(jù),通過預(yù)先存儲的文件特征值算法,確定DexFile部分的文件數(shù)據(jù)的特征值,如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載odex文件,其中,基準(zhǔn)特征值是在基于目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及文件特征值算法確定出的,基于上述處理,無需根據(jù)odex文件的全部內(nèi)容計算特征值,從而可以節(jié)約終端的處理資源。

附圖說明

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

圖1是本發(fā)明實施例提供的一種加載插件的方法流程圖;

圖2是本發(fā)明實施例提供的一種加載插件的方法流程圖;

圖3是本發(fā)明實施例提供的一種odex文件的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實施例提供的一種加載插件的裝置結(jié)構(gòu)示意圖;

圖5是本發(fā)明實施例提供的一種加載插件的裝置結(jié)構(gòu)示意圖;

圖6是本發(fā)明實施例提供的一種加載插件的裝置結(jié)構(gòu)示意圖;

圖7是本發(fā)明實施例提供的一種加載插件的裝置結(jié)構(gòu)示意圖;

圖8是本發(fā)明實施例提供的一種終端的結(jié)構(gòu)示意圖。

具體實施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。

本發(fā)明實施例提供了一種加載插件的方法,該方法的執(zhí)行主體為終端。其中,終端可以是手機或平板電腦等移動終端,也可以是PC((personal computer,個人電腦)終端,該終端上可以安裝一個或多個客戶端。該終端可以包括處理器和存儲器。其中,處理器可以用于計算odex文件對應(yīng)的特征值,進(jìn)而判斷計算出的特征值與預(yù)先存儲的基準(zhǔn)特征值是否相匹配,如果匹配,則可以加載odex文件,否則,可以刪除該odex文件,然后重新生成odex文件;存儲器可以用于存儲上述處理過程中產(chǎn)生或需要的數(shù)據(jù)。另外,終端還可以包括顯示器、收發(fā)器和電源等部件。

如圖1所示,該方法的處理流程可以包括如下的步驟:

步驟101,在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取目標(biāo)插件的odex文件,在odex文件中,獲取DexFile部分的文件數(shù)據(jù)。

其中,odex文件是終端在第一次加載目標(biāo)插件時,對目標(biāo)插件的代碼進(jìn)行優(yōu)化生成的文件,可稱為目標(biāo)插件的優(yōu)化文件。

在實施中,用戶可以在終端安裝多個客戶端(如手機管家等),客戶端在啟動時通常需要加載插件,終端在第一次加載某插件(即目標(biāo)插件)時,終端會對目標(biāo)插件的代碼進(jìn)行優(yōu)化,生成目標(biāo)插件對應(yīng)的odex文件。例如,對于安卓系統(tǒng)的手機,終端的系統(tǒng)程序中設(shè)置有用于加載插件的系統(tǒng)API(Application Programming Interface,應(yīng)用程序編程接口),即DexClassLoader,DexClassLoader可以對目標(biāo)插件的代碼(即class.dex文件)進(jìn)行優(yōu)化,生成目標(biāo)插件的odex文件。

odex文件中可以包括以下幾個部分:DexOptHeader、DexFile、Dependencies(即依賴庫列表)和OptData(即優(yōu)化數(shù)據(jù)),如圖2所示。其中,DexOptHeader是用于記錄odex文件中各部分(如DexFile、Dependencies和OptData)的位置偏移和長度的文件,可稱為頭文件,一般情況下,DexOptHeader的長度為32個字節(jié);DexFile是將目標(biāo)插件中“class.dex”文件直接寫入到odex文件中得到的,即DexFile是目標(biāo)插件的完整的原始代碼文件,可稱為原始文件;Dependencies為依賴庫列表,OptData為優(yōu)化數(shù)據(jù),均和本發(fā)明無直接關(guān)系,不做詳細(xì)介紹。

終端生成odex文件后,可以對odex文件進(jìn)行存儲,以便用戶再次開啟該客戶端時,該客戶端可以加載對目標(biāo)插件進(jìn)行加載。當(dāng)終端接收到對應(yīng)目標(biāo)插件的加載指令之后,終端可以獲取目標(biāo)插件的odex文件,進(jìn)而可以在odex文件中,獲取DexFile部分的文件數(shù)據(jù)。獲取目標(biāo)插件的odex文件,以及odex文件中的DexFile部分的文件數(shù)據(jù)的處理可以由客戶端來實現(xiàn)。

可選的,終端可以先判斷odex文件是否存在,相應(yīng)的,步驟101的處理過程可以如下:接收到對應(yīng)目標(biāo)插件的加載指令之后,判斷是否存在目標(biāo)插件的odex文件,如果存在,則獲取目標(biāo)插件的odex文件,在odex文件中,獲取DexFile部分的文件數(shù)據(jù)。

在實施中,終端接收到對應(yīng)目標(biāo)插件的加載指令之后,可以先判斷是否存在目標(biāo)插件的odex文件,如果存在,則可以獲取目標(biāo)插件的odex文件,在該odex文件中,獲取DexFile部分的文件數(shù)據(jù)。如果不存在,則終端可以生成目標(biāo)插件的odex文件,然后對生成的odex文件進(jìn)行加載。判斷是否存在目標(biāo)插件的odex文件的處理可以由客戶端來實現(xiàn)。

步驟102,通過預(yù)先存儲的文件特征值算法,確定DexFile部分的文件數(shù)據(jù)的特征值。

在實施中,終端中可以預(yù)先存儲文件特征值算法,該文件特征值算法可以采用現(xiàn)有技術(shù)中偽造難度較高的算法,如MD5(Message-Digest Algorithm 5,信息-摘要算法第五版)。終端獲取到DexFile部分的文件數(shù)據(jù)后,可以通過預(yù)先存儲的文件特征值算法,計算DexFile部分的文件數(shù)據(jù)的特征值(如MD5值)。終端可以計算DexFile部分的全部文件數(shù)據(jù)的特征值,也可以計算DexFile部分的部分文件數(shù)據(jù)的特征值。

可選的,可以根據(jù)odex文件中的DexOptHeader和DexFile,來計算特征值,相應(yīng)的,步驟102的處理過程可以如下:在odex文件中,獲取DexOptHeader部分的文件數(shù)據(jù);通過預(yù)先存儲的文件特征值算法,確定DexOptHeader部分和DexFile部分的文件數(shù)據(jù)的特征值。

在實施中,終端獲取到DexFile部分的文件數(shù)據(jù)后,還可以在odex文件中,獲取DexOptHeader部分的文件數(shù)據(jù),進(jìn)而通過預(yù)先存儲的文件特征值算法,DexOptHeader部分和DexFile部分的文件數(shù)據(jù)的特征值。終端可以根據(jù)DexFile部分的全部文件數(shù)據(jù),以及DexOptHeader部分的全部文件數(shù)據(jù),來計算特征值,或者,終端可以根據(jù)從odex文件起始位置開始的預(yù)設(shè)字節(jié)數(shù)的文件數(shù)據(jù),來計算特征值,例如,終端可以計算odex文件的前128字節(jié)的文件數(shù)據(jù)的特征值,在前128字節(jié)中,前32字節(jié)的文件數(shù)據(jù)為DexOptHeader部分的文件數(shù)據(jù),后96字節(jié)的文件數(shù)據(jù)為DexFile部分的文件數(shù)據(jù)。在實際中,很難實現(xiàn)偽造后的odex文件中的DexOptHeader部分和DexFile部分,與原odex文件中DexOptHeader部分和DexFile部分相同,因此,通過計算DexOptHeader部分和DexFile部分的文件數(shù)據(jù)的特征值,可以準(zhǔn)確的判斷odex文件是否被篡改。另外,基于odex文件的文件格式,查找前128字節(jié)的文件數(shù)據(jù),比只查找DexFile部分的文件數(shù)據(jù)的速度要快,因此,也可以提高終端的處理效率。步驟102的處理可以由客戶端來實現(xiàn)。

步驟103,如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載odex文件,其中,基準(zhǔn)特征值是在基于目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及文件特征值算法確定出的。

在實施中,終端生成odex文件后,可以通過預(yù)先存儲的文件特征值算法,計算生成的odex文件中DexFile部分的文件數(shù)據(jù)的特征值,將計算出的特征值作為基準(zhǔn)特征值,并進(jìn)行存儲。計算特征值的處理也可以有客戶端來實現(xiàn),基準(zhǔn)特征值可以存儲在客戶端中。

終端計算出特征值后,可以將計算出的特征值與基準(zhǔn)特征值進(jìn)行比較,如果計算出的特征值與基準(zhǔn)特征值相同,則可以加載odex文件,如果計算出的特征值與基準(zhǔn)特征值不相同,則可以刪除odex文件,然后可以生成目標(biāo)插件對應(yīng)的odex文件,進(jìn)而加載生成的odex文件。另外,終端還可以根據(jù)生成的odex文件后,可以根據(jù)生成的odex文件,重新計算基準(zhǔn)特征值,然后將本地存儲的基準(zhǔn)特征值,更新為重新計算出的基準(zhǔn)特征值。這樣,根據(jù)最新生成的odex文件來計算基準(zhǔn)特征值,可以在目標(biāo)插件發(fā)生變化(如插件發(fā)生更新時),及時更新基準(zhǔn)特征值。

另外,對于上述根據(jù)DexOptHeader部分和DexFile部分的文件數(shù)據(jù),來計算特征值的驗證策略,相應(yīng)的,基準(zhǔn)特征值可以是在基于目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexOptHeader部分和DexFile部分的文件數(shù)據(jù),以及文件特征值算法確定出的,具體的計算過程與上述處理過程類似,不再贅述。步驟103的處理可以由客戶端來實現(xiàn)。

可選的,終端還可以通過系統(tǒng)校驗來對odex文件進(jìn)行驗證,相應(yīng)的處理過程可以如下:如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則對目標(biāo)插件的odex文件進(jìn)行系統(tǒng)校驗,如果校驗通過,則加載odex文件。

在實施中,如果終端確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則可以目標(biāo)插件的odex文件進(jìn)行系統(tǒng)校驗,系統(tǒng)校驗可以采用現(xiàn)有技術(shù)中的校驗方式,例如,可以通過crc(Cyclic Redundancy Check,循環(huán)冗余校驗碼)和modwhen(即odex文件的生成時間)對odex文件進(jìn)行驗證。如果校驗通過,則可以加載odex文件,如果校驗不通過,則可以刪除odex文件,然后可以生成目標(biāo)插件對應(yīng)的odex文件,進(jìn)而加載生成的odex文件。

可選的,可以在加載odex文件的過程中,實時監(jiān)聽odex文件是否被篡改,相應(yīng)的處理過程可以如下:在加載odex文件的過程中,當(dāng)檢測到對應(yīng)odex文件的讀寫指令時,獲取讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù);通過預(yù)先存儲的文件特征值算法,確定讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù)的特征值;如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則繼續(xù)加載odex文件;如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值不匹配,則停止加載odex文件,刪除odex文件,生成目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

在實施中,終端在加載odex文件的過程中,可以實時檢測是否接收到對應(yīng)odex文件的讀寫指令,當(dāng)終端檢測到對應(yīng)odex文件的讀寫指令時,終端可以按照上述特征值驗證的方式,對odex文件進(jìn)行重新驗證,如果終端判定驗證通過(即計算出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配),則說明odex文件未被篡改,可以繼續(xù)加載odex文件;如果終端判定驗證不通過(即計算出的特征值與預(yù)先存儲的基準(zhǔn)特征值不匹配),則說明odex文件已經(jīng)被篡改,可以停止加載odex文件,刪除該odex文件,然后可以生成目標(biāo)插件對應(yīng)的odex文件,進(jìn)而加載生成的odex文件。本處理可以由客戶端來實現(xiàn)。

本實施例還提供了一種加載插件的方法,該方法的執(zhí)行主體為終端,本實施例以該方法應(yīng)用于終端中安裝的某一客戶端、文件特征值算法為MD5為例進(jìn)行說明,如圖3所示,該方法的處理流程可以包括如下的步驟:

步驟301,在接收到對應(yīng)目標(biāo)插件的加載指令之后,判斷目標(biāo)插件的odex文件是否存在。

當(dāng)用戶開啟客戶端時,或者用戶在客戶端的界面中,點擊目標(biāo)插件對應(yīng)的功能選項時,客戶端可以接收到對應(yīng)目標(biāo)插件的加載指令,然后可以判斷目標(biāo)插件的odex文件是否存在,如果存在,則執(zhí)行步驟302,如果不存在,則執(zhí)行步驟307。

步驟302,獲取odex文件的前128字節(jié)的文件數(shù)據(jù),計算該文件數(shù)據(jù)的MD5值。

客戶端可以獲取odex文件的前128字節(jié)的文件數(shù)據(jù),在前128字節(jié)中,前32字節(jié)的文件數(shù)據(jù)為DexOptHeader部分的文件數(shù)據(jù),后96字節(jié)的文件數(shù)據(jù)為DexFile部分的文件數(shù)據(jù)??蛻舳丝梢杂嬎闱?28字節(jié)的MD5值(即特征值)。

步驟303,判斷計算出的MD5值與預(yù)先存儲的基準(zhǔn)MD5值是否相同,如果相同,則執(zhí)行步驟304~305,如果不同,則執(zhí)行步驟306。

步驟304,對odex文件進(jìn)行crc/modwhen校驗。

客戶端判斷計算出的MD5值與基準(zhǔn)MD5值相同,則可以調(diào)用終端的系統(tǒng)程序的DexClassLoader接口,來加載目標(biāo)插件的odex文件??蛻舳苏{(diào)用終端的系統(tǒng)程序的DexClassLoader接口后,會觸發(fā)系統(tǒng)程序?qū)dex文件進(jìn)行系統(tǒng)校驗,系統(tǒng)校驗可以是crc/modwhen校驗。

步驟305,如果校驗通過,則加載目標(biāo)插件的odex文件。

步驟306,刪除獲取到的odex文件,然后執(zhí)行步驟306。

如果客戶端判斷計算出的MD5值與預(yù)先存儲的基準(zhǔn)MD5值不相同,則可以刪除odex文件,然后可以調(diào)用系統(tǒng)程序的DexClassLoader接口,重新生成目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。需要說明的是,由于現(xiàn)有技術(shù)中系統(tǒng)程序的處理機制,是系統(tǒng)程序在檢測到DexClassLoader接口被調(diào)用后,通常會進(jìn)行crc/modwhen校驗,因此,本步驟中,客戶端調(diào)用系統(tǒng)程序的DexClassLoader接口重新生成odex文件時,系統(tǒng)程序會先執(zhí)行crc/modwhen校驗的步驟,即系統(tǒng)程序先判斷odex文件是否存在,系統(tǒng)程序判定odex文件不存在后,再重新生成目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

步驟307,生成目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

如果客戶端判斷不存在odex文件,則可以調(diào)用終端的系統(tǒng)程序的DexClassLoader接口,以使系統(tǒng)程序生成目標(biāo)插件的odex文件,并對該odex文件進(jìn)行存儲。另外,客戶端還可以在生成的odex文件中,獲取前128字節(jié)的文件數(shù)據(jù),計算MD5值,將計算出的MD5值,作為odex文件對應(yīng)的基準(zhǔn)MD5值(即基準(zhǔn)特征值)。

另外,在加載odex文件的過程中,客戶端可以實時檢測是否存在對應(yīng)odex文件的讀寫指令,如果存在,則執(zhí)行步驟302,如果不存在,則繼續(xù)加載目標(biāo)插件。

本發(fā)明實施例中,在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取目標(biāo)插件的odex文件,在odex文件中,獲取DexFile部分的文件數(shù)據(jù),通過預(yù)先存儲的文件特征值算法,確定DexFile部分的文件數(shù)據(jù)的特征值,如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載odex文件,其中,基準(zhǔn)特征值是在基于目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及文件特征值算法確定出的,基于上述處理,無需根據(jù)odex文件的全部內(nèi)容計算特征值,從而可以節(jié)約終端的處理資源。

基于相同的技術(shù)構(gòu)思,本發(fā)明實施例還提供了一種加載插件的裝置,如圖4所示,該裝置包括:

第一獲取模塊410,用于在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取所述目標(biāo)插件的odex文件,在所述odex文件中,獲取DexFile部分的文件數(shù)據(jù);

第一確定模塊420,用于通過預(yù)先存儲的文件特征值算法,確定所述DexFile部分的文件數(shù)據(jù)的特征值;

第一加載模塊430,用于如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載所述odex文件,其中,所述基準(zhǔn)特征值是在基于所述目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及所述文件特征值算法確定出的。

可選的,如圖5所示,所述裝置還包括:

刪除模塊440,用于如果所述確定出的特征值與所述基準(zhǔn)特征值不匹配,則刪除所述odex文件,生成所述目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

可選的,所述基準(zhǔn)特征值是在基于所述目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexOptHeader部分和DexFile部分的文件數(shù)據(jù),以及所述文件特征值算法確定出的;

如圖6所示,所述第一確定模塊420,包括:

獲取子模塊421,用于在所述odex文件中,獲取DexOptHeader部分的文件數(shù)據(jù);

確定子模塊422,用于通過預(yù)先存儲的文件特征值算法,確定所述DexOptHeader部分和DexFile部分的文件數(shù)據(jù)的特征值。

可選的,所述第一獲取模塊410,用于:

接收到對應(yīng)目標(biāo)插件的加載指令之后,判斷是否存在所述目標(biāo)插件的odex文件,如果存在,則獲取所述目標(biāo)插件的odex文件,在所述odex文件中,獲取DexFile部分的文件數(shù)據(jù)。

可選的,所述第一加載模塊430,用于:

如果所述確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則對所述目標(biāo)插件的odex文件進(jìn)行系統(tǒng)校驗,如果校驗通過,則加載所述odex文件。

可選的,如圖7所示,所述裝置還包括:

第二獲取模塊450,用于在加載所述odex文件的過程中,當(dāng)檢測到對應(yīng)所述odex文件的讀寫指令時,獲取讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù);

第二確定模塊460,用于通過預(yù)先存儲的文件特征值算法,確定所述讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù)的特征值;

第二加載模塊470,用于如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則繼續(xù)加載所述odex文件。

本發(fā)明實施例中,在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取目標(biāo)插件的odex文件,在odex文件中,獲取DexFile部分的文件數(shù)據(jù),通過預(yù)先存儲的文件特征值算法,確定DexFile部分的文件數(shù)據(jù)的特征值,如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載odex文件,其中,基準(zhǔn)特征值是在基于目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及文件特征值算法確定出的,基于上述處理,無需根據(jù)odex文件的全部內(nèi)容計算特征值,從而可以節(jié)約終端的處理資源。

需要說明的是:上述實施例提供的加載插件的裝置在加載插件時,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的加載插件的裝置與加載插件的方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。

請參考圖8,其示出了本發(fā)明實施例所涉及的終端的結(jié)構(gòu)示意圖,該終端可以用于實施上述實施例中提供的加載插件的方法。具體來講:

終端900可以包括RF(Radio Frequency,射頻)電路110、包括有一個或一個以上計算機可讀存儲介質(zhì)的存儲器120、輸入單元130、顯示單元140、傳感器150、音頻電路160、WiFi(wireless fidelity,無線保真)模塊170、包括有一個或者一個以上處理核心的處理器180、以及電源190等部件。本領(lǐng)域技術(shù)人員可以理解,圖8中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:

RF電路110可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,特別地,將基站的下行信息接收后,交由一個或者一個以上處理器180處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路110包括但不限于天線、至少一個放大器、調(diào)諧器、一個或多個振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機、耦合器、LNA(Low Noise Amplifier,低噪聲放大器)、雙工器等。此外,RF電路110還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于GSM(Global System of Mobile communication,全球移動通訊系統(tǒng))、GPRS(General Packet Radio Service,通用分組無線服務(wù))、CDMA(Code Division Multiple Access,碼分多址)、WCDMA(Wideband Code Division Multiple Access,寬帶碼分多址)、LTE(Long Term Evolution,長期演進(jìn))、電子郵件、SMS(Short Messaging Service,短消息服務(wù))等。

存儲器120可用于存儲軟件程序以及模塊,處理器180通過運行存儲在存儲器120的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)終端900的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應(yīng)地,存儲器120還可以包括存儲器控制器,以提供處理器180和輸入單元130對存儲器120的訪問。

輸入單元130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標(biāo)、操作桿、光學(xué)或者軌跡球信號輸入。具體地,輸入單元130可包括觸敏表面131以及其他輸入設(shè)備132。觸敏表面131,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面131上或在觸敏表面131附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置??蛇x的,觸敏表面131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標(biāo),再送給處理器180,并能接收處理器180發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸敏表面131。除了觸敏表面131,輸入單元130還可以包括其他輸入設(shè)備132。具體地,其他輸入設(shè)備132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。

顯示單元140可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端900的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標(biāo)、視頻和其任意組合來構(gòu)成。顯示單元140可包括顯示面板141,可選的,可以采用LCD(Liquid Crystal Display,液晶顯示器)、OLED(Organic Light-Emitting Diode,有機發(fā)光二極管)等形式來配置顯示面板141。進(jìn)一步的,觸敏表面131可覆蓋顯示面板141,當(dāng)觸敏表面131檢測到在其上或附近的觸摸操作后,傳送給處理器180以確定觸摸事件的類型,隨后處理器180根據(jù)觸摸事件的類型在顯示面板141上提供相應(yīng)的視覺輸出。雖然在圖8中,觸敏表面131與顯示面板141是作為兩個獨立的部件來實現(xiàn)輸入和輸入功能,但是在某些實施例中,可以將觸敏表面131與顯示面板141集成而實現(xiàn)輸入和輸出功能。

終端900還可包括至少一種傳感器150,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板141的亮度,接近傳感器可在終端900移動到耳邊時,關(guān)閉顯示面板141和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準(zhǔn))、振動識別相關(guān)功能(比如計步器、敲擊)等;至于終端900還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。

音頻電路160、揚聲器161,傳聲器162可提供用戶與終端900之間的音頻接口。音頻電路160可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器161,由揚聲器161轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器162將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路160接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器180處理后,經(jīng)RF電路110以發(fā)送給比如另一終端,或者將音頻數(shù)據(jù)輸出至存儲器120以便進(jìn)一步處理。音頻電路160還可能包括耳塞插孔,以提供外設(shè)耳機與終端900的通信。

WiFi屬于短距離無線傳輸技術(shù),終端900通過WiFi模塊170可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖8示出了WiFi模塊170,但是可以理解的是,其并不屬于終端900的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。

處理器180是終端900的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執(zhí)行存儲在存儲器120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器120內(nèi)的數(shù)據(jù),執(zhí)行終端900的各種功能和處理數(shù)據(jù),從而對手機進(jìn)行整體監(jiān)控??蛇x的,處理器180可包括一個或多個處理核心;優(yōu)選的,處理器180可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器180中。

終端900還包括給各個部件供電的電源190(比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器180邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。電源190還可以包括一個或一個以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。

盡管未示出,終端900還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。具體在本實施例中,終端900的顯示單元是觸摸屏顯示器,終端900還包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行述一個或者一個以上程序包含用于進(jìn)行以下操作的指令:

在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取所述目標(biāo)插件的odex文件,在所述odex文件中,獲取DexFile部分的文件數(shù)據(jù);

通過預(yù)先存儲的文件特征值算法,確定所述DexFile部分的文件數(shù)據(jù)的特征值;

如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載所述odex文件,其中,所述基準(zhǔn)特征值是在基于所述目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及所述文件特征值算法確定出的。

可選的,所述方法還包括:

如果所述確定出的特征值與所述基準(zhǔn)特征值不匹配,則刪除所述odex文件,生成所述目標(biāo)插件對應(yīng)的odex文件,加載生成的odex文件。

可選的,所述基準(zhǔn)特征值是在基于所述目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexOptHeader部分和DexFile部分的文件數(shù)據(jù),以及所述文件特征值算法確定出的;

所述通過預(yù)先存儲的文件特征值算法,確定所述DexFile部分的文件數(shù)據(jù)的特征值,包括:

在所述odex文件中,獲取DexOptHeader部分的文件數(shù)據(jù);

通過預(yù)先存儲的文件特征值算法,確定所述DexOptHeader部分和DexFile部分的文件數(shù)據(jù)的特征值。

可選的,所述接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取所述目標(biāo)插件的odex文件,在所述odex文件中,獲取DexFile部分的文件數(shù)據(jù),包括:

接收到對應(yīng)目標(biāo)插件的加載指令之后,判斷是否存在所述目標(biāo)插件的odex文件,如果存在,則獲取所述目標(biāo)插件的odex文件,在所述odex文件中,獲取DexFile部分的文件數(shù)據(jù)。

可選的,所述如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載所述odex文件,包括:

如果所述確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則對所述目標(biāo)插件的odex文件進(jìn)行系統(tǒng)校驗,如果校驗通過,則加載所述odex文件。

可選的,所述方法還包括:

在加載所述odex文件的過程中,當(dāng)檢測到對應(yīng)所述odex文件的讀寫指令時,獲取讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù);

通過預(yù)先存儲的文件特征值算法,確定所述讀寫后的odex文件中的DexFile部分的文件數(shù)據(jù)的特征值;

如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則繼續(xù)加載所述odex文件。

本發(fā)明實施例中,在接收到對應(yīng)目標(biāo)插件的加載指令之后,獲取目標(biāo)插件的odex文件,在odex文件中,獲取DexFile部分的文件數(shù)據(jù),通過預(yù)先存儲的文件特征值算法,確定DexFile部分的文件數(shù)據(jù)的特征值,如果確定出的特征值與預(yù)先存儲的基準(zhǔn)特征值相匹配,則加載odex文件,其中,基準(zhǔn)特征值是在基于目標(biāo)插件生成odex文件后,根據(jù)生成的odex文件中的DexFile部分的文件數(shù)據(jù),以及文件特征值算法確定出的,基于上述處理,無需根據(jù)odex文件的全部內(nèi)容計算特征值,從而可以節(jié)約終端的處理資源。

本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。

以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1