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

對(duì)應(yīng)用文件進(jìn)行處理的方法及裝置與流程

文檔序號(hào):11156824閱讀:917來源:國(guó)知局
對(duì)應(yīng)用文件進(jìn)行處理的方法及裝置與制造工藝

本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種對(duì)應(yīng)用文件進(jìn)行處理的方法及裝置。



背景技術(shù):

在移動(dòng)終端的應(yīng)用程序(或稱為:應(yīng)用、軟件)使用中,為了能夠提高效率,經(jīng)常會(huì)使用緩存技術(shù)。隨著應(yīng)用程序的不斷增多,使用緩存的文件數(shù)量也會(huì)越來越多,這樣就會(huì)導(dǎo)致應(yīng)用體積越來越龐大,造成大量占用系統(tǒng)空間資源。

同時(shí),在應(yīng)用的配置文件出錯(cuò)的情況下,有可能會(huì)導(dǎo)致應(yīng)用無法正常使用。例如,之前緩存了網(wǎng)頁的訪問地址A,但是在后期的應(yīng)用升級(jí)過程中網(wǎng)頁訪問地址變更為B,此時(shí)緩存的配置文件并沒有被有效的清理掉,就很有可能導(dǎo)致頁面無法正常加載的問題。



技術(shù)實(shí)現(xiàn)要素:

鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的清理應(yīng)用無效文件的方法及裝置。

根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供一種對(duì)應(yīng)用文件進(jìn)行處理的方法,包括:終端接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用文件處理命令;所述終端解析所述應(yīng)用文件處理命令,獲知待處理文件標(biāo)識(shí)以及處理操作類型;所述終端根據(jù)處理操作類型,執(zhí)行對(duì)待處理文件的處理操作。

優(yōu)選的,還包括:終端定期向應(yīng)用服務(wù)器發(fā)送心跳包,所述心跳包攜帶終端IP地址、終端設(shè)備信息;應(yīng)用服務(wù)器接收到所述心跳包,確定與終端保持通信,從而可向終端發(fā)送所述應(yīng)用文件處理命令。

優(yōu)選的,所述終端接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用文件處理命令,包括:所述終端接收應(yīng)用服務(wù)器發(fā)送的基于HTTP協(xié)議JSON格式的應(yīng)用文件處理命令;所述終端解析所述應(yīng)用文件處理命令,包括:所述終端通過FASTJSON方式解析所述應(yīng)用文件處理命令。

優(yōu)選的,還包括:在終端本地設(shè)置應(yīng)用文件清理定時(shí)器;所述終端根據(jù)應(yīng)用文件清理定時(shí)器,定時(shí)讀取本地緩存的應(yīng)用文件,并判斷所述緩存的應(yīng)用文件所占的存儲(chǔ)空間大小是否大于預(yù)置的存儲(chǔ)空間清理閾值,若是,刪除所述緩存的應(yīng)用文件。

優(yōu)選的,所述定時(shí)讀取緩存的應(yīng)用文件,包括:使用Java的JDK提供的文件讀取API,通過File類定時(shí)讀取本地緩存的應(yīng)用文件。

根據(jù)本發(fā)明的另一個(gè)實(shí)施例,提供一種對(duì)應(yīng)用文件進(jìn)行處理的裝置,包括:處理命令接收單元,用于接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用文件處理命令;處理命令解析單元,用于解析所述應(yīng)用文件處理命令,獲知待處理文件標(biāo)識(shí)以及處理操作類型;處理操作執(zhí)行單元,用于根據(jù)處理操作類型,執(zhí)行對(duì)待處理文件的處理操作。

優(yōu)選的,還包括:心跳包發(fā)送單元,用于定期向應(yīng)用服務(wù)器發(fā)送心跳包,所述心跳包攜帶終端IP地址、終端設(shè)備信息。

優(yōu)選的,所述處理命令接收單元具體用于:所述終端接收應(yīng)用服務(wù)器發(fā)送的基于HTTP協(xié)議JSON格式的應(yīng)用文件處理命令;所述處理命令解析單元具體用于:通過FASTJSON方式解析所述應(yīng)用文件處理命令。

優(yōu)選的,還包括:本地定時(shí)清理單元,用于在終端本地設(shè)置應(yīng)用文件清理定時(shí)器,以及,根據(jù)應(yīng)用文件清理定時(shí)器,定時(shí)讀取本地緩存的應(yīng)用文件,并判斷所述緩存的應(yīng)用文件所占的存儲(chǔ)空間大小是否大于預(yù)置的存儲(chǔ)空間清理閾值,若是,刪除所述緩存的應(yīng)用文件。

優(yōu)選的,所述本地定時(shí)清理單元具體用于:使用Java的JDK提供的文件讀取API,通過File類定時(shí)讀取本地緩存的應(yīng)用文件。

可見,通過本發(fā)明提供的應(yīng)用文件處理方法,通過服務(wù)器下發(fā)應(yīng)用文件處理命令的方式,實(shí)現(xiàn)垃圾動(dòng)態(tài)清理的目的,例如,針對(duì)應(yīng)用程序的配置文件進(jìn)行更新或升級(jí)過程中,對(duì)于涉及版本或升級(jí)的過期文件進(jìn)行下發(fā)刪除命令,從而減少這些無效文件對(duì)終端緩存空間的占用,減輕對(duì)磁盤占用的開銷,也能夠有效的避免因?yàn)楹笃谏?jí)等問題導(dǎo)致系統(tǒng)配置失效從而導(dǎo)致軟件不可用的問題。

除了上述通過服務(wù)器下發(fā)應(yīng)用文件處理命令的方式對(duì)終端無效文件(特別是無效的配置文件)進(jìn)行處理的方式外,還可結(jié)合終端本地對(duì)無效文件(特別是無效的運(yùn)行文件)的清理方式,從而可進(jìn)一步有效的控制軟件本身的磁盤占用。

上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

附圖說明

通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:

圖1示出了根據(jù)本發(fā)明的清理應(yīng)用無效文件的方法流程圖;

圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的清理應(yīng)用無效文件的方法中根據(jù)本地定時(shí)器刪除緩存文件的流程圖;

圖3示出了根據(jù)本發(fā)明的清理應(yīng)用無效文件的裝置結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

如前所述的,針對(duì)應(yīng)用文件過期或無效的情況,如果還仍然緩存這些應(yīng)用文件,會(huì)造成對(duì)終端存儲(chǔ)空間的浪費(fèi),嚴(yán)重時(shí)還會(huì)影響終端響應(yīng)速度。對(duì)此,本發(fā)明實(shí)施例提供一種對(duì)應(yīng)用文件進(jìn)行處理的方法,通過服務(wù)器控制下發(fā)處理命令,指示終端進(jìn)行應(yīng)用文件的處理。除此之外,在優(yōu)選方式中,還結(jié)合終端本地清理應(yīng)用文件的方式,及時(shí)清理掉無效應(yīng)用文件。

參見圖1,為本發(fā)明提供的一種對(duì)應(yīng)用文件進(jìn)行處理的方法。

S101:終端接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用文件處理命令。

應(yīng)用文件處理命令,是指對(duì)應(yīng)用文件進(jìn)行處理的指令,例如對(duì)文件進(jìn)行刪除等操作的指令。應(yīng)用文件,是指應(yīng)用程序的相關(guān)文件,例如,應(yīng)用程序的配置文件,應(yīng)用程序的運(yùn)行文件,等等,其中,配置文件一般是與應(yīng)用程序的版本信息、升級(jí)信息或用戶信息相關(guān)的文件,而應(yīng)用程序的運(yùn)行文件是指應(yīng)用程序在運(yùn)行過程中調(diào)用信息相關(guān)的文件。

在實(shí)際操作中,應(yīng)用服務(wù)器向終端發(fā)送應(yīng)用文件處理命令的時(shí)機(jī)不限,例如,可以定期下發(fā)應(yīng)用文件處理命令,或在技術(shù)維護(hù)人員根據(jù)需要下發(fā)應(yīng)用文件處理命令,或者在對(duì)應(yīng)用進(jìn)行版本更新或者刪除舊版本時(shí)下發(fā)應(yīng)用文件處理命令,或者終端上報(bào)某個(gè)/些應(yīng)用文件無效時(shí)下發(fā)應(yīng)用文件處理命令。該應(yīng)用文件處理命令中包括指示終端進(jìn)行處理的文件標(biāo)識(shí)(例如文件名稱)及處理操作類型。

為了確保終端接收到應(yīng)用服務(wù)器下發(fā)的應(yīng)用文件處理命令,需要維持終端與應(yīng)用服務(wù)器之間的通信連接。例如,可以通過終端定期向應(yīng)用服務(wù)器發(fā)送心跳包的方式維持二者之間的通信連接。具體的,終端定期向應(yīng)用服務(wù)器發(fā)送心跳包,心跳包攜帶終端IP地址、終端設(shè)備信息;應(yīng)用服務(wù)器接收到心跳包,確定與終端保持通信,從而可向終端發(fā)送應(yīng)用文件處理命令。

可見,應(yīng)用服務(wù)器和終端通信過程中如果希望能夠?qū)嵤┩ㄟ^服務(wù)器下方控制命令,此時(shí)需要維系一個(gè)和服務(wù)器的心跳包。心跳包主要是終端定期向服務(wù)器發(fā)送一個(gè)空的命令保證終端和服務(wù)器的連接不會(huì)因?yàn)槌瑫r(shí)而斷開。首先,因?yàn)榻K端和服務(wù)器通信中過程中,服務(wù)端如果長(zhǎng)時(shí)間沒有收到終端的消息,服務(wù)端為了釋放該終端占用的資源會(huì)斷開與終端的連接。如果服務(wù)器和終端斷開了連接,那么以后終端就無法和服務(wù)器通信,如果想要繼續(xù)通信,終端必須重新建立連接,但是建立連接的這個(gè)過程是非常耗時(shí)的,為了解決這個(gè)問題終端可以通過發(fā)送心跳包解決。其次,終端定期發(fā)送心跳包(心跳包內(nèi)容攜帶客戶端的一些基本信息,比如終端mac地址,設(shè)備相關(guān)信息,手機(jī)號(hào)等,主要目的就是和服務(wù)器進(jìn)行一次通信操作),服務(wù)器發(fā)現(xiàn)終端定期有和自己通信,服務(wù)器會(huì)認(rèn)為終端一直需要服務(wù),此時(shí)服務(wù)器不會(huì)斷開與終端的連接。另外,有了心跳包的傳輸,就能夠很好的保障終端和服務(wù)器的連接不斷開。

S102:終端解析應(yīng)用文件處理命令,獲知待處理文件標(biāo)識(shí)以及處理操作類型。

待處理文件標(biāo)識(shí)可以是文件名稱或者文件唯一標(biāo)識(shí)碼或者其他表示文件的信息,處理操作類型指示對(duì)待處理文件的處理操作方式,例如,處理操作包括刪除操作、更新操作(以新版本文件替換舊版本文件),等。

具體的,服務(wù)器基于HTPP協(xié)議向終端發(fā)送應(yīng)用文件處理命令,例如,終端接收應(yīng)用服務(wù)器發(fā)送的基于HTTP協(xié)議JSON格式的應(yīng)用文件處理命令;終端解析應(yīng)用文件處理命令的方式是:通過FASTJSON方式解析應(yīng)用文件處理命令。其中,JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它基于ECMAScript的一個(gè)子集,JSON采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。FASTJSON是Java語言編寫的JSON處理器,與JSON相比,F(xiàn)ASTJSO具有處理速度更快的優(yōu)點(diǎn)。

例如,應(yīng)用文件處理命令的結(jié)構(gòu)如下:

{

"fileName":"myConfig.xml",

"fileOperation":"delete",

}

其中:

fileName:表示需要被刪除掉文件名稱,本示例中需要被刪除掉文件的名稱是myConfig.xml。

fileOperation:是需要對(duì)這個(gè)文件進(jìn)行的操作,本操作的具體內(nèi)容是delete表示需要對(duì)這個(gè)文件進(jìn)行刪除操作。

如上面的例子,應(yīng)用文件處理命令是通過HTTP協(xié)議將JSON格式的數(shù)據(jù)傳遞過來,終端接收到服務(wù)器傳遞過來的JSON數(shù)據(jù)后,會(huì)使用通用的FASTJSON方式對(duì)該JSON格式進(jìn)行解析操作,解析出需要?jiǎng)h除的文件名稱。例如,上面示例中解析完成后的文件名稱是myConfig.xml。

S103:終端根據(jù)處理操作類型,執(zhí)行對(duì)待處理文件的處理操作。

終端解析應(yīng)用文件處理命令之后,執(zhí)行對(duì)待處理文件的處理操作。具體的,可以使用JDK提供的File類中的各種方法執(zhí)行具體的處理操作。其中,JDK是Java語言的軟件開發(fā)工具包,主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的Java應(yīng)用程序。JDK是整個(gè)Java開發(fā)的核心,它包含了Java的運(yùn)行環(huán)境,Java工具和Java基礎(chǔ)的類庫。通過調(diào)用JDK中的File類(文件類)的各種方法,可以實(shí)現(xiàn)對(duì)文件的處理操作。例如,對(duì)于刪除操作,則可以使用JDK提供的File類中的刪除方法(Delete函數(shù))對(duì)文件執(zhí)行刪除操作處理,Delete函數(shù)是file中的一個(gè)刪除函數(shù),其主要功能是將文件從磁盤上刪除掉。

通過本發(fā)明提供的應(yīng)用文件處理方法,通過服務(wù)器下發(fā)應(yīng)用文件處理命令的方式,實(shí)現(xiàn)垃圾動(dòng)態(tài)清理的目的,例如,針對(duì)應(yīng)用程序的配置文件進(jìn)行更新或升級(jí)過程中,對(duì)于涉及版本或升級(jí)的過期文件進(jìn)行下發(fā)刪除命令,從而減少這些無效文件對(duì)終端緩存空間的占用,減輕對(duì)磁盤占用的開銷,也能夠有效的避免因?yàn)楹笃谏?jí)等問題導(dǎo)致系統(tǒng)配置失效從而導(dǎo)致軟件不可用的問題。

除了上述通過服務(wù)器下發(fā)應(yīng)用文件處理命令的方式對(duì)終端無效文件(特別是無效的配置文件)進(jìn)行處理的方式外,還可結(jié)合終端本地對(duì)無效文件(特別是無效的運(yùn)行文件)的清理方式,從而可進(jìn)一步有效的控制軟件本身的磁盤占用。

參見圖2,出了根據(jù)本發(fā)明一個(gè)實(shí)施例的清理應(yīng)用無效文件的方法中根據(jù)本地定時(shí)器刪除緩存文件的流程圖,包括如下步驟:

S201:在終端本地設(shè)置應(yīng)用文件清理定時(shí)器;

S202:根據(jù)應(yīng)用文件清理定時(shí)器,定時(shí)讀取緩存的應(yīng)用文件;

S203:確定緩存的應(yīng)用文件所占的存儲(chǔ)空間大小大于預(yù)置的存儲(chǔ)空間清理閾值;

S204:刪除緩存的應(yīng)用文件。

下面以Android系統(tǒng)的終端為例,針對(duì)上述四個(gè)步驟進(jìn)一步詳細(xì)介紹。

一、關(guān)于步驟S201“設(shè)置應(yīng)用文件清理定時(shí)器”

本地定時(shí)器配置:

可以采用Android提供的一個(gè)專用定時(shí)器AlarmManager,在系統(tǒng)休眠狀態(tài)下,如果定時(shí)器超時(shí)了,Android會(huì)自動(dòng)喚醒系統(tǒng)來觸發(fā)定時(shí)任務(wù)。AlarmManager具有喚醒CPU的功能,可以保證每次需要執(zhí)行特定任務(wù)時(shí)CPU都能正常工作,或者說當(dāng)CPU處于休眠時(shí)注冊(cè)的鬧鐘會(huì)被保留(可以喚醒CPU)。

本發(fā)明實(shí)施例子中以通過AlarmManger來設(shè)定定時(shí)器為例子。

AlarmManager的使用分為如下兩個(gè)步驟:

(1)獲取定時(shí)器AlarmManager

AlarmManager是Android系統(tǒng)提供的一個(gè)定時(shí)服務(wù),需要使用定時(shí)服務(wù)的時(shí)候首先得獲取到Android系統(tǒng)提供的這個(gè)服務(wù)。具體獲取方法如下所示:

AlarmManager alarmManager=

(AlarmManager)getSystemService(ALARM_SERVICE);

直接調(diào)用getSystemService這個(gè)方法,就能夠獲取到定時(shí)器AlarmManager的實(shí)例。其中g(shù)etSystemService是Android系統(tǒng)提供的一個(gè)專門用于獲取系統(tǒng)服務(wù)的接口。

(2)設(shè)置重復(fù)定時(shí)器

AlarmManager中有一個(gè)專門用于設(shè)置重復(fù)定時(shí)器的函數(shù)setRepeating,這個(gè)函數(shù)的主要功能是設(shè)置定時(shí)任務(wù),這個(gè)定時(shí)任務(wù)一旦到達(dá)后,系統(tǒng)會(huì)重新開啟新的定時(shí)任務(wù),新的定時(shí)時(shí)間和老的定時(shí)時(shí)間相同。

這個(gè)函數(shù)的使用如下所示:

setRepeating(int type,long startTime,long intervalTime,PendingIntent pi):

本發(fā)明實(shí)施例子的例子中,因?yàn)橐ㄆ趯?duì)無效文件進(jìn)行清理處理,所以優(yōu)選使用setRepeating定時(shí)器來設(shè)定定時(shí)器的。setRepeating函數(shù)設(shè)置的是一個(gè)周期性的定時(shí)器,周期性的定時(shí)器能夠確保任務(wù)被不斷的定時(shí)執(zhí)行。

二、關(guān)于步驟202“根據(jù)應(yīng)用文件清理定時(shí)器,定時(shí)讀取緩存的應(yīng)用文件”

例如,可以使用Java的JDK提供的文件讀取API,通過File類定時(shí)讀取緩存的應(yīng)用文件。具體的,讀取文件使用的Java的JDK提供的一套文件讀取的API,使用File類來對(duì)文件進(jìn)行讀取。File類讀取文件的方式如下:File(文件路徑),將文件的路徑傳遞到File的構(gòu)造函數(shù)中,這樣系統(tǒng)就會(huì)返回該文件的實(shí)例file。后續(xù)可以通過文件實(shí)例file對(duì)文件進(jìn)行信息的獲取或者文件的相關(guān)操作。

三、關(guān)于步驟203“判斷緩存的應(yīng)用文件所占的存儲(chǔ)空間大小是否大于預(yù)置的存儲(chǔ)空間清理閾值”

仍以上面“Java的JDK提供的文件讀取API”的方式,在讀取到文件的文件實(shí)例之后,可以調(diào)用其中的length方法來獲取文件的大小。其中l(wèi)ength方法這個(gè)函數(shù)的主要功能是返回當(dāng)前文件的大小信息。由此,就可以通過length函數(shù)獲取到了當(dāng)前文件的大小了。

預(yù)先需要設(shè)置一個(gè)存儲(chǔ)空間清理閾值(文件閾值),是為了將大文件進(jìn)行刪除,如果緩存的文件比較小,此時(shí)可以認(rèn)為沒有必要對(duì)其進(jìn)行刪除,因?yàn)樾【彺嫖募?duì)系統(tǒng)磁盤的開銷比較小,影響可以忽略不計(jì)。如果文件過大就會(huì)對(duì)系統(tǒng)產(chǎn)生一定的影響了。例如,本例子中閾值設(shè)置為50M,在實(shí)際使用過程中該值可以根據(jù)具體需求來進(jìn)行設(shè)置大小,將讀取到文件的大小和閾值50M進(jìn)行大小對(duì)比。

四、關(guān)于步驟S204“刪除緩存的應(yīng)用文件”

仍如上面的例子,如果文件大小比閾值50M大,此時(shí)對(duì)文件進(jìn)行刪除操作。刪除文件的方法是通過調(diào)用file中的delete函數(shù)來對(duì)文件進(jìn)行刪除,Delete函數(shù)是file中的一個(gè)刪除函數(shù),其主要功能是將文件從磁盤上刪除掉。如果緩存文件沒有超過閾值大小,此時(shí)不做任何操作,即對(duì)于小文件不會(huì)對(duì)其進(jìn)行刪除操作。

與上述方法實(shí)施例相對(duì)應(yīng),本發(fā)明還提供一種對(duì)應(yīng)用文件進(jìn)行處理的裝置。參見圖3,示出了本發(fā)明對(duì)應(yīng)用文件進(jìn)行處理的裝置結(jié)構(gòu)示意圖,該裝置包括:

處理命令接收單元301,用于接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用文件處理命令;

處理命令解析單元302,用于解析所述應(yīng)用文件處理命令,獲知待處理文件標(biāo)識(shí)以及處理操作類型;

處理操作執(zhí)行單元303,用于根據(jù)處理操作類型,執(zhí)行對(duì)待處理文件的處理操作。

待處理文件標(biāo)識(shí)可以是文件名稱或者文件唯一標(biāo)識(shí)碼或者其他表示文件的信息,處理操作類型指示對(duì)待處理文件的處理操作方式,例如,處理操作包括刪除操作、更新操作(以新版本文件替換舊版本文件),等。

在實(shí)際操作中,應(yīng)用服務(wù)器向終端發(fā)送應(yīng)用文件處理命令的時(shí)機(jī)不限,例如,可以定期下發(fā)應(yīng)用文件處理命令,或在技術(shù)維護(hù)人員根據(jù)需要下發(fā)應(yīng)用文件處理命令,或者在對(duì)應(yīng)用進(jìn)行版本更新或者刪除舊版本時(shí)下發(fā)應(yīng)用文件處理命令,或者終端上報(bào)某個(gè)/些應(yīng)用文件無效時(shí)下發(fā)應(yīng)用文件處理命令。該應(yīng)用文件處理命令中包括指示終端進(jìn)行處理的文件名稱及處理操作類型。

為了確保終端接收到應(yīng)用服務(wù)器下發(fā)的應(yīng)用文件處理命令,需要維持終端與應(yīng)用服務(wù)器之間的通信連接。例如,可以通過終端定期向應(yīng)用服務(wù)器發(fā)送心跳包的方式維持二者之間的通信連接。具體的,終端定期向應(yīng)用服務(wù)器發(fā)送心跳包,心跳包攜帶終端IP地址、終端設(shè)備信息;應(yīng)用服務(wù)器接收到心跳包,確定與終端保持通信,從而可向終端發(fā)送應(yīng)用文件處理命令。

優(yōu)選的,該裝置還包括:心跳包發(fā)送單元304,用于定期向應(yīng)用服務(wù)器發(fā)送心跳包,所述心跳包攜帶終端IP地址、終端設(shè)備信息。

可見,應(yīng)用服務(wù)器和終端通信過程中如果希望能夠?qū)嵤┩ㄟ^服務(wù)器下方控制命令,此時(shí)需要維系一個(gè)和服務(wù)器的心跳包。心跳包主要是終端定期向服務(wù)器發(fā)送一個(gè)空的命令保證終端和服務(wù)器的連接不會(huì)因?yàn)槌瑫r(shí)而斷開。首先,因?yàn)榻K端和服務(wù)器通信中過程中,服務(wù)端如果長(zhǎng)時(shí)間沒有收到終端的消息,服務(wù)端為了釋放該終端占用的資源會(huì)斷開與終端的連接。如果服務(wù)器和終端斷開了連接,那么以后終端就無法和服務(wù)器通信,如果想要繼續(xù)通信,終端必須重新建立連接,但是建立連接的這個(gè)過程是非常耗時(shí)的,為了解決這個(gè)問題終端可以通過發(fā)送心跳包解決。其次,終端定期發(fā)送心跳包(心跳包內(nèi)容攜帶客戶端的一些基本信息,比如終端mac地址,設(shè)備相關(guān)信息,手機(jī)號(hào)等,主要目的就是和服務(wù)器進(jìn)行一次通信操作),服務(wù)器發(fā)現(xiàn)終端定期有和自己通信,服務(wù)器會(huì)認(rèn)為終端一直需要服務(wù),此時(shí)服務(wù)器不會(huì)斷開與終端的連接。另外,有了心跳包的傳輸,就能夠很好的保障終端和服務(wù)器的連接不斷開。

優(yōu)選的,所述處理命令接收單元301具體用于:所述終端接收應(yīng)用服務(wù)器發(fā)送的基于HTTP協(xié)議JSON格式的應(yīng)用文件處理命令;所述處理命令解析單元302具體用于:通過FASTJSON方式解析所述應(yīng)用文件處理命令。

待處理文件標(biāo)識(shí)可以是文件名稱或者文件唯一標(biāo)識(shí)碼或者其他表示文件的信息,處理操作類型指示對(duì)待處理文件的處理操作方式,例如,處理操作包括刪除操作、更新操作(以新版本文件替換舊版本文件),等。

具體的,服務(wù)器基于HTPP協(xié)議向終端發(fā)送應(yīng)用文件處理命令,例如,終端接收應(yīng)用服務(wù)器發(fā)送的基于HTTP協(xié)議JSON格式的應(yīng)用文件處理命令;終端解析應(yīng)用文件處理命令的方式是:通過FASTJSON方式解析應(yīng)用文件處理命令。其中,JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,它基于ECMAScript的一個(gè)子集,JSON采用完全獨(dú)立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。FASTJSON是Java語言編寫的JSON處理器,與JSON相比,F(xiàn)ASTJSO具有處理速度更快的優(yōu)點(diǎn)。

例如,應(yīng)用文件處理命令的結(jié)構(gòu)如下:

{

"fileName":"myConfig.xml",

"fileOperation":"delete",

}

其中:

fileName:表示需要被刪除掉文件名稱,本示例中需要被刪除掉文件的名稱是myConfig.xml。

fileOperation:是需要對(duì)這個(gè)文件進(jìn)行的操作,本操作的具體內(nèi)容是delete表示需要對(duì)這個(gè)文件進(jìn)行刪除操作。

如上面的例子,應(yīng)用文件處理命令是通過HTTP協(xié)議將JSON格式的數(shù)據(jù)傳遞過來,終端接收到服務(wù)器傳遞過來的JSON數(shù)據(jù)后,會(huì)使用通用的FASTJSON方式對(duì)該JSON格式進(jìn)行解析操作,解析出需要?jiǎng)h除的文件名稱。例如,上面示例中解析完成后的文件名稱是myConfig.xml。

除了上述通過服務(wù)器下發(fā)應(yīng)用文件處理命令的方式對(duì)終端無效文件(特別是無效的配置文件)進(jìn)行處理的方式外,還可結(jié)合終端本地對(duì)無效文件(特別是無效的運(yùn)行文件)的清理方式,從而可進(jìn)一步有效的控制軟件本身的磁盤占用。

優(yōu)選的,該裝置還包括:本地定時(shí)清理單元305,用于在終端本地設(shè)置應(yīng)用文件清理定時(shí)器,以及,根據(jù)應(yīng)用文件清理定時(shí)器,定時(shí)讀取本地緩存的應(yīng)用文件,并判斷所述緩存的應(yīng)用文件所占的存儲(chǔ)空間大小是否大于預(yù)置的存儲(chǔ)空間清理閾值,若是,刪除所述緩存的應(yīng)用文件。優(yōu)選的,所述本地定時(shí)清理單元305具體用于:使用Java的JDK提供的文件讀取API,通過File類定時(shí)讀取本地緩存的應(yīng)用文件。

下面以Android系統(tǒng)的終端為例,針對(duì)上述本地定時(shí)清理單元305進(jìn)一步詳細(xì)介紹。

一、關(guān)于“設(shè)置應(yīng)用文件清理定時(shí)器”

本地定時(shí)器配置:

可以采用Android提供的一個(gè)專用定時(shí)器AlarmManager,在系統(tǒng)休眠狀態(tài)下,如果定時(shí)器超時(shí)了,Android會(huì)自動(dòng)喚醒系統(tǒng)來觸發(fā)定時(shí)任務(wù)。AlarmManager具有喚醒CPU的功能,可以保證每次需要執(zhí)行特定任務(wù)時(shí)CPU都能正常工作,或者說當(dāng)CPU處于休眠時(shí)注冊(cè)的鬧鐘會(huì)被保留(可以喚醒CPU)。

本發(fā)明實(shí)施例子中以通過AlarmManger來設(shè)定定時(shí)器為例子。

AlarmManager的使用分為如下兩個(gè)步驟:

(1)獲取定時(shí)器AlarmManager

AlarmManager是Android系統(tǒng)提供的一個(gè)定時(shí)服務(wù),需要使用定時(shí)服務(wù)的時(shí)候首先得獲取到Android系統(tǒng)提供的這個(gè)服務(wù)。具體獲取方法如下所示:

AlarmManager alarmManager=

(AlarmManager)getSystemService(ALARM_SERVICE);

直接調(diào)用getSystemService這個(gè)方法,就能夠獲取到定時(shí)器AlarmManager的實(shí)例。其中g(shù)etSystemService是Android系統(tǒng)提供的一個(gè)專門用于獲取系統(tǒng)服務(wù)的接口。

(2)設(shè)置重復(fù)定時(shí)器

AlarmManager中有一個(gè)專門用于設(shè)置重復(fù)定時(shí)器的函數(shù)setRepeating,這個(gè)函數(shù)的主要功能是設(shè)置定時(shí)任務(wù),這個(gè)定時(shí)任務(wù)一旦到達(dá)后,系統(tǒng)會(huì)重新開啟新的定時(shí)任務(wù),新的定時(shí)時(shí)間和老的定時(shí)時(shí)間相同。

這個(gè)函數(shù)的使用如下所示:

setRepeating(int type,long startTime,long intervalTime,PendingIntent pi):

本發(fā)明實(shí)施例子的例子中,因?yàn)橐ㄆ趯?duì)無效文件進(jìn)行清理處理,所以優(yōu)選使用setRepeating定時(shí)器來設(shè)定定時(shí)器的。setRepeating函數(shù)設(shè)置的是一個(gè)周期性的定時(shí)器,周期性的定時(shí)器能夠確保任務(wù)被不斷的定時(shí)執(zhí)行。

二、關(guān)于“根據(jù)應(yīng)用文件清理定時(shí)器,定時(shí)讀取緩存的應(yīng)用文件”

例如,可以使用Java的JDK提供的文件讀取API,通過File類定時(shí)讀取緩存的應(yīng)用文件。具體的,讀取文件使用的Java的JDK提供的一套文件讀取的API,使用File類來對(duì)文件進(jìn)行讀取。File類讀取文件的方式如下:File(文件路徑),將文件的路徑傳遞到File的構(gòu)造函數(shù)中,這樣系統(tǒng)就會(huì)返回該文件的實(shí)例file。后續(xù)可以通過文件實(shí)例file對(duì)文件進(jìn)行信息的獲取或者文件的相關(guān)操作。

三、關(guān)于“判斷緩存的應(yīng)用文件所占的存儲(chǔ)空間大小是否大于預(yù)置的存儲(chǔ)空間清理閾值”

仍以上面“Java的JDK提供的文件讀取API”的方式,在讀取到文件的文件實(shí)例之后,可以調(diào)用其中的length方法來獲取文件的大小。其中l(wèi)ength方法這個(gè)函數(shù)的主要功能是返回當(dāng)前文件的大小信息。由此,就可以通過length函數(shù)獲取到了當(dāng)前文件的大小了。

預(yù)先需要設(shè)置一個(gè)存儲(chǔ)空間清理閾值(文件閾值),是為了將大文件進(jìn)行刪除,如果緩存的文件比較小,此時(shí)可以認(rèn)為沒有必要對(duì)其進(jìn)行刪除,因?yàn)樾【彺嫖募?duì)系統(tǒng)磁盤的開銷比較小,影響可以忽略不計(jì)。如果文件過大就會(huì)對(duì)系統(tǒng)產(chǎn)生一定的影響了。例如,本例子中閾值設(shè)置為50M,在實(shí)際使用過程中該值可以根據(jù)具體需求來進(jìn)行設(shè)置大小,將讀取到文件的大小和閾值50M進(jìn)行大小對(duì)比。

四、關(guān)于“刪除緩存的應(yīng)用文件”

仍如上面的例子,如果文件大小比閾值50M大,此時(shí)對(duì)文件進(jìn)行刪除操作。刪除文件的方法是通過調(diào)用file中的delete函數(shù)來對(duì)文件進(jìn)行刪除,Delete函數(shù)是file中的一個(gè)刪除函數(shù),其主要功能是將文件從磁盤上刪除掉。如果緩存文件沒有超過閾值大小,此時(shí)不做任何操作,即對(duì)于小文件不會(huì)對(duì)其進(jìn)行刪除操作。

在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。

本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的用戶變身控制的系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。

應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
历史| 朝阳县| 云梦县| 澳门| 隆德县| 镇江市| 遵义市| 长治市| 三穗县| 广德县| 靖远县| 浦城县| 延边| 贵南县| 高尔夫| 拜泉县| 资中县| 清原| 黎城县| 永定县| 韶山市| 华亭县| 阳东县| 吉木乃县| 镇坪县| 垦利县| 南川市| 那曲县| 沁水县| 杭锦后旗| 象山县| 上杭县| 平定县| 荔波县| 尼木县| 政和县| 鄂尔多斯市| 诸城市| 遂昌县| 道真| 青龙|