本發(fā)明屬于計算機技術(shù)領域,尤其涉及一種動態(tài)庫的加載方法、裝置、終端設備及存儲介質(zhì)。
背景技術(shù):
隨著電子科技的不斷發(fā)展,手機、平板等終端設備在人們的生活中越來越普及。現(xiàn)有的很多終端設備采用的是android系統(tǒng),android系統(tǒng)中大部分應用程序都是混合型應用程序,這些應用程序不僅要使用java語言,經(jīng)常還要用到c語言,c語言的代碼編譯后最終以動態(tài)庫的形態(tài)進行儲存,有些動態(tài)庫儲存在系統(tǒng)中,有些動態(tài)庫儲存在應用程序中。相較于java語言,c語言具有運算消耗低,運行速度快的優(yōu)勢,因此得到廣泛應用。當應用程序運行后,若需使用某個動態(tài)庫,需調(diào)用并加載該動態(tài)庫,而動態(tài)庫的加載需要時間,因此降低了應用程序的運行速度。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例所要解決的技術(shù)問題在于提供一種動態(tài)庫的加載方法、裝置、終端設備及存儲介質(zhì),旨在解決現(xiàn)有技術(shù)中應用程序運行速度較慢的問題。
本發(fā)明實施例第一方面提供了一種動態(tài)庫的加載方法,所述方法包括:
當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載;
響應于觸發(fā)的運行指令,運行所述運行指令指向的應用程序,所述應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)。
本發(fā)明實施例第二方面提供了一種動態(tài)庫的加載裝置,所述裝置包括:
預加載模塊,用于當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載;
處理模塊,用于響應于觸發(fā)的運行指令,運行所述運行指令指向的應用程序,所述應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)。
本發(fā)明實施例第三方面提供了一種終端設備,所述終端設備包括:
存儲器,用于存儲可在處理器上運行的計算機程序;以及
處理器,所述處理器耦合到所述存儲器,所述處理器被配置為用于通過運行所述計算機程序執(zhí)行如上述本發(fā)明第一方面提供的動態(tài)庫的加載方法中的各項操作。
本發(fā)明實施例第四方面提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時,實現(xiàn)上述本發(fā)明第一方面提供的動態(tài)庫的加載方法中的各個步驟。
從上述本發(fā)明實施例可知,本發(fā)明通過當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載,響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù),相較于現(xiàn)有技術(shù),本發(fā)明通過預先加載預加載列表中的動態(tài)庫,當應用程序需要使用該預加載列表中的某個動態(tài)庫的函數(shù)時,無需再等待該動態(tài)庫的加載,可直接調(diào)用預加載后的動態(tài)庫中的函數(shù),提高了應用程序的運行速度,提高了產(chǎn)品的粘性,提高了用戶體驗。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
附圖1示出了一種終端設備的結(jié)構(gòu)框圖;
附圖2是本發(fā)明一實施例提供的動態(tài)庫的加載方法的實現(xiàn)流程示意圖;
附圖3是本發(fā)明另一實施例提供的動態(tài)庫的加載方法的實現(xiàn)流程示意圖;
附圖4是本發(fā)明另一實施例提供的動態(tài)庫的加載裝置的結(jié)構(gòu)示意圖;
附圖5是本發(fā)明另一實施例提供的動態(tài)庫的加載裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使得本發(fā)明實施例的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部實施例。基于本發(fā)明中的實施例,本領域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
附圖1示出了一種終端設備的結(jié)構(gòu)框圖。該終端設備可以但不限于包括:配置有多個射頻電路的智能手機、平板電腦、智能穿戴設備等移動終端,或配置有多個射頻電路的臺式電腦、智能電視機等非移動終端。如附圖1所示,終端設備10包括存儲器102、存儲控制器104,一個或多個(圖中僅示出一個)處理單元106、外設接口108、射頻單元110、按鍵單元112、音頻單元114以及顯示單元116。這些組件通過一條或多條通訊總線/信號線122相互通訊。
可以理解,附圖1所示的結(jié)構(gòu)僅為示意,其并不對終端設備10的結(jié)構(gòu)造成限定。例如,終端設備10還可包括比附圖1所示更多或者更少的組件,或者具有與附圖1所示不同的配置。附圖1所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。
存儲器102可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的動態(tài)庫的加載方法及裝置對應的程序指令/模塊,處理單元106通過運行存儲在存儲器102內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應用程序以及數(shù)據(jù)處理,即實現(xiàn)上述的動態(tài)庫的加載方法。
其中,處理單元106被配置為:
當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載;
響應于觸發(fā)的運行指令,運行所述運行指令指向的應用程序,所述應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)。
可選的,處理單元106還被配置為:
當系統(tǒng)啟動時,對所述預加載列表中的動態(tài)庫進行預加載;或,
當接收到用戶觸發(fā)的快速運行指令時,對所述預加載列表中的動態(tài)庫進行預加載。
可選的,處理單元106還被配置為:
將系統(tǒng)動態(tài)庫的標識信息寫入所述預加載列表。
可選的,處理單元106還被配置為:
獲取第一統(tǒng)計時長內(nèi),運行次數(shù)達到預置運行次數(shù)的應用程序的動態(tài)庫的標識信息,并寫入所述預加載列表。
可選的,處理單元106還被配置為:
獲取第二統(tǒng)計時長內(nèi),所述應用程序的動態(tài)庫中加載次數(shù)達到預置加載次數(shù)的動態(tài)庫的標識信息,并寫入所述預加載列表。
可選的,處理單元106還被配置為:
當所述系統(tǒng)啟動時,在art虛擬機進程zygote中,打開所述預加載列表中的動態(tài)庫。
存儲器102可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器102可進一步包括相對于處理單元106遠程設置的存儲器,這些遠程存儲器可以通過網(wǎng)絡連接至終端設備10。上述網(wǎng)絡的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。處理單元106以及其他可能的組件對存儲器102的訪問可在存儲控制器104的控制下進行。
外設接口108將各種輸入/輸入裝置耦合至處理單元106以及存儲器102。處理單元106運行存儲器102內(nèi)的各種軟件、指令以執(zhí)行終端設備10的各種功能以及進行數(shù)據(jù)處理。
在一些實例中,外設接口108,處理單元106以及存儲控制器104可以在單個芯片中實現(xiàn)。在其他一些實例中,他們可以分別由獨立的芯片實現(xiàn)。
射頻單元110用于接收以及發(fā)送電磁波,實現(xiàn)電磁波與電信號的相互轉(zhuǎn)換,從而與通訊網(wǎng)絡或者其他設備進行通訊。射頻單元110可包括各種現(xiàn)有的用于執(zhí)行這些功能的電路元件,例如,天線、射頻收發(fā)器、數(shù)字信號處理器、加密/解密芯片、用戶身份模塊(sim)卡、存儲器等等。射頻單元110可與各種網(wǎng)絡如互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、預置類型的無線網(wǎng)絡進行通訊或者通過預置類型的無線網(wǎng)絡與其他設備進行通訊。上述的預置類型的無線網(wǎng)絡可包括蜂窩式電話網(wǎng)、無線局域網(wǎng)或者城域網(wǎng)。上述的預置類型的無線網(wǎng)絡可以使用各種通信標準、協(xié)議及技術(shù),包括但并不限于全球移動通信系統(tǒng)(globalsystemformobilecommunication,gsm),增強型移動通信技術(shù)(enhanceddatagsmenvironment,edge),寬帶碼分多址技術(shù)(widebandcodedivisionmultipleaccess,w-cdma),碼分多址技術(shù)(codedivisionaccess,cdma),時分多址技術(shù)(timedivisionmultipleaccess,tdma),藍牙,無線保真技術(shù)(wireless-fidelity,wifi)(如美國電氣和電子工程師協(xié)會標準ieee802.11a、ieee802.11b、ieee802.11g和/或ieee802.11n),網(wǎng)絡電話(voiceoverinternetprotocol,voip),全球微波互聯(lián)接入(worldwideinteroperabilityformicrowaveaccess,wi-max),其他用于郵件、即時通訊及短消息的協(xié)議,以及任何其他合適的通訊協(xié)議,甚至可包括那些當前仍未被開發(fā)出來的協(xié)議。
按鍵單元112提供用戶向終端設備10進行輸入的接口,用戶可以通過按下不同的按鍵以使終端設備10執(zhí)行不同的功能。
音頻單元114向用戶提供音頻接口,其可包括一個或多個麥克風、一個或者多個揚聲器以及音頻電路。音頻電路從外設接口108處接收聲音數(shù)據(jù),將聲音數(shù)據(jù)轉(zhuǎn)換為電信息,將電信息傳輸至揚聲器。揚聲器將電信息轉(zhuǎn)換為人耳能聽到的聲波。音頻電路還從麥克風處接收電信息,將電信號轉(zhuǎn)換為聲音數(shù)據(jù),并將聲音數(shù)據(jù)傳輸至外設接口108中以進行進一步的處理。音頻數(shù)據(jù)可以從存儲器102處或者通過射頻單元110獲取。此外,音頻數(shù)據(jù)也可以存儲至存儲器102中或者通過射頻單元110進行發(fā)送。在一些實例中,音頻單元114還可包括一個耳機播孔,用于向耳機或者其他設備提供音頻接口。
顯示單元116在終端設備10與用戶之間提供一個輸出界面。具體地,顯示單元116向用戶顯示視頻輸出,這些視頻輸出的內(nèi)容可包括文字、圖形、視頻、及其任意組合。一些輸出結(jié)果是對應于一些用戶界面對象。進一步地,還在終端設備10與用戶之間提供一個輸入界面,用于接收用戶的輸入,例如用戶的點擊、滑動等手勢操作,以便用戶界面對象對這些用戶的輸入做出響應。檢測用戶輸入的技術(shù)可以是基于電阻式、電容式或者其他任意可能的觸控檢測技術(shù)。
請參閱附圖2,附圖2為本發(fā)明一實施例提供的動態(tài)庫的加載方法的實現(xiàn)流程示意圖,該方法可以應用程序于終端設備中。如附圖2所示,該方法主要包括以下步驟:
s201、當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載;
動態(tài)庫(dynamiclinklibrary,dll)又稱動態(tài)鏈接庫,是一個可由應用程序使用的代碼和數(shù)據(jù)的庫。
動態(tài)庫包括系統(tǒng)動態(tài)庫和應用程序的動態(tài)庫,系統(tǒng)動態(tài)庫是存儲在系統(tǒng)中的公共動態(tài)庫,其加載后可供系統(tǒng)中的各應用程序使用;應用程序的動態(tài)庫是應用程序自身的動態(tài)庫,其加載后僅供該應用程序使用。
預加載列表是系統(tǒng)預設的一個列表,用于記載終端寫入的動態(tài)庫的標識信息。當預置的加載條件被觸發(fā)時,終端會對預加載列表中的動態(tài)庫進行預加載。
s202、響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)。
運行指令可以是用戶觸發(fā)的,也可以是系統(tǒng)觸發(fā)的。
響應于觸發(fā)的運行指令,終端運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)以供自身使用。
本發(fā)明實施例提供的動態(tài)庫的加載方法,通過當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載,響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù),相較于現(xiàn)有技術(shù),本發(fā)明通過預先加載預加載列表中的動態(tài)庫,當應用程序需要使用該預加載列表中的某個動態(tài)庫的函數(shù)時,無需再等待該動態(tài)庫的加載,可直接調(diào)用預加載后的動態(tài)庫中的函數(shù),提高了應用程序的運行速度,提高了產(chǎn)品的粘性,提高了用戶體驗。
請參閱附圖3,附圖3為本發(fā)明另一實施例提供的動態(tài)庫的加載方法的實現(xiàn)流程示意圖,該方法可以應用程序于終端設備中。如附圖3所示,該方法主要包括以下步驟:
s301、將系統(tǒng)動態(tài)庫的標識信息寫入預加載列表;
動態(tài)庫又稱動態(tài)鏈接庫,是一個可由應用程序使用的代碼和數(shù)據(jù)的庫。
動態(tài)庫包括系統(tǒng)動態(tài)庫和應用程序的動態(tài)庫,系統(tǒng)動態(tài)庫是存儲在系統(tǒng)中的公共動態(tài)庫,其加載后可供系統(tǒng)中的各應用程序使用;應用程序的動態(tài)庫是應用程序自身的動態(tài)庫,其加載后僅供該應用程序使用。
預加載列表是系統(tǒng)預設的一個列表,用于記載終端寫入的動態(tài)庫的標識信息。當預置的加載條件被觸發(fā)時,終端會對預加載列表中的動態(tài)庫進行預加載。
預加載系統(tǒng)動態(tài)庫,當應用程序需要調(diào)用系統(tǒng)動態(tài)庫的函數(shù)時,無需再耗費時間加載該系統(tǒng)動態(tài)庫,可直接調(diào)用加載后的系統(tǒng)動態(tài)庫中的函數(shù),提高了應用程序的運行速度。
進一步地,還可以獲取第一統(tǒng)計時長內(nèi),運行次數(shù)達到預置運行次數(shù)的應用程序的動態(tài)庫的標識信息,并寫入預加載列表。
例如,設第一統(tǒng)計時長為1小時,預置運行次數(shù)為5次,即監(jiān)測應用程序的運行次數(shù),當某應用程序在1小時內(nèi)的運行次數(shù)達到5次時,將該應用程序確定為高頻應用程序,并將高頻應用程序中全部動態(tài)庫的標識信息寫入預加載列表。
預加載高頻應用程序的動態(tài)庫,當該高頻應用程序需要調(diào)用其本身的動態(tài)庫的函數(shù)時,無需再耗費時間進行加載,可直接調(diào)用加載后的動態(tài)庫中的函數(shù),提高了應用程序的運行速度。
進一步地,還可以獲取第二統(tǒng)計時長內(nèi),應用程序的動態(tài)庫中加載次數(shù)達到預置加載次數(shù)的動態(tài)庫的標識信息,并寫入預加載列表。
例如,設第二統(tǒng)計時長為30分鐘,預置加載次數(shù)為3次,監(jiān)測應用程序的動態(tài)庫的加載次數(shù),當某應用程序的動態(tài)庫在30分鐘內(nèi)的加載次數(shù)達到3次時,將該動態(tài)庫確定為高頻動態(tài)庫,并將高頻動態(tài)庫的標識信息寫入預加載列表。
預加載高頻動態(tài)庫,當該高頻動態(tài)庫對應的應用程序需要調(diào)用該高頻動態(tài)庫的函數(shù)時,無需再耗費時間進行加載,可直接調(diào)用加載后的高頻動態(tài)庫中的函數(shù),提高了高頻動態(tài)庫對應的應用程序的運行速度。
s302、當系統(tǒng)啟動時,對預加載列表中的動態(tài)庫進行預加載;
具體的,當系統(tǒng)啟動時,在第一個art虛擬機進程zygote中,打開預加載列表中的動態(tài)庫,以進行動態(tài)庫的預加載。
虛擬機進程zygote,是虛擬機實例的孵化器。它在系統(tǒng)啟動的時候就會產(chǎn)生,它會完成虛擬機的初始化,以及動態(tài)庫的加載、預制類庫和初始化的操作。如果系統(tǒng)需要一個新的虛擬機實例,它會迅速復制自身,以最快的數(shù)據(jù)提供給系統(tǒng)。對于一些只讀的系統(tǒng)動態(tài)庫,所有虛擬機實例都和zygote共享一塊內(nèi)存區(qū)域。
進一步地,還可以當接收到用戶觸發(fā)的快速運行指令時,對預加載列表中的動態(tài)庫進行預加載。
終端根據(jù)用戶的操作觸發(fā)的快速運行指令,對預加載列表中的動態(tài)庫進行預加載。
s303、響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)。
運行指令可以是用戶觸發(fā)的,也可以是系統(tǒng)觸發(fā)的。
響應于觸發(fā)的運行指令,終端運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)以供自身使用。
本發(fā)明實施例提供的動態(tài)庫的加載方法,通過當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載,響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù),相較于現(xiàn)有技術(shù),本發(fā)明通過預先加載預加載列表中的動態(tài)庫,當應用程序需要使用該預加載列表中的某個動態(tài)庫的函數(shù)時,無需再等待該動態(tài)庫的加載,可直接調(diào)用預加載后的動態(tài)庫中的函數(shù),提高了應用程序的運行速度,提高了產(chǎn)品的粘性,提高了用戶體驗。
請參閱附圖4,附圖4是本發(fā)明另一實施例提供的動態(tài)庫的加載裝置的結(jié)構(gòu)示意圖,為了便于說明,僅示出了與本發(fā)明實施例相關的部分。附圖4示例的動態(tài)庫的加載裝置可以是前述第一實施例提供的動態(tài)庫的加載方法的執(zhí)行主體,其可以是終端設備或者終端設備中的一個功能模塊。附圖4示例的動態(tài)庫的加載裝置,主要包括:預加載模塊401及處理模塊402。各功能模塊詳細說明如下:
預加載模塊401,用于當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載。
動態(tài)庫又稱動態(tài)鏈接庫,是一個可由應用程序使用的代碼和數(shù)據(jù)的庫。
動態(tài)庫包括系統(tǒng)動態(tài)庫和應用程序的動態(tài)庫,系統(tǒng)動態(tài)庫是存儲在系統(tǒng)中的公共動態(tài)庫,其加載后可供系統(tǒng)中的各應用程序使用;應用程序的動態(tài)庫是應用程序自身的動態(tài)庫,其加載后僅供該應用程序使用。
預加載列表是系統(tǒng)預設的一個列表,用于記載終端寫入的動態(tài)庫的標識信息。當預置的加載條件被觸發(fā)時,預加載模塊401會對預加載列表中的動態(tài)庫進行預加載。
處理模塊402,用于響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)。
運行指令可以是用戶觸發(fā)的,也可以是系統(tǒng)觸發(fā)的。
響應于觸發(fā)的運行指令,處理模塊402運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)以供自身使用。
本發(fā)明實施例提供的動態(tài)庫的加載裝置,通過當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載,響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù),相較于現(xiàn)有技術(shù),本發(fā)明通過預先加載預加載列表中的動態(tài)庫,當應用程序需要使用該預加載列表中的某個動態(tài)庫的函數(shù)時,無需再等待該動態(tài)庫的加載,可直接調(diào)用預加載后的動態(tài)庫中的函數(shù),提高了應用程序的運行速度,提高了產(chǎn)品的粘性,提高了用戶體驗。
請參閱附圖5,附圖5是本發(fā)明另一實施例提供的動態(tài)庫的加載裝置的結(jié)構(gòu)示意圖,為了便于說明,僅示出了與本發(fā)明實施例相關的部分。附圖5示例的動態(tài)庫的加載裝置可以是前述第二實施例提供的動態(tài)庫的加載方法的執(zhí)行主體,其可以是終端設備或者終端設備中的一個功能模塊。附圖5示例的動態(tài)庫的加載裝置,主要包括:寫入模塊501、第一獲取模塊502、第二獲取模塊503、預加載模塊504及處理模塊505。各功能模塊詳細說明如下:
寫入模塊501,用于將系統(tǒng)動態(tài)庫的標識信息寫入預加載列表。
動態(tài)庫又稱動態(tài)鏈接庫,是一個可由應用程序使用的代碼和數(shù)據(jù)的庫。
動態(tài)庫包括系統(tǒng)動態(tài)庫和應用程序的動態(tài)庫,系統(tǒng)動態(tài)庫是存儲在系統(tǒng)中的公共動態(tài)庫,其加載后可供系統(tǒng)中的各應用程序使用;應用程序的動態(tài)庫是應用程序自身的動態(tài)庫,其加載后僅供該應用程序使用。
預加載列表是系統(tǒng)預設的一個列表,用于記載寫入模塊501寫入的動態(tài)庫的標識信息。當預置的加載條件被觸發(fā)時,預加載模塊504會對預加載列表中的動態(tài)庫進行預加載。
預加載系統(tǒng)動態(tài)庫,當應用程序需要調(diào)用系統(tǒng)動態(tài)庫的函數(shù)時,無需再耗費時間加載該系統(tǒng)動態(tài)庫,可直接調(diào)用加載后的系統(tǒng)動態(tài)庫中的函數(shù),提高了應用程序的運行速度。
第一獲取模塊502,用于獲取第一統(tǒng)計時長內(nèi),運行次數(shù)達到預置運行次數(shù)的應用程序的動態(tài)庫的標識信息,并寫入預加載列表。
例如,設第一統(tǒng)計時長為1小時,預置運行次數(shù)為5次,即監(jiān)測應用程序的運行次數(shù),當某應用程序在1小時內(nèi)的運行次數(shù)達到5次時,將該應用程序確定為高頻應用程序,并將高頻應用程序中全部動態(tài)庫的標識信息寫入預加載列表。
預加載高頻應用程序的動態(tài)庫,當該高頻應用程序需要調(diào)用其本身的動態(tài)庫的函數(shù)時,無需再耗費時間進行加載,可直接調(diào)用加載后的動態(tài)庫中的函數(shù),提高了應用程序的運行速度。
第二獲取模塊503,用于獲取第二統(tǒng)計時長內(nèi),應用程序的動態(tài)庫中加載次數(shù)達到預置加載次數(shù)的動態(tài)庫的標識信息,并寫入預加載列表。
例如,設第二統(tǒng)計時長為30分鐘,預置加載次數(shù)為3次,監(jiān)測應用程序的動態(tài)庫的加載次數(shù),當某應用程序的動態(tài)庫在30分鐘內(nèi)的加載次數(shù)達到3次時,將該動態(tài)庫確定為高頻動態(tài)庫,并將高頻動態(tài)庫的標識信息寫入預加載列表。
預加載高頻動態(tài)庫,當該高頻動態(tài)庫對應的應用程序需要調(diào)用該高頻動態(tài)庫的函數(shù)時,無需再耗費時間進行加載,可直接調(diào)用加載后的高頻動態(tài)庫中的函數(shù),提高了高頻動態(tài)庫對應的應用程序的運行速度。
預加載模塊504,用于當系統(tǒng)啟動時,對預加載列表中的動態(tài)庫進行預加載。
具體的,預加載模塊504,用于當系統(tǒng)啟動時,預加載模塊504在第一個art虛擬機進程zygote中,打開預加載列表中的動態(tài)庫,以進行動態(tài)庫的預加載。
虛擬機進程zygote,是虛擬機實例的孵化器。它在系統(tǒng)啟動的時候就會產(chǎn)生,它會完成虛擬機的初始化,以及動態(tài)庫的加載、預制類庫和初始化的操作。如果系統(tǒng)需要一個新的虛擬機實例,它會迅速復制自身,以最快的數(shù)據(jù)提供給系統(tǒng)。對于一些只讀的系統(tǒng)動態(tài)庫,所有虛擬機實例都和zygote共享一塊內(nèi)存區(qū)域。
進一步地,預加載模塊504,還用于當接收到用戶觸發(fā)的快速運行指令時,對預加載列表中的動態(tài)庫進行預加載。
預加載模塊504根據(jù)用戶的操作觸發(fā)的快速運行指令,對預加載列表中的動態(tài)庫進行預加載。
處理模塊505,用于響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)。
運行指令可以是用戶觸發(fā)的,也可以是系統(tǒng)觸發(fā)的。
響應于觸發(fā)的運行指令,處理模塊505運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù)以供自身使用。
本發(fā)明實施例提供的動態(tài)庫的加載裝置,通過當預置的加載條件被觸發(fā)時,對預加載列表中的動態(tài)庫進行預加載,響應于觸發(fā)的運行指令,運行該運行指令指向的應用程序,應用程序在運行后調(diào)取預加載的動態(tài)庫中的函數(shù),相較于現(xiàn)有技術(shù),本發(fā)明通過預先加載預加載列表中的動態(tài)庫,當應用程序需要使用該預加載列表中的某個動態(tài)庫的函數(shù)時,無需再等待該動態(tài)庫的加載,可直接調(diào)用預加載后的動態(tài)庫中的函數(shù),提高了應用程序的運行速度,提高了產(chǎn)品的粘性,提高了用戶體驗。
需要說明的是,對于前述的各方法實施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領域技術(shù)人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其它順序或者同時進行。其次,本領域技術(shù)人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定都是本發(fā)明所必須的。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關描述。
以上為對本發(fā)明所提供的動態(tài)庫的加載方法、裝置、終端設備及存儲介質(zhì)的描述,對于本領域的技術(shù)人員,依據(jù)本發(fā)明實施例的思想,在具體實施方式及應用程序范圍上均會有改變之處,綜上,本說明書內(nèi)容不應理解為對本發(fā)明的限制。