1.一種軟件更新方法,其特征在于,包括以下步驟:
接收由客戶端發(fā)送的軟件的標(biāo)識(shí)信息;
根據(jù)所述標(biāo)識(shí)信息判斷所述軟件是否需要更新;
若所述軟件需要更新,則獲取與所述標(biāo)識(shí)信息匹配的舊包及新包,并分別生成與所述舊包對(duì)應(yīng)的第一映射及與所述新包對(duì)應(yīng)的第二映射;
比較所述第一映射和所述第二映射,得到保持不變文件列表、增加文件列表及更新文件列表;
根據(jù)所述增加文件列表將增加的文件寫入升級(jí)包中;
根據(jù)所述更新文件列表生成各個(gè)更新的文件的差分文件,將所述差分文件寫入所述升級(jí)包中;
根據(jù)所述保持不變文件列表、增加文件列表及更新文件列表生成對(duì)應(yīng)的保持不變的文件信息、增加的文件信息及更新的文件信息;
將所述保持不變的文件信息、增加的文件信息及更新的文件信息寫入所述升級(jí)包中;
將所述升級(jí)包發(fā)送給所述客戶端。
2.根據(jù)權(quán)利要求1所述的軟件更新方法,其特征在于,所述標(biāo)識(shí)信息包括標(biāo)識(shí)符和版本號(hào),所述獲取與所述標(biāo)識(shí)信息匹配的舊包及新包,并分別生成與所述舊包對(duì)應(yīng)的第一映射及與所述新包對(duì)應(yīng)的第二映射的步驟,具體包括:
獲取與所述標(biāo)識(shí)符及版本號(hào)匹配的舊包;
讀取所述舊包中各個(gè)文件的文件名及對(duì)應(yīng)的摘要信息;
根據(jù)所述舊包中各個(gè)文件的文件名及對(duì)應(yīng)的摘要信息生成第一映射;
獲取與所述標(biāo)識(shí)符匹配的新包;
讀取所述新包中各個(gè)文件的文件名及對(duì)應(yīng)的摘要信息;
根據(jù)所述新包中各個(gè)文件的文件名及對(duì)應(yīng)的摘要信息生成第二映射。
3.根據(jù)權(quán)利要求1或2所述的軟件更新方法,其特征在于,在所述將所述升級(jí)包發(fā)送給所述客戶端的步驟之前,還包括:
獲取所述新包的簽名文件;
將所述簽名文件寫入所述升級(jí)包。
4.一種軟件更新方法,其特征在于,包括以下步驟:
獲取軟件的標(biāo)識(shí)信息,并根據(jù)所述標(biāo)識(shí)信息向服務(wù)端發(fā)送更新請(qǐng)求;
若所述軟件需要更新,則下載升級(jí)包,并生成安裝包;
根據(jù)所述升級(jí)包中的保持不變的文件信息從與所述標(biāo)識(shí)信息匹配的舊包中獲取對(duì)應(yīng)的保持不變的文件,并將所述保持不變的文件寫入所述安裝包中;
根據(jù)所述升級(jí)包中的增加的文件信息從所述升級(jí)包中獲取增加的文件,并將所述增加的文件寫入所述安裝包中;
根據(jù)所述升級(jí)包中的更新的文件信息從所述升級(jí)包中獲取各個(gè)更新的文件的差分文件,將所述差分文件與所述舊包中各個(gè)對(duì)應(yīng)的文件合并,并將合并后的文件寫入所述安裝包中;
調(diào)用預(yù)設(shè)接口安裝所述安裝包,完成所述軟件的更新。
5.根據(jù)權(quán)利要求4所述的軟件更新方法,其特征在于,在所述調(diào)用預(yù)設(shè)接口完成所述軟件的更新的步驟之前,還包括:
獲取所述升級(jí)包中的簽名文件,并將所述簽名文件寫入所述安裝包中;
讀取所述舊包的渠道號(hào),將所述渠道號(hào)寫入所述安裝包中,生成對(duì)應(yīng)的渠道更新包。
6.一種軟件更新系統(tǒng),其特征在于,包括:
接收模塊,用于接收由客戶端發(fā)送的軟件的標(biāo)識(shí)信息;
判斷模塊,用于根據(jù)所述標(biāo)識(shí)信息判斷所述軟件是否需要更新;
生成映射模塊,用于若所述軟件需要更新,則獲取與所述標(biāo)識(shí)信息匹配的舊包及新包,并分別生成與所述舊包對(duì)應(yīng)的第一映射及與所述新包對(duì)應(yīng)的第二映射;
比較模塊,用于比較所述第一映射和所述第二映射,得到保持不變文件列表、增加文件列表及更新文件列表;
寫入模塊,用于根據(jù)所述增加文件列表將增加的文件寫入升級(jí)包中;
所述寫入模塊還用于根據(jù)所述更新文件列表生成各個(gè)更新的文件的差分文件,將所述差分文件寫入所述升級(jí)包中;
生成文件信息模塊,用于根據(jù)所述保持不變文件列表、增加文件列表及更新文件列表生成對(duì)應(yīng)的保持不變的文件信息、增加的文件信息及更新的文件信息;
所述寫入模塊還用于將所述保持不變的文件信息、增加的文件信息及更新的文件信息寫入所述升級(jí)包中;
發(fā)送模塊,用于將所述升級(jí)包發(fā)送給所述客戶端。
7.根據(jù)權(quán)利要求6所述的軟件更新系統(tǒng),其特征在于,所述標(biāo)識(shí)信息包括標(biāo)識(shí)符和版本號(hào),所述生成映射模塊包括:
獲取單元,用于獲取與所述標(biāo)識(shí)符及版本號(hào)匹配的舊包;
讀取單元,用于讀取所述舊包中各個(gè)文件的文件名及對(duì)應(yīng)的摘要信息;
生成單元,用于根據(jù)所述舊包中各個(gè)文件的文件名及對(duì)應(yīng)的摘要信息生成第一映射;
所述獲取單元還用于獲取與所述標(biāo)識(shí)符匹配的新包;
所述讀取單元還用于讀取所述新包中各個(gè)文件的文件名及對(duì)應(yīng)的摘要信息;
所述生成單元還用于根據(jù)所述新包中各個(gè)文件的文件名及對(duì)應(yīng)的摘要信息生成第二映射。
8.根據(jù)權(quán)利要求6或7所述的軟件更新系統(tǒng),其特征在于,所述軟件更新系統(tǒng)還包括:
獲取模塊,用于獲取所述新包的簽名文件;
所述寫入模塊還用于將所述簽名文件寫入所述升級(jí)包。
9.一種軟件更新系統(tǒng),其特征在于,包括:
發(fā)送模塊,用于獲取軟件的標(biāo)識(shí)信息,并根據(jù)所述標(biāo)識(shí)信息向服務(wù)端發(fā)送更新請(qǐng)求;
下載模塊,用于若所述軟件需要更新,則下載升級(jí)包,并生成安裝包;
寫入模塊,用于根據(jù)所述升級(jí)包中的保持不變的文件信息從與所述標(biāo)識(shí)信息匹配的舊包中獲取對(duì)應(yīng)的保持不變的文件,并將所述保持不變的文件寫入所述安裝包中;
所述寫入模塊還用于根據(jù)所述升級(jí)包中的增加的文件信息從所述升級(jí)包中獲取增加的文件,并將所述增加的文件寫入所述安裝包中;
所述寫入模塊還用于根據(jù)所述升級(jí)包中的更新的文件信息從所述升級(jí)包中獲取各個(gè)更新的文件的差分文件,將所述差分文件與所述舊包中各個(gè)對(duì)應(yīng)的文件合并,并將合并后的文件寫入所述安裝包中;
安裝模塊,用于調(diào)用預(yù)設(shè)接口安裝所述安裝包,完成所述軟件的更新。
10.根據(jù)權(quán)利要求9所述的軟件更新系統(tǒng),其特征在于,所述寫入模塊還用于獲取所述升級(jí)包中的簽名文件,并將所述簽名文件寫入所述安裝包中;
讀取模塊,用于讀取所述舊包的渠道號(hào),將所述渠道號(hào)寫入所述安裝包中,生成對(duì)應(yīng)的渠道更新包。