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