两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載方法和裝置的制作方法

文檔序號:7553744閱讀:149來源:國知局
專利名稱:智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及程序測試領(lǐng)域,尤其涉及一種智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載方法和裝置。
背景技術(shù)
隨著科技的不斷進(jìn)步,智能化的、移動、便攜式產(chǎn)品越來越得到人們的廣泛使用;Android (安卓)操作系統(tǒng)作為一款嵌入式操作系統(tǒng),因其功能的完備性、靈活性、用戶界面友好性等優(yōu)點(diǎn),在許多智能設(shè)備中得到應(yīng)用;相應(yīng)地,基于Android操作系統(tǒng)而開發(fā)的Android應(yīng)用程序數(shù)量也越來越多。人們可以在Android系統(tǒng)中安裝自己喜歡的各種應(yīng)用。大部分用戶安裝應(yīng)用程序都是通過網(wǎng)絡(luò)搜索安裝,這就需要保證網(wǎng)絡(luò)的穩(wěn)定性和下載模塊的穩(wěn)定性。不過在實(shí)際應(yīng)用中,經(jīng)常由于某些不可控因素,比如網(wǎng)絡(luò)異常中斷或者Android設(shè)備異常斷電等,導(dǎo)致下載不能正常進(jìn)行而被中途中斷;當(dāng)用戶重新啟動下載時,經(jīng)常會發(fā)現(xiàn)已經(jīng)下載完的數(shù)據(jù)并沒有保存,重新下載還需要從零開始。這種問題的發(fā)生,使得用戶對于Android系統(tǒng)產(chǎn)品的喜愛度下降,這也給用戶造成了網(wǎng)絡(luò)流量的浪費(fèi)。雖然現(xiàn)有技術(shù)中,在臺式計(jì)算機(jī)、或筆記本電腦中安裝的Window (視窗)操作系統(tǒng)中,可以支持?jǐn)帱c(diǎn)續(xù)傳功能的下載程序;然而,這些支持?jǐn)帱c(diǎn)續(xù)傳功能的下載程序是基于Window操作系統(tǒng)開發(fā)的;Window操作系統(tǒng)因其可使用的系統(tǒng)資源較多、提供的API(Application Program Interface,應(yīng)用程序接口)接口函數(shù)豐富的原因,開發(fā)出支持?jǐn)帱c(diǎn)續(xù)傳功能的下載程序較為容易;而Android操作系統(tǒng)作為嵌入式操作系統(tǒng),其可使用的系統(tǒng)資源有限,可提供的API接口函數(shù)有限,因此,基于Window操作系統(tǒng)而開發(fā)出的支持?jǐn)帱c(diǎn)續(xù)傳功能的下載程序,無法移植到Android操作系統(tǒng)中。綜上所述,現(xiàn)有技術(shù)中缺少基于Android操作系統(tǒng)的支持?jǐn)帱c(diǎn)續(xù)傳功能的下載程序,具有提供基于Android操作系統(tǒng)的支持?jǐn)帱c(diǎn)續(xù)傳的下載功能的需求。

發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了一種智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載方法和裝置,可以為基于Android操作系統(tǒng)的智能設(shè)備提供支持?jǐn)帱c(diǎn)續(xù)傳的下載功能。根據(jù)本發(fā)明的一個方面,提供了一種智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載方法,包括:基于Android操作系統(tǒng)的智能設(shè)備中的下載程序啟動后,查詢本地是否存儲有待下載文件的下載記錄信息;所述待下載文件的下載記錄信息中包括:該待下載文件的文件名稱、下載地址、下載進(jìn)度表的名稱;若查詢到存儲有該待下載文件的下載記錄信息,則:根據(jù)所述下載進(jìn)度表的名稱,獲取該待下載文件的下載進(jìn)度表;所述下載進(jìn)度表中記錄有下載線程的下載數(shù)據(jù)存儲單元的名稱或地址,以及所述下載線程的當(dāng)前下載位置的偏移量;
將所述下載進(jìn)度表中記錄的下載線程的當(dāng)前位置的偏移量作為所述下載線程的起始下載位置的偏移量后,啟動所述下載線程進(jìn)行斷點(diǎn)續(xù)傳:所述下載線程根據(jù)起始下載位置的偏移量,以及所述待下載文件的下載地址進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量;其中,所述待下載文件的下載進(jìn)度表和下載數(shù)據(jù)存儲單元,是所述下載程序在所述待下載文件的首次下載時在嵌入式數(shù)據(jù)庫中創(chuàng)建的。進(jìn)一步,在所述更新所述下載進(jìn)度表中的當(dāng)前下載位置的偏移量后,還包括:所述下載線程在判斷出所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量等于下載線程的結(jié)束下載位置的偏移量后,停止文件數(shù)據(jù)的下載,所述下載線程的下載任務(wù)完成;其中,所述下載線程的結(jié)束下載位置的偏移量是記錄在所述下載進(jìn)度表中的;或者,所述下載線程的結(jié)束下載位置的偏移量是在所述啟動所述下載線程進(jìn)行斷點(diǎn)續(xù)傳之前,根據(jù)所述待下載文件的文 件大小計(jì)算出來的。進(jìn)一步,在所述查詢本地是否存儲有待下載文件的下載記錄信息后,還包括:若沒有查詢到該待下載文件的下載記錄信息,則:根據(jù)該待下載文件的文件大小,確定下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量;在嵌入式數(shù)據(jù)庫中為所述待下載文件的下載線程創(chuàng)建所述下載數(shù)據(jù)存儲單元、為所述待下載文件創(chuàng)建所述下載進(jìn)度表后,存儲該待下載文件的下載記錄信息,啟動所述下載線程;所述下載線程根據(jù)起始下載位置的偏移量進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量。較佳地,所述下載線程為多個,以及所述待下載文件的下載進(jìn)度表中具體記錄有:針對每個下載線程,記錄有該下載線程的下載數(shù)據(jù)存儲單元的名稱或地址、該下載線程的當(dāng)前下載位置的偏移量、該下載線程的結(jié)束下載位置的偏移量;以及所述根據(jù)該待下載文件的文件大小,確定下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量具體包括:根據(jù)該待下載文件的文件大小,以及下載線程的個數(shù),為每個下載線程分配下載數(shù)據(jù)塊的大?。灰罁?jù)下載線程的索引號、以及為每個下載線程分配下載數(shù)據(jù)塊的大小,確定各下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量:對于第I個下載線程,確定其起始下載位置的偏移量為0,其結(jié)束下載位置的偏移量等于為其分配的下載數(shù)據(jù)塊的大??;對于最后I個下載線程,確定其起始下載位置的偏移量等于該待下載文件的文件大小減去為其分配的下載數(shù)據(jù)塊的大小,其結(jié)束下載位置的偏移量等于該待下載文件的文件大?。粚τ谄渌螺d線程,確定其起始下載位置的偏移量等于其在前下載線程的結(jié)束下載位置的偏移量加1,其結(jié)束下載位置的偏移量等于其起始下載位置的偏移量與為其分配的下載數(shù)據(jù)塊的大小之和。較佳地,所述下載線程根據(jù)起始下載位置的偏移量,以及所述待下載文件的下載地址進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量,具體包括:對于每個下載線程,該下載線程根據(jù)本下載線程的起始下載位置的偏移量,以及所述待下載文件的下載地址進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于本下載線程的緩存中;并在該緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將該緩存中的文件數(shù)據(jù)寫入到本下載線程的下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的本下載線程的當(dāng)前下載位置的偏移量。較佳地,所述下載線程在判斷出所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量等于下載線程的結(jié) 束下載位置的偏移量后,停止文件數(shù)據(jù)的下載,所述下載線程的下載任務(wù)完成,具體包括:對于每個下載線程,若該下載線程判斷出所述下載進(jìn)度表中的本下載線程的當(dāng)前下載位置的偏移量等于本下載線程的結(jié)束下載位置的偏移量,則停止文件數(shù)據(jù)的下載,該下載線程的下載任務(wù)完成;以及在所述啟動所述下載線程后,還包括:所述下載程序在所有的下載線程的下載任務(wù)都完成后,將各下載線程的下載數(shù)據(jù)存儲單元中的文件數(shù)據(jù)合并,并顯示所述待下載文件下載完成的信息。較佳地,在所述查詢本地是否存儲有待下載文件的下載記錄信息之前,還包括:接收用戶輸入的所述待下載文件的下載地址,以及所述待下載文件的下載指令。較佳地,所述下載程序啟動具體包括:所述Android操作系統(tǒng)在所述下載程序預(yù)先注冊的響應(yīng)事件觸發(fā)時,啟動所述下載程序;或者所述Android操作系統(tǒng)在所述下載程序預(yù)先注冊的響應(yīng)事件觸發(fā)時,顯示出注冊了該響應(yīng)事件的各程序列表;在接收到用戶選擇了所述下載程序的指令后,啟動所述下載程序;其中,所述響應(yīng)事件包括:網(wǎng)絡(luò)文件被選擇下載。根據(jù)本發(fā)明的另一個方面,還提供了一種智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載裝置,包括:下載記錄信息查詢模塊,用于在基于Android操作系統(tǒng)的智能設(shè)備中的下載程序啟動后,查詢本地是否存儲有待下載文件的下載記錄信息;所述待下載文件的下載記錄信息中包括:該待下載文件的文件名稱、下載地址、下載進(jìn)度表的名稱;若查詢到存儲有該待下載文件的下載記錄信息,則發(fā)送斷點(diǎn)續(xù)傳通知;斷點(diǎn)續(xù)傳模塊,用于接收到所述斷點(diǎn)續(xù)傳通知后,根據(jù)所述下載進(jìn)度表的名稱,獲取該待下載文件的下載進(jìn)度表;所述下載進(jìn)度表中記錄有下載線程的下載數(shù)據(jù)存儲單元的名稱或地址,以及所述下載線程的當(dāng)前下載位置的偏移量;并將所述下載進(jìn)度表中記錄的下載線程的當(dāng)前位置的偏移量作為所述下載線程的起始下載位置的偏移量后,啟動所述下載線程進(jìn)行斷點(diǎn)續(xù)傳:所述下載線程根據(jù)起始下載位置的偏移量,以及所述待下載文件的下載地址進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量。較佳地,所述下載記錄信息查詢模塊還用于若沒有查詢到該待下載文件的下載記錄信息,則發(fā)送新文件下載通知;以及所述裝置還包括:新文件下載處理模塊,用于接收到所述新文件下載通知后,根據(jù)該待下載文件的文件大小,確定下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量;并在嵌入式數(shù)據(jù)庫中為所述待下載文件的下載線程創(chuàng)建所述下載數(shù)據(jù)存儲單元、為所述待下載文件創(chuàng)建所述下載進(jìn)度表后,存儲該待下載文件的下載記錄信息,啟動所述下載線程;所述下載線程根據(jù)起始下載位置的偏移量進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在 所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量。本發(fā)明實(shí)施例的技術(shù)方案中,由于在嵌入式數(shù)據(jù)庫中創(chuàng)建了下載數(shù)據(jù)存儲單元對下載數(shù)據(jù)進(jìn)行及時保存,還創(chuàng)建了下載進(jìn)度表及時進(jìn)行下載進(jìn)度(即當(dāng)前下載位置)的更新;并建立機(jī)制使得在對同一文件重啟下載后,可以根據(jù)之前記錄的待下載文件的下載記錄信息,獲取到該待下載文件的下載數(shù)據(jù)存儲單元以及下載進(jìn)度表,從斷點(diǎn)保存的數(shù)據(jù)進(jìn)行續(xù)傳下載;從而為基于Android操作系統(tǒng)的智能設(shè)備提供支持?jǐn)帱c(diǎn)續(xù)傳的下載功能;更優(yōu)地,本發(fā)明的技術(shù)方案,還采用了多線程的技術(shù),對多線程下載的數(shù)據(jù)分別進(jìn)行保存,從而既可以支持?jǐn)帱c(diǎn)續(xù)傳,又提高了下載速度。


圖1為本發(fā)明實(shí)施例的支持?jǐn)帱c(diǎn)續(xù)傳的下載方法流程圖;圖2為本發(fā)明實(shí)施例的支持?jǐn)帱c(diǎn)續(xù)傳的下載裝置的內(nèi)部結(jié)構(gòu)框圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉出優(yōu)選實(shí)施例,對本發(fā)明進(jìn)一步詳細(xì)說明。然而,需要說明的是,說明書中列出的許多細(xì)節(jié)僅僅是為了使讀者對本發(fā)明的一個或多個方面有一個透徹的理解,即便沒有這些特定的細(xì)節(jié)也可以實(shí)現(xiàn)本發(fā)明的這些方面。本申請使用的“模塊”、“系統(tǒng)”等術(shù)語旨在包括與計(jì)算機(jī)相關(guān)的實(shí)體,例如但不限于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于:處理器上運(yùn)行的進(jìn)程、處理器、對象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計(jì)算機(jī)。舉例來說,計(jì)算設(shè)備上運(yùn)行的應(yīng)用程序和此計(jì)算設(shè)備都可以是模塊。一個或多個模塊可以位于執(zhí)行中的一個進(jìn)程和/或線程內(nèi),一個模塊也可以位于一臺計(jì)算機(jī)上和/或分布于兩臺或更多臺計(jì)算機(jī)之間。本發(fā)明的發(fā)明人考慮到,采用嵌入式數(shù)據(jù)庫對下載數(shù)據(jù)進(jìn)行及時保存;并建立機(jī)制使得在對同一文件重啟下載后,根據(jù)斷點(diǎn)保存的數(shù)據(jù)進(jìn)行續(xù)傳下載;從而為基于Android操作系統(tǒng)的智能設(shè)備提供支持?jǐn)帱c(diǎn)續(xù)傳的下載功能;更優(yōu)地,本發(fā)明的技術(shù)方案,還采用了多線程的技術(shù),對多線程下載的數(shù)據(jù)分別進(jìn)行保存,從而既可以支持?jǐn)帱c(diǎn)續(xù)傳,又提高了下載速度。下面結(jié)合附圖詳細(xì)說明本發(fā)明實(shí)施例的技術(shù)方案。本發(fā)明實(shí)施例提供的可以安裝于基于Android操作系統(tǒng)的智能設(shè)備中的下載程序(或稱下載裝置),其支持?jǐn)帱c(diǎn)續(xù)傳的下載方法,流程圖如圖1所示,包括如下步驟:SlOl:在下載程序(或稱下載裝置)啟動后,判斷是否存儲有待下載文件的下載記錄信息;若存儲有該待下載文件的下載記錄信息,則執(zhí)行步驟S112 ;否則,執(zhí)行步驟S102。具體地,在下載程序(或稱下載裝置)啟動后,對于用戶需要進(jìn)行下載的文件(本文中稱為待下載文件),下載程序去查詢本地存儲的下載記錄信息中是否有該待下載文件的下載記錄信息。一般而言,存儲的下載記錄信息中會包括之前下載的各文件的相關(guān)信息,比如文件名稱、下載地址、 下載時間等。若下載程序判斷出本地已經(jīng)存儲有當(dāng)前的待下載文件的下載記錄信息,即表明該待下載文件之前已經(jīng)進(jìn)行了部分?jǐn)?shù)據(jù)的下載,則執(zhí)行步驟S112,對該待下載文件繼續(xù)進(jìn)行下載;若下載程序判斷出本地沒有存儲該待下載文件的下載記錄信息,即表明下載程序從未對該待下載文件進(jìn)行下載,則執(zhí)行步驟S102。S102:獲取該待下載文件的文件大小,確定下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量。在本步驟中,下載程序根據(jù)該待下載文件的下載地址,與該待下載文件所在的服務(wù)器進(jìn)行通信,獲取該待下載文件的文件大??;根據(jù)獲取的文件大小,確定下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量。例如,對于一個下載線程的情況,則確定該下載線程的起始下載位置的偏移量為0,結(jié)束下載位置的偏移量等于該待下載文件的文件大小。更優(yōu)地,下載線程可以是多個,從而可以并發(fā)地以多個線程進(jìn)行文件的下載;例如,下載線程可以有3個。對于多個下載線程的情況,則下載程序根據(jù)獲取的文件大小,分別確定每個下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量,具體方法如下:根據(jù)該待下載文件的文件大小,以及下載線程的個數(shù),為每個下載線程分配下載數(shù)據(jù)塊的大??;例如,將該待下載文件的文件大小除以下載線程的個數(shù)后,得到的整數(shù)值作為基礎(chǔ)數(shù)據(jù)塊,則確定為最后I個下載線程的下載數(shù)據(jù)塊的大小為:該待下載文件的文件大小-(下載線程的個數(shù)-1) X基礎(chǔ)數(shù)據(jù)塊;確定其它下載線程的下載數(shù)據(jù)塊的大小為該基礎(chǔ)數(shù)據(jù)塊;依據(jù)下載線程的索引號、以及為每個下載線程分配下載數(shù)據(jù)塊的大小,確定各下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量:對于第I個下載線程,確定其起始下載位置的偏移量為0,其結(jié)束下載位置的偏移量等于為其分配的下載數(shù)據(jù)塊的大小;對于最后I個下載線程,確定其起始下載位置的偏移量等于該待下載文件的文件大小減去為其分配的下載數(shù)據(jù)塊的大小,其結(jié)束下載位置的偏移量等于該待下載文件的文件大??;對于其它下載線程,確定其起始下載位置的偏移量等于其在前下載線程的結(jié)束下載位置的偏移量加1,其結(jié)束下載位置的偏移量等于其起始下載位置的偏移量與為其分配的下載數(shù)據(jù)塊的大小之和。S103:在嵌入式數(shù)據(jù)庫中為所述待下載文件的下載線程創(chuàng)建下載數(shù)據(jù)存儲單元、為所述待下載文件創(chuàng)建下載進(jìn)度表后,存儲該待下載文件的下載記錄信息,啟動下載線程。具體地,下載程序在嵌入式數(shù)據(jù)庫中為下載線程創(chuàng)建的下載數(shù)據(jù)存儲單元,是用于存儲該下載線程所下載的數(shù)據(jù)的;下載程序?yàn)樗龃螺d文件創(chuàng)建的下載進(jìn)度表中,記錄有下載線程的當(dāng)前下載位置的偏移量,進(jìn)一步,還可記錄有下載線程的結(jié)束下載位置的偏移量。本發(fā)明所采用的嵌入式數(shù)據(jù)庫具體可以是Sqlite數(shù)據(jù)庫,Sqlite數(shù)據(jù)庫具有強(qiáng)大的異常處理能力,出現(xiàn)掉電等異常情況時也不會造成數(shù)據(jù)丟失。也就是說,所述待下載文件的下載進(jìn)度表和下載數(shù)據(jù)存儲單元,是所述下載程序在所述待下載文件的首次下載時在嵌入式數(shù)據(jù)庫中創(chuàng)建的。較優(yōu)地,對于多個下載線程的情況,下載程序分別為每個下載線程創(chuàng)建對應(yīng)該下載線程的下載數(shù)據(jù)存儲單元; 并且,下載程序?yàn)樗龃螺d文件創(chuàng)建的下載進(jìn)度表中,對于每個下載線程,記錄有該下載線程的索引號、當(dāng)前下載位置的偏移量、下載數(shù)據(jù)存儲單元的名稱或地址;進(jìn)一步,下載進(jìn)度表中還可對于每個下載線程,記錄有該下載線程的結(jié)束下載位置的偏移量。下表I則示出了一個具體的下載進(jìn)度表:表I
權(quán)利要求
1.一種智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載方法,包括: 基于Android操作系統(tǒng)的智能設(shè)備中的下載程序啟動后,查詢本地是否存儲有待下載文件的下載記錄信息;所述待下載文件的下載記錄信息中包括:該待下載文件的文件名稱、下載地址、下載進(jìn)度表的名稱;若查詢到存儲有該待下載文件的下載記錄信息,則: 根據(jù)所述下載進(jìn)度表的名稱,獲取該待下載文件的下載進(jìn)度表;所述下載進(jìn)度表中記錄有下載線程的下載數(shù)據(jù)存儲單元的名稱或地址,以及所述下載線程的當(dāng)前下載位置的偏移量; 將所述下載進(jìn)度表中記錄的下載線程的當(dāng)前位置的偏移量作為所述下載線程的起始下載位置的偏移量后,啟動所述下載線程進(jìn)行斷點(diǎn)續(xù)傳: 所述下載線程根據(jù)起始下載位置的偏移量,以及所述待下載文件的下載地址進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量;其中,所述待下載文件的下載進(jìn)度表和下載數(shù)據(jù)存儲單元,是所述下載程序在所述待下載文件的首次下載時在嵌入式數(shù)據(jù)庫中創(chuàng)建的。
2.如權(quán)利要求1所述的方法,其特征在于,在所述更新所述下載進(jìn)度表中的當(dāng)前下載位置的偏移量后,還包括: 所述下載線程在判斷出所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量等于下載線程的結(jié)束下載位置的偏移量后,停止文件數(shù)據(jù)的下載,所述下載線程的下載任務(wù)完成; 其中,所述下載線程的結(jié)束下載位置的偏移量是記錄在所述下載進(jìn)度表中的;或者,所述下載線程的結(jié)束下載位置的偏移量是在所述啟動所述下載線程進(jìn)行斷點(diǎn)續(xù)傳之前,根據(jù)所述待下載文件的文件大小計(jì) 算出來的。
3.如權(quán)利要求2所述的方法,其特征在于,在所述查詢本地是否存儲有待下載文件的下載記錄信息后,還包括: 若沒有查詢到該待下載文件的下載記錄信息,則: 根據(jù)該待下載文件的文件大小,確定下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量; 在嵌入式數(shù)據(jù)庫中為所述待下載文件的下載線程創(chuàng)建所述下載數(shù)據(jù)存儲單元、為所述待下載文件創(chuàng)建所述下載進(jìn)度表后,存儲該待下載文件的下載記錄信息,啟動所述下載線程; 所述下載線程根據(jù)起始下載位置的偏移量進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量。
4.如權(quán)利要求3所述的方法,其特征在于,所述下載線程為多個,以及所述待下載文件的下載進(jìn)度表中具體記錄有:針對每個下載線程,記錄有該下載線程的下載數(shù)據(jù)存儲單元的名稱或地址、該下載線程的當(dāng)前下載位置的偏移量、該下載線程的結(jié)束下載位置的偏移量;以及所述根據(jù)該待下載文件的文件大小,確定下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量具體包括: 根據(jù)該待下載文件的文件大小,以及下載線程的個數(shù),為每個下載線程分配下載數(shù)據(jù)塊的大??; 依據(jù)下載線程的索引號、以及為每個下載線程分配下載數(shù)據(jù)塊的大小,確定各下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量: 對于第I個下載線程,確定其起始下載位置的偏移量為O,其結(jié)束下載位置的偏移量等于為其分配的下載數(shù)據(jù)塊的大?。? 對于最后I個下載線程,確定其起始下載位置的偏移量等于該待下載文件的文件大小減去為其分配的下載數(shù)據(jù)塊的大小,其結(jié)束下載位置的偏移量等于該待下載文件的文件大小; 對于其它下載線程,確定其起始下載位置的偏移量等于其在前下載線程的結(jié)束下載位置的偏移量加1,其結(jié)束下載位置的偏移量等于其起始下載位置的偏移量與為其分配的下載數(shù)據(jù)塊的大小之和。
5.如權(quán)利要求4所述的方法,其特征在于,所述下載線程根據(jù)起始下載位置的偏移量,以及所述待下載文件的下載地址進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量,具體包括: 對于每個下載線程,該下載線程根據(jù)本下載線程的起始下載位置的偏移量,以及所述待下載文件的下載地址進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于本下載線程的緩存中;并在該緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將該緩存中的文件數(shù)據(jù)寫入到本下載線程的下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的本下載線程的當(dāng)前下載位置的偏移量。
6.如權(quán)利要求5所述的方法,其特征在于,所述下載線程在判斷出所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量等于下載線程的結(jié)束下載位置的偏移量后,停止文件數(shù)據(jù)的下載,所述下載線程的下載任務(wù)完成,具體包括: 對于每個下載線程,若該下載線程判斷出所述下載進(jìn)度表中的本下載線程的當(dāng)前下載位置的偏移量等于本下載線程的結(jié)束下載位置的偏移量,則停止文件數(shù)據(jù)的下載,該下載線程的下載任務(wù)完成;以及 在所述啟動所述下載線程后,還包括: 所述下載程序在所有的下載線程的下載任務(wù)都完成后,將各下載線程的下載數(shù)據(jù)存儲單元中的文件數(shù)據(jù)合并,并顯示所述待下載文件下載完成的信息。
7.如權(quán)利要求3-6任一所述的方法,其特征在于,在所述查詢本地是否存儲有待下載文件的下載記錄信息之前,還包括: 接收用戶輸入的所述待下載文件的下載地址,以及所述待下載文件的下載指令。
8.如權(quán)利要求3-6任一所述的方法,其特征在于,所述下載程序啟動具體包括: 所述Android操作系統(tǒng)在所述下載程序預(yù)先注冊的響應(yīng)事件觸發(fā)時,啟動所述下載程序;或者所述Android操作系統(tǒng)在所述下載程序預(yù)先注冊的響應(yīng)事件觸發(fā)時,顯示出注冊了該響應(yīng)事件的各程序列表;在接收到用戶選擇了所述下載程序的指令后,啟動所述下載程序; 其中,所述響應(yīng)事件包括:網(wǎng)絡(luò)文件被選擇下載。
9.一種智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載裝置,包括: 下載記錄信息查詢模塊,用于在基于Android操作系統(tǒng)的智能設(shè)備中的下載程序啟動后,查詢本地是否存儲有待下載文件的下載記錄信息;所述待下載文件的下載記錄信息中包括:該待下載文件的文件名稱、下載地址、下載進(jìn)度表的名稱;若查詢到存儲有該待下載文件的下載記錄信息,則發(fā)送斷點(diǎn)續(xù)傳通知; 斷點(diǎn)續(xù)傳模塊,用于接收到所述斷點(diǎn)續(xù)傳通知后,根據(jù)所述下載進(jìn)度表的名稱,獲取該待下載文件的下載進(jìn)度表;所述下載進(jìn)度表中記錄有下載線程的下載數(shù)據(jù)存儲單元的名稱或地址,以及所述下載線程的當(dāng)前下載位置的偏移量;并將所述下載進(jìn)度表中記錄的下載線程的當(dāng)前位置的偏移量作為所述下載線程的起始下載位置的偏移量后,啟動所述下載線程進(jìn)行斷點(diǎn)續(xù)傳: 所述下載線程根據(jù)起始下載位置的偏移量,以及所述待下載文件的下載地址進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量。
10.如權(quán)利要求9所述的裝置,其特征在于, 所述下載記錄信息查詢模塊還用于若沒有查詢到該待下載文件的下載記錄信息,則發(fā)送新文件下載通知;以及所述裝置還包括: 新文件下載處理模塊,用于接收到所述新文件下載通知后,根據(jù)該待下載文件的文件大小,確定下載線程的起始下載位置的偏移量和結(jié)束下載位置的偏移量;并在嵌入式數(shù)據(jù)庫中為所述待下載文件的下載線程創(chuàng)建所述下載數(shù)據(jù)存儲單元、為所述待下載文件創(chuàng)建所述下載進(jìn)度表后,存儲該待下載文件的下載記錄信息,啟動所述下載線程; 所述下載線程根據(jù)起始下載位置的偏移量進(jìn)行文件數(shù)據(jù)的下載,并將下載的文件數(shù)據(jù)暫存于緩存中;并在所述緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將所述緩存中的文件數(shù)據(jù)寫入到所述下載數(shù)據(jù)存儲單元后,更新所述下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量。
全文摘要
本發(fā)明公開了一種智能設(shè)備中支持?jǐn)帱c(diǎn)續(xù)傳的下載方法和裝置,所述方法包括下載程序啟動后,若查詢到待下載文件的下載記錄信息,則根據(jù)查詢到的信息獲取下載進(jìn)度表;根據(jù)下載進(jìn)度表中的記錄,啟動下載線程進(jìn)行斷點(diǎn)續(xù)傳將下載的文件數(shù)據(jù)暫存于緩存中;并在緩存中的文件數(shù)據(jù)的大小達(dá)到設(shè)定字節(jié)數(shù)時,將緩存中的據(jù)寫入到下載數(shù)據(jù)存儲單元后,更新下載進(jìn)度表中的下載線程的當(dāng)前下載位置的偏移量。由于創(chuàng)建了下載數(shù)據(jù)存儲單元對下載數(shù)據(jù)進(jìn)行及時保存,創(chuàng)建了下載進(jìn)度表及時進(jìn)行下載進(jìn)度的更新;從而可以根據(jù)之前記錄的待下載文件的下載記錄信息,獲取到下載數(shù)據(jù)存儲單元以及下載進(jìn)度表,從斷點(diǎn)保存的數(shù)據(jù)進(jìn)行續(xù)傳下載。
文檔編號H04L29/08GK103227812SQ20131008951
公開日2013年7月31日 申請日期2013年3月19日 優(yōu)先權(quán)日2013年3月19日
發(fā)明者周巖濱, 覃淑蓉 申請人:青島海信寬帶多媒體技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
兴和县| 平江县| 任丘市| 盐城市| 定陶县| 仁怀市| 承德市| 祁连县| 尼勒克县| 深圳市| 孝义市| 清远市| 天全县| 喀喇沁旗| 新野县| 凌源市| 沈丘县| 全南县| 阜平县| 东城区| 新野县| 乌兰察布市| 连州市| 郎溪县| 大名县| 海伦市| 渝中区| 凭祥市| 武强县| 乳山市| 平罗县| 苏尼特左旗| 恭城| 延津县| 孟津县| 高平市| 长春市| 湾仔区| 安义县| 五寨县| 岳普湖县|