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