譚振雄 謝才香
摘要:在Android環(huán)境中,傳統(tǒng)的下載器多采用單線程進(jìn)行文件下載,針對(duì)該問題,本文先把下載文件分割成多個(gè)區(qū)間,然后采用多線程下載的方式對(duì)每個(gè)區(qū)間進(jìn)行下載,最后把各下載的區(qū)間組合成一個(gè)文件。該方法能夠有效提高文件的下載速度,并且避免了單線程可能出現(xiàn)的應(yīng)用程序無響應(yīng)問題。
關(guān)鍵詞:Android;多線程下載;無響應(yīng);SQLite數(shù)據(jù)庫
0引言
Android是基于Linux平臺(tái)的開源移動(dòng)端操作系統(tǒng),當(dāng)前已廣泛應(yīng)用于手機(jī)、平板、電視、汽車、智能穿戴等設(shè)備。由于Android的開源性,基于Android開發(fā)的應(yīng)用軟件也有著很好的市場(chǎng)前景。多線程下載是Android的一個(gè)應(yīng)用,該應(yīng)用能夠有效提高下載速度,節(jié)省設(shè)備內(nèi)存。在開發(fā)多線程下載器應(yīng)用時(shí),引入多線程技術(shù)可以有效地明確該下載系統(tǒng)的結(jié)構(gòu),確保該下載系統(tǒng)結(jié)構(gòu)的靈活性,降低任務(wù)的耦合度,使得所開發(fā)的下載器能夠更加高效地運(yùn)行。
1下載系統(tǒng)可行性
1.1版權(quán)可行性
隨著智能手機(jī)的迅速普及和網(wǎng)民數(shù)量的增加,網(wǎng)絡(luò)世界也越來越廣闊,資源越來越豐富,人們已經(jīng)非常熟悉智能手機(jī)的操作。原來在PC端觀看視頻的,慢慢地轉(zhuǎn)移到手機(jī)上下載視頻觀看。移動(dòng)端和PC端觀看視頻的人數(shù)基本相當(dāng),有些網(wǎng)站移動(dòng)端的人數(shù)還要更高。根據(jù)愛奇藝上熱門視頻的播放平臺(tái)數(shù)據(jù)顯示,其移動(dòng)端觀看人數(shù)占比高達(dá)88%,PC端觀看人數(shù)占比只有12%。本應(yīng)用是完全自主開發(fā),運(yùn)行環(huán)境和開發(fā)工具使用合法,不存在版權(quán)問題,不會(huì)侵犯他人、集體或國家利益,不違反國家法律。
1.2技術(shù)可行性
本應(yīng)用開發(fā)使用的編程語言是Java,本地下載記錄存儲(chǔ)使用SQLite,基于Android SDK開發(fā)包進(jìn)行開發(fā),由于Android SDK非常強(qiáng)大,使用十分簡(jiǎn)單、靈活,展示界面比較豐富多樣,運(yùn)用比較廣泛,說明本技術(shù)具備可行性。硬件方面,手機(jī)硬件升級(jí)的速度飛快,存儲(chǔ)容量越來越大,CPU性能越來越高,但價(jià)格確越來越低,市面上大多數(shù)移動(dòng)設(shè)備的硬件完全能滿足此應(yīng)用的需要。
1.3操作可行性
目前市面上大多數(shù)搭載Android操作系統(tǒng)的手機(jī)都能運(yùn)行該軟件,該軟件的安裝、調(diào)試、運(yùn)行不會(huì)改變?cè)謾C(jī)系統(tǒng)的設(shè)置和布局,并且應(yīng)用界面簡(jiǎn)潔,稍加熟悉便能夠操作該軟件。
2用戶需求分析
本下載器是一個(gè)提供瀏覽網(wǎng)頁并且可以下載資源的Android平臺(tái)手機(jī)端APP,依照用戶的需求進(jìn)行應(yīng)用的設(shè)計(jì)與開發(fā),為劇迷、影迷們提供一種選擇,主要分為瀏覽網(wǎng)頁和下載兩大部分。
瀏覽網(wǎng)頁部分,要求實(shí)現(xiàn)以下部分功能:
①不輸入網(wǎng)址就能快速進(jìn)入一些常用的知名視頻和門戶網(wǎng)站;
②輸入網(wǎng)址進(jìn)入網(wǎng)站;
③輸入關(guān)鍵字進(jìn)入搜索引擎,搜索想要的資源;
④可以快速跳轉(zhuǎn)前后瀏覽的網(wǎng)站;
⑤在任意頁中,都有按鈕點(diǎn)擊后跳轉(zhuǎn)到主頁。
下載部分,要求實(shí)現(xiàn)以下部分功能:
①輸入下載鏈接ud,能把資源下載到手機(jī)本地;
②下載過程中,可實(shí)現(xiàn)暫停和繼續(xù)功能;
③如果下載未完成就退出后,可以保存下載進(jìn)度。下次啟動(dòng)時(shí),從上次中斷處接著下載;
④下載完成的記錄和正在下載的記錄全部顯示在下載管理列表中;
⑤可刪除掉已下載的記錄。
3下載系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
3.1下載系統(tǒng)設(shè)計(jì)
根據(jù)系統(tǒng)功能分析,系統(tǒng)可分為瀏覽網(wǎng)頁模塊和下載模塊。瀏覽網(wǎng)頁模塊有3個(gè)頁面,分別是主頁、網(wǎng)址輸入頁、網(wǎng)站詳情頁;下載模塊有3個(gè)頁面,分別是下載管理頁、新建下載鏈接頁、下載詳情頁,系統(tǒng)功能模塊如圖1所示。
3.2多線程下載設(shè)計(jì)
線程可以看成是下載管道,一個(gè)線程就是一個(gè)下載管道,多線程也就是可以同時(shí)開啟多個(gè)下載管道。本系統(tǒng)的多線程下載原理如圖2所示?;舅悸肪褪峭瑫r(shí)開啟多個(gè)線程,每個(gè)線程從服務(wù)端下載對(duì)應(yīng)的文件區(qū)間,所有線程下載完畢后再把各區(qū)間文件組合成一個(gè)文件。
4下載系統(tǒng)性能測(cè)試
根據(jù)下載系統(tǒng)功能需求進(jìn)行相應(yīng)測(cè)試,輸入相應(yīng)內(nèi)容后,可以輸出需求內(nèi)容。對(duì)該下載系統(tǒng)進(jìn)行測(cè)試后,得出該系統(tǒng)的功能完善,能夠滿足用戶需求,功能測(cè)試通過,功能測(cè)試報(bào)告如表1。
根據(jù)系統(tǒng)的性能需求進(jìn)行測(cè)試,輸入內(nèi)容后,測(cè)試時(shí)間都達(dá)到了需求的目標(biāo)。性能測(cè)試通過,性能測(cè)試報(bào)告如表2所示。
5結(jié)論
本文通過研究HTYP協(xié)議和線程的理論實(shí)現(xiàn)了多線程下載系統(tǒng)的相應(yīng)功能。主要工作如下:
(一)完成設(shè)計(jì)方案中所提到的瀏覽網(wǎng)頁、關(guān)鍵字搜索、下載管理、視頻播放等功能。
(二)完成對(duì)該下載系統(tǒng)的相應(yīng)測(cè)試,得出各測(cè)試功能達(dá)到預(yù)期目標(biāo)。
綜上所述,本下載系統(tǒng)能夠有效提高文件的下載速度,并能夠記錄用戶的下載習(xí)慣以及過往的下載記錄,從而方便用戶的使用。endprint