本發(fā)明涉及計(jì)算機(jī)軟件技術(shù)領(lǐng)域,特別涉及一種打包方法及裝置。
背景技術(shù):
隨著科技的不斷發(fā)展,手機(jī)、平板電腦、計(jì)算機(jī)等電子設(shè)備已深入人們的生活。電子設(shè)備中各種應(yīng)用軟件層出不窮,使人們的生活更加便捷。
但是,不同的人會(huì)對(duì)應(yīng)用軟件有不同的需求,這就需要開發(fā)人員為不同的需求修改應(yīng)用軟件的安裝包。對(duì)應(yīng)用軟件的安裝包進(jìn)行修改也就是對(duì)安裝包進(jìn)行二次打包。
現(xiàn)有的二次打包的方式,大多是先通過(guò)apktool(安裝包工具)的jar包在命令行輸入解包命令,或者編寫bat文件執(zhí)行解包,手動(dòng)更改解包后的配置文件,然后再次通過(guò)apktool的jar包或者appt工具在命令行輸入打包的命令,對(duì)修改后的應(yīng)用解包目錄下的文件進(jìn)行重新打包,將未簽名的包進(jìn)行簽名,生成最后的安裝包。
應(yīng)用上述二次打包的方式,需要用戶手動(dòng)的輸入命令進(jìn)行解包、修改配置文件、重新打包、簽名才能得到最后安裝包,操作復(fù)雜,容易出錯(cuò)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的在于提供一種打包方法及裝置,操作簡(jiǎn)單,降低出錯(cuò)率。
為達(dá)到上述目的,本發(fā)明實(shí)施例公開了一種打包方法,包括:
接收更改配置信息的指令,確定待更改配置信息;
對(duì)目標(biāo)安裝包進(jìn)行解包,得到安裝文件;
根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息;
將所述待更改配置信息存儲(chǔ)到所述目標(biāo)安裝包的解包目錄中;
對(duì)更改后的安裝文件進(jìn)行打包;
對(duì)打包生成的安裝包進(jìn)行簽名。
可選的,在所述確定待更改配置信息之后,還可以包括:
將所述待更改配置信息存儲(chǔ)至第一文件中;
判斷所述待更改配置信息中是否包括圖片,如果是,將所述圖片存儲(chǔ)到第二文件中;
所述根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息,可以包括:
從所述第一文件中獲得所述待更改配置信息,并判斷所述第二文件中是否存在圖片;
如果是,根據(jù)所述待更改配置信息及所述圖片,更新所述安裝文件中對(duì)應(yīng)的配置信息及圖片;
如果否,根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息。
可選的,還可以包括:
將所述待更改配置信息存儲(chǔ)為歷史待更改配置信息。
可選的,所述更改配置信息的指令中攜帶用戶選擇的歷史待更改配置信息;
在所述接收更改配置信息的指令,確定待更改配置信息之前,還可以包括:
接收針對(duì)歷史待更改配置信息的查詢指令,展示歷史待更改配置信息;
所述接收更改配置信息的指令,確定待更改配置信息,可以包括:
接收更改配置信息的指令,將用戶選擇的歷史待更改配置信息確定為待更改配置信息。
可選的,還可以包括:
接收針對(duì)歷史待更改配置信息的刪除指令,刪除用戶選擇的歷史待更改配置信息。
為達(dá)到上述目的,本發(fā)明實(shí)施例還公開了一種打包裝置,包括:
接收確定模塊,用于接收更改配置信息的指令,確定待更改配置信息;
解包模塊,用于對(duì)目標(biāo)安裝包進(jìn)行解包,得到安裝文件;
更新模塊,用于根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息;
第一存儲(chǔ)模塊,用于將所述待更改配置信息存儲(chǔ)到所述目標(biāo)安裝包的解包目錄中;
打包模塊,用于對(duì)更改后的安裝文件進(jìn)行打包;
簽名模塊,用于對(duì)打包生成的安裝包進(jìn)行簽名。
可選的,還可以包括:
第二存儲(chǔ)模塊,用于將所述待更改配置信息存儲(chǔ)至第一文件中;
判斷模塊,用于判斷所述待更改配置信息中是否包括圖片,如果是,觸發(fā)第三存儲(chǔ)模塊;
第三存儲(chǔ)模塊,用于將所述圖片存儲(chǔ)到第二文件中;
所述更新模塊,可以包括:
讀取判斷子模塊,用于從所述第一文件中獲得所述待更改配置信息,并判斷所述第二文件中是否存在圖片;如果是,觸發(fā)第一更新子模塊,如果否,觸發(fā)第二更新子模塊;
第一更新子模塊,用于根據(jù)所述待更改配置信息及所述圖片,更新所述安裝文件中對(duì)應(yīng)的配置信息及圖片;
第二更新子模塊,用于根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息。
可選的,還可以包括:
第四存儲(chǔ)模塊,用于將所述待更改配置信息存儲(chǔ)為歷史待更改配置信息。
可選的,所述更改配置信息的指令中攜帶用戶選擇的歷史待更改配置信息;還可以包括:
接收展示模塊,用于接收針對(duì)歷史待更改配置信息的查詢指令,展示歷史待更改配置信息;
所述接收確定模塊,具體可以用于:
接收更改配置信息的指令,將用戶選擇的歷史待更改配置信息確定為待更改配置信息。
可選的,還可以包括:
接收刪除模塊,用于接收針對(duì)歷史待更改配置信息的刪除指令,刪除用戶選擇的歷史待更改配置信息。
應(yīng)用本發(fā)明實(shí)施例,接收更改配置信息的指令,確定待更改配置信息;對(duì)目標(biāo)安裝包進(jìn)行解包,得到安裝文件,根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息;將所述待更改配置信息存儲(chǔ)到所述目標(biāo)安裝包的解包目錄中;對(duì)更改后的安裝文件進(jìn)行打包;對(duì)打包生成的安裝包進(jìn)行簽名。由此可見,應(yīng)用本方案,用戶只需發(fā)送更改配置信息的指令,后續(xù)的解包、更新并存儲(chǔ)配置信息、重新打包、簽名的操作自動(dòng)完成,操作簡(jiǎn)單,避免了因人工操作導(dǎo)致的錯(cuò)誤。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的打包方法的第一種流程示意圖;
圖2為本發(fā)明實(shí)施例提供的打包方法的第二種流程示意圖;
圖3為本發(fā)明實(shí)施例提供的打包裝置的第一種結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的打包裝置的第二種結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
為了解決現(xiàn)有技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了一種打包方法及裝置,可以應(yīng)用于手機(jī)、平板電腦、計(jì)算機(jī)等電子設(shè)備。下面首先對(duì)本發(fā)明實(shí)施例提供的一種打包方法進(jìn)行詳細(xì)說(shuō)明。
圖1為本發(fā)明實(shí)施例提供的打包方法的第一種流程示意圖,包括:
S101:接收更改配置信息的指令,確定待更改配置信息。
可以理解的是,應(yīng)用本發(fā)明所示實(shí)施例提供的打包方法的最終目的可以為:實(shí)現(xiàn)用戶對(duì)電子設(shè)備中配置信息的更改,具體的,可以包括非功能方面的配置信息的更改,比如更改電子設(shè)備中的字體顏色,更改背景圖片等等;也可以包括功能方面的配置信息的更改,比如更改電子設(shè)備連接的服務(wù)器的地址等等。因此,可以提供給用戶一個(gè)界面,以使用戶輸入更改配置信息的指令,根據(jù)用戶輸入的指令,確定待更改配置信息。比如,用戶輸入的更改配置信息的指令為更改字體顏色、更改背景圖片、或更改電子設(shè)備連接的服務(wù)器的地址等。
當(dāng)輸入的更改配置信息的指令為更改字體顏色時(shí),確定的待更改配置信息可以為更改后的字體顏色的信息,比如一個(gè)color.xml文件;當(dāng)輸入的更改配置信息的指令為更改背景圖片時(shí),確定的待更改配置信息可以為更改后的圖片;當(dāng)輸入的更改配置信息的指令為更改電子設(shè)備連接的服務(wù)器的地址時(shí),確定的待更改配置信息可以為更改后的服務(wù)器的地址。
作為本發(fā)明的一種實(shí)施方式,在確定待更改配置信息之后,可以將所述待更改配置信息存儲(chǔ)至第一文件中;判斷所述待更改配置信息中是否包括圖片,如果是,將所述圖片存儲(chǔ)到第二文件中。
上述第一文件可以為config.xml文件,可以采用SAX工具將上述確定的待更改配置信息存儲(chǔ)到config.xml文件中。但是,當(dāng)待更改配置信息中包括圖片時(shí),該config.xml文件只能存儲(chǔ)圖片的標(biāo)識(shí)信息,不能存儲(chǔ)圖片本身,因此可以將圖片存儲(chǔ)到臨時(shí)目錄中,即第二文件中。
S102:對(duì)目標(biāo)安裝包進(jìn)行解包,得到安裝文件。
作為本發(fā)明的一種實(shí)施方式,可以使用apktool的jar包進(jìn)行解包,將解包后得到的安裝文件放到指定的位置。
S103:根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息。
在上述實(shí)施方式中,本步驟可以包括:
從所述第一文件中獲得所述待更改配置信息,并判斷所述第二文件中是否存在圖片;
如果是,根據(jù)所述待更改配置信息及所述圖片,更新所述安裝文件中對(duì)應(yīng)的配置信息及圖片;
如果否,根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息;
S104:將所述待更改配置信息存儲(chǔ)到目標(biāo)安裝包的解包目錄中。
作為本發(fā)明的一種實(shí)施方式,解包完成后,讀取config.xml文件中的待更改配置信息,可以根據(jù)實(shí)際情況,先將解包后資源文件string.xml里的應(yīng)用名稱及androidmanifest.xml文件的版本號(hào)進(jìn)行修改。如果根據(jù)待更改配置信息,判斷有字體顏色的更改,則可以將待更改配置信息中里的顏色值替換解包文件的color.xml的顏色值,或者將待更改配置信息中里的color.xml文件替換解包文件的color.xml文件。
另外,根據(jù)讀取到的待更改配置信息,判斷用戶是否對(duì)電子設(shè)備中的圖片進(jìn)行了更改,如果是,從上述臨時(shí)目錄中(即第二文件中)找到相應(yīng)的圖片,將該圖片復(fù)制到drawable文件下,將解包文件中對(duì)應(yīng)的原有圖片替換掉。
最后將config.xml配置文件存儲(chǔ)到解包里的assets目錄下,用于程序讀取配置。本領(lǐng)域技術(shù)人員可以理解的是,有一部分配置信息是程序?qū)崟r(shí)讀取的,不能通過(guò)更新安裝文件對(duì)該部分配置信息進(jìn)行更改。比如手機(jī)通訊錄中的字體顏色,不能夠通過(guò)上述顏色替換的方式進(jìn)行更新,只能將配置信息存儲(chǔ)到assets目錄下,程序?qū)崟r(shí)讀取,才能實(shí)現(xiàn)對(duì)手機(jī)通訊錄中的字體顏色的更改。
S105:對(duì)更改后的安裝文件進(jìn)行打包。
在本發(fā)明所示實(shí)施例中,可以使用apktool.jar和aapt.exe工具對(duì)更改后的安裝文件進(jìn)行打包。
S106:對(duì)打包生成的安裝包進(jìn)行簽名。
打包完成后,解包文件夾的dist目錄下會(huì)出現(xiàn)一個(gè)新的應(yīng)用安裝包。但此時(shí)的安裝包是沒(méi)有簽名的,無(wú)法安裝到系統(tǒng)中,因此這時(shí)需要對(duì)此安裝包進(jìn)行簽名??梢允褂胘ava環(huán)境sdk中jarsigner工具進(jìn)行簽名,該工具會(huì)指定最終安裝包存放的位置。
應(yīng)用本發(fā)明圖1所示實(shí)施例,接收更改配置信息的指令,確定待更改配置信息;對(duì)目標(biāo)安裝包進(jìn)行解包,得到安裝文件,根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息;將所述待更改配置信息存儲(chǔ)到所述目標(biāo)安裝包的解包目錄中;對(duì)更改后的安裝文件進(jìn)行打包;對(duì)打包生成的安裝包進(jìn)行簽名。由此可見,應(yīng)用本方案,用戶只需發(fā)送更改配置信息的指令,后續(xù)的解包、更新并存儲(chǔ)配置信息、重新打包、簽名的操作自動(dòng)完成,操作簡(jiǎn)單,避免了因人工操作導(dǎo)致的錯(cuò)誤。
需要說(shuō)明的是,可以應(yīng)用本發(fā)明的方案,制作一個(gè)打包工具,在該工具中自動(dòng)配制java環(huán)境。
在現(xiàn)有的打包方式中,解包、打包使用的jar包以及簽名過(guò)程都需要java環(huán)境支持,也就是說(shuō),電子設(shè)備必須配制java環(huán)境才能應(yīng)用現(xiàn)有的打包方式,非常不方便。而本方案提供的打包工具中自動(dòng)配制java環(huán)境,則應(yīng)用該打包工具的電子設(shè)備不需要配制java環(huán)境,使用方便。
圖2為本發(fā)明實(shí)施例提供的打包方法的第二種流程示意圖,本發(fā)明圖2所示實(shí)施例在本發(fā)明圖1所示實(shí)施例的基礎(chǔ)上,增加S107:將所述待更改配置信息存儲(chǔ)為歷史待更改配置信息。
在本發(fā)明所示實(shí)施例中,還可以接收針對(duì)歷史待更改配置信息的查詢指令,展示歷史待更改配置信息;
上述更改配置信息的指令中可以攜帶用戶選擇的歷史待更改配置信息;
所述接收更改配置信息的指令,確定待更改配置信息,可以包括:
接收更改配置信息的指令,將用戶選擇的歷史待更改配置信息確定為待更改配置信息。
在上述方案中,可以將每次確定的待更改配置信息存儲(chǔ)為歷史待更改配置信息。可以為用戶提供一個(gè)展示界面,當(dāng)用戶需要更改配置信息時(shí),將存儲(chǔ)的歷史待更改配置信息展示給用戶,用戶可以直接從展示的歷史待更改配置信息中進(jìn)行選擇。當(dāng)然,展示界面還可以展示更改前和更改后的效果圖,更直觀更準(zhǔn)確地滿足用戶需求。
另外,還可以為用戶提供一個(gè)查詢界面,根據(jù)用戶輸入的針對(duì)歷史待更改配置信息的查詢指令,展示歷史待更改配置信息。如上所述,展示歷史待更改配置信息時(shí),還可以展示更改前和更改后的效果圖,以使用戶更直觀更準(zhǔn)確地從展示出的歷史待更改配置信息中選擇出自己需要的。然后用戶發(fā)送更改配置信息的指令,該指令中可以攜帶用戶選擇的歷史待更改配置信息,在接收到更改配置信息的指令后,將用戶選擇的歷史待更改配置信息確定為待更改配置信息。
在本發(fā)明所示實(shí)施例中,還可以接收針對(duì)歷史待更改配置信息的刪除指令,刪除用戶選擇的歷史待更改配置信息。
可以理解的是,如果用戶對(duì)某個(gè)歷史待更改配置信息不滿意,可以將其刪除掉,減少其占用的空間。
應(yīng)用本發(fā)明圖2所示實(shí)施例,將待更改配置信息存儲(chǔ)為歷史待更改配置信息,可以針對(duì)存儲(chǔ)的歷史待更改配置信息,為用戶提供查詢、展示、選擇、刪除等功能,更好地滿足用戶更改配置信息的需求。
與上述的方法實(shí)施例相對(duì)應(yīng),本發(fā)明實(shí)施例還提供一種打包裝置。
圖3為本發(fā)明實(shí)施例提供的打包裝置的第一種結(jié)構(gòu)示意圖,包括:
接收確定模塊201,用于接收更改配置信息的指令,確定待更改配置信息;
解包模塊202,用于對(duì)目標(biāo)安裝包進(jìn)行解包,得到安裝文件;
更新模塊203,用于根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息;
第一存儲(chǔ)模塊204,用于將所述待更改配置信息存儲(chǔ)到所述目標(biāo)安裝包的解包目錄中;
打包模塊205,用于對(duì)更改后的安裝文件進(jìn)行打包;
簽名模塊206,用于對(duì)打包生成的安裝包進(jìn)行簽名。
在本發(fā)明所示實(shí)施例中,還可以包括:第二存儲(chǔ)模塊、判斷模塊和第三存儲(chǔ)模塊(圖中未示出),其中,
第二存儲(chǔ)模塊,用于將所述待更改配置信息存儲(chǔ)至第一文件中;
判斷模塊,用于判斷所述待更改配置信息中是否包括圖片,如果是,觸發(fā)第三存儲(chǔ)模塊;
第三存儲(chǔ)模塊,用于將所述圖片存儲(chǔ)到第二文件中;
更新模塊203,可以包括:讀取判斷子模塊、第一更新子模塊和第二更新子模塊(圖中未示出),其中,
讀取判斷子模塊,用于從所述第一文件中獲得所述待更改配置信息,并判斷所述第二文件中是否存在圖片;如果是,觸發(fā)第二更新子模塊,如果否,觸發(fā)更新存儲(chǔ)子模塊;
第一更新子模塊,用于根據(jù)所述待更改配置信息及所述圖片,更新所述安裝文件中對(duì)應(yīng)的配置信息及圖片;
第二更新子模塊,用于根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息;將所述待更改配置信息存儲(chǔ)到所述目標(biāo)安裝包的解包目錄中。
應(yīng)用本發(fā)明圖3所示實(shí)施例,接收更改配置信息的指令,確定待更改配置信息;對(duì)目標(biāo)安裝包進(jìn)行解包,得到安裝文件,根據(jù)所述待更改配置信息,更新所述安裝文件中對(duì)應(yīng)的配置信息;將所述待更改配置信息存儲(chǔ)到所述目標(biāo)安裝包的解包目錄中;對(duì)更改后的安裝文件進(jìn)行打包;對(duì)打包生成的安裝包進(jìn)行簽名。由此可見,應(yīng)用本方案,用戶只需發(fā)送更改配置信息的指令,后續(xù)的解包、更新并存儲(chǔ)配置信息、重新打包、簽名的操作自動(dòng)完成,操作簡(jiǎn)單,避免了因人工操作導(dǎo)致的錯(cuò)誤。
圖4為本發(fā)明實(shí)施例提供的打包裝置的第二種結(jié)構(gòu)示意圖,本發(fā)明圖4所示實(shí)施例在本發(fā)明圖3所示實(shí)施例的基礎(chǔ)上,還可以包括:
第四存儲(chǔ)模塊207,用于將所述待更改配置信息存儲(chǔ)為歷史待更改配置信息。
在本發(fā)明所示實(shí)施例中,所述更改配置信息的指令中可以攜帶用戶選擇的歷史待更改配置信息;還可以包括:接收展示模塊(圖中未示出),用于接收針對(duì)歷史待更改配置信息的查詢指令,展示歷史待更改配置信息;
接收確定模塊201,具體可以用于:
接收更改配置信息的指令,將用戶選擇的歷史待更改配置信息確定為待更改配置信息。
在本發(fā)明所示實(shí)施例中,還可以包括:接收刪除模塊(圖中未示出),用于接收針對(duì)歷史待更改配置信息的刪除指令,刪除用戶選擇的歷史待更改配置信息。
應(yīng)用本發(fā)明圖4所示實(shí)施例,將待更改配置信息存儲(chǔ)為歷史待更改配置信息,可以針對(duì)存儲(chǔ)的歷史待更改配置信息,為用戶提供查詢、展示、選擇、刪除等功能,更好地滿足用戶更改配置信息的需求。
需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說(shuō)明書中的各個(gè)實(shí)施例均采用相關(guān)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說(shuō)明即可。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施方式中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,這里所稱得的存儲(chǔ)介質(zhì),如:ROM/RAM、磁碟、光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。