專利名稱:安裝包生成裝置及方法、以及安裝進(jìn)度傳遞方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,特別涉及一種安裝包生成裝置及方法、以 及安裝進(jìn)度傳遞方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展和計(jì)算機(jī)的日益普及,計(jì)算機(jī)的功能也在不斷增 加,在硬件平臺與操作系統(tǒng)平臺上能夠提供給用戶的應(yīng)用服務(wù)越來越多。實(shí) 現(xiàn)這些應(yīng)用服務(wù)功能的前提是首先需要在計(jì)算機(jī)上安裝大量的應(yīng)用軟件,然 而這些應(yīng)用軟件安裝與維護(hù)的繁瑣過程,對普通用戶提出了很大的考驗(yàn)。因 此如何在計(jì)算機(jī)軟件的易用性和友好性方面做得更好,是計(jì)算機(jī)廠商如今面 對的重要課題之一。
為了改進(jìn)用戶體驗(yàn),通常利用某 一軟件來集中控制其他軟件的安裝過 程,以便實(shí)現(xiàn)在安裝過程中無需用戶輸入相關(guān)參數(shù)或進(jìn)行相應(yīng)處理的靜默
(silence)安裝。這樣就需要在該軟件的用戶界面上顯示所控制的其他軟件 的安裝進(jìn)度,以便用戶能夠監(jiān)視上述其他軟件的安裝過程。
目前,在軟件間傳遞安裝進(jìn)度,即某一軟件A要獲得另一軟件B的安 裝進(jìn)度,主要采用在軟件A中計(jì)算軟件B安裝進(jìn)度的方法。該方法包括以 下兩個(gè)階段
階段l、生成軟件B的壓縮包;在軟件A的源代碼中,編寫在安裝軟件 B時(shí)計(jì)算其安裝進(jìn)度的算法。
具體來說,階段1包括在安裝軟件B前,按照預(yù)定的壓縮方式,將 軟件B的所有文件壓縮生成軟件B壓縮包,例如TAR格式的壓縮包;將安 裝軟件B壓縮包的方法、以及計(jì)算其安裝進(jìn)度的算法通過源代碼的形式編寫
在軟件A的程序中,從而使得在安裝軟件B壓縮包時(shí),軟件A能夠計(jì)算軟 件B的安裝進(jìn)度。
階段2、軟件A安裝軟件B壓縮包,并按照預(yù)定算法計(jì)算軟件B的安 裝進(jìn)度。
具體來說,參見圖1,圖1為現(xiàn)有技術(shù)中在軟件間傳遞安裝進(jìn)度方法的 流程示意圖。由圖l可見,該方法包括以下步驟
步驟IOI、軟件A對軟件B壓縮包進(jìn)行解壓縮。 步驟102、軟件A得到軟件B的文件總數(shù)。
步驟103、軟件A控制軟件B執(zhí)行安裝操作,即軟件A從軟件B的壓 縮包中不斷拷貝文件到待安裝目錄中。
步驟104、軟件A每拷貝完一個(gè)文件,觸發(fā)一次計(jì)算事件,即軟件A 根據(jù)軟件B中已完成的文件拷貝數(shù)量和軟件B的文件總數(shù),計(jì)算
軟怖的安裝進(jìn)度=軟件m成)2拷"量。
一欠件B的又件總凄t
由上所述,在現(xiàn)有技術(shù)中,如果有多個(gè)類似A的軟件需要獲取軟件B 的安裝進(jìn)度,那么就必須在每個(gè)這種類似A的軟件中編寫計(jì)算軟件B安裝 進(jìn)度的算法。由于這個(gè)編寫計(jì)算安裝進(jìn)度算法的過程是預(yù)先在軟件A程序 上通過編譯大段復(fù)雜的源代碼的方式實(shí)現(xiàn)的,這樣必須對每個(gè)希望獲取其他 軟件安裝進(jìn)度的軟件進(jìn)行這種復(fù)雜的算法編譯操作,因此就會造成重復(fù)性開 發(fā)工作較多、軟件的通用性不強(qiáng)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的實(shí)施例提供了一種安裝包生成裝置及方法、以及安 裝進(jìn)度傳遞方法,解決了獲得軟件安裝進(jìn)度時(shí),軟件通用性不強(qiáng)的問題。 根據(jù)本發(fā)明實(shí)施例的安裝包生成裝置包括
安裝包腳本存儲模塊,用于存儲需要打包的軟件的文件列表信息,并存儲 用來解析命令行的指令描述信息,所述命令行在執(zhí)行所述軟件的安裝包時(shí),攜
帶安裝參數(shù);
編譯器模塊,用于將所述安裝包腳本存儲模塊中存儲的所述指令描述信息 轉(zhuǎn)換為解析命令行指令,生成包括用來計(jì)算和發(fā)送所述軟件的安裝進(jìn)度的指令, 壓縮安裝包腳本存儲i^莫塊中存儲的所述文件列表信息中的所有文件,生成所述 軟件的安裝包,在所述安裝包中包含上述指令的集合。
根據(jù)本發(fā)明另一實(shí)施例的安裝包生成方法包括
建立軟件的安裝包腳本,在所述安裝包腳本中存儲需要打包的軟件的文件 列表信息,并存儲用來解析命令行的指令描述信息,所述命令行在執(zhí)行所述軟 件的安裝包時(shí),攜帶安裝參數(shù);
將所述安裝包腳本中存儲的所述指令描述信息轉(zhuǎn)換為解析命令行指令;
生成包括用來計(jì)算和發(fā)送所述軟件的安裝進(jìn)度的指令;
壓縮所述安裝包腳本中存儲的所述文件列表信息中的所有文件,生成所述 軟件的安裝包,在所述安裝包中包含上述指令的集合。
才艮據(jù)本發(fā)明又一 實(shí)施例的安裝進(jìn)度傳遞方法包括
根據(jù)上述的安裝包生成方法,生成軟件的安裝包;
任意一個(gè)希望獲得所述軟件的安裝進(jìn)度的其他軟件以攜帶有安裝參數(shù) 的命令行執(zhí)行所述安裝包,獲取所述軟件的安裝進(jìn)度。
由上述的技術(shù)方案可見,相比現(xiàn)有技術(shù),本發(fā)明實(shí)施例提供的安裝包生 成裝置及方法、以及安裝進(jìn)度傳遞方法,不需要在希望獲取其他軟件安裝進(jìn) 度的軟件程序上通過編譯源代碼實(shí)現(xiàn)安裝進(jìn)度的計(jì)算和獲取算法,而只需在 該軟件程序中實(shí)現(xiàn)簡單的接收安裝進(jìn)度數(shù)據(jù)的操作,并在生成待安裝軟件的 安裝包過程中,使該安裝包在運(yùn)行時(shí)能夠解析安裝時(shí)的命令行、獲取命令行 中安裝參數(shù)的內(nèi)存地址空間、不斷計(jì)算并向該參數(shù)的內(nèi)存地址空間拋出自身 的安裝進(jìn)度數(shù)據(jù)。因此,本發(fā)明解決了獲得軟件安裝進(jìn)度時(shí),軟件通用性不 強(qiáng)的問題。
圖1為現(xiàn)有技術(shù)中在軟件間傳遞安裝進(jìn)度方法的流程示意圖; 圖2為本發(fā)明實(shí)施例中安裝包生成裝置的結(jié)構(gòu)示意圖; 圖3為本發(fā)明實(shí)施例中安裝包生成方法的流程示意圖; 圖4為本發(fā)明實(shí)施例中安裝進(jìn)度傳遞方法的流程示意圖; 圖5為本發(fā)明實(shí)施例中執(zhí)行安裝包的流程示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體 實(shí)施例對本發(fā)明作進(jìn)一步地詳細(xì)描述。
本發(fā)明實(shí)施例提供的安裝包生成裝置及方法、以及安裝進(jìn)度傳遞方法, 在生成軟件的安裝包過程中,將該軟件的安裝進(jìn)度的計(jì)算以及發(fā)送的指令集 合包含在安裝包中。任意一個(gè)希望獲得所述軟件的安裝進(jìn)度的其他軟件以攜 帶有安裝參數(shù)的命令行執(zhí)行所述安裝包,獲取所述軟件的安裝進(jìn)度。
參見圖2,圖2為本發(fā)明實(shí)施例中安裝包生成裝置的結(jié)構(gòu)示意圖。該安 裝包生成裝置用于在安裝任意軟件B前,生成該軟件B的安裝包,并使得 所生成的軟件B的安裝包在執(zhí)行時(shí),能夠解析運(yùn)行軟件B安裝包時(shí)的命令 行,計(jì)算并發(fā)送自身的安裝進(jìn)度。由圖2可見,該裝置包括安裝包腳本存 儲模塊210和編譯器模塊220。
其中,安裝包腳本存儲模塊210用于存儲需要打包的軟件B的文件列 表信息,并存儲用來解析命令行的指令描述信息,該命令行用于在執(zhí)行軟件 B的安裝包時(shí),攜帶安裝參數(shù)。其中安裝參數(shù)可以是"接收安裝進(jìn)度窗口信 息"參數(shù)。
編譯器模塊220用于將安裝包腳本存儲模塊210中存儲的用來解析運(yùn)行 軟件B安裝包時(shí)命令行的指令描述信息轉(zhuǎn)換為解析命令行指令,生成包括用 來計(jì)算和發(fā)送軟件B安裝進(jìn)度的指令,并根據(jù)安裝包腳本存儲模塊210中存 儲的需要打包的軟件B文件列表信息,壓縮該文件列表信息中的所有文件,
生成軟件B的安裝包,并在該安裝包中包含上述指令的集合,以實(shí)現(xiàn)安裝進(jìn)
度發(fā)送功能。
具體來說,安裝包腳本存儲模塊210包括文件列表信息存儲單元211 和解析命令行指令信息存儲單元212。
其中文件列表信息存儲單元211用于存儲需要打包的軟件B的文件列 表信息。
解析命令行指令信息存儲單元212用于存儲用來解析命令行的指令描 述信息,該命令行用于在執(zhí)行軟件B的安裝包時(shí),攜帶安裝參數(shù)。其中,解 析命令行的指令描述信息用于描述解析命令行的指令,該指令用來解析運(yùn)行 軟件B安裝包時(shí)的命令行,具體來說,該指令所完成的操作包括當(dāng)任意一
安裝包時(shí),該軟件B安裝包解析該命令行,獲取該安裝參數(shù)的內(nèi)存地址空間。 編譯器模塊220包括解析命令行指令生成單元221、計(jì)算和發(fā)送安裝
進(jìn)度指令生成單元222、以及安裝包生成單元224。
其中,解析命令行指令生成單元221用于將安裝包腳本存儲模塊210中
行的指令描述信息轉(zhuǎn)換為解析命令行指令,并將該指令發(fā)送給安裝包生成單 元224。
計(jì)算和發(fā)送安裝進(jìn)度指令生成單元222用于生成包括用來計(jì)算和發(fā)送 軟件B安裝進(jìn)度的指令,并將該指令發(fā)送給安裝包生成單元224。其中,計(jì) 算和發(fā)送軟件B安裝進(jìn)度的指令所完成的操作包括
1 ) 軟件B安裝包計(jì)算自身的安裝進(jìn)度。
軟件B安裝包從自身拷貝軟件B文件到待安裝目錄中。每拷貝完一個(gè) 文件,觸發(fā)一次計(jì)算事件,即軟件B安裝包根據(jù)已完成的文件拷貝數(shù)量和軟 件B安裝包中的文件總數(shù),計(jì)算
軟件B中已完成的拷貝數(shù)量=
軟件B的安裝進(jìn)度/軟件B的文件總數(shù)
2) 當(dāng)安裝參數(shù)不為空時(shí),軟件B安裝包能夠向該安裝參數(shù)的內(nèi)存地 址空間拋出自身的安裝進(jìn)度數(shù)據(jù)。
安裝包生成單元224用于接收解析命令行指令生成單元221生成的解析 命令行指令,接收計(jì)算和發(fā)送安裝進(jìn)度指令生成單元222生成的包括用來計(jì) 算和發(fā)送軟件B安裝進(jìn)度的指令,并根據(jù)安裝包腳本存儲模塊210中文件列 表信息存儲單元211存儲的需要打包的軟件B文件列表信息,壓縮該文件列 表信息中的所有文件,生成軟件B的安裝包,并在該安裝包中包含上述指令 的集合,以實(shí)現(xiàn)安裝進(jìn)度發(fā)送功能。
因此,任意一個(gè)希望獲得軟件B安裝進(jìn)度的軟件A以攜帶有諸如接收 安裝進(jìn)度窗口信息的安裝參數(shù)的命令行執(zhí)行軟件B安裝包時(shí),該軟件B安 裝包能夠解析該命令行,獲取該參數(shù)的內(nèi)存地址空間;能夠不斷計(jì)算自身的 安裝進(jìn)度;并當(dāng)安裝參數(shù)不為空時(shí),不斷向該參數(shù)的內(nèi)存地址空間拋出自身 的安裝進(jìn)度數(shù)據(jù),從而使得軟件A能夠獲取軟件B的安裝進(jìn)度。
較佳地,安裝包腳本存儲模塊210進(jìn)一步包括其他操作指令信息存儲
單元213。該單元用于存儲軟件B的安裝包在運(yùn)行過程中需要進(jìn)行的其他操 作的指令描述信息。
上述其他操作可以是例如,在軟件B安裝過程中,如果用戶尚未關(guān) 閉與軟件B相關(guān)的應(yīng)用進(jìn)程,如舊版本的軟件B等程序進(jìn)程,軟件B安裝 包提示用戶需要關(guān)閉相關(guān)進(jìn)程才能完成安裝。
此時(shí),編譯器模塊220進(jìn)一步包括其他操作指令生成單元223。該單 元用于將安裝包腳本存儲模塊210中其他操作指令信息存儲單元213存儲的 安裝包在運(yùn)行過程中需要進(jìn)行的其他操作的指令描述信息轉(zhuǎn)換為其他操作 指令,并將該指令發(fā)送給安裝包生成單元224。
此時(shí),安裝包生成單元224進(jìn)一步用于接收其他操作指令生成單元223 生成的其他操作指令,并使所生成的軟件B的安裝包包含用來完成其他操作 的指令。
由上所述,由于安裝包腳本與編譯器相分離,當(dāng)生成安裝包時(shí),如果需
要調(diào)整待打包軟件的文件列表信息,或者需要改變安裝包在運(yùn)行過程中需要 進(jìn)行的操作,只要修改安裝包腳本即可。這個(gè)過程無需經(jīng)過復(fù)雜的編譯源代 碼過程,因此,操作十分簡便。
參見圖3,圖3為本發(fā)明實(shí)施例中安裝包生成方法的流程示意圖。由圖 3可見,該方法包括以下步驟
步驟301、在安裝軟件B前,建立軟件B的安裝包腳本,在軟件B安 裝包腳本中存儲需要打包的軟件B的文件列表信息,并存儲用來解析命令行 的指令描述信息,所述命令行用于在執(zhí)行軟件B的安裝包時(shí),攜帶安裝參數(shù)。 其中安裝參數(shù)可以是接收安裝進(jìn)度窗口信息參數(shù)。
其中,解析命令行的指令描述信息用于描述解析命令行的指令,該指令 用來解析運(yùn)行軟件B安裝包時(shí)的命令行,具體來說,該指令所完成的操作包 括當(dāng)任意一個(gè)需要獲取軟件B安裝進(jìn)度的軟件A以攜帶有安裝參數(shù)的命 令行執(zhí)行軟件B安裝包時(shí),該軟件B安裝包解析該命令行,獲取該安裝參 數(shù)的內(nèi)存地址空間。
步驟302、編譯器將軟件B安裝包腳本中存儲的用來解析運(yùn)行軟件B安 裝包時(shí)命令行的指令描述信息轉(zhuǎn)換為解析命令行指令。
步驟303、編譯器生成包括用來計(jì)算和發(fā)送軟件B安裝進(jìn)度的指令。
其中,計(jì)算和發(fā)送軟件B安裝進(jìn)度的指令所完成的操作包括
1 )軟件B安裝包計(jì)算自身的安裝進(jìn)度。
軟件B安裝包從自身不斷拷貝軟件B文件到待安裝目錄中。每拷貝完 一個(gè)文件,觸發(fā)一次計(jì)算事件,即軟件B安裝包根據(jù)已完成的文件拷貝數(shù)量 和軟件B安裝包中的文件總數(shù),計(jì)算
軟件B的安裝進(jìn)度=軟件H成,f數(shù)量。
軟件B的又件總數(shù)
2) 當(dāng)安裝參數(shù)不為空時(shí),軟件B安裝包能夠向該參數(shù)的內(nèi)存地址空
間拋出自身的安裝進(jìn)度數(shù)據(jù)。
步驟304、編譯器根據(jù)軟件B安裝包腳本中存儲的需要打包的軟件B的
文件列表信息,壓縮該文件列表信息中的所有文件,生成軟件B的安裝包,
并在該安裝包中包含上述指令集合,以實(shí)現(xiàn)安裝進(jìn)度發(fā)送功能。
較佳地,在步驟301中,建立軟件B安裝包腳本時(shí),在軟件B安裝包 腳本中進(jìn)一步存儲安裝包在運(yùn)行過程中需要進(jìn)行的其他操作的指令描述信息。
相應(yīng)地,在步驟303中,編譯器進(jìn)一步將軟件B安裝包腳本中存儲的 安裝包在運(yùn)行過程中需要進(jìn)行的其他操作的指令描述信息轉(zhuǎn)換為相應(yīng)指令。
相應(yīng)地,在步驟304中,編譯器進(jìn)一步在軟件B安裝包中包含在運(yùn)行 過程中需要進(jìn)行的其他操作的指令。
由上所述,任何軟件B都可以采用本發(fā)明實(shí)施例提供的安裝包生成裝 置及方法,生成該軟件B的安裝包,并使得所生成的軟件B安裝包在執(zhí)行 時(shí),能夠解析運(yùn)行軟件B安裝包時(shí)的命令行,計(jì)算并發(fā)送自身安裝進(jìn)度。
參見圖4,圖4為本發(fā)明實(shí)施例中安裝進(jìn)度傳遞方法的流程示意圖。由 圖4可見,在軟件間傳遞安裝進(jìn)度,即某一軟件A要獲得另一軟件B的安 裝進(jìn)度,包括以下步驟
步驟401、按照本發(fā)明上述實(shí)施例提供的安裝包生成裝置及方法,生成 軟件B的安裝包。
步驟402、任意一個(gè)希望獲得軟件B安裝進(jìn)度的軟件A以攜帶有安裝參 數(shù)的命令行執(zhí)行軟件B安裝包,獲取軟件B的安裝進(jìn)度。其中安裝參數(shù)可 以是接收安裝進(jìn)度窗口信息參數(shù)。
參見圖5,圖5為本發(fā)明實(shí)施例中執(zhí)行安裝包的流程示意圖。由圖5可 見,步驟402具體包括
步驟4021、任意一個(gè)希望獲得軟件B安裝進(jìn)度的軟件A以命令行方式 執(zhí)行軟件B安裝包,并在命令行中包含安裝參數(shù),如"接收安裝進(jìn)度的窗口 信息"參數(shù)。
步驟4022、軟件B安裝包解析該命令行,獲取該安裝參數(shù)的內(nèi)存地址 空間;
步驟4023、軟件B安裝包從自身不斷拷貝軟件B文件到待安裝目錄中, 每拷貝完一個(gè)文件,觸發(fā)一次計(jì)算事件,即軟件B安裝包根據(jù)已完成的文件 拷貝數(shù)量和軟件B安裝包中存儲的文件總數(shù),計(jì)算
飾的安裝進(jìn)度=軟件,,成,f數(shù)量。
軟件B的又件總數(shù)
步驟4024、當(dāng)安裝參數(shù)不為空時(shí),軟件B安裝包向該參數(shù)的內(nèi)存地址 空間拋出自身的安裝進(jìn)度數(shù)據(jù)。
步驟4025、軟件A讀取上述安裝參數(shù)的內(nèi)存地址空間,從而獲取軟件 B的安裝進(jìn)度。
可以將本發(fā)明應(yīng)用到各種在軟件間傳遞安裝進(jìn)度的具體應(yīng)用中。下面, 以獲取網(wǎng)絡(luò)游戲的安裝進(jìn)度為例對本發(fā)明進(jìn)行更加詳細(xì)的說明。不過,本領(lǐng) 域技術(shù)人員可以意識到,以獲取網(wǎng)絡(luò)游戲的安裝進(jìn)度為例對本發(fā)明進(jìn)行說明 僅僅是示范性的,并不用于對本發(fā)明的保護(hù)范圍進(jìn)行限定。
為了改進(jìn)用戶體驗(yàn),通常采用在網(wǎng)絡(luò)游戲大廳中直接下載某一游戲C 的安裝包,下載完成后直接運(yùn)行該安裝包,執(zhí)行靜默安裝,這就需要在安裝 游戲C時(shí),將該游戲C的安裝進(jìn)度體現(xiàn)在游戲大廳的界面中,以便用戶能 夠監(jiān)視游戲C的安裝過程。
根據(jù)本發(fā)明實(shí)施例,游戲大廳要獲得游戲C的安裝進(jìn)度,主要包括以 下兩個(gè)步驟
步驟l、按照本發(fā)明實(shí)施例提供的安裝包生成裝置及方法,生成游戲C 的安裝包。
步驟2、游戲大廳以攜帶有安裝參數(shù)的命令行執(zhí)行游戲C安裝包,獲取 游戲C的安裝進(jìn)度。其中安裝參數(shù)可以是接收安裝進(jìn)度的窗口信息參數(shù)。步 驟2具體包括
子步驟l、游戲大廳以命令行方式執(zhí)行游戲C安裝包,并在命令行中包 含接收安裝進(jìn)度的窗口信息參數(shù),如hWnd。
子步驟2、游戲C安裝包解析該命令行,獲取hWnd的內(nèi)存地址空間;子步驟3、游戲C安裝包從自身不斷拷貝游戲C文件到待安裝目錄中。 每拷貝完一個(gè)文件,觸發(fā)一次計(jì)算事件,即游戲C安裝包根據(jù)已完成的文件 拷貝數(shù)量和游戲C安裝包中的文件總數(shù),計(jì)算
誠,進(jìn)度=游戲st,i,,量。
游戲C6tl文件總數(shù)
子步驟4、當(dāng)接收安裝進(jìn)度窗口信息的參數(shù)不為空時(shí),游戲C安裝包能 夠向該參數(shù)的內(nèi)存地址空間拋出自身的安裝進(jìn)度數(shù)據(jù)。
子步驟5、游戲大廳讀取上述接收安裝進(jìn)度的窗口信息參數(shù)的內(nèi)存地址 空間,從而獲取游戲C的安裝進(jìn)度。
由上述實(shí)施例可見,相比現(xiàn)有技術(shù),應(yīng)用本發(fā)明,不需要在希望獲取其
算法,而只需在該軟件程序中實(shí)現(xiàn)簡單的接收安裝進(jìn)度數(shù)據(jù)的操作,并在生 成待安裝軟件的安裝包過程中,使該安裝包在運(yùn)行時(shí)能夠解析安裝時(shí)的命令 行、獲取命令行中安裝參數(shù)的內(nèi)存地址空間、不斷計(jì)算并向該參數(shù)的內(nèi)存地 址空間拋出自身的安裝進(jìn)度數(shù)據(jù)。因此,本發(fā)明解決了獲得軟件安裝進(jìn)度時(shí), 軟件通用性不強(qiáng)的問題。
綜上所述,以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的 保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改 進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種安裝包生成裝置,其特征在于,包括安裝包腳本存儲模塊,用于存儲需要打包的軟件的文件列表信息,并存儲用來解析命令行的指令描述信息,所述命令行在執(zhí)行所述軟件的安裝包時(shí),攜帶安裝參數(shù);編譯器模塊,用于將所述安裝包腳本存儲模塊中存儲的所述指令描述信息轉(zhuǎn)換為解析命令行指令,生成包括用來計(jì)算和發(fā)送所述軟件的安裝進(jìn)度的指令,壓縮安裝包腳本存儲模塊中存儲的所述文件列表信息中的所有文件,生成所述軟件的安裝包,在所述安裝包中包含上述指令的集合。
2、 如權(quán)利要求1所述的裝置,其特征在于,所述安裝包腳本存儲模塊包括 文件列表信息存儲單元,用于存儲需要打包的軟件的文件列表信息; 解析命令行指令信息存儲單元,用于存儲用來解析命令行的指令描述信息,所述命令行在執(zhí)行所述軟件的安裝包時(shí),攜帶安裝參數(shù)。
3、 如權(quán)利要求l所述的裝置,其特征在于,所述編譯器模塊包括 解析命令行指令生成單元,用于將安裝包腳本存儲模塊中存儲的所述指令描述信息轉(zhuǎn)換為解析命令行指令,并將所述指令發(fā)送給安裝包生成單元;計(jì)算和發(fā)送安裝進(jìn)度指令生成單元,用于生成包括用來計(jì)算和發(fā)送所述軟 件的安裝進(jìn)度的指令,并將所述指令發(fā)送給安裝包生成單元;安裝包生成單元用于接收解析命令行指令生成單元生成的解析命令行指 令,接收計(jì)算和發(fā)送安裝進(jìn)度指令生成單元生成的包括用來計(jì)算和發(fā)送所述軟 件的安裝進(jìn)度的指令,壓縮安裝包腳本存儲模塊中存儲的所述文件列表信息中 的所有文件,生成所述軟件的安裝包,在所述安裝包中包含上述指令的集合。
4、 如權(quán)利要求l所述的裝置,其特征在于,所述用來計(jì)算和發(fā)送所述軟件 的安裝進(jìn)度的指令包括每當(dāng)從安裝包中拷貝一個(gè)文件到待安裝目錄中,根據(jù)已完成的文件拷貝 數(shù)量和所述安裝包中存儲的文件總數(shù),計(jì)算軟件的安裝進(jìn)度=軟件中已完成的拷貝數(shù)量/軟件的文件總數(shù)當(dāng)所述安裝參數(shù)不為空時(shí),所述安裝包向所述安裝參數(shù)的內(nèi)存地址空間拋 出所述安裝進(jìn)度。
5、 如權(quán)利要求1至4任一項(xiàng)所述的裝置,其特征在于, 所述安裝包腳本存儲^t塊進(jìn)一步包括其他操作指令信息存儲單元,用于存儲所述安裝包在運(yùn)行過程中需要進(jìn)行的其他操作的指令描述信息;編譯器模塊進(jìn)一步包括其他操作指令生成單元,用于將安裝包腳本存儲模塊中其他操作指令信息存儲單元存儲的所述其他操作的指令描述信息轉(zhuǎn)換為其他操作指令,將所述指令發(fā)送給安裝包生成單元;安裝包生成單元進(jìn)一步用于接收其他操作指令生成單元生成的其他操作指令,并使所生成的所述安裝包包含所述其他操作指令。
6、 一種安裝包生成方法,其特征在于,包括建立軟件的安裝包腳本,在所述安裝包腳本中存儲需要打包的軟件的文件 列表信息,并存儲用來解析命令行的指令描述信息,所述命令行在執(zhí)行所述軟 件的安裝包時(shí),攜帶安裝參數(shù);將所述安裝包腳本中存儲的所述指令描述信息轉(zhuǎn)換為解析命令行指令;生成包括用來計(jì)算和發(fā)送所述軟件的安裝進(jìn)度的指令;壓縮所述安裝包腳本中存儲的所述文件列表信息中的所有文件,生成所述 軟件的安裝包,在所述安裝包中包含上述指令的集合。
7、 如權(quán)利要求6所述的方法,其特征在于,所述計(jì)算和發(fā)送所述軟件的安 裝進(jìn)度包括每當(dāng)從安裝包中拷貝一個(gè)文件到待安裝目錄中,根據(jù)已完成的文件拷貝 數(shù)量和所述安裝包中存儲的文件總數(shù),計(jì)算軟件的安裝進(jìn)度=軟件,,數(shù)量;軟件的又件總數(shù)當(dāng)所述安裝參數(shù)不為空時(shí),所述安裝包向所述安裝參數(shù)的內(nèi)存地址空間拋出所述安裝進(jìn)度。
8、 如權(quán)利要求6所述的方法,其特征在于,進(jìn)一步包括 建立所述安裝包腳本時(shí),在所述安裝包腳本中存儲所述安裝包在運(yùn)行過程中需要進(jìn)行的其他操作的指令描述信息;將安裝包腳本中存儲的所述其他操作的指令描述信息轉(zhuǎn)換為其他操作指令;在所生成的所述安裝包中包含所述其他操作指令。
9、 一種安裝進(jìn)度傳遞方法,其特征在于,包括根據(jù)權(quán)利要求6至8任一項(xiàng)所述的安裝包生成方法,生成軟件的安裝包; 任意一個(gè)希望獲得所述軟件的安裝進(jìn)度的其他軟件以攜帶有安裝參數(shù)的命 令行執(zhí)行所述安裝包,獲取所述軟件的安裝進(jìn)度。
10、 如權(quán)利要求9所述的方法,其特征在于,所述任意一個(gè)希望獲得所述 軟件的安裝進(jìn)度的其他軟件以攜帶有安裝參數(shù)的命令行執(zhí)行所述安裝包,獲取 所述軟件的安裝進(jìn)度包括所述其他軟件以命令行方式執(zhí)行所述安裝包,并在命令行中包含安裝參數(shù);所述安裝包解析所述命令行,獲取所述安裝參數(shù)的內(nèi)存地址空間;所述安裝包從自身拷貝所述軟件的文件到待安裝目錄中,每當(dāng)從安裝包中拷貝 一個(gè)文件到待安裝目錄中,計(jì)算所述軟件的安裝進(jìn)度;當(dāng)所述安裝參數(shù)不為空時(shí),所述安裝包向所述安裝參數(shù)的內(nèi)存地址空間拋出所述安裝進(jìn)度;所述其他軟件讀取所述安裝參數(shù)的內(nèi)存地址空間,獲取所述軟件的安裝進(jìn)度。
11、 如權(quán)利要求10所述的方法,其特征在于,所述計(jì)算所述軟件的安 裝進(jìn)度包括每當(dāng)從安裝包中拷貝一個(gè)文件到待安裝目錄中,根據(jù)已完成的 文件拷貝數(shù)量和所述安裝包中存儲的文件總數(shù),計(jì)算軟件中已完成的拷貝數(shù)量軟件的安裝進(jìn)度軟件的文件總數(shù)
全文摘要
本發(fā)明公開了一種安裝包生成方法,包括建立軟件的安裝包腳本,在所述安裝包腳本中存儲需要打包的軟件的文件列表信息,并存儲用來解析命令行的指令描述信息,所述命令行在執(zhí)行所述軟件的安裝包時(shí),攜帶安裝參數(shù);將所述安裝包腳本中存儲的所述指令描述信息轉(zhuǎn)換為解析命令行指令;生成包括用來計(jì)算和發(fā)送所述軟件的安裝進(jìn)度的指令;壓縮所述安裝包腳本中存儲的所述文件列表信息中的所有文件,生成所述軟件的安裝包,在所述安裝包中包含上述指令的集合。同時(shí),本發(fā)明還提供了一種安裝包生成裝置,以及一種安裝進(jìn)度傳遞方法。本發(fā)明解決了獲得軟件安裝進(jìn)度時(shí),軟件通用性不強(qiáng)的問題。
文檔編號G06F9/44GK101196815SQ20071030163
公開日2008年6月11日 申請日期2007年12月27日 優(yōu)先權(quán)日2007年12月27日
發(fā)明者楊采石, 陳韶華 申請人:騰訊科技(深圳)有限公司