本發(fā)明屬于移動互聯(lián)網(wǎng)領域,更具體地,涉及一種安卓程序安裝包的快速批量生成方法及系統(tǒng)。
背景技術:
:開發(fā)出一款移動應用軟件后,一般除了放在公司官網(wǎng)/個人主頁提供給用戶下載使用外,還有一個很重要的推廣方式,就是應用商店,比如蘋果公司的appstore、谷歌公司的androidmarket。要想自己的應用軟件能被更多的用戶了解、使用,發(fā)布到應用商店是必不可少的推廣渠道。目前移動互聯(lián)網(wǎng)行業(yè)發(fā)展迅猛,各種手機、平板電腦、智能電視軟件層出不窮,作為移動軟件的主要下載渠道應用商店也是各種各樣,目前國內的應用商店多達上百種。所以一般推廣做的比較好的應用,每次版本升級,都會至少同步發(fā)布到幾十家應用商店中。為了方便日后統(tǒng)計各個應用商店的下載量、用戶活躍度、使用習慣等等,就需要為針對每個應用商店的應用打包出不同的程序安裝包。由此在統(tǒng)計數(shù)據(jù)時,能區(qū)分出哪些用戶是對應通過哪個應用商店下載的軟件。這樣在每發(fā)布一次程序版本,就需要生產(chǎn)幾十個程序安裝包,現(xiàn)有技術中通過如下方式來生成程序安裝包:(1)通過androidstudio編程工具生成安裝包,但是上述方法中每1次只能生產(chǎn)1個安裝包,每生產(chǎn)1個安裝包大概需要5分鐘,若生產(chǎn)50個安裝包,則需要大量的重復操作,效率很低,而且每次都是人工操作,出錯率比較高;(2)通過編寫Gradle打包腳本來實現(xiàn)批量生成安裝包,在上述方法中由于Gradle每生產(chǎn)1個安裝包,都需要重新構建1次項目工程,構建1次項目工程大概需要5分鐘,構建項目工程與計算機性能有關,雖然減少了人工操作,但是效率還仍有待提高。總之,在上述方法中,每次打包都需要重新完成編譯build,而這個過程的存在使得批量打包耗費時間長,嚴重地降低了針對應用商店程序的安裝包的批量打包效率。技術實現(xiàn)要素:針對現(xiàn)有技術的以上缺陷或改進需求,本發(fā)明提供了一種安卓程序安裝包的快速批量生成方法系統(tǒng),其目的在于提高大程序安裝包的批量生成效率。為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種安卓程序安裝包的快速批量生成方法,其特征在于,該生成方法包括如下步驟:打包文件準備:生成未簽名安卓程序安裝包,設置一具有多個渠道號標識符的文件;解壓所述未簽名安卓程序安裝包;依次讀取所述渠道號標識符的文件中的所述渠道號標識符,對所述解壓后的未簽名安卓程序安裝包中的配置文件的渠道號進行修改成為所述渠道號標識符,修改后重新打包由此實現(xiàn)安卓程序安裝包的批量生成。進一步地,所述相應的安裝程序中的配置文件為AndroidManifest。進一步地,所述渠道號標識符的文件的標識符用于標識所述安卓程序安裝包對應的應用商店。進一步地,所述渠道號標識符換行編輯。進一步地,所述打包文件準備步驟中還包括生成所述安卓程序安裝包的密鑰文件。進一步地,所述重新打包修改所述渠道號后的安卓程序安裝包的步驟之后還包括對每個打包的安卓程序安裝包填寫所述密鑰文件的路徑和密碼。進一步地,所述解壓、修改和重新打包步驟通過編寫腳本文件自動執(zhí)行。另外方面,本發(fā)明還提出了一種安卓程序安裝包的快速批量生成系統(tǒng),其特征在于,該系統(tǒng)主要包括:未簽名的安卓程序安裝包生成模塊、腳本運行模塊和存儲模塊;所述腳本運行模塊包括簽名程序安裝包生成模塊以及界面指令單元;批量打包存儲模塊包括第一存儲單元以及第二存儲單元;所述界面指令單元接收腳本指令,所述簽名程序安裝包生成模塊依據(jù)所述腳本指令完成簽名程序安裝包的生成;所述簽名程序安裝包生成模塊包括解壓子單元、修改子單元;所述解壓子單元用于調用未簽名的安卓程序安裝包進行解壓并且將解壓后的文件保存于所述第一存儲單元;所述修改子單元用于讀取所述第一存儲單元中的渠道號標識符文件并對所述解壓后的未簽名安卓程序安裝包文件中的配置文件AndroidManifest文件的渠道號修改為渠道號標識符并重新打包。進一步地,所述第一存儲單元中一直存儲所述未簽名的安卓程序安裝包解壓后的副本。進一步地,所述簽名程序安裝包生成模塊還包括密鑰添加子單元;所述密鑰添加子單元對所述修改子單元產(chǎn)生的安裝包添加從所述第一存儲單元讀取的密鑰文件生成簽名安裝包發(fā)送于所述第二存儲單元??傮w而言,通過本發(fā)明所構思的以上技術方案與現(xiàn)有技術相比,能夠取得下列有益效果:(1)本發(fā)明采用直接修改安裝包中的渠道名,不需要編譯,由于采用的手段是通過執(zhí)行設計好的python腳本,由計算機自動完成生產(chǎn)程序包的工作,減少人工干預度,出錯率為0;(2)執(zhí)行效率高,平均每一個安裝包的生成時間減少為20秒,在生產(chǎn)法批量的安裝包時,提高的工作效率尤為可觀。附圖說明圖1是按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成方法的基本流程示意圖;圖2是按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成方法中的運行流程細節(jié)過程示意圖;圖3是按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成方法中腳本執(zhí)行的自動化打包的流程示意圖;圖4是按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成系統(tǒng)的組成框圖;圖5是按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成系統(tǒng)中的腳本模塊中的程序安裝包生成單元的組成框圖;圖6是按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成方法的核心過程對比示意圖。具體實施方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術特征只要彼此之間未構成沖突就可以相互組合。按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成方法,其主要解決如下方面的問題:安裝安卓程序安裝包的打包工具;對適用于不同應用商店的安卓程序安裝包進行標識;實現(xiàn)自動化執(zhí)行程序包的生成。其中按照本發(fā)明執(zhí)行的快速批量生成方法,其區(qū)別于現(xiàn)有技術中的關鍵部分在于標識和自動化執(zhí)行的,即在對不同應用商店的安卓程序安裝包進行標識的時候,設計出了一種新的方式,并且采用基于腳本編寫的自動化執(zhí)行過程,能夠顯著地提高安卓程序安裝包的快速批量生成的效率。其實質上來說,就是現(xiàn)有技術中的打包方法,在完成編譯build的過程后,來修改針對應用商店的標識符code,再重新生成未簽名的APK,簽名之后再重新編譯,而在本發(fā)明中,直接采用解壓的方式對未簽名APK實現(xiàn)操作,從而再對安卓程序安裝包中的文件來進行修改code的操作,節(jié)省了反復編譯的時間。具體地來說,解決上述的問題主要經(jīng)過如下的手段來執(zhí)行:(1)解決打包問題首先需要準備好計算機軟件工具:jdk、apkTool,確保它們正確安裝到計算機中,通過這2個工具執(zhí)行android程序的打包,此時生成的安卓程序安裝包包括未針對應用商店標識的安裝包文件,以及針對每個安裝包的簽名密鑰key文件及密碼;(2)對適用于不同應用商店的安卓程序安裝包進行標識在每個安卓程序安裝包的應用程序的配置文件中,設置一個渠道號標識ChannelCode,這個標識是有待后續(xù)進行批量打包的時候寫入,屬于配置文件中的一項內容,對其進行修改從而完成不同的應用商店分配不同的渠道號,同時生成一個專門統(tǒng)一存放上述待寫入的各個應用商店的ChannelCode標識符的文件,對所有的應用商店實現(xiàn)統(tǒng)一的應用管理,其中對該文件的格式并無要求,并且對存儲位置也沒有要求,只需要在后續(xù)執(zhí)行自動打包程序的時候能夠方便讀取其即可。(3)解決自動化執(zhí)行問題在本發(fā)明中,通過編寫python腳本,通過執(zhí)行python腳本實現(xiàn)對APK文件先解包、再對配置文件中的ChannelCode修改渠道號標識,最后再次打包。針對每個不同應用商店的安卓程序安裝包只需執(zhí)行一條命令,并等待計算機完成任務即可生成,并且整個批量打包過程只執(zhí)行一次編譯,按照此方式,順序執(zhí)行,由此可以完成安卓程序安裝包的快速批量生成。實施例1如圖1所示,本實施例涉及的方法主要包括如下核心流程:打包文件準備:包括未簽名安裝包、密鑰、密鑰路徑、渠道號標識符文件;解壓文件包:直接對未簽名安裝包實現(xiàn)解壓;修改安裝包中的配置文件中的渠道號;密鑰生成獲取安裝包。如圖2所示,在具體的執(zhí)行步驟上,按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成方法,整個快速批量程序包的生成包括如下步驟:STEP1:確定需要上傳的安裝包所對應的應用商店的信息,為每個應用商店分配標識符,一般該標識符為編號形式;STEP2:編寫應用商店渠道號標識符統(tǒng)一文件,該文件無任何格式要求,將針對每個不同應用商店的渠道號標識符之間采用可辨別提取的分隔符例如,#,{},等來區(qū)別編寫即可。將文件命名為channel,文件名無格式要求,但在之后的python腳本中需要通過該文件名來讀取該文件從而獲取應用商店相應的渠道號標識符,以便實現(xiàn)配置文件內容中的channel=”code”的code寫入為相應的渠道號標識符。STEP3:在計算機上安裝所需打包軟件工具:確保jdk、apkTool、python正確安裝到計算機中;STEP4:打包未簽名的程序包:利用androidstudio工具,打包出未簽名的應用程序安裝包;STEP5:通過apkTool.jar解壓上述打包出的未簽渠道名的應用程序安裝包;STEP6:修改解壓出來的應用程序中的配置文件AndroidManifest中的渠道號為從CHANNEL文件讀取出來的渠道號;STEP7:重新打包出簽渠道名的程序安裝包;STEP8:獲取待打包的應用程序的簽名秘鑰key及密碼;STEP9:為上述打包的程序安裝包填寫簽名秘鑰文件key的路徑及密碼;STEP10:重復上述STEP6-STEP9直到完成所有的批量程序安裝包的生成。實施例2如圖3所示,在完成上述的批量生成步驟中,本發(fā)明另外還通過編寫python腳本的方式來輔助自動執(zhí)行批量安裝包的生成,其中腳本的功能涉及的步驟如下:STEP1:通過apkTool.jar解壓上述打包出的未簽渠道名的應用程序安裝包,該未簽渠道名的安裝包是暫時未針對每個應用商店生成的安裝包;STEP2:讀取渠道號標識符文件中的其中一條渠道號標識符;STEP3:修改解壓出來的應用程序中的配置文件AndroidManifest中的渠道號為讀取出來的渠道號標識符;STEP4:重新打包出簽渠道名的程序安裝包;STEP5:填寫好簽名秘鑰文件key的路徑及密碼由此完成針對一個應用商店的安卓程序安裝包的生成;重復上述步驟STEP2~STEP5,由此完成針對所有的應用商店的安卓程序安裝包的快速批量生成。按照本實施例實現(xiàn)的安卓程序安裝包的快速批量生成方法,其腳本執(zhí)行的批量打包生成過程具體操作過程如下:(1)將簽名程序安裝包的秘鑰key文件、apktool.jar文件、渠道號標識符文件channel、python腳本文件BuildTool.py放到某統(tǒng)一文件目錄下;(2)在windows的命令行界面,進入到該文件目錄下;(3)在windows的命令行界面,輸入命令pythonBuildTool.py即可自動打包好渠道號文件中涉及的所有的渠道安裝包??傊?,按照本發(fā)明實現(xiàn)的安卓程序安裝包的快速批量生成方法,發(fā)現(xiàn)依據(jù)對配置文件的一處修改不需要重新編譯,并且為適應于本發(fā)明的打包方法,舍棄了目前采用的基于上層開發(fā)工具來點擊按鈕直接實現(xiàn)一鍵打包的操作方式,而是采用腳本直接去調用開發(fā)工具來實現(xiàn)打包,使得整個過程能夠實現(xiàn)更加快速的打包處理。如下表1所示,即是按照本發(fā)明實現(xiàn)的批量打包方法和現(xiàn)有技術中的批量打包方法的過程對比示意圖,從其中可以發(fā)現(xiàn)過程上的實質區(qū)別,因為節(jié)省了build編譯的過程,顯著地節(jié)省了時間。表1打包方法的步驟順序對比現(xiàn)有技術的打包方法本發(fā)明的打包方法BuildBuild修改code生成未簽名APK生成未簽名APK解壓簽名修改codeBuild簽名修改code修改code簽名如圖4、5另外一方面,本發(fā)明還公開了一種用于實現(xiàn)安卓程序安裝包的快速生成的系統(tǒng),該系統(tǒng)主要包括:未簽名安卓程序安裝包生成模塊、腳本運行模塊和存儲模塊,其中腳本運行模塊包括簽名程序安裝包生成模塊以及界面指令單元;其中存儲模塊包括第一存儲單元以及第二存儲單元;其中未簽名安程序安裝包生成模塊主要用于采用打包工具生成未簽名的安裝包文件apktool.jar文件;其中第一存儲單元用于存儲編輯好的渠道號標識符文件,密鑰文件,以及用于存儲未簽名的安卓程序安裝包文件apktool.jar文件;其中,簽名程序安裝包生成模塊包括解壓子單元、修改子單元以及密鑰添加子單元;解壓子單元用于調用安裝包文件apktool.jar文件進行解壓并且將解壓后的文件保存于第一存儲單元;修改子單元用于調用渠道號標識符文件并讀取渠道號標識符對解壓后的apktool.jar文件中的配置文件AndroidManifest文件的渠道號進行修改從而生成該渠道號對應的應用商店的安裝包;密鑰添加子單元對上述修改渠道號后的安裝包重新打包并添加密鑰文件生成最終的應用商店的安裝包發(fā)送于第二存儲單元;其中界面運行單元用于提供進入腳本命令的界面接口,接收啟動調用腳本運行模塊的命令,由此驅動整個系統(tǒng)完成安裝包的快速批量生成。如圖6所示,展示了本發(fā)明的生成過程與現(xiàn)有的區(qū)別,在圖6的左邊,要經(jīng)過好幾個階段的APK過程,使得生成時間顯著增長,而在本系統(tǒng)中,第一存儲單元中一直存放有安裝包文件apktool.jar文件解壓后的副本,不斷調用其生成針對各個應用商店發(fā)布的安裝包,存儲于第二存儲單元中,從而生成批量的安裝程序包。其中界面指令單元可以為windows系統(tǒng)下的帶CMD的命令行運行界面。本領域的技術人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。當前第1頁1 2 3