天天看點

一個Android項目多線程下載下傳子產品開源庫:AndroidFileDownloader

使用場景

apk應用内更新,其他中小檔案的下載下傳,斷點續傳下載下傳等,先來看看效果圖:

一個Android項目多線程下載下傳子產品開源庫:AndroidFileDownloader

簡單友善的調用接口

調用者隻要設定好下載下傳路徑、檔案字尾,丢一個url即可開始下載下傳,并且可以根據需要監聽進度,例如:<code></code>

設計與實作

多線程下載下傳的實作,生産者消費者模式,對于設計實作層面的東西個人更喜歡用圖說明,序列圖如下:

一個Android項目多線程下載下傳子產品開源庫:AndroidFileDownloader

filedownloader:直接面向調用者,使用者隻care檔案的url,下載下傳存儲路徑,下載下傳進度狀态,我們緻力将對外接口封裝的盡量簡單友善,是以僅僅提供一個addfile() 方法,傳入url,檔案路徑,回調監聽器。

downloaderlistener:下載下傳進度或狀态監聽接口,調用者實作回調方法處理進度狀态。

creatorthread:生産者線程,這個線程通過url擷取檔案大小,再将檔案分片組裝成下載下傳任務段。

tasklist: 任務隊列,生産者線程可以往裡面增加任務段,消費者線程可以從裡面取出一段下載下傳任務,這個過程是同步的。

downloadthread:消費者線程,負責消費任務隊列裡面的任務段。

繼續閱讀