用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法及系統(tǒng),其方法包括:步驟1,用戶輸入待處理對(duì)象的文件信息,倒序掃描與該文件信息匹配的所有對(duì)象頭頁(yè)面;步驟2,根據(jù)所述步驟1匹配的對(duì)象頭信息判斷并相應(yīng)操作所述待處理對(duì)象;步驟3,調(diào)用文件系統(tǒng)的寫(xiě)操作函數(shù),根據(jù)所述步驟2存儲(chǔ)的塊序號(hào)和頁(yè)面物理地址將所述待處理對(duì)象的目標(biāo)頁(yè)面進(jìn)行全零覆寫(xiě);步驟4,檢查所述待處理對(duì)象的目標(biāo)塊內(nèi)是否有存在其它文件的有效頁(yè)面,并進(jìn)行相應(yīng)處理;步驟5,觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,根據(jù)塊序號(hào)將目標(biāo)塊回收,并將該目標(biāo)塊插入到空閑塊鏈表中,作為可分配的存儲(chǔ)空間等待再利用。本發(fā)明能回收對(duì)象文件的存儲(chǔ)空間,提高存儲(chǔ)空間利用率。
【專利說(shuō)明】用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及Android智能【技術(shù)領(lǐng)域】,尤其涉及一種用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著新一代Android智能平臺(tái)的廣泛應(yīng)用,有越來(lái)越多的用戶信息和數(shù)據(jù)存儲(chǔ)在Android智能終端的Flash閃存上,比如通訊錄、短信、圖片、備忘錄等數(shù)據(jù),其中包含的敏感性信息、重要數(shù)據(jù),用戶通常會(huì)使用普通的刪除操作將其刪除防止數(shù)據(jù)泄露。但是普通的刪除操作并沒(méi)有將數(shù)據(jù)從存儲(chǔ)介質(zhì)上刪除,只是文件系統(tǒng)修改對(duì)象頁(yè)面的標(biāo)識(shí)為空閑狀態(tài)或刪除文件的索引,不把被刪除文件呈現(xiàn)給操作系統(tǒng)和用戶;普通的格式化也不會(huì)影響到存儲(chǔ)介質(zhì)上的數(shù)據(jù),僅僅是為操作系統(tǒng)創(chuàng)建一個(gè)空的文件索引,讓操作系統(tǒng)認(rèn)為存儲(chǔ)介質(zhì)上沒(méi)有文件。這種情況下,是可以通過(guò)邏輯方法或物理方法將已刪除數(shù)據(jù)恢復(fù)的,并不能保證用戶數(shù)據(jù)不被泄露。閃存寫(xiě)操作的最小單位是頁(yè),但擦除操作以塊作為最小單位,所以存儲(chǔ)介質(zhì)物理上的釋放要等到一個(gè)塊中所有頁(yè)全部變成空閑狀態(tài),文件系統(tǒng)才能進(jìn)行垃圾回收將該塊擦除。
[0003]Android采用NAND閃存做為內(nèi)核存儲(chǔ)器,YAFFS2是專為NAND閃存設(shè)計(jì)的日志型文件系統(tǒng),具有一些不同于其他文件系統(tǒng)的特性。目前閃存數(shù)據(jù)邏輯銷毀技術(shù)主要有零覆寫(xiě)技術(shù),塊刪除技術(shù),和加密技術(shù),但是在搜索待刪除頁(yè)時(shí)都沒(méi)有結(jié)合文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和存儲(chǔ)機(jī)制來(lái)考慮時(shí)間性能。
【發(fā)明內(nèi)容】
[0004]為解決上述不足,本發(fā)明提供一種以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法及系統(tǒng)。
[0005]本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法,其包括:
[0006]步驟1,用戶輸入待處理對(duì)象的文件信息,倒序掃描與該文件信息匹配的所有對(duì)象頭頁(yè)面;
[0007]步驟2,根據(jù)所述步驟I匹配的對(duì)象頭信息判斷所述待處理對(duì)象:
[0008]若所述待處理對(duì)象的類型為文件夾,則根據(jù)Parent_0bjectid倒序掃描處該文件夾下包含的所有數(shù)據(jù)頁(yè)面,該所有數(shù)據(jù)頁(yè)面是與所述步驟I中對(duì)象頭頁(yè)面的ID號(hào)相同的頁(yè)面;獲取所述所有數(shù)據(jù)頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adress[η]內(nèi);
[0009]若所述待處理對(duì)象的類型為普通文件,則尋找與所述步驟I中對(duì)象頭頁(yè)面具有相同Objectid的頁(yè)面,該Objectid是用于標(biāo)識(shí)頁(yè)面所屬的對(duì)象文件的唯一 ID號(hào);獲取所述頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adreSS[n]內(nèi);
[0010]步驟3,調(diào)用文件系統(tǒng)的寫(xiě)操作函數(shù),根據(jù)所述步驟2存儲(chǔ)的塊序號(hào)和頁(yè)面物理地址將所述待處理對(duì)象的目標(biāo)頁(yè)面進(jìn)行全零覆寫(xiě);[0011]步驟4,檢查經(jīng)步驟3處理后的所述待處理對(duì)象的目標(biāo)塊內(nèi)是否有存在其它文件的有效頁(yè)面:
[0012]若存在有效頁(yè)面,則將該有效頁(yè)面轉(zhuǎn)儲(chǔ)到其他未滿的塊上;
[0013]若不存在有效頁(yè)面,則直接執(zhí)行步驟5 ;
[0014]步驟5,觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,根據(jù)存儲(chǔ)的塊序號(hào)將目標(biāo)塊回收,并將該目標(biāo)塊插入到空閑塊鏈表中,作為可分配的存儲(chǔ)空間等待再利用。
[0015]本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除系統(tǒng),其包括:
[0016]輸入匹配模塊,用戶輸入待處理對(duì)象的文件信息,倒序掃描與該文件信息匹配的所有對(duì)象頭頁(yè)面;
[0017]第一處理模塊,根據(jù)所述輸入匹配模塊匹配的對(duì)象頭信息判斷所述待處理對(duì)象:
[0018]若所述待處理對(duì)象的類型為文件夾,則根據(jù)Parent_Objectid倒序掃描處該文件夾下包含的所有數(shù)據(jù)頁(yè)面,該所有數(shù)據(jù)頁(yè)面是與所述第一處理模塊中對(duì)象頭頁(yè)面的ID號(hào)相同的頁(yè)面;獲取所述所有數(shù)據(jù)頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block [m]和 adress [η]內(nèi);
[0019]若所述待處理對(duì)象的類型為普通文件,則尋找與所述第一處理模塊中對(duì)象頭頁(yè)面具有相同Objectid的頁(yè)面,該Objectid是用于標(biāo)識(shí)頁(yè)面所屬的對(duì)象文件的唯一 ID號(hào);獲取所述頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adreSS[n]內(nèi);
[0020]覆寫(xiě)模塊,調(diào)用文件系統(tǒng)的寫(xiě)操作函數(shù),根據(jù)所述第一處理模塊存儲(chǔ)的塊序號(hào)和頁(yè)面物理地址將所述待處理對(duì)象的目標(biāo)頁(yè)面進(jìn)行全零覆寫(xiě);
[0021]第二處理模塊,檢查經(jīng)所述覆寫(xiě)模塊處理后的所述待處理對(duì)象的目標(biāo)塊內(nèi)是否有存在其它文件的有效頁(yè)面:
[0022]若存在有效頁(yè)面,則將該有效頁(yè)面轉(zhuǎn)儲(chǔ)到其他未滿的塊上;
[0023]若不存在有效頁(yè)面,則直接執(zhí)行回收模塊;
[0024]回收模塊,觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,根據(jù)存儲(chǔ)的塊序號(hào)將目標(biāo)塊回收,并將該目標(biāo)塊插入到空閑塊鏈表中,作為可分配的存儲(chǔ)空間等待再利用。
[0025]本發(fā)明的有益效果在于:
[0026]本發(fā)明能回收對(duì)象文件的存儲(chǔ)空間,提高存儲(chǔ)空間利用率。
【專利附圖】
【附圖說(shuō)明】
[0027]圖1為本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法及系統(tǒng)中對(duì)數(shù)據(jù)頁(yè)面的操作示意圖;
[0028]圖2為本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法流程圖;
[0029]圖3為本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法及系統(tǒng)中文件夾與普通文件的關(guān)系示意圖;
[0030]圖4為本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除系統(tǒng)示意圖。
【具體實(shí)施方式】
[0031]圖2為本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法流程圖。如圖2所示,本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法,其包括:[0032]步驟1,用戶輸入待處理對(duì)象的文件信息,倒序掃描與該文件信息匹配的所有對(duì)象頭頁(yè)面;
[0033]步驟2,根據(jù)所述步驟I匹配的對(duì)象頭信息判斷所述待處理對(duì)象:
[0034]若所述待處理對(duì)象的類型為文件夾,則根據(jù)Parent_Objectid倒序掃描處該文件夾下包含的所有數(shù)據(jù)頁(yè)面,該所有數(shù)據(jù)頁(yè)面是與所述步驟I中對(duì)象頭頁(yè)面的ID號(hào)相同的頁(yè)面;獲取所述所有數(shù)據(jù)頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adress[η]內(nèi);
[0035]若所述待處理對(duì)象的類型為普通文件,則尋找與所述步驟I中對(duì)象頭頁(yè)面具有相同Objectid的頁(yè)面,該Ob jectid用于標(biāo)識(shí)頁(yè)面所屬的對(duì)象文件的唯一 ID號(hào);獲取該頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adress [η]內(nèi);
[0036]步驟3,調(diào)用文件系統(tǒng)的寫(xiě)操作函數(shù),根據(jù)所述步驟2存儲(chǔ)的塊序號(hào)和頁(yè)面物理地址將所述待處理對(duì)象的目標(biāo)頁(yè)面進(jìn)行全零覆寫(xiě);
[0037]步驟4,檢查經(jīng)所述步驟3覆寫(xiě)后的所述待處理對(duì)象的目標(biāo)塊內(nèi)是否有存在其它文件的有效頁(yè)面:
[0038]若存在有效頁(yè)面,則將該有效頁(yè)面轉(zhuǎn)儲(chǔ)到其他未滿的塊上;
[0039]若不存在有效頁(yè)面,則直接執(zhí)行步驟5 ;
[0040]步驟5,觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,根據(jù)塊序號(hào)將目標(biāo)塊回收,并將該目標(biāo)塊插入到空閑塊鏈表中,作為可分配的存儲(chǔ)空間等待再利用。
[0041 ] 圖4為本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除系統(tǒng)示意圖。如圖4所示,本發(fā)明的以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除系統(tǒng),其包括:
[0042]輸入匹配模塊101,用戶輸入待處理對(duì)象的文件信息,倒序掃描與該文件信息匹配的所有對(duì)象頭頁(yè)面;
[0043]第一處理模塊102,根據(jù)所述輸入匹配模塊101匹配的對(duì)象頭信息判斷所述待處
理對(duì)象:
[0044]若所述待處理對(duì)象的類型為文件夾,則根據(jù)Parent_Objectid倒序掃描處該文件夾下包含的所有數(shù)據(jù)頁(yè)面,該所有數(shù)據(jù)頁(yè)面是與所述輸入匹配模塊101中對(duì)象頭頁(yè)面的ID號(hào)相同的頁(yè)面;獲取所述所有數(shù)據(jù)頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block [m]和 adress [η]內(nèi);
[0045]若所述待處理對(duì)象的類型為普通文件,則尋找與所述輸入匹配模塊101中對(duì)象頭頁(yè)面具有相同Objectid的頁(yè)面,該Objectid用于標(biāo)識(shí)頁(yè)面所屬的對(duì)象文件的唯一 ID號(hào);獲取該頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adreSS[n]內(nèi);
[0046]覆寫(xiě)模塊103,調(diào)用文件系統(tǒng)的寫(xiě)操作函數(shù),根據(jù)所述第一處理模塊102存儲(chǔ)的塊序號(hào)和頁(yè)面物理地址將所述待處理對(duì)象的目標(biāo)頁(yè)面進(jìn)行全零覆寫(xiě);
[0047]第二處理模塊104,檢查經(jīng)所述覆寫(xiě)模塊103處理后的所述待處理對(duì)象的目標(biāo)塊內(nèi)是否有存在其它文件的有效頁(yè)面:
[0048]若存在有效頁(yè)面,則將該有效頁(yè)面轉(zhuǎn)儲(chǔ)到其他未滿的塊上;
[0049]若不存在有效頁(yè)面,則直接執(zhí)行回收模塊105 ;
[0050]回收模塊105,觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,根據(jù)塊序號(hào)將目標(biāo)塊回收,并將該目標(biāo)塊插入到空閑塊鏈表中,作為可分配的存儲(chǔ)空間等待再利用。[0051]本發(fā)明提供了一種針對(duì)Android智能平臺(tái)廣泛采用的YAFFS2文件系統(tǒng),從用戶角度出發(fā),清除NAND閃存數(shù)據(jù)的方法,以保護(hù)用戶敏感信息和重要數(shù)據(jù)不被泄露。不同于普通的刪除操作,本方法結(jié)合YAFFS2文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)存取方法,采用倒序掃描算法來(lái)搜索用戶想要?jiǎng)h除的文件,然后調(diào)用文件系統(tǒng)的寫(xiě)操作和塊擦除操作,將數(shù)據(jù)從閃存上清除,不能通過(guò)邏輯方法進(jìn)行恢復(fù)。可以清除的文件不僅包括簡(jiǎn)單的二進(jìn)制流文件,還包括結(jié)構(gòu)化比較強(qiáng)的JPEG文件和pdf文件等,能夠保證各種類型的用戶數(shù)據(jù)的安全性。
[0052]以用戶為中心的Android數(shù)據(jù)清除方法,主要包括用戶接口、待刪除頁(yè)搜索、數(shù)據(jù)清除、空間回收四個(gè)過(guò)程。第一步,用戶輸入要?jiǎng)h除文件的信息,文件名、文件類型。第二步,搜索待刪除頁(yè)。具體搜索方法為:采用倒序掃描算法,從最大塊序號(hào)開(kāi)始,根據(jù)用戶輸入的文件名先掃描對(duì)象頭頁(yè)面。由于NAND閃存異地更新的特性,經(jīng)過(guò)修改操作的文件會(huì)有不同歷史版本存在于閃存上,所以搜索到的文件頭頁(yè)面可能為一個(gè)或多個(gè)。根據(jù)對(duì)象頭頁(yè)面中的ObjectID搜索到文件的所有數(shù)據(jù)頁(yè)面。
[0053]NAND閃存的位操作只能從I變?yōu)?,第三步則是對(duì)搜索到的數(shù)據(jù)頁(yè)面執(zhí)行全零覆寫(xiě)。執(zhí)行全零覆寫(xiě)之后,如果要?jiǎng)h除的數(shù)據(jù)頁(yè)面所在的塊中存儲(chǔ)了其他文件的有效頁(yè)面,則需要將有效頁(yè)轉(zhuǎn)儲(chǔ)到其它塊,再對(duì)目標(biāo)塊執(zhí)行塊擦除操作,如圖1所示。在執(zhí)行擦除操作之后,觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,將目標(biāo)塊回收,插入空閑塊鏈表中,等待再次做為存儲(chǔ)空間利用并分配一個(gè)新的塊序號(hào)。
[0054]Android系統(tǒng)中不僅存儲(chǔ)著大量的用戶數(shù)據(jù),還包括系統(tǒng)本身、應(yīng)用程序運(yùn)行產(chǎn)生的數(shù)據(jù)等,要通過(guò)掃描整個(gè)NAND閃存的方法搜索到待刪除頁(yè),時(shí)間開(kāi)銷比較大。
[0055]本實(shí)施方式是以采用NAND閃存作為存儲(chǔ)介質(zhì),加載YAFFS2文件系統(tǒng)的Android智能手機(jī)為例,提供一種以用戶為中心的用戶數(shù)據(jù)清除方法,并能回收對(duì)象文件的存儲(chǔ)空間,提聞存儲(chǔ)空間利用率。
[0056]在YAFFS2文件系統(tǒng)中有兩種不同頁(yè)面:數(shù)據(jù)頁(yè)面(Data chunk)與對(duì)象頭頁(yè)面(Object header),數(shù)據(jù)頁(yè)面用來(lái)存儲(chǔ)對(duì)象的數(shù)據(jù)內(nèi)容,對(duì)象頭頁(yè)面則用于存儲(chǔ)對(duì)象的類型、文件大小、對(duì)象名、對(duì)象的創(chuàng)建、修改時(shí)間等。對(duì)象頭對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)y a f f s _ObjectHeader包括成員有(僅列舉出用于解釋本發(fā)明的成員):
[0057]Yaffs_0bjectType type; //說(shuō)明對(duì)象的類型(文件、目錄等)
[0058]int parentObjectid; //父目錄的 ID 號(hào)
[0059]YCHAR name [YAFFS_MAX_NAME_lenth+l] ; //對(duì)象名
[0060]可根據(jù)對(duì)象頭中的type字段判斷當(dāng)前所要處理的對(duì)象為普通文件還是文件夾。如圖3所示,圖3為文件夾與其子文件之間的關(guān)系。
[0061]待刪除頁(yè)搜索是從具有最大塊序號(hào)的數(shù)據(jù)塊開(kāi)始依次掃描,對(duì)每一個(gè)塊從該塊最后一個(gè)頁(yè)面開(kāi)始遍歷至第一個(gè)頁(yè)面,具體掃描算法步驟如下:
[0062](I)掃描 BlockN;
[0063](2)掃描當(dāng)前塊中pageM ;如果PageM是當(dāng)前block中第一個(gè)頁(yè)面,則轉(zhuǎn)到(4);
[0064](3) M=M-1,轉(zhuǎn)到(2);
[0065](4)如果當(dāng)前block塊是當(dāng)前塊中最小塊,則掃描結(jié)束;
[0066](5) N=N-1,轉(zhuǎn)到(I)。
[0067]用戶輸入文件名,倒序掃描與該文件名匹配的所有對(duì)象頭頁(yè)面,若根據(jù)對(duì)象頭信息判斷待處理對(duì)象為普通文件,則尋找與對(duì)象頭頁(yè)面具有相同Objectid的頁(yè)面并獲取它們的塊序號(hào)和Chunkid,其中Objectid用于標(biāo)識(shí)頁(yè)面所屬的對(duì)象文件的唯一 ID號(hào)。NAND閃存陣列分為一系列的區(qū)塊,每個(gè)塊包含32或64或128個(gè)頁(yè),每一個(gè)頁(yè)均包含2048kb的數(shù)據(jù)區(qū)和64kb的空閑區(qū)。初始化int型數(shù)組block[m]和adress[n]分別用來(lái)存放獲取到的塊序號(hào)和頁(yè)面的物理地址。若對(duì)象類型為文件夾,倒序掃描尋找所有Parent_Objectid與第一步中對(duì)象頭頁(yè)面的ID號(hào)相同的頁(yè)面,同樣獲取它們的塊序號(hào)和頁(yè)面物理地址,分別存放到數(shù)組block[m]和adress [η],此時(shí)遍歷所得頁(yè)面為當(dāng)前待處理文件夾下的所有文件。YAFFS2文件系統(tǒng)在存儲(chǔ)數(shù)據(jù)時(shí)嚴(yán)格按照順序分配塊序號(hào),每當(dāng)新分配一個(gè)塊時(shí),塊序號(hào)加1,該塊內(nèi)所有頁(yè)面共享這一塊序號(hào)。所以采用以上倒序遍歷方法,相當(dāng)于是完全按照頁(yè)面的分配時(shí)間倒序遍歷的,因此節(jié)約掃描時(shí)間。
[0068]調(diào)用文件系統(tǒng)的寫(xiě)操作函數(shù),根據(jù)前面存儲(chǔ)的塊序號(hào)和頁(yè)面物理地址將目標(biāo)頁(yè)面進(jìn)行全零覆寫(xiě)。因?yàn)閅AFFS2的擦除操作以塊為最小單位執(zhí)行,所以在進(jìn)行擦除操作之前,應(yīng)先檢查該塊內(nèi)是否有屬于其它文件的有效頁(yè)面。若有,則把這些頁(yè)面轉(zhuǎn)儲(chǔ)到閃存其他未滿的塊上。然后就可以觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,根據(jù)塊序號(hào)將目標(biāo)塊回收,插入到空閑塊鏈表中,作為可分配的存儲(chǔ)空間等待再利用。
[0069]惟以上所述者,僅為本發(fā)明的較佳實(shí)施例而已,舉凡熟悉此項(xiàng)技藝的專業(yè)人士。在了解本發(fā)明的技術(shù)手段之后,自然能依據(jù)實(shí)際的需要,在本發(fā)明的教導(dǎo)下加以變化。因此凡依本發(fā)明申請(qǐng)專利范圍所作的同等變化與修飾,都應(yīng)仍屬本發(fā)明專利涵蓋的范圍內(nèi)。
【權(quán)利要求】
1.一種以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除方法,其特征在于,包括: 步驟1,用戶輸入待處理對(duì)象的文件信息,倒序掃描與該文件信息匹配的所有對(duì)象頭頁(yè)面; 步驟2,根據(jù)所述步驟I匹配的對(duì)象頭信息判斷所述待處理對(duì)象: 若所述待處理對(duì)象的類型為文件夾,則根據(jù)Parent_Objectid倒序掃描該文件夾下包含的所有數(shù)據(jù)頁(yè)面,該所有數(shù)據(jù)頁(yè)面是與所述步驟I中對(duì)象頭頁(yè)面的ID號(hào)相同的頁(yè)面;獲取所述所有數(shù)據(jù)頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adress[η]內(nèi); 若所述待處理對(duì)象的類型為普通文件,則尋找與所述步驟I中對(duì)象頭頁(yè)面具有相同Objectid的頁(yè)面,該Objectid是用于標(biāo)識(shí)頁(yè)面所屬的對(duì)象文件的唯一 ID號(hào);獲取所述頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adress [η]內(nèi); 步驟3,調(diào)用文件系統(tǒng)的寫(xiě)操作函數(shù),根據(jù)所述步驟2存儲(chǔ)的塊序號(hào)和頁(yè)面物理地址將所述待處理對(duì)象的目標(biāo)頁(yè)面進(jìn)行全零覆寫(xiě); 步驟4,檢查所述待處理對(duì)象的目標(biāo)塊內(nèi)是否有存在其它文件的有效頁(yè)面: 若存在有效頁(yè)面,則將該有效頁(yè)面轉(zhuǎn)儲(chǔ)到其他未滿的塊上; 若不存在有效頁(yè)面,則直接執(zhí)行步驟5 ; 步驟5,觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,根據(jù)存儲(chǔ)的塊序號(hào)將目標(biāo)塊回收,并將該目標(biāo)塊插入到空閑塊鏈表中,作為可分配的存儲(chǔ)空間等待再利用。
2.一種以用戶為中心的Android系統(tǒng)數(shù)據(jù)清除系統(tǒng),其特征在于,包括: 輸入匹配模塊,用戶輸入待處理對(duì)象的文件信息,倒序掃描與該文件信息匹配的所有對(duì)象頭頁(yè)面; 第一處理模塊,根據(jù)所述輸入匹配模塊匹配的對(duì)象頭信息判斷所述待處理對(duì)象: 若所述待處理對(duì)象的類型為文件夾,則根據(jù)Parent_Objectid倒序掃描處該文件夾下包含的所有數(shù)據(jù)頁(yè)面,該所有數(shù)據(jù)頁(yè)面是與所述步驟I中對(duì)象頭頁(yè)面的ID號(hào)相同的頁(yè)面;獲取所述所有數(shù)據(jù)頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adress[η]內(nèi); 若所述待處理對(duì)象的類型為普通文件,則尋找與所述步驟I中對(duì)象頭頁(yè)面具有相同Objectid的頁(yè)面,該Objectid是用于標(biāo)識(shí)頁(yè)面所屬的對(duì)象文件的唯一 ID號(hào);獲取所述頁(yè)面的塊序號(hào)和頁(yè)面物理地址,并將其分別存放到數(shù)組block[m]和adress [η]內(nèi); 覆寫(xiě)模塊,調(diào)用文件系統(tǒng)的寫(xiě)操作函數(shù),根據(jù)所述第一處理模塊存儲(chǔ)的塊序號(hào)和頁(yè)面物理地址將所述待處理對(duì)象的目標(biāo)頁(yè)面進(jìn)行全零覆寫(xiě); 第二處理模塊,檢查所述待處理對(duì)象的目標(biāo)塊內(nèi)是否有存在其它文件的有效頁(yè)面: 若存在有效頁(yè)面,則將該有效頁(yè)面轉(zhuǎn)儲(chǔ)到其他未滿的塊上; 若不存在有效頁(yè)面,則直接執(zhí)行回收模塊; 回收模塊,觸發(fā)文件系統(tǒng)的垃圾回收機(jī)制,根據(jù)存儲(chǔ)的塊序號(hào)將目標(biāo)塊回收,并將該目標(biāo)塊插入到空閑塊鏈表中,作為可分配的存儲(chǔ)空間等待再利用。
【文檔編號(hào)】G06F17/30GK103853850SQ201410123655
【公開(kāi)日】2014年6月11日 申請(qǐng)日期:2014年3月28日 優(yōu)先權(quán)日:2014年3月28日
【發(fā)明者】何涇沙, 黃娜, 張玉強(qiáng), 趙斌, 劉公政, 萬(wàn)雪姣 申請(qǐng)人:北京工業(yè)大學(xué)