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