一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明公開(kāi)一種加載網(wǎng)絡(luò)資源的優(yōu)化方法,屬于資源優(yōu)化領(lǐng)域,具體地說(shuō)是一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法。
【背景技術(shù)】
[0002]隨著技術(shù)的發(fā)展,移動(dòng)設(shè)備已經(jīng)成為人們?nèi)粘I钪斜夭豢缮俚墓ぞ?,移?dòng)設(shè)備的配置越來(lái)越高,同時(shí)用戶(hù)對(duì)移動(dòng)設(shè)備的體驗(yàn)要求也越來(lái)越高。但移動(dòng)設(shè)備與互聯(lián)網(wǎng)的交互,由于信息量大,往往會(huì)出現(xiàn)卡頓或者無(wú)法加載的現(xiàn)象,使用戶(hù)體驗(yàn)大幅度降低。通常為了提高體驗(yàn)效果,對(duì)于占用CRJ較多的數(shù)據(jù)操作盡可能放在一個(gè)單獨(dú)的線程中進(jìn)行,通過(guò)handler等方式把執(zhí)行的結(jié)果交于UI線程顯示。而目前Android提供了 AsyncTask,Hanlder、Message和Thread的組合。對(duì)于多線程的處理,有時(shí)加載網(wǎng)絡(luò)資源時(shí)UI線程出現(xiàn)卡頓甚至UI僵死的情況,以及網(wǎng)絡(luò)傳輸延遲的現(xiàn)象時(shí)有發(fā)生,本發(fā)明針對(duì)上述問(wèn)題,提高一種加載網(wǎng)絡(luò)資源的優(yōu)化方法,采用線程池及Android系統(tǒng)自身程序,針對(duì)Android系統(tǒng)的移動(dòng)設(shè)備利用多線程加載網(wǎng)絡(luò)資源時(shí),防止UI線程出現(xiàn)卡頓甚至UI僵死的情況,以及網(wǎng)絡(luò)傳輸延遲的現(xiàn)象時(shí)有發(fā)生。
【發(fā)明內(nèi)容】
[0003]本發(fā)明針對(duì)現(xiàn)有技術(shù)中移動(dòng)設(shè)備Android系統(tǒng)中多線程的處理,有時(shí)加載網(wǎng)絡(luò)資源時(shí)UI線程出現(xiàn)卡頓甚至UI僵死的情況,以及網(wǎng)絡(luò)傳輸延遲的現(xiàn)象時(shí)有發(fā)生的問(wèn)題,提供一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,針對(duì)Android系統(tǒng)的移動(dòng)設(shè)備利用多線程加載網(wǎng)絡(luò)資源時(shí),防止UI線程出現(xiàn)卡頓甚至UI僵死的情況,以及網(wǎng)絡(luò)傳輸延遲的現(xiàn)象時(shí)有發(fā)生。
[0004]本發(fā)明提出的具體方案是:
一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,在移動(dòng)設(shè)備的Android系統(tǒng)中構(gòu)建異步和同步線程池,利用異步線程池排列任務(wù),利用同步線程池執(zhí)行任務(wù),將產(chǎn)生的數(shù)據(jù)進(jìn)行內(nèi)存緩存,將產(chǎn)生的文件保存到SD卡上。
[0005]利用異步線程池排列任務(wù),處理過(guò)程中將任務(wù)添加到隊(duì)列,然后在創(chuàng)建線程后自動(dòng)啟動(dòng)這些任務(wù),每個(gè)線程都使用默認(rèn)的堆棧大小,以默認(rèn)的優(yōu)先級(jí)運(yùn)行。
[0006]利用Android系統(tǒng)中AsyncTask的THREAD_P00L_EXECUT0R異步線程方法進(jìn)行異步線程池排列任務(wù)。
[0007]利用Android系統(tǒng)中AsyncTask的SERIAL_EXECUT0R同步線程方法在同步線程池執(zhí)行任務(wù),SERIAL_EXECUT0R在THREAD_P00L_EXECUT0R的基礎(chǔ)上添加一個(gè)mTasks的集合來(lái)保證任務(wù)的順序執(zhí)行。
[0008]利用Android系統(tǒng)中MemoryCache內(nèi)存緩存把數(shù)據(jù)保存在內(nèi)存中,利用FileCache文件緩存類(lèi)把文件保存到SD卡上。
[0009]MemoryCache內(nèi)存緩存,當(dāng)緩存的數(shù)據(jù)超過(guò)設(shè)定的內(nèi)存限制就刪除最先緩存進(jìn)來(lái)的數(shù)據(jù)。
[0010]本發(fā)明的有益之處是:
本發(fā)明提供一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,在移動(dòng)設(shè)備的Android系統(tǒng)中構(gòu)建異步和同步線程池,利用異步線程池排列任務(wù),利用同步線程池執(zhí)行任務(wù),將產(chǎn)生的數(shù)據(jù)進(jìn)行內(nèi)存緩存,將產(chǎn)生的文件保存到SD卡上,針對(duì)Android系統(tǒng)的移動(dòng)設(shè)備利用多線程加載網(wǎng)絡(luò)資源時(shí),防止UI線程出現(xiàn)卡頓甚至UI僵死的情況,以及網(wǎng)絡(luò)傳輸延遲的現(xiàn)象時(shí)有發(fā)生,,更加有利用移動(dòng)設(shè)備加載網(wǎng)絡(luò)資源時(shí)的優(yōu)化。
【附圖說(shuō)明】
[0011 ] 圖1本發(fā)明方法流程示意圖。
【具體實(shí)施方式】
[0012]一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,在移動(dòng)設(shè)備的Android系統(tǒng)中構(gòu)建異步和同步線程池,利用異步線程池排列任務(wù),利用同步線程池執(zhí)行任務(wù),將產(chǎn)生的數(shù)據(jù)進(jìn)行內(nèi)存緩存,將產(chǎn)生的文件保存到SD卡上。
[0013]利用異步線程池排列任務(wù),處理過(guò)程中將任務(wù)添加到隊(duì)列,然后在創(chuàng)建線程后自動(dòng)啟動(dòng)這些任務(wù),每個(gè)線程都使用默認(rèn)的堆棧大小,以默認(rèn)的優(yōu)先級(jí)運(yùn)行。
[0014]利用Android系統(tǒng)中AsyncTask的THREAD_P00L_EXECUT0R異步線程方法進(jìn)行異步線程池排列任務(wù)。
[0015]利用Android系統(tǒng)中AsyncTask的SERIAL_EXECUT0R同步線程方法在同步線程池執(zhí)行任務(wù),SERIAL_EXECUT0R在THREAD_P00L_EXECUT0R的基礎(chǔ)上添加一個(gè)mTasks的集合來(lái)保證任務(wù)的順序執(zhí)行。
[0016]利用Android系統(tǒng)中MemoryCache內(nèi)存緩存把數(shù)據(jù)保存在內(nèi)存中,利用FileCache文件緩存類(lèi)把文件保存到SD卡上。
[0017]MemoryCache內(nèi)存緩存,當(dāng)緩存的數(shù)據(jù)超過(guò)設(shè)定的內(nèi)存限制就刪除最先緩存進(jìn)來(lái)的數(shù)據(jù)。
[0018]利用上述方法結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
[0019]一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,在移動(dòng)設(shè)備的Android系統(tǒng)中構(gòu)建異步和同步線程池,利用異步線程池排列任務(wù),處理過(guò)程中將任務(wù)添加到隊(duì)列,然后在創(chuàng)建線程后自動(dòng)啟動(dòng)這些任務(wù),每個(gè)線程都使用默認(rèn)的堆棧大小,以默認(rèn)的優(yōu)先級(jí)運(yùn)行,其中可以利用Android系統(tǒng)中AsyncTask的THREAD_P00L_EXECUT0R異步線程方法進(jìn)行異步線程池排列任務(wù),它的隊(duì)列size是128,它的調(diào)度規(guī)則主要參考核心池大小,隊(duì)列大小,以及最大線程數(shù),異常處理Handler等參數(shù);
利用Android系統(tǒng)中AsyncTask的SERIAL_EXECUT0R同步線程方法在同步線程池執(zhí)行任務(wù),SERIAL_EXECUT0R在THREAD_P00L_EXECUT0R的基礎(chǔ)上添加一個(gè)mTasks的集合來(lái)保證任務(wù)的順序執(zhí)行;
利用Android系統(tǒng)中MemoryCache內(nèi)存緩存把數(shù)據(jù)保存在內(nèi)存中,利用FileCache文件緩存類(lèi)把文件保存到SD卡上,其中MemoryCache內(nèi)存緩存,當(dāng)緩存的數(shù)據(jù)超過(guò)設(shè)定的內(nèi)存限制就刪除最先緩存進(jìn)來(lái)的數(shù)據(jù)。
[0020]參考附圖當(dāng)移動(dòng)設(shè)備加載網(wǎng)絡(luò)后,啟動(dòng)線程池,利用異步線程池排列任務(wù),利用同步線程池執(zhí)行任務(wù),圖中給出4個(gè)線程任務(wù),優(yōu)先級(jí)相同的情況下,并發(fā)執(zhí)行,將產(chǎn)生的數(shù)據(jù)進(jìn)行內(nèi)存緩存,將產(chǎn)生的文件保存到SD卡上。
[0021]本發(fā)明利用上述方法,針對(duì)Android系統(tǒng)的移動(dòng)設(shè)備利用多線程加載網(wǎng)絡(luò)資源時(shí),防止UI線程出現(xiàn)卡頓甚至UI僵死的情況,以及網(wǎng)絡(luò)傳輸延遲的現(xiàn)象時(shí)有發(fā)生,更加有利用移動(dòng)設(shè)備加載網(wǎng)絡(luò)資源時(shí)的優(yōu)化。
【主權(quán)項(xiàng)】
1.一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,其特征在于在移動(dòng)設(shè)備的Android系統(tǒng)中構(gòu)建異步和同步線程池,利用異步線程池排列任務(wù),利用同步線程池執(zhí)行任務(wù),將產(chǎn)生的數(shù)據(jù)進(jìn)行內(nèi)存緩存,將產(chǎn)生的文件保存到SD卡上。2.根據(jù)權(quán)利要求1所述的一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,其特征在于利用異步線程池排列任務(wù),處理過(guò)程中將任務(wù)添加到隊(duì)列,然后在創(chuàng)建線程后自動(dòng)啟動(dòng)這些任務(wù),每個(gè)線程都使用默認(rèn)的堆棧大小,以默認(rèn)的優(yōu)先級(jí)運(yùn)行。3.根據(jù)權(quán)利要求2所述的一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,其特征在于利用Android系統(tǒng)中AsyncTask的THREAD_P00L_EXECUT0R異步線程方法進(jìn)行異步線程池排列任務(wù)。4.根據(jù)權(quán)利要求3所述的一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,其特征在于利用Android系統(tǒng)中AsyncTask的SERIAL_EXECUTOR同步線程方法在同步線程池執(zhí)行任務(wù),SERIAL_EXECUTOR在THREAD_P00L_EXECUT0R的基礎(chǔ)上添加一個(gè)mTasks的集合來(lái)保證任務(wù)的順序執(zhí)行。5.根據(jù)權(quán)利要求1-3任一項(xiàng)所述的一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,其特征在于利用Android系統(tǒng)中MemoryCache內(nèi)存緩存把數(shù)據(jù)保存在內(nèi)存中,利用FileCache文件緩存類(lèi)把文件保存到SD卡上。6.根據(jù)權(quán)利要求5所述的一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,其特征在于MemoryCache內(nèi)存緩存,當(dāng)緩存的數(shù)據(jù)超過(guò)設(shè)定的內(nèi)存限制就刪除最先緩存進(jìn)來(lái)的數(shù)據(jù)。
【專(zhuān)利摘要】本發(fā)明公開(kāi)一種基于緩存和異步機(jī)制的加載網(wǎng)絡(luò)資源的優(yōu)化方法,屬于資源優(yōu)化領(lǐng)域;本發(fā)明在移動(dòng)設(shè)備的Android系統(tǒng)中構(gòu)建異步和同步線程池,利用異步線程池排列任務(wù),利用同步線程池執(zhí)行任務(wù),將產(chǎn)生的數(shù)據(jù)進(jìn)行內(nèi)存緩存,將產(chǎn)生的文件保存到SD卡上;防止UI線程出現(xiàn)卡頓甚至UI僵死的情況,以及網(wǎng)絡(luò)傳輸延遲的現(xiàn)象時(shí)有發(fā)生。
【IPC分類(lèi)】H04M1/725, H04L12/24
【公開(kāi)號(hào)】CN105245372
【申請(qǐng)?zhí)枴緾N201510656235
【發(fā)明人】趙志強(qiáng), 張安舉, 崔樂(lè)樂(lè)
【申請(qǐng)人】浪潮軟件集團(tuán)有限公司
【公開(kāi)日】2016年1月13日
【申請(qǐng)日】2015年10月12日