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

應(yīng)用程序中so文件的加載方法及系統(tǒng)的制作方法

文檔序號(hào):10511962閱讀:373來源:國知局
應(yīng)用程序中so文件的加載方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,提供了一種應(yīng)用程序中so文件的加載方法及系統(tǒng)。所述方法包括:預(yù)先進(jìn)行的操作:將so文件存儲(chǔ)于一可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間;打包生成不包含所述so文件的應(yīng)用程序文件;執(zhí)行如下步驟:當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,將下載的so文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間;將所述so文件加載到所述客戶端的操作系統(tǒng)中。本發(fā)明將so文件從應(yīng)用程序文件中剝離出去,減少應(yīng)用程序文件大小,且能獨(dú)立升級(jí)so文件。
【專利說明】
應(yīng)用程序中SO文件的加載方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種應(yīng)用程序中SO文件的加載方法及系統(tǒng)。
【【背景技術(shù)】】
[0002]目前,很多Android程序都集成了so文件包,用來執(zhí)行c或c++代碼。c和c++運(yùn)行效率高,而且不會(huì)被破解(Android程序很容易被反編譯破解)。集成so文件可以提高程序的效率,而且有利于加密保護(hù)程序源代碼,比較安全,所以現(xiàn)在大部分應(yīng)用程序都集成了 so文件。
[0003]但是,有的so文件比較大(例如:10M),而應(yīng)用程序的其他部分可能還不到10M,所以集成SO文件可能會(huì)大大增加Android程序的體積。還有,so文件如果跟隨Android程序一起發(fā)布,下次更新so文件就只能隨著應(yīng)用程序的升級(jí)而更新,不能獨(dú)立升級(jí)so文件。例如,現(xiàn)在的SO文件一般是通過打包進(jìn)apk文件(Android程序打包以后生成apk文件)中,隨apk文件一起發(fā)布,so文件集成在apk文件中會(huì)增大apk文件的體積,而且不能獨(dú)立升級(jí)so文件,只能隨著apk的升級(jí)而升級(jí)so文件。
[0004]鑒于此,克服該現(xiàn)有技術(shù)所存在的缺陷是本技術(shù)領(lǐng)域亟待解決的問題。

【發(fā)明內(nèi)容】

[0005]本發(fā)明提供一種應(yīng)用程序中so文件的加載方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)的應(yīng)用程序中直接集成SO文件導(dǎo)致程序過大,且不能獨(dú)立升級(jí)SO文件的技術(shù)問題。
[0006]根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種應(yīng)用程序中so文件的加載方法,預(yù)先進(jìn)行的操作:
[0007]將so文件存儲(chǔ)于一可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間;
[0008]打包生成不包含所述so文件的應(yīng)用程序文件;
[0009]執(zhí)行如下步驟:
[0010]當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,將下載的so文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間;
[0011 ]將所述so文件加載到所述客戶端的操作系統(tǒng)中。
[0012]在一些實(shí)施例中,所述打包生成不包含所述so文件的應(yīng)用程序文件包括:
[0013]打包生成應(yīng)用程序文件;
[0014]在打包生成的應(yīng)用程序文件中刪除so文件;
[0015]或者,所述打包生成不包含所述so文件的應(yīng)用程序文件包括:
[0016]修改應(yīng)用程序的軟件打包文件為不打包so文件;
[0017]打包生成應(yīng)用程序文件。
[0018]在一些實(shí)施例中,所述修改應(yīng)用程序的軟件打包文件為不打包so文件包括:
[0019]修改build,gradle文件,在應(yīng)用程序里添加打包選項(xiàng),在打包選項(xiàng)里指定需排除的so文件。
[0020]在一些實(shí)施例中,所述預(yù)先進(jìn)行的操作還包括:
[0021]當(dāng)so文件更新時(shí),將更新后的so文件存儲(chǔ)于可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間。
[0022]在一些實(shí)施例中,所述當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,將下載的so文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間包括:
[0023]當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),檢測所述應(yīng)用程序文件中是否包含so文件以及可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間是否有更新后的so文件;
[0024]若所述應(yīng)用程序文件中沒有包含so文件,或者服務(wù)器端有更新后的so文件,則從所述服務(wù)器端下載S0文件或者更新后的SO文件,將下載的SO文件或者更新后的SO文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間。
[0025]根據(jù)本發(fā)明實(shí)施例的第二方面,還提供一種應(yīng)用程序中so文件的加載系統(tǒng),包括預(yù)先處理的模塊:
[0026]so文件存儲(chǔ)模塊,用于將so文件存儲(chǔ)于一可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間;
[0027]應(yīng)用程序打包模塊,用于打包生成不包含所述so文件的應(yīng)用程序文件;
[0028]以及:
[0029]so文件下載模塊,用于當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,將下載的so文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間;
[0030]so文件加載模塊,用于將所述so文件加載到所述客戶端的操作系統(tǒng)中。
[0031 ]在一些實(shí)施例中,所述應(yīng)用程序打包模塊包括:
[0032]第一打包單元,用于打包生成應(yīng)用程序文件;
[0033]so文件刪除單元,用于在打包生成的應(yīng)用程序文件中刪除so文件;
[0034]或者,所述應(yīng)用程序打包模塊包括:
[0035]軟件打包文件修改單元,用于修改應(yīng)用程序的軟件打包文件為不打包so文件;
[0036]第二打包單元,用于打包生成應(yīng)用程序文件。
[0037]在一些實(shí)施例中,所述修改應(yīng)用程序的軟件打包文件為不打包so文件包括:
[0038]修改buiId.gradle文件,在應(yīng)用程序里添加打包選項(xiàng),在打包選項(xiàng)里指定需排除的so文件。
[0039]在一些實(shí)施例中,所述預(yù)先處理的模塊還包括:
[0040]so文件更新模塊,用于當(dāng)so文件更新時(shí),將更新后的so文件存儲(chǔ)于可供使用所述應(yīng)用程序的用戶下載所述S0文件的聯(lián)網(wǎng)存儲(chǔ)空間。
[0041 ]在一些實(shí)施例中,所述so文件下載模塊包括:
[0042]so文件檢測單元,用于當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),檢測所述應(yīng)用程序文件中是否包含S0文件以及可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間是否有更新后的S0文件;
[0043]so文件下載更新單元,用于若所述應(yīng)用程序文件中沒有包含so文件,或者服務(wù)器端有更新后的so文件,則從所述服務(wù)器端下載so文件或者更新后的so文件,將下載的so文件或者更新后的so文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間。
[0044]本發(fā)明實(shí)施例提供的技術(shù)方案可產(chǎn)生以下有益效果:本發(fā)明在應(yīng)用程序打包的過程中不把so文件打包進(jìn)應(yīng)用程序里邊,而在應(yīng)用程序運(yùn)行的時(shí)候動(dòng)態(tài)從網(wǎng)絡(luò)加載so文件,從而正常使用so文件,通過上述方式能將so文件從應(yīng)用程序文件中剝離出去,減少應(yīng)用程序文件大小,且能獨(dú)立升級(jí)so文件。
[0045]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
[0046]下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
【【附圖說明】】
[0047]圖1為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種應(yīng)用程序中so文件的加載方法的流程圖;
[0048]圖2為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種應(yīng)用程序中so文件的加載方法的步驟S02的流程圖;
[0049]圖3為本發(fā)明根據(jù)一示例性實(shí)施例示出的另一種應(yīng)用程序中so文件的加載方法的步驟S02的流程圖;
[0050]圖4為本發(fā)明根據(jù)一示例性實(shí)施例示出的再一種應(yīng)用程序中so文件的加載方法的預(yù)先進(jìn)行的操作的流程圖;
[0051]圖5為本發(fā)明根據(jù)一示例性實(shí)施例示出的又一種應(yīng)用程序中so文件的加載方法的步驟SlO的流程圖;
[0052]圖6為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種應(yīng)用程序中so文件的加載系統(tǒng)的框圖;
[0053]圖7為本發(fā)明根據(jù)一示例性實(shí)施例示出的一種應(yīng)用程序中so文件的加載系統(tǒng)的應(yīng)用程序打包模塊062的框圖;
[0054]圖8為本發(fā)明根據(jù)一示例性實(shí)施例示出的另一種應(yīng)用程序中so文件的加載系統(tǒng)的應(yīng)用程序打包模塊062的框圖;
[0055]圖9為本發(fā)明根據(jù)一示例性實(shí)施例示出的再一種應(yīng)用程序中so文件的加載系統(tǒng)的預(yù)先處理的模塊的框圖;
[0056]圖10為本發(fā)明根據(jù)一示例性實(shí)施例示出的又一種應(yīng)用程序中so文件的加載系統(tǒng)的SO文件下載模塊610的框圖。
【【具體實(shí)施方式】】
[0057]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0058]此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
[0059]本發(fā)明實(shí)施例提供了一種應(yīng)用程序中so文件的加載方法,將so文件從應(yīng)用程序文件中剝離出去,減少應(yīng)用程序文件大小,且能獨(dú)立升級(jí)SO文件。本申請中所述的SO文件是指Linux下的庫文件,后綴為.so,因此得名。so文件是ELF格式的動(dòng)態(tài)鏈接庫文件,該類文件在程序運(yùn)行需要的時(shí)候才動(dòng)態(tài)加載到程序中,支持程序的運(yùn)行。
[0060]如圖1所示,該方法包括:預(yù)先進(jìn)行的操作:
[0061]步驟S01、將so文件存儲(chǔ)于一可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間。
[0062]具體地,因本發(fā)明的應(yīng)用程序中沒有集成so文件,因此so文件需要存儲(chǔ)于網(wǎng)絡(luò)上以供用戶下載,例如將所述so文件存儲(chǔ)于一服務(wù)器端,所述服務(wù)器是聯(lián)網(wǎng)的服務(wù)器,可以是應(yīng)用程序提供商的云服務(wù)器或者各個(gè)應(yīng)用市場的云服務(wù)器。該服務(wù)器是開放給該應(yīng)用程序的用戶的,供其運(yùn)行該應(yīng)用程序時(shí)下載所述so文件。應(yīng)用程序可以是Android程序或者其他操作系統(tǒng)下的程序,Android程序一般其格式為apk或者jar壓縮包,本發(fā)明對此不做限制。
[0063]步驟S02、打包生成不包含所述so文件的應(yīng)用程序文件。
[0064]以上步驟SOl和步驟S02之間并無先后順序關(guān)系,可以單獨(dú)執(zhí)行。
[0065]其中,可通過多種方式打包生成不包含所述so文件的應(yīng)用程序文件。在一些實(shí)施例中,如圖2所示,步驟S02包括:
[0066]步驟S0211、打包生成應(yīng)用程序文件。
[0067]步驟S0212、在打包生成的應(yīng)用程序文件中刪除so文件。
[0068]本方式是通過先打包生成應(yīng)用程序文件,再將其中的so文件刪除的方式,所以,打包生成應(yīng)用程序文件按正常的操作進(jìn)行,然后再在生成的應(yīng)用程序文件中查找到其中的so文件并刪除,所要達(dá)到的目的就是最終發(fā)布給用戶的應(yīng)用程序文件中沒有so文件。
[0069]在另一實(shí)施例中,如圖3所示,步驟S02包括:
[0070]步驟S0221、修改應(yīng)用程序的軟件打包文件為不打包so文件。
[0071]步驟S0222、打包生成應(yīng)用程序文件。
[0072]本方式是通過修改應(yīng)用程序的軟件打包文件的方式,使打包過程中直接就不將so文件打包進(jìn)最終生成的應(yīng)用程序文件中。其中該軟件打包文件可以是例如build.gradle文件,具體修改應(yīng)用程序的bui Id.gradIe文件的方式可參考:
[0073]修改bui Id.gradle文件,在應(yīng)用程序(例如Android程序)里添加打包選項(xiàng)(packingOpt1ns),在打包選項(xiàng)(packingOpt1ns)里指定需排除(exclude)的so文件。
[0074]在此之后,可以發(fā)布此應(yīng)用程序文件,例如將apk程序上傳到網(wǎng)絡(luò)上或者提供給用戶進(jìn)行升級(jí)。此過程屬于人為的操作,和現(xiàn)有技術(shù)中的相同,本發(fā)明不做詳細(xì)闡述。用戶可從該應(yīng)用程序廠商提供的網(wǎng)絡(luò)資源或者各個(gè)應(yīng)用市場中下載該apk程序或者通過軟件升級(jí)的方式下載新的apk程序。用戶下載應(yīng)用程序之后,就會(huì)在客戶端進(jìn)行應(yīng)用程序的安裝,應(yīng)用程序會(huì)被運(yùn)行。本發(fā)明還包括執(zhí)行如下步驟:
[0075]步驟SlO、當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,將下載的so文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間。
[0076]在一些實(shí)施例中,當(dāng)檢測到用戶在客戶端的智能終端上運(yùn)行所述應(yīng)用程序文件時(shí),則從之前已經(jīng)存儲(chǔ)好so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,例如從云服務(wù)器端下載所述應(yīng)用程序的so文件,并存儲(chǔ)到用戶安裝該應(yīng)用程序的智能終端上的存儲(chǔ)空間,例如手機(jī)內(nèi)存。所述應(yīng)用程序和該應(yīng)用程序的so文件上都攜帶有一互相對應(yīng)的唯一的識(shí)別標(biāo)識(shí),便于從服務(wù)器端查找到與該應(yīng)用程序所對應(yīng)的so文件。
[0077]步驟S20、將所述so文件加載到所述客戶端的操作系統(tǒng)中。
[0078]將so文件下載到客戶端的本地存儲(chǔ)空間后,再將所述so文件加載到所述客戶端的操作系統(tǒng)中,以加載運(yùn)行該SO文件,達(dá)到現(xiàn)有技術(shù)中的應(yīng)用程序文件本身就集成有SO文件、運(yùn)行該應(yīng)用程序時(shí)SO文件一并加載運(yùn)行的相同的效果。
[0079]在一些實(shí)施例中,如圖4所示,所述預(yù)先進(jìn)行的操作還可以包括:
[0080]步驟S03、當(dāng)so文件更新時(shí),將更新后的so文件存儲(chǔ)于可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間。
[0081]可以理解的是,隨著功能增加、修改以及界面的修改等,應(yīng)用程序也會(huì)不定期地更新。因此,so文件也相應(yīng)地會(huì)進(jìn)行更新,當(dāng)so文件更新時(shí),本發(fā)明實(shí)施例還需要將更新后的聯(lián)網(wǎng)存儲(chǔ)空間中,例如云服務(wù)器端。這樣,用戶在更新其智能終端上的應(yīng)用程序時(shí),也能相應(yīng)地下載更新后的so文件進(jìn)行加載運(yùn)行。
[0082]以上步驟S01、步驟S02、步驟S03之間并無先后順序關(guān)系,可以單獨(dú)執(zhí)行。
[0083]承接上述so文件更新的實(shí)施例,在一些實(shí)施例中,如圖5所示,步驟SlO進(jìn)一步包括:
[0084]步驟S11、當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),檢測所述應(yīng)用程序文件中是否包含so文件以及可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間是否有更新后的so文件。
[0085]當(dāng)應(yīng)用程序中已包含so文件時(shí),則說明無需再從網(wǎng)絡(luò)上下載so文件了;當(dāng)應(yīng)用程序中沒有包含SO文件時(shí),則說明需要從網(wǎng)絡(luò)上下載SO文件;當(dāng)網(wǎng)絡(luò)上有更新后的SO文件時(shí),則說明需要從網(wǎng)絡(luò)上下載更新后的SO文件以替換手機(jī)上應(yīng)用程序中已有的SO文件;當(dāng)網(wǎng)絡(luò)上沒有更新后的S0文件時(shí),則說明手機(jī)內(nèi)應(yīng)用程序中的SO文件已經(jīng)是最新的,無需下載更換。
[0086]步驟S12、若所述應(yīng)用程序文件中沒有包含so文件,或者服務(wù)器端有更新后的so文件,則從所述服務(wù)器端下載SO文件或者更新后的SO文件,將下載的SO文件或者更新后的SO文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間。
[0087]具體地,在一實(shí)施例中,上述步驟SI I和步驟SI 2可通過以下順序進(jìn)行:
[0088](I)檢測所述應(yīng)用程序文件中是否包含so文件;
[0089](2)如果沒有,說明是一個(gè)剛安裝的應(yīng)用程序,需要從網(wǎng)絡(luò)上下載so文件并加載;如果有,則說明是原始應(yīng)用程序中已經(jīng)集成了 SO文件,或者已經(jīng)從網(wǎng)絡(luò)上下載過SO文件,執(zhí)行下述步驟;
[0090](3)檢查網(wǎng)絡(luò)上是否有更新后的so文件(也即看是否有最新的so文件),若本地so文件已是最新,則無需再下載網(wǎng)絡(luò)上的SO文件,若本地SO文件版本低于網(wǎng)絡(luò)上的SO文件版本,則說明網(wǎng)絡(luò)上有更新后的SO文件,需要下載該最新的SO文件。
[0091]本發(fā)明實(shí)施例提供的上述方法,通過在應(yīng)用程序打包的過程中不把so文件打包進(jìn)應(yīng)用程序里邊,而在應(yīng)用程序運(yùn)行的時(shí)候動(dòng)態(tài)從網(wǎng)絡(luò)加載S0文件,從而正常使用SO文件,通過上述方式能將SO文件從應(yīng)用程序文件中剝離出去,減少應(yīng)用程序文件大小,且能獨(dú)立升級(jí)SO文件。
[0092]對應(yīng)本發(fā)明實(shí)施例提供的應(yīng)用程序中so文件的加載方法,本發(fā)明還提供一種一種應(yīng)用程序中so文件的加載系統(tǒng),如圖6所示,所述應(yīng)用程序中so文件的加載系統(tǒng)包括預(yù)先處理的模塊:
[0093]so文件存儲(chǔ)模塊061,用于將so文件存儲(chǔ)于一可供使用所述應(yīng)用程序的用戶下載所述S0文件的聯(lián)網(wǎng)存儲(chǔ)空間;
[0094]應(yīng)用程序打包模塊062,用于打包生成不包含所述so文件的應(yīng)用程序文件。
[0095]以及:
[0096]so文件下載模塊610,用于當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,將下載的so文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間;
[0097]so文件加載模塊620,用于將所述so文件加載到所述客戶端的操作系統(tǒng)中。
[0098]具體地,因本發(fā)明的應(yīng)用程序中沒有集成so文件,因此so文件需要存儲(chǔ)于網(wǎng)絡(luò)上以供用戶下載,例如將所述so文件存儲(chǔ)于一服務(wù)器端,所述服務(wù)器是聯(lián)網(wǎng)的服務(wù)器,可以是應(yīng)用程序提供商的云服務(wù)器或者各個(gè)應(yīng)用市場的云服務(wù)器。該服務(wù)器是開放給該應(yīng)用程序的用戶的,供其運(yùn)行該應(yīng)用程序時(shí)下載所述so文件。應(yīng)用程序可以是Android程序或者其他操作系統(tǒng)下的程序,Android程序一般其格式為apk或者jar壓縮包,本發(fā)明對此不做限制。
[0099]其中,可通過多種方式打包生成不包含所述so文件的應(yīng)用程序文件。在一些實(shí)施例中,如圖7所示,所述應(yīng)用程序打包模塊062包括:
[0100]第一打包單元06211,用于打包生成應(yīng)用程序文件;
[0101]so文件刪除單元06212,用于在打包生成的應(yīng)用程序文件中刪除so文件;
[0102]本方式是通過先打包生成應(yīng)用程序文件,再將其中的so文件刪除的方式,所以,打包生成應(yīng)用程序文件按正常的操作進(jìn)行,然后再在生成的應(yīng)用程序文件中查找到其中的so文件并刪除,所要達(dá)到的目的就是最終發(fā)布給用戶的應(yīng)用程序文件中沒有so文件。
[0103]在另一實(shí)施例中,如圖8所示,所述應(yīng)用程序打包模塊062包括:
[0104]軟件打包文件修改單元06221,用于修改應(yīng)用程序的軟件打包文件為不打包so文件;
[0105]第二打包單元06222,用于打包生成應(yīng)用程序文件。
[0106]本方式是通過修改應(yīng)用程序的軟件打包文件的方式,使打包過程中直接就不將so文件打包進(jìn)最終生成的應(yīng)用程序文件中。其中該軟件打包文件可以是例如build.gradle文件,具體修改應(yīng)用程序的bui Id.gradIe文件的方式可參考:
[0?07] 修改bui Id.gradle文件,在應(yīng)用程序(例如Android程序)里添加打包選項(xiàng)(packingOpt1ns),在打包選項(xiàng)(packingOpt1ns)里指定需排除(exclude)的so文件。
[0108]在此之后,可以發(fā)布此應(yīng)用程序文件,例如將apk程序上傳到網(wǎng)絡(luò)上或者提供給用戶進(jìn)行升級(jí)。此過程屬于人為的操作,和現(xiàn)有技術(shù)中的相同,本發(fā)明不做詳細(xì)闡述。用戶可從該應(yīng)用程序廠商提供的網(wǎng)絡(luò)資源或者各個(gè)應(yīng)用市場中下載該apk程序或者通過軟件升級(jí)的方式下載新的apk程序。用戶下載應(yīng)用程序之后,就會(huì)在客戶端進(jìn)行應(yīng)用程序的安裝,應(yīng)用程序會(huì)被運(yùn)行。
[0109]在一些實(shí)施例中,當(dāng)檢測到用戶在客戶端的智能終端上運(yùn)行所述應(yīng)用程序文件時(shí),則從之前已經(jīng)存儲(chǔ)好so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,例如從云服務(wù)器端下載所述應(yīng)用程序的so文件,并存儲(chǔ)到用戶安裝該應(yīng)用程序的智能終端上的存儲(chǔ)空間,例如手機(jī)內(nèi)存。所述應(yīng)用程序和該應(yīng)用程序的so文件上都攜帶有一互相對應(yīng)的唯一的識(shí)別標(biāo)識(shí),便于從服務(wù)器端查找到與該應(yīng)用程序所對應(yīng)的so文件。
[0110]將SO文件下載到客戶端的本地存儲(chǔ)空間后,再將所述SO文件加載到所述客戶端的操作系統(tǒng)中,以加載運(yùn)行該SO文件,達(dá)到現(xiàn)有技術(shù)中的應(yīng)用程序文件本身就集成有SO文件、運(yùn)行該應(yīng)用程序時(shí)SO文件一并加載運(yùn)行的相同的效果。
[0111]在一些實(shí)施例中,如圖9所示,所述預(yù)先處理的模塊還包括:
[0112]so文件更新模塊063,用于當(dāng)so文件更新時(shí),將更新后的so文件存儲(chǔ)于可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間。
[0113]可以理解的是,隨著功能增加、修改以及界面的修改等,應(yīng)用程序也會(huì)不定期地更新。因此,so文件也相應(yīng)地會(huì)進(jìn)行更新,當(dāng)so文件更新時(shí),本發(fā)明實(shí)施例還需要將更新后的聯(lián)網(wǎng)存儲(chǔ)空間中,例如云服務(wù)器端。這樣,用戶在更新其智能終端上的應(yīng)用程序時(shí),也能相應(yīng)地下載更新后的so文件進(jìn)行加載運(yùn)行。
[0?14]承接上述so文件更新的實(shí)施例,在一些實(shí)施例中,如圖10所示,所述so文件下載模塊610包括:
[0115]so文件檢測單元611,用于當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),檢測所述應(yīng)用程序文件中是否包含so文件以及可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間是否有更新后的so文件;當(dāng)應(yīng)用程序中已包含so文件時(shí),則說明無需再從網(wǎng)絡(luò)上下載so文件了;當(dāng)應(yīng)用程序中沒有包含so文件時(shí),則說明需要從網(wǎng)絡(luò)上下載so文件;當(dāng)網(wǎng)絡(luò)上有更新后的so文件時(shí),則說明需要從網(wǎng)絡(luò)上下載更新后的so文件以替換手機(jī)上應(yīng)用程序中已有的so文件;當(dāng)網(wǎng)絡(luò)上沒有更新后的so文件時(shí),則說明手機(jī)內(nèi)應(yīng)用程序中的so文件已經(jīng)是最新的,無需下載更換。
[0116]so文件下載更新單元612,用于若所述應(yīng)用程序文件中沒有包含so文件,或者服務(wù)器端有更新后的S0文件,則從所述服務(wù)器端下載SO文件或者更新后的SO文件,將下載的SO文件或者更新后的S0文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間。
[0117]具體地,在一實(shí)施例中,上述實(shí)施例可通過以下順序進(jìn)行:
[0118](I)檢測所述應(yīng)用程序文件中是否包含so文件;
[0119](2)如果沒有,說明是一個(gè)剛安裝的應(yīng)用程序,需要從網(wǎng)絡(luò)上下載so文件并加載;如果有,則說明是原始應(yīng)用程序中已經(jīng)集成了 S0文件,或者已經(jīng)從網(wǎng)絡(luò)上下載過S0文件,執(zhí)行下述步驟;
[0120](3)檢查網(wǎng)絡(luò)上是否有更新后的so文件(也即看是否有最新的so文件),若本地so文件已是最新,則無需再下載網(wǎng)絡(luò)上的SO文件,若本地SO文件版本低于網(wǎng)絡(luò)上的SO文件版本,則說明網(wǎng)絡(luò)上有更新后的S0文件,需要下載該最新的S0文件。
[0121]本發(fā)明實(shí)施例提供的上述系統(tǒng),通過在應(yīng)用程序打包的過程中不把so文件打包進(jìn)應(yīng)用程序里邊,而在應(yīng)用程序運(yùn)行的時(shí)候動(dòng)態(tài)從網(wǎng)絡(luò)加載so文件,從而正常使用so文件,通過上述方式能將SO文件從應(yīng)用程序文件中剝離出去,減少應(yīng)用程序文件大小,且能獨(dú)立升級(jí)SO文件。
[0122]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0123]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
[0124]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0125]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0126]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種應(yīng)用程序中SO文件的加載方法,其特征在于,預(yù)先進(jìn)行的操作: 將S0文件存儲(chǔ)于一可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間; 打包生成不包含所述S0文件的應(yīng)用程序文件; 執(zhí)行如下步驟: 當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述S0文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述SO文件,將下載的SO文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間; 將所述S0文件加載到所述客戶端的操作系統(tǒng)中。2.如權(quán)利要求1所述的應(yīng)用程序中SO文件的加載方法,其特征在于,所述打包生成不包含所述S0文件的應(yīng)用程序文件包括: 打包生成應(yīng)用程序文件; 在打包生成的應(yīng)用程序文件中刪除SO文件; 或者,所述打包生成不包含所述SO文件的應(yīng)用程序文件包括: 修改應(yīng)用程序的軟件打包文件為不打包SO文件; 打包生成應(yīng)用程序文件。3.如權(quán)利要求2所述的應(yīng)用程序中so文件的加載方法,其特征在于,所述修改應(yīng)用程序的軟件打包文件為不打包so文件包括: 修改build, gradle文件,在應(yīng)用程序里添加打包選項(xiàng),在打包選項(xiàng)里指定需排除的so文件。4.如權(quán)利要求1所述的應(yīng)用程序中so文件的加載方法,其特征在于,所述預(yù)先進(jìn)行的操作還包括: 當(dāng)S0文件更新時(shí),將更新后的SO文件存儲(chǔ)于可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間。5.如權(quán)利要求4所述的應(yīng)用程序中so文件的加載方法,其特征在于,所述當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述so文件,將下載的so文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間包括:當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),檢測所述應(yīng)用程序文件中是否包含so文件以及可供使用所述應(yīng)用程序的用戶下載所述so文件的聯(lián)網(wǎng)存儲(chǔ)空間是否有更新后的so文件;若所述應(yīng)用程序文件中沒有包含SO文件,或者服務(wù)器端有更新后的SO文件,則從所述服務(wù)器端下載S0文件或者更新后的SO文件,將下載的SO文件或者更新后的SO文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間。6.—種應(yīng)用程序中SO文件的加載系統(tǒng),其特征在于,包括預(yù)先處理的模塊: S0文件存儲(chǔ)模塊,用于將SO文件存儲(chǔ)于一可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間; 應(yīng)用程序打包模塊,用于打包生成不包含所述S0文件的應(yīng)用程序文件; 以及: S0文件下載模塊,用于當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),從所述可供使用所述應(yīng)用程序的用戶下載所述S0文件的聯(lián)網(wǎng)存儲(chǔ)空間下載所述S0文件,將下載的S0文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間; SO文件加載模塊,用于將所述SO文件加載到所述客戶端的操作系統(tǒng)中。7.如權(quán)利要求6所述的應(yīng)用程序中so文件的加載系統(tǒng),其特征在于,所述應(yīng)用程序打包模塊包括: 第一打包單元,用于打包生成應(yīng)用程序文件; so文件刪除單元,用于在打包生成的應(yīng)用程序文件中刪除so文件; 或者,所述應(yīng)用程序打包模塊包括: 軟件打包文件修改單元,用于修改應(yīng)用程序的軟件打包文件為不打包so文件; 第二打包單元,用于打包生成應(yīng)用程序文件。8.如權(quán)利要求7所述的應(yīng)用程序中so文件的加載系統(tǒng),其特征在于,所述修改應(yīng)用程序的軟件打包文件為不打包so文件包括: 修改build, gradle文件,在應(yīng)用程序里添加打包選項(xiàng),在打包選項(xiàng)里指定需排除的so文件。9.如權(quán)利要求6所述的應(yīng)用程序中so文件的加載系統(tǒng),其特征在于,所述預(yù)先處理的模塊還包括: S0文件更新模塊,用于當(dāng)SO文件更新時(shí),將更新后的SO文件存儲(chǔ)于可供使用所述應(yīng)用程序的用戶下載所述S0文件的聯(lián)網(wǎng)存儲(chǔ)空間。10.如權(quán)利要求9所述的應(yīng)用程序中so文件的加載系統(tǒng),其特征在于,所述so文件下載豐吳塊包括: S0文件檢測單元,用于當(dāng)所述應(yīng)用程序文件在客戶端被運(yùn)行時(shí),檢測所述應(yīng)用程序文件中是否包含S0文件以及可供使用所述應(yīng)用程序的用戶下載所述SO文件的聯(lián)網(wǎng)存儲(chǔ)空間是否有更新后的S0文件; SO文件下載更新單元,用于若所述應(yīng)用程序文件中沒有包含SO文件,或者服務(wù)器端有更新后的S0文件,則從所述服務(wù)器端下載S0文件或者更新后的S0文件,將下載的S0文件或者更新后的S0文件存儲(chǔ)于所述客戶端的存儲(chǔ)空間。
【文檔編號(hào)】G06F9/445GK105867973SQ201610192746
【公開日】2016年8月17日
【申請日】2016年3月30日
【發(fā)明人】白文龍
【申請人】樂視控股(北京)有限公司, 樂視網(wǎng)信息技術(shù)(北京)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
怀远县| 阳新县| 迭部县| 青川县| 永兴县| 德州市| 闻喜县| 虞城县| 绥德县| 麻阳| 左贡县| 子长县| 平阴县| 恩平市| 灵宝市| 凯里市| 五莲县| 嘉兴市| 锦州市| 铜陵市| 温宿县| 德安县| 札达县| 雷州市| 高州市| 安溪县| 盐源县| 偃师市| 泗水县| 东乡| 吉首市| 祁阳县| 武乡县| 元阳县| 琼中| 江口县| 凭祥市| 临澧县| 万安县| 山东省| 黄龙县|