譚振雄 謝才香


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