999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android異步技術(shù)的對比實(shí)驗(yàn)及應(yīng)用

2016-03-17 03:51:41楊春花
關(guān)鍵詞:利用實(shí)驗(yàn)

陳 星 楊春花

(齊魯工業(yè)大學(xué)信息學(xué)院 山東 濟(jì)南 250000)

?

Android異步技術(shù)的對比實(shí)驗(yàn)及應(yīng)用

陳星楊春花

(齊魯工業(yè)大學(xué)信息學(xué)院山東 濟(jì)南 250000)

摘要異步技術(shù)的選用是制約Android應(yīng)用產(chǎn)品優(yōu)劣的重要因素之一。目前Android應(yīng)用開發(fā)的重要異步技術(shù)主要包括AsyncTask、ThreadPool、Thread+Handler這三種。針對這三種異步技術(shù)在面對短時間內(nèi)高爆發(fā)的場景時的表現(xiàn),設(shè)計(jì)了一個Android應(yīng)用,分別在穩(wěn)定性、響應(yīng)速度、資源耗費(fèi)等指標(biāo)方面進(jìn)行了對比實(shí)驗(yàn)及綜合分析。實(shí)驗(yàn)結(jié)果表明,在這三種異步技術(shù)中,ThreadPool技術(shù)的綜合表現(xiàn)最優(yōu)秀。該技術(shù)能更好地適應(yīng)于短時間內(nèi)與網(wǎng)絡(luò)進(jìn)行大量數(shù)據(jù)交互的情形,并在一個移動OA項(xiàng)目中采用了ThreadPool技術(shù),利用此技術(shù)實(shí)現(xiàn)了異步下載文件的功能。

關(guān)鍵詞Android異步AsyncTaskThreadPoolThreadHandler

CONTRAST EXPERIMENT OF ANDROID ASYNCHRONOUS TECHNOLOGIES AND THEIR APPLICATION

Chen XingYang Chunhua

(School of Information,Qilu University,Jinan 250000,Shandong,China)

AbstractThe selection of asynchronous techniques is an important factor restricting the pros and cons of Android applications. At present, the important asynchronous techniques of Android application development include AsyncTask, ThreadPool and Thread+Handler. Aiming at the performance of these three asynchronous techniques when facing the scene of high outbreak in short period, we designed an Android application, and carried out the contrast experiments and analyses on stability, reaction speed and consumption of resource separately. Experimental result showed that the ThreadPool technique had the best comprehensive performance among three asynchronous techniques. This technique could better adapt to the situation of interacting a large amount of data with network in a short period. In a mobile OA project the ThreadPool technique was adopted, and by using it the function of asynchronous files download was realised.

KeywordsAndroidAsynchronousAsyncTaskThreadPoolThreadHandler

0引言

Android系統(tǒng)從投入使用到現(xiàn)在對智能手機(jī)行業(yè)產(chǎn)生了巨大的影響。據(jù)2010年末數(shù)據(jù)顯示,正式推出僅兩年的Android操作系統(tǒng)在市場占有率上已經(jīng)超越稱霸逾十年的諾基亞Symbian系統(tǒng),成為全球最受歡迎的智能手機(jī)操作系統(tǒng)[1]。隨著通信技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)技術(shù)的不斷改良,實(shí)時通信網(wǎng)絡(luò)效率成為了越來越多的智能手機(jī)使用者所關(guān)注的事情。

Android系統(tǒng)的一個重要缺陷在于它的響應(yīng)能力不足,它對用戶的應(yīng)用有直接消極的影響[2]。為了解決低響應(yīng)問題和保持圖形用戶界面(GUI)的活躍性,一個APP應(yīng)用往往包含一個主UI線程來更新視圖和若干個子線程在后臺異步運(yùn)行來處理耗時操作,例如網(wǎng)絡(luò)請求、I/O任務(wù)等[3]。異步技術(shù)是當(dāng)前解決低響應(yīng)問題的重要手段。

當(dāng)前,許多研究針對采用異步技術(shù)來解決Android應(yīng)用的低響應(yīng)問題提出了一些解決方案,如文獻(xiàn)[4]針對改善手機(jī)Web Servers的并發(fā)控制,提出了基于異步方法的DRMS;文獻(xiàn)[5]為了減省手機(jī)內(nèi)存,提高加載資源速度的異步加載機(jī)制等。但是,對于各種異步技術(shù)本身之間的對比研究卻很少有文獻(xiàn)提及。由于不同的異步技術(shù)具有不同的特點(diǎn),適應(yīng)的場合也會不同。對它們進(jìn)行比較研究可對Android應(yīng)用開發(fā)實(shí)踐中異步技術(shù)的選擇提供一定的參考。

本文通過一個Android應(yīng)用實(shí)例,對Android開發(fā)實(shí)踐中常用的三種異步技術(shù)-AsyncTask異步線程技術(shù)[6]、ThreadPool技術(shù)[7]、 Thread+Handler技術(shù)[8,9]進(jìn)行了對比實(shí)驗(yàn),從穩(wěn)定性、響應(yīng)速度、資源耗費(fèi)等方面對比了各自的優(yōu)劣。通過對比實(shí)驗(yàn)對這三種異步技術(shù)所適應(yīng)的場所進(jìn)行了總結(jié),得出最終結(jié)論,并在一個移動OA項(xiàng)目中采用了ThreadPool技術(shù),實(shí)現(xiàn)了異步下載文件的功能。

1相關(guān)異步技術(shù)簡介

1.1AsyncTask異步線程技術(shù)

Android為了降低開發(fā)難度,提供了AsyncTask異步線程技術(shù),它能在不必操作Thread和Handler的情況下在后臺進(jìn)行耗時操作并把結(jié)果返回到UI主線程中,讓使用者非常方便地進(jìn)行異步處理,但這種技術(shù)適用于短時間操作。AsyncTask是一個封裝過的后臺任務(wù)抽象類,其本質(zhì)是一個靜態(tài)線程池,它派生出的子類可以實(shí)現(xiàn)不同的異步任務(wù),這些任務(wù)都被提交到靜態(tài)線程池中執(zhí)行,但從Android 3.0開始后,為了避免并行執(zhí)行引起的應(yīng)用錯誤,任務(wù)則被提交到一個線程上按先后順序執(zhí)行[6]。

AsyncTask的執(zhí)行分為四個步驟,每一步都對應(yīng)一個回調(diào)方法:onPreExecute(),doInBackground(Params…),onProgressUpdate(Progress…)和onPostExecute(Result)[10]。onPreExecute()在任務(wù)開始之前調(diào)用,為后臺線程運(yùn)行做準(zhǔn)備工作,當(dāng)它執(zhí)行完畢后運(yùn)行doInBackground(Params…)方法;在doInBackground(Params…)方法中做比較耗時的操作,因?yàn)樗沁\(yùn)行在后臺線程中的所以不能直接操作UI,而任務(wù)的處理往往需要一段時間,為了方便使用者及時獲知任務(wù)處理的進(jìn)度,可以調(diào)用publicProgress(Progress…)來更新任務(wù)處理進(jìn)度并在onProgressUpdate(Progress…)中反饋給用戶任務(wù)執(zhí)行的進(jìn)度條;onPostExecute(Result)在主UI線程中執(zhí)行,相當(dāng)于Handler 處理UI的方式,在此方法里可以使用從doInBackground (Params…)中獲得的結(jié)果并操作UI。

1.2ThreadPool技術(shù)

在面向?qū)ο缶幊讨校€程的創(chuàng)建、運(yùn)行和銷毀不僅占用了部分內(nèi)存資源而且消耗了一些時間,所以為了讓應(yīng)用更加高效,引入了“池資源化”的思想,而線程池也是和這一思想相符合的。

線程池是一種多線程處理形式。因?yàn)榫€程的生命周期隨著線程的停止而結(jié)束,為了能讓線程循環(huán)重用而不是每當(dāng)完成一項(xiàng)任務(wù)后就停止,應(yīng)先在應(yīng)用程序啟動或者運(yùn)行過程中創(chuàng)建一定數(shù)量的線程并讓它們進(jìn)入阻塞狀態(tài)等待,還應(yīng)把所需完成的任務(wù)放在隊(duì)列或者其他數(shù)據(jù)結(jié)構(gòu)中[11]。當(dāng)有任務(wù)到達(dá)時,不應(yīng)該為每個任務(wù)都創(chuàng)建一個新的子線程來服務(wù)它,而應(yīng)從已經(jīng)存在的線程池中選一個空閑線程來完成任務(wù),等任務(wù)完成結(jié)束后,子線程再回到空閑池中[12]。

線程池的使用不僅節(jié)省了處理時間與內(nèi)存資源,而且它的一個特點(diǎn)在于線程池中的線程是由系統(tǒng)管理的,不需要人為管理,更加方便了使用者的開發(fā)。線程池技術(shù)的應(yīng)用范圍比較廣泛,特別適用于有大量并發(fā)訪問,但任務(wù)短小的應(yīng)用中[13]。

1.3Thread + Handler技術(shù)

一個線程就是一個輕量級的過程,每一個線程都有自己的內(nèi)存緩存,把讀取的共享文件儲存在自己的內(nèi)存緩存中[14],它也是一個并發(fā)執(zhí)行的單位,而每個應(yīng)用程序在啟動時至少有一個線程在運(yùn)行,稱為主線程[8]。Android應(yīng)用的主線程是UI線程,是不安全的線程,也就是說UI控件的更新只能在主線程中完成,子線程不允許操作UI,所以Android為了實(shí)現(xiàn)線程間的通信,開發(fā)了Handler、 Message、MessageQueue、Looper機(jī)制。

在Android系統(tǒng)中,子線程不能直接更新主線程的UI控件,須使用Handler和Looper將子線程中的數(shù)據(jù)傳遞給主線程,由主線程來刷新UI控件,Looper提供了一種消息循環(huán)機(jī)制,負(fù)責(zé)循環(huán)獲取由Handler存放于MessageQueue中的數(shù)據(jù)[15]。使用多線程的目的是為了更充分地利用資源,但資源總數(shù)是有限的,需要在線程數(shù)量與程序性能之間確定一個平衡,線程過多會嚴(yán)重影響程序本身的性能,線程過少軟件和硬件性能得不到充分發(fā)揮[16]。

2實(shí)驗(yàn)測試和比較

為了對比三種異步技術(shù)的優(yōu)劣,本文設(shè)計(jì)了一個簡單的Android應(yīng)用實(shí)例-圖片下載,分別利用上述三種異步技術(shù)進(jìn)行實(shí)現(xiàn)。同時,針對需要對比的穩(wěn)定性、響應(yīng)速度、資源耗費(fèi)等指標(biāo)增加了相應(yīng)的代碼進(jìn)行衡量。測試環(huán)境由一臺計(jì)算機(jī)和一部手機(jī)組成,計(jì)算機(jī)充當(dāng)服務(wù)器,手機(jī)充當(dāng)客戶端,兩者由100 Mbit的網(wǎng)絡(luò)連接。計(jì)算機(jī)的操作系統(tǒng)選用WIN 7,使用Google的PLAY框架構(gòu)成服務(wù)器環(huán)境,系統(tǒng)中承載實(shí)驗(yàn)所需軟件的所有需求,手機(jī)的操作系統(tǒng)為Android 4.4,測試所用的軟件為Ecplise。

2.1測試方法與指標(biāo)

把本文設(shè)計(jì)的應(yīng)用安裝到手機(jī)上,通過手機(jī)WIFI連接電腦,并訪問本機(jī)服務(wù)器。此應(yīng)用分別利用AsyncTask、ThreadPool、Thread+Handler這三種技術(shù)來實(shí)現(xiàn)相同的功能,亦即下載本機(jī)服務(wù)器上的圖片并加載顯示到手機(jī)上。

實(shí)驗(yàn)主要比較各自技術(shù)的穩(wěn)定性、響應(yīng)速度、資源耗費(fèi)等指標(biāo)。其中穩(wěn)定性的衡量選用短時間內(nèi)成功下載的圖片個數(shù)與圖片總數(shù)的比值來體現(xiàn);響應(yīng)速度的衡量主要通過下載時間、下載并發(fā)性來體現(xiàn);資源耗費(fèi)的衡量選用內(nèi)存消耗來體現(xiàn)。

實(shí)驗(yàn)分別針對圖片的下載數(shù)量做了100、200、300張這三次變化, 用于模擬短時間高爆發(fā)請求的實(shí)驗(yàn)環(huán)境,記錄使用各自技術(shù)所需的下載完成情況、下載并發(fā)性、下載完成時間、內(nèi)存消耗情況這四種實(shí)驗(yàn)數(shù)據(jù),分別用于體現(xiàn)相應(yīng)指標(biāo)。由于實(shí)驗(yàn)測試所用的網(wǎng)絡(luò)環(huán)境及應(yīng)用所消耗的手機(jī)資源等因素不能保證每次測試得到的結(jié)果都準(zhǔn)確一致,為了確保實(shí)驗(yàn)的準(zhǔn)確性,本文進(jìn)行了三次測試,并記錄了每一次的測試結(jié)果,最后取三次的平均值作為最終實(shí)驗(yàn)結(jié)果。

2.2測試結(jié)果及分析

2.2.1穩(wěn)定性

圖1 不同圖片總數(shù)的下載率

在本實(shí)驗(yàn)中,穩(wěn)定性選用下載率來體現(xiàn),而下載率為短時間內(nèi)已下載的圖片個數(shù)與所有圖片總數(shù)的比值,這個比值越接近1越好,比值為1說明短時間內(nèi)下載的圖片已全部下載完成。不同圖片總數(shù)的下載率如圖1所示。

實(shí)驗(yàn)結(jié)果表明,當(dāng)下載圖片個數(shù)從100張遞增到300張時,利用AsyncTask技術(shù)和ThreadPool技術(shù)的下載率都為1,說明這兩種技術(shù)都能穩(wěn)定的完成下載任務(wù);而利用Thread+Handler技術(shù),在下載100張圖片時能穩(wěn)定完成下載任務(wù),但隨著下載圖片總數(shù)的增加,它的下載性越低,即它穩(wěn)定完成任務(wù)的成功率越低。

從實(shí)驗(yàn)結(jié)果得出結(jié)論,利用ThreadPool技術(shù)與AsyncTask技術(shù)加載大量數(shù)據(jù)時所體現(xiàn)的穩(wěn)定性一樣,且都很穩(wěn)定可靠,而利用Thread+Handler技術(shù)加載大量數(shù)據(jù)時的穩(wěn)定性較一般,特別是當(dāng)下載數(shù)量較大時這種表現(xiàn)更為明顯。

針對這一結(jié)論,分析其造成的可能原因是因?yàn)锳syncTask技術(shù)與ThreadPool技術(shù)歸根結(jié)底都是線程池,而線程池一個的獨(dú)特優(yōu)點(diǎn)在于線程都是由系統(tǒng)統(tǒng)一管理的。各線程之間互不影響,這就避免了像Thread+Handler技術(shù)中會為每個任務(wù)創(chuàng)建一個新線程,各線程之間相互擠占系統(tǒng)資源所出現(xiàn)個別線程卡住,造成任務(wù)完成失敗的情況。因此AsyncTask技術(shù)和ThreadPool技術(shù)的穩(wěn)定性都是一樣穩(wěn)定可靠的,而Thread+Handler技術(shù)的穩(wěn)定性較一般,在任務(wù)量變得越來越大時體現(xiàn)的更加明顯。

2.2.2響應(yīng)速度

在本實(shí)驗(yàn)中,響應(yīng)速度選用下載完成時間,下載并發(fā)性來體現(xiàn)。三種技術(shù)的下載圖片個數(shù)及所用時間的折線如圖2所示。

圖2 不同圖片總數(shù)的所需下載時間

實(shí)驗(yàn)結(jié)果表明,不同圖片總數(shù)的所需下載時間如圖2所示。利用ThreadPool技術(shù)加載大量數(shù)據(jù)時所需時間最短,利用Thread+Handler技術(shù)的次之,利用 AsyncTask技術(shù)的時間最長。從下載并發(fā)性說明,利用Thread+Handler技術(shù)和ThreadPool技術(shù)一樣都是并發(fā)執(zhí)行的,而利用AsyncTask技術(shù)加載時則出現(xiàn)了順序性。

從實(shí)驗(yàn)結(jié)果得出結(jié)論,ThreadPool技術(shù)的反應(yīng)能力最強(qiáng),Thread+Handler技術(shù)次之,AsyncTask技術(shù)最弱。針對這一結(jié)論,分析造成的可能原因是因?yàn)門hreadPool技術(shù)在任務(wù)到達(dá)時就已經(jīng)創(chuàng)建好了一定量的線程并儲存在“池”中,只需從“池”中拿出空閑的線程來執(zhí)行任務(wù)即可,因此省去了創(chuàng)建、切換線程的時間,所以ThreadPool技術(shù)比Thread+Handler技術(shù)省時。在Android 3.0之后,Android對AsyncTask技術(shù)做了修改,讓它execute()提交的任務(wù)按照先后順序每次只運(yùn)行一個,則用它加載時就出現(xiàn)了順序性,而ThreadPool技術(shù)與Thread+Handler技術(shù)都是并發(fā)執(zhí)行的,所以AsyncTask技術(shù)最為耗時。

2.2.3資源耗費(fèi)

在本實(shí)驗(yàn)中,資源耗費(fèi)選用各技術(shù)的內(nèi)存資源消耗情況來體現(xiàn)。三種技術(shù)的下載圖片的內(nèi)存消耗情況如圖3所示。

圖3 不同圖片總數(shù)的內(nèi)存耗費(fèi)

實(shí)驗(yàn)結(jié)果表明,利用ThreadPool技術(shù)下載圖片時所消耗的內(nèi)存最少,利用AsyncTask技術(shù)的次之,而利用Thread+Handler技術(shù)的內(nèi)存消耗最大。

從實(shí)驗(yàn)結(jié)果得出結(jié)論,ThreadPool技術(shù)的耗費(fèi)能力最好,即消耗內(nèi)存最少,AsyncTask技術(shù)次之,Thread+Handler技術(shù)最差。針對這一結(jié)論,分析造成的可能原因是因?yàn)門hreadPool技術(shù)能限制應(yīng)用程序在同一時刻運(yùn)行的線程數(shù)。一般每當(dāng)開啟運(yùn)行一個新線程時都會占用一部分內(nèi)存資源,而ThreadPool技術(shù)是在任務(wù)到達(dá)前就創(chuàng)建好了固定的線程數(shù)。用這些線程來并發(fā)執(zhí)行任務(wù),所以省去了為每個任務(wù)創(chuàng)建、切換線程的內(nèi)存消耗,所以它的耗費(fèi)能力最好,在這三種異步技術(shù)中消耗內(nèi)存最少。

2.3測試總結(jié)

通過以上測試指標(biāo),能得知各自的技術(shù)的特點(diǎn)及面對不同環(huán)境時體現(xiàn)出的優(yōu)劣,最后對這三種技術(shù)所較為適應(yīng)的環(huán)境做出總結(jié)。當(dāng)短時間內(nèi)進(jìn)行大量數(shù)據(jù)交換時, ThreadPool技術(shù)更有優(yōu)勢;而當(dāng)用戶遇到在保證任務(wù)完成穩(wěn)定性的同時但對耗費(fèi)時間要求較寬松的情景下,可以選擇AsyncTask技術(shù);當(dāng)用戶遇到需要完成的任務(wù)量較少,對任務(wù)完成穩(wěn)定性要求較寬松但對耗費(fèi)時間要求比較嚴(yán)格的情境下,可以選擇Thread+Handler技術(shù)。

3異步技術(shù)的應(yīng)用

通過對比實(shí)驗(yàn)得知,ThreadPool技術(shù)在面對短時間內(nèi)進(jìn)行大量數(shù)據(jù)交換的情景時更有優(yōu)勢,并在一個移動OA項(xiàng)目中采用了ThreadPool技術(shù),實(shí)現(xiàn)了用戶能在短時間內(nèi)下載附件內(nèi)容的功能。

移動OA項(xiàng)目主要包括八大模塊:登錄模塊、請假申請模塊、請假審批模塊、公文審批模塊、通訊錄模塊、通知公告模塊、值班信息、值班管理。其中在公文審批模塊中,有的審批內(nèi)容包含了所對應(yīng)的公文附件,而公文附件主要是一些圖片和Word、Excel文件等,這就需要用戶下載下來進(jìn)行審閱。為了方便用戶能在最短的時間內(nèi)完成下載,所以不同的下載任務(wù)需滿足并發(fā)執(zhí)行,且要避免因并發(fā)執(zhí)行時因相互擠占系統(tǒng)資源所出現(xiàn)死鎖的現(xiàn)象,而ThreadPool技術(shù)能有效的解決上述問題,最終采用ThreadPool技術(shù)實(shí)現(xiàn)了下載附件內(nèi)容的功能。

3.1關(guān)鍵技術(shù)的實(shí)現(xiàn)

利用ThreadPool技術(shù)實(shí)現(xiàn)下載公文附件內(nèi)容的結(jié)構(gòu)流程如圖4所示。

圖4 線程池下載流程圖

如圖所示,因?yàn)锳ndroid系統(tǒng)會為每個程序運(yùn)行時僅創(chuàng)建一個Application類的對象,故在程序的Application中利用Executors.newFixedThreadPool()創(chuàng)建線程池對象。當(dāng)線程池開啟時,創(chuàng)建一個獨(dú)立的輪詢子線程,此輪詢子線程的作用是不斷的檢查工作隊(duì)列,如果隊(duì)列中有未執(zhí)行的任務(wù),就將任務(wù)交給線程池來執(zhí)行。下面的代碼部分實(shí)現(xiàn)了線程池及輪詢子線程的創(chuàng)建:

/** 線程池 */

private ExecutorService threadPool;

/** 工作隊(duì)列 */

private LinkedList asyncTasks;

// 創(chuàng)建線程池

public ThreadPoolManager (int poolSize) {

this.poolSize = poolSize;

threadPool= Executors.newFixedThreadPool(this.poolSize);

asyncTasks = new LinkedList();

}

// 輪詢子線程的創(chuàng)建

private class PoolRunnable implements Runnable {

@Override

public void run() {

try {

while(!Thread.currentThread().isInterrupted()) {

ThreadPoolTask task = getAsyncTask();

if (task == null) {

try {

Thread.sleep(2000);

} catch (InterruptedException e) {

Thread.currentThread().interrupt();

}

continue;

}

threadPool.execute(task);

}

} catch (Exception e) {

} finally {

threadPool.shutdown();

}

}

}

工作隊(duì)列是一個存放下載任務(wù)單元的LinkedList,每次添加新的任務(wù)時利用LinkedList.addLast()從尾部進(jìn)行添加,取出任務(wù)時利用LinkedList.removeFirst()從頭部取出,即實(shí)現(xiàn)了隊(duì)列的先進(jìn)先出原則。工作隊(duì)列中存放的是一個個不同的下載任務(wù),而這些下載任務(wù)實(shí)際上是實(shí)現(xiàn)Runnable接口的子線程,每個子線程中都承載了不同的下載目標(biāo),在各自的run()中實(shí)現(xiàn)不同的功能,其結(jié)構(gòu)如下:

public abstract class ThreadPoolTask implements Runnable{

//網(wǎng)絡(luò)連接的url

private String mUrl;

//參數(shù)

List mParamList = new ArrayList();

//Handler

private Handler mHandler;

//HttpClient

private HttpClient mhClient = null;

/**

* 構(gòu)造函數(shù)

*/

public ThreadPoolTask(String url, List paramList, Handler handler, HttpClient httpClient) {

this.mUrl = url;

this.mParamList = paramList;

this.mHandler = handler;

this.mhClient = httpClient;

}

public abstract void run();

...

}

3.2實(shí)現(xiàn)結(jié)果

將項(xiàng)目打包安裝到真機(jī)上,其下載附件的實(shí)際效果如圖5所示。

圖5 下載效果圖

4結(jié)語

本文先通過一個下載圖片的Android應(yīng)用,對AsyncTask、ThreadPool和Thread+Handler三種異步技術(shù)進(jìn)行了對比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,AsyncTask技術(shù)的穩(wěn)定能力不錯,但它運(yùn)行時出現(xiàn)了順序性,所以在短時間內(nèi)下載大量數(shù)據(jù)時,比較耗時;Thread+Handler技術(shù)的運(yùn)行是并發(fā)執(zhí)行的,但穩(wěn)定性較為一般,而且內(nèi)存消耗較大,特別是當(dāng)任務(wù)量較大時體現(xiàn)的更加明顯;ThreadPool技術(shù),它的穩(wěn)定能力不錯,反應(yīng)能力跟耗費(fèi)能力都是最好的。因此,在短時間內(nèi)進(jìn)行大量數(shù)據(jù)交換時,選用ThreadPool技術(shù)更有優(yōu)勢。

然后根據(jù)得出的結(jié)論選用了ThreadPool技術(shù)并將其應(yīng)用在一個移動OA項(xiàng)目中,實(shí)現(xiàn)了異步下載文件的功能,并對線程池應(yīng)用的關(guān)鍵技術(shù)做了較詳細(xì)的說明。下一步的工作是進(jìn)一步優(yōu)化下載模塊的性能,由于在創(chuàng)建線程池的同時就規(guī)定了線程池的大小,而線程數(shù)過多或過少都會對產(chǎn)品的性能產(chǎn)生一定的影響,所以選用一個合適的大小顯得尤為重要。

參考文獻(xiàn)

[1] 劉亞麗.Android軟件前景淺析[J].科技創(chuàng)新導(dǎo)報(bào),2011(25):32.

[2] Shengqian Yang,Dacong Yan,Rountev A.Testing for poor responsiveness in Android applications[C]//Engineering of Mobile-Enabled Systems (MOBS).San Francisco,CA,USA:IEEE,2013:1-6.

[3] Sai Zhang,Hao Lü,Michael D Ernst.Finding errors in multithreaded GUI applications[C]//Proceedings of the 2012 International Symposium on Software Testing and Analysis.New York,NY,USA:ACM,2012:243-253.

[4] Mishra S,Sarasvati S,Srivastava S,et al.An Asynchronous Based Approach to Improve Concurrency Control in Mobile Web Servers[C]//Proceedings of the 8th International Collaborative Computing.Pottsburgh,PA:IEEE,2012:355-362.

[5] Gejian Ding,Xue Liu,Huajiang Zhang,et al.Research of an Optimized Asynchronous Loading Mechanism[J].Applied Mechanics and Materials,2013(278-280):1809-1813.

[6] Android Developers website.AsyncTask[EB/OL].[2014-3-18].http://developer.Android.com/refreence/Android/os/AsyncTask.html.

[7] 封瑋,周世平.Java中的線程池及實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2004(8):16-18.

[8] Android Developers website.Thread[EB/OL].[2014-3-18].http://developer.Android.com/reference/java/lang/Thread.html.

[9] Android Developers website.Handler[EB/OL].[2014-3-18].http://developer.Android.com/reference/Android/os/Handler.html.

[10] 周兵.Android中UI線程與后臺線程交互的探討[J].鄖陽師范高等專科學(xué)校學(xué)報(bào),2013,33(3):14-16.

[11] 邵孟良.Java線程池技術(shù)在多媒體網(wǎng)絡(luò)教室中的應(yīng)用與實(shí)現(xiàn)[J].科技與生活,2011(15):188.

[12] 劉海燕,呂延崗,張紅瑞.基于線程池技術(shù)DHCP服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(7):76-78.

[13] 王華,馬亮,顧明.線程池技術(shù)研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2005,22(11):141-142.

[14] Kai Ni.A Data Delivery Controller for Mobile Communication Based on Multiple Threads Mechanism[J].Applied Mechanics and Materials,2013(433-435):1613-1617.

[15] 王秀敏,張麒,李婷婷.Android平臺下多路傾角傳感器驅(qū)動的設(shè)計(jì)與實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2013(9):18-20.

[16] 眭俊華,劉慧娜,王建鑫,等.多核多線程技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用,2013,33(A01):239-242.

中圖分類號TP311.52

文獻(xiàn)標(biāo)識碼A

DOI:10.3969/j.issn.1000-386x.2016.02.045

收稿日期:2014-07-28。山東省自然科學(xué)基金項(xiàng)目(ZR2011FQ0 17)。陳星,碩士生,主研領(lǐng)域:移動應(yīng)用開發(fā)。楊春花,教授。

猜你喜歡
利用實(shí)驗(yàn)
記一次有趣的實(shí)驗(yàn)
利用min{a,b}的積分表示解決一類絕對值不等式
微型實(shí)驗(yàn)里看“燃燒”
利用倒推破難點(diǎn)
利用一半進(jìn)行移多補(bǔ)少
做個怪怪長實(shí)驗(yàn)
利用數(shù)的分解來思考
Roommate is necessary when far away from home
利用
NO與NO2相互轉(zhuǎn)化實(shí)驗(yàn)的改進(jìn)
主站蜘蛛池模板: 免费人成黄页在线观看国产| 免费无码在线观看| 性欧美精品xxxx| 色欲色欲久久综合网| 国产日韩欧美一区二区三区在线| 在线日韩日本国产亚洲| 女人毛片a级大学毛片免费| 久久永久免费人妻精品| 国产精品分类视频分类一区| 伊人色婷婷| 久久综合丝袜日本网| 在线视频一区二区三区不卡| 欧美成人一级| 日韩中文欧美| 午夜视频免费试看| 一区二区偷拍美女撒尿视频| 99久久精彩视频| 亚洲福利片无码最新在线播放| 国产精品制服| 国产在线欧美| 免费人成视网站在线不卡| 激情在线网| 国产18在线| 亚洲swag精品自拍一区| 美女无遮挡被啪啪到高潮免费| 国产成人久久777777| 欧美成人午夜视频免看| 波多野结衣爽到高潮漏水大喷| 狠狠色狠狠综合久久| 国产一级妓女av网站| 欧美不卡视频在线| 美女扒开下面流白浆在线试听 | 色综合天天综合| 亚洲清纯自偷自拍另类专区| 看国产毛片| 啊嗯不日本网站| 欧美日韩免费| 视频一区视频二区中文精品| 成人国内精品久久久久影院| 国产精品一区二区无码免费看片| 97无码免费人妻超级碰碰碰| 亚洲毛片一级带毛片基地 | 日韩AV无码免费一二三区| 精品国产免费观看一区| 色综合天天操| 日韩 欧美 小说 综合网 另类 | 无码视频国产精品一区二区| 精品91在线| 国产成人综合网| 无码又爽又刺激的高潮视频| 91系列在线观看| 四虎影视永久在线精品| 日韩精品成人在线| 午夜福利在线观看成人| AV熟女乱| 国产亚洲精| 国产尤物jk自慰制服喷水| 国产欧美日韩专区发布| 国产精品一区二区国产主播| 国产AV无码专区亚洲精品网站| 亚洲男人的天堂网| 国产精鲁鲁网在线视频| 在线视频亚洲色图| 天天操天天噜| 欧美五月婷婷| 第一区免费在线观看| 国产精品一区不卡| 日本午夜三级| 欧美翘臀一区二区三区| 日本午夜三级| 精品国产三级在线观看| 青草91视频免费观看| 日本一区高清| 久久网综合| 国产一区二区网站| 波多野结衣久久精品| 国产新AV天堂| 久久午夜影院| 女人18毛片一级毛片在线| 日韩a级毛片| 日韩精品无码免费一区二区三区 | 国产精品天干天干在线观看|