新四季網

Apk文件的合併傳輸及分解運行方法、裝置和系統的製作方法

2023-08-10 05:24:31

Apk文件的合併傳輸及分解運行方法、裝置和系統的製作方法
【專利摘要】本發明實施例公開了一種安卓安裝包APK文件的合併傳輸及分解運行方法、裝置和系統,涉及數據處理領域,用於解決現有技術中如何對APK文件進行合併傳輸的問題。本發明中,由網關設備將多個待合併APK文件進行合併傳輸,接收設備得到包含各被合併APK文件數據的合併APK文件後,釋放出各被合併APK文件並分別安裝執行,從而解決了如何對APK文件進行合併傳輸和分解的問題。
【專利說明】APK文件的合併傳輸及分解運行方法、裝置和系統
【技術領域】
[0001]本發明涉及數據處理領域,尤其涉及一種APK文件的合併傳輸及分解運行方法、裝置和系統。
【背景技術】
[0002]APK 是安卓(Android)安裝包(Android Package)的縮寫。APK 是類似 SymbianSis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。APK文件實質是ZIP格式,但後綴名被修改為APK,通過UnZip解壓後,可以看到Dex文件,Dex是Android Dalvik執行程序(DalvikVM Executes)的全稱,即,Dex中包含的並非Java ME的字節碼而是Dalvik字節碼。合併APK文件多被用來滿足一些特殊的需求,例如用戶想只通過一次運行操作來運行多個APK文件,或者用戶需要將自己的程序附著在其他APK程序上一起運行,或者在已有的APK文件程序上增加其他程序功能等等。APK文件的合併不能像Windows PE可執行文件一樣採用幾個文件直接拼接的方式,因為APK程序是在一個單獨的虛擬機中執行,無法訪問到外層的安裝包。而且APK文件是ZIP格式,如果將幾個ZIP文件直接合併在一起,也會引起格式混亂,出現無法解包的錯誤。到目前為止沒有已知成熟的APK文件合併技術,如何實現網絡中APK文件的合併傳輸是目前需要解決的問題。

【發明內容】

[0003]本發明實施例提供一種APK文件的合併傳輸及分解運行方法、裝置和系統,用於解決現有技術中如何對APK文件進行合併傳輸和分解的問題。
[0004]一種安卓安裝包APK文件的合併傳輸方法,該方法包括:
[0005]網關設備獲取保存的分解頭APK文件的固定數據體,所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;
[0006]網關設備在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含所述固定數據體、所述待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備;
[0007]網關設備在獲取到其他待合併APK文件後,基於所述結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將所述合併APK文件中未發送給接收設備的數據發送給接收設備。
[0008]一種APK文件的分解運行方法,該方法包括:
[0009]接收設備接收網關設備發送的結合體文件,該結合體文件中包含分解頭APK文件的固定數據體、一個被合併APK文件的文件頭結構和數據;所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;
[0010]接收設備接收網關設備發送的合併APK文件中未發送給接收設備的數據,所述合併APK文件中包含其他被合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各被合併APK文件的文件目錄結構、以及籤名文件;
[0011]接收設備在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併APK文件釋放出來並分別安裝和執行。
[0012]一種安卓安裝包APK文件的合併傳輸裝置,該裝置包括:
[0013]獲取單元,用於獲取保存的分解頭APK文件的固定數據體,所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;
[0014]第一數據傳輸單元,用於在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含所述固定數據體、所述待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備;
[0015]第二數據傳輸單元,用於在獲取到其他待合併APK文件後,基於所述結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將所述合併APK文件中未發送給接收設備的數據發送給接收設備。
[0016]一種APK文件的分解運行裝置,該裝置包括:
[0017]第一數據接收單元,用於接收網關設備發送的結合體文件,該結合體文件中包含分解頭APK文件的固定數據體、一個待合併APK文件的文件頭結構和數據;所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;
[0018]第二數據接收單元,用於接收網關設備發送的合併APK文件中未發送給接收設備的數據,所述合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;
[0019]安裝執行單元,用於在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各待合併文件釋放出來並分別安裝和執行。
[0020]一種安卓安裝包APK文件的合併傳輸及分解運行系統,該系統包括:
[0021 ] 網關設備,用於獲取保存的分解頭APK文件的固定數據體,所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含所述固定數據體、所述待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備;在獲取到其他待合併APK文件後,基於所述結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將所述合併APK文件中未發送給接收設備的數據發送給接收設備;
[0022]接收設備,用於接收網關設備發送的結合體文件;接收網關設備發送的合併APK文件中未發送給接收設備的數據;在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併文件釋放出來並分別安裝和執行。
[0023]本發明實施例提供的方案中,網關設備在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含用於安裝執行被合併APK文件的分解頭APK文件的固定數據體、該待合併APK文件的文件頭結構和數據;網關設備將該結合體文件發送給接收設備;在獲取到其他待合併APK文件後,基於該結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將合併APK文件中未發送給接收設備的數據發送給接收設備,接收設備接收結合體文件的數據後,繼續接收合併APK文件中未發送給接收設備的數據,在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併APK文件釋放出來並分別安裝和執行。可見,本方案中由網關設備將多個待合併APK文件進行合併傳輸,接收設備得到包含各被合併APK文件數據的合併APK文件後,釋放出各被合併APK文件並分別安裝執行,從而解決了如何對APK文件進行合併傳輸和分解的問題。
【專利附圖】

【附圖說明】
[0024]圖1為本發明實施例提供的APK文件的合併傳輸方法流程示意圖;
[0025]圖2為本發明實施例提供的APK文件的分解運行方法流程示意圖;
[0026]圖3a為本發明實施例一中的APK文件合併傳輸流程示意圖;
[0027]圖3b為本發明實施例一中的合併APK文件的結構示意圖;
[0028]圖3c為本發明實施例二中的合併APK文件的分解運行流程示意圖;
[0029]圖4為本發明實施例提供的APK文件的合併傳輸及分解運行系統結構示意圖;
[0030]圖5為本發明實施例提供的APK文件的合併傳輸裝置結構示意圖;
[0031]圖6為本發明實施例提供的APK文件的分解運行裝置結構示意圖。
【具體實施方式】
[0032]為了解決如何對APK文件進行合併傳輸和分解的問題,本發明實施例提供一種APK文件的合併傳輸及分解運行方法。
[0033]參見圖1,本發明實施例提供的APK文件的合併傳輸方法,包括以下步驟:
[0034]步驟10:網關設備獲取保存的分解頭APK文件的固定數據體,該分解頭APK文件是用於安裝執行被合併APK文件的APK文件;
[0035]步驟11:網關設備在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含固定數據體、該待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備;
[0036]步驟12:網關設備在獲取到其他待合併APK文件後,基於該結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將合併APK文件中未發送給接收設備的數據發送給接收設備。
[0037]進一步的,在獲取保存的分解頭APK文件的固定數據體之前,網關設備讀取預先設置的分解頭APK文件,將該分解頭APK文件分解為固定數據體、固定文件目錄結構和可變數據體三部分,並將分解出的三部分分別單獨保存;其中,固定數據體包括分解頭APK文件中固定不變的子文件的文件頭結構和文件數據體,固定文件目錄結構包括分解頭APK文件中固定不變的子文件的文件目錄結構;可變數據體包括分解頭APK文件中可變文件(例如籤名文件)的數據。
[0038]具體的,步驟11中,生成結合體文件的具體實現方法可以如下:
[0039]網關設備根據待合併APK文件中的數據計算得到待合併APK文件的文件頭結構,將該待合併APK文件的文件頭結構和該待合併APK文件中的數據依次拼接在分解頭APK文件的固定數據體的尾部,得到結合體文件。這裡,待合併APK文件的文件頭結構包括待合併APK文件中各子文件的文件頭結構。
[0040]具體的,步驟12中,基於結合體文件生成合併APK文件的具體實現方法可以如下:
[0041]首先,網關設備根據其他待合併APK文件的數據計算得到其他待合併APK文件的文件頭結構和文件目錄結構,獲取保存的分解頭APK文件的固定文件目錄結構,將其他待合併APK文件的文件頭結構、其他待合併APK文件的數據、固定文件目錄結構和其他待合併APK文件的文件目錄結構,依次拼接在結合體文件的尾部,得到合併ZIP文件;這裡,其他待合併APK文件的文件頭結構包括其他待合併APK文件中各子文件的文件頭結構,其他待合併APK文件的文件目錄結構包括其他待合併APK文件中各子文件的文件目錄結構。
[0042]然後,網關設備對合併ZIP文件進行籤名,形成包含籤名文件的合併APK文件。這裡,可以使用籤名工具對合併ZIP文件進行籤名,將分解頭APK文件中的籤名文件替換為新生成的籤名文件。
[0043]進一步的,網關設備在將結合體文件發送給接收設備後,保持與接收設備的網絡連接狀態;網關設備在將合併APK文件中未發送給接收設備的數據發送給接收設備後,關閉與接收設備的網絡傳輸鏈路。
[0044]在將結合體文件發送給接收設備之前的操作運行時間很短,所以不會對網絡中接收設備的網絡造成阻塞。
[0045]本方法中,ZIP格式的文件主要由三部分數據組成,分別是文件頭結構、文件數據體和文件目錄結構。通過ZIP文件尾部的文件目錄結構可以定位到其中每一個文件的起始位置。
[0046]文件頭結構中包含的數據類型主要包括:文件循環校驗碼(CRC)值,文件原始大小、文件壓縮後大小、壓縮方法、最後修改日期時間、文件名長度等。
[0047]文件目錄結構中包含的數據類型主要包括:文件CRC值、文件原始大小、文件壓縮後大小、壓縮方法、最後修改日期時間、文件名長度、文件頭結構的偏移量等。
[0048]步驟11和步驟12中網關設備獲取到APK文件的前提是能夠識別APK文件,識別出APK文件的方法可以為:首先依據文件後綴名稱判斷文件類型,然後根據文件類型識別出APK文件。
[0049]本發明中的網關設備能夠部分或全部的、直接或間接的獲取接收設備的數據;該網關設備包括傳輸網關、應用網關、中繼網關、接入網關、安全網關等。
[0050]參見圖2,本發明實施例提供一種APK文件的分解運行方法,包括以下步驟:
[0051]步驟20:接收設備接收網關設備發送的結合體文件,該結合體文件中包含分解頭APK文件的固定數據體、一個被合併APK文件的文件頭結構和數據;所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;
[0052]步驟21:接收設備接收網關設備發送的合併APK文件中未發送給接收設備的數據,所述合併APK文件中包含其他被合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各被合併APK文件的文件目錄結構、以及籤名文件;
[0053]步驟22:接收設備在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併APK文件釋放出來並分別安裝和執行。[0054]具體的,步驟22中,通過運行該合併APK文件將各被合併APK文件釋放出來並分別安裝和執行,具體實現可以如下:
[0055]通過運行該合併APK文件中的分解頭APK文件,從所述合併APK文件中讀取各被合併APK文件的數據,並將讀取的每個被合併APK文件的數據分別轉存為一個APK文件;
[0056]申請系統管理ROOT權限,在獲取到ROOT權限後將轉存的各APK文件進行安裝和運行。
[0057]上述讀取出各被合併APK文件的數據,具體可以通過調用Android系統的1/0操作庫函數來實現。
[0058]上述申請ROOT權限具體可以通過調用Android系統命令來實現,是否能獲取到ROOT權限由系統自身屬性決定。
[0059]下面結合具體實施例對本發明進行說明:
[0060]實施例一:
[0061]本實施例中,在網關內設置一個網絡數據控制系統,即APK文件的合併傳輸裝置所在系統,其數據控制範圍內有一臺主機C,網關可以部分或者全部的獲得主機C的網絡傳輸數據。數據控制系統需要使傳輸到主機C的每一個APK文件,都與另一個APK文件(命名為「APK文件I」)進行合併,並且在主機C運行合併後的文件時,APK文件I和其他APK文件也同時被運行。如圖3a所示,實施過程包括如下步驟:
[0062]對於發送APK文件的一方(伺服器S):
[0063]步驟301:通過網絡發送APK文件2 ;
[0064]對於執行APK文件合併的一方(網關):
[0065]步驟302:對主機C收發的網絡數據流進行監控;
[0066]步驟303:在監控到APK文件數據流時,接收伺服器S發送的APK數據,將APK數據保存到APK文件2 ;
[0067]識別APK文件數據流的方法有很多,比如超文本傳輸協議(HTTP)在請求傳輸文件過程中會發送文件名,依據後綴名可以判斷文件類型;也可以使用APK文件本身的特徵進行判斷,由於APK文件是ZIP格式,其中就會包含ZIP頭的固定特徵碼「PK」等(例如十六進位 0x50,0x4B, 0x03, 0x04)。
[0068]步驟304:讀取APK文件I和分解頭APK文件,生成並保存結合體文件,具體的:
[0069]根據APK文件I中的數據計算得到APK文件I的文件頭結構,將APK文件I的文件頭結構和APK文件I中的數據依次拼接在分解頭APK文件的固定數據體的尾部,得到結合體文件;
[0070]文件頭結構的標識是固定值十六進位0x04034B50,其中主要的數據類型包括文件循環校驗碼(CRC)值、文件原始大小、文件壓縮後大小、壓縮方法、最後修改日期時間、文件名長度、文件名等。文件名可以任意定義,比如「aSSetS\reSl」。需要預先按照ZIP格式將分解頭APK文件分為固定數據體、固定文件目錄結構和可變數據體三部分,並將分解出的三部分分別單獨保存。
[0071]步驟305:讀取結合體文件,通過主機C的文件傳輸鏈路將結合體文件發送到主機C,此時主機C所要接收的文件數據並未結束,數據鏈路仍然保持打開。由於數據控制系統在主機C的網關上,所以可以對主機C的任何網絡傳輸鏈路進行修改和控制。[0072]步驟306:讀取結合體文件和APK文件2,生成新的結合體文件,具體的:
[0073]根據APK文件2的數據計算得到APK文件2的文件頭結構,將APK文件2的文件頭結構和APK文件2的數據依次拼接在結合體文件的尾部,形成新的結合體文件;文件頭結構的數據內容同步驟304,文件名可以任意定義,比如「assets\res2」。
[0074]步驟307:生成並保存合併ZIP文件,具體的根據APK文件I和APK文件2的數據計算得到APK文件I和APK文件2中的各子文件的文件目錄結構,將分解頭APK文件的固定文件目錄結構、APK文件I中各子文件的文件目錄結構和APK文件2中各子文件的文件目錄結構依次拼接在新的結合體文件的尾部,形成合併ZIP文件;
[0075]文件目錄結構的標識是固定值十六進位0x02014B50,其中主要的數據類型包括文件CRC校驗值、文件原始大小、文件壓縮後大小、壓縮方法、最後修改日期時間、文件名長度、文件頭結構的偏移量、文件名等。
[0076]步驟308:讀取合併ZIP文件,生成並保存合併APK文件,具體的:對合併ZIP文件執行籤名操作,生成一個合法的包含籤名文件的合併APK文件。
[0077]步驟309:讀取合併APK文件中未發送給主機C的數據,將讀取的數據發送給主機C0
[0078]可以首先從合併APK文件中去除掉已發送給主機C的結合體數據,然後將剩餘部分的數據通過主機C的文件傳輸鏈路發送給主機C。主機C接收完數據後整個文件傳輸鏈路關閉,主機C會將接收到的所有數據形成一個文件,該文件就是合併APK文件。
[0079]對於接收APK文件的一方(主機C):
[0080]步驟310:接收網關發送的結合體文件的數據;
[0081]步驟311:繼續接收網關發送的合併APK文件中未發送給主機C的數據;
[0082]步驟312:在數據接收完畢後形成合併APK文件,將合併APK文件保存,合併APK文件的結構如圖3b所示。
[0083]實施例二:
[0084]本實施例基於實施例一,具體說明實施例一中主機C得到合併APK文件後,對合併APK文件中的各被合併APK文件分別安裝運行的方法,如圖3c所示,實施過程包括如下步驟:
[0085]步驟321:主機C向安卓系統申請ROOT權限;
[0086]步驟322:判斷是否獲得ROOT權限,若是,則到步驟323,否則,到步驟329 ;
[0087]步驟323:從資源目錄中讀取被合併的APK數據;
[0088]步驟324-步驟325:將讀取到的第一個資源文件的數據轉存為新文件及APK文件I ;將讀取到的第二個資源文件的數據轉存為新文件及APK文件2 ;
[0089]步驟326-步驟328:通過調用系統命令將APK文件I安裝到系統中,並且調用運行安裝後的文件;過調用系統命令將APK文件2安裝到系統中,並且調用運行安裝後的文件;此時,APK文件I和APK文件2均被運行起來,本流程結束。
[0090]步驟329:退出本流程。
[0091]參見圖4,本發明實施例提供一種APK文件的合併傳輸及分解運行系統,該系統包括:
[0092]網關設備40,用於獲取保存的分解頭APK文件的固定數據體,所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含所述固定數據體、所述待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備;在獲取到其他待合併APK文件後,基於所述結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將所述合併APK文件中未發送給接收設備的數據發送給接收設備;
[0093]接收設備41,用於接收網關設備發送的結合體文件;接收網關設備發送的合併APK文件中未發送給接收設備的數據;在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併APK文件釋放出來並分別安裝和執行。
[0094]進一步的,所述網關設備40還用於:
[0095]保存單元,用於在獲取保存的分解頭APK文件的固定數據體之前,讀取預先設置的分解頭APK文件,將該分解頭APK文件分解為固定數據體、固定文件目錄結構和可變數據體三部分,並將分解出的三部分分別單獨保存;所述固定數據體包括所述分解頭APK文件中固定不變的子文件的文件頭結構和文件數據體,所述固定文件目錄結構包括所述分解頭APK文件中固定不變的子文件的文件目錄結構;所述可變數據體包括所述分解頭APK文件中可變文件的數據。
[0096]進一步的,所述網關設備40具體用於:
[0097]根據所述待合併APK文件中的數據計算得到所述待合併APK文件的文件頭結構,將該待合併APK文件的文件頭結構和該待合併APK文件中的數據依次拼接在所述固定數據體的尾部,得到結合體文件。
[0098]進一步的,所述網關設備40具體用於:
[0099]根據其他待合併APK文件的數據計算得到其他待合併APK文件的文件頭結構和文件目錄結構,獲取保存的所述分解頭APK文件的固定文件目錄結構,將其他待合併APK文件的文件頭結構、其他待合併APK文件的數據、所述固定文件目錄結構和其他待合併APK文件的文件目錄結構,依次拼接在所述結合體文件的尾部,得到合併ZIP文件;
[0100]對所述合併ZIP文件進行籤名,形成包含籤名文件的合併APK文件。
[0101]進一步的,所述網關設備40還用於:
[0102]在將所述結合體文件發送給接收設備後,保持與接收設備的網絡連接狀態;
[0103]在將所述合併APK文件中未發送給接收設備的數據發送給接收設備後,關閉與接收設備的網絡傳輸鏈路。
[0104]進一步的,所述接收設備41具體用於:
[0105]通過運行該合併APK文件中的分解頭APK文件,從所述合併APK文件中讀取各被合併APK文件的數據,並將讀取的每個被合併APK文件的數據分別轉存為一個APK文件;
[0106]申請系統管理ROOT權限,在獲取到ROOT權限後將轉存的各APK文件進行安裝和運行。
[0107]參見圖5,本發明實施例提供一種APK文件的合併傳輸裝置,該裝置包括:
[0108]獲取單元50,用於獲取保存的分解頭APK文件的固定數據體,所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;
[0109]第一數據傳輸單元51,用於在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含所述固定數據體、所述待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備;
[0110]第二數據傳輸單元52,用於在獲取到其他待合併APK文件後,基於所述結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將所述合併APK文件中未發送給接收設備的數據發送給接收設備。
[0111]進一步的,該裝置還包括:
[0112]保存單元53,用於在獲取保存的分解頭APK文件的固定數據體之前,讀取預先設置的分解頭APK文件,將該分解頭APK文件分解為固定數據體、固定文件目錄結構和可變數據體三部分,並將分解出的三部分分別單獨保存;所述固定數據體包括所述分解頭APK文件中固定不變的子文件的文件頭結構和文件數據體,所述固定文件目錄結構包括所述分解頭APK文件中固定不變的子文件的文件目錄結構;所述可變數據體包括所述分解頭APK文件中可變文件的數據。
[0113]進一步的,所述第一數據傳輸單元51具體用於:
[0114]根據所述待合併APK文件中的數據計算得到所述待合併APK文件的文件頭結構,將該待合併APK文件的文件頭結構和該待合併APK文件中的數據依次拼接在所述固定數據體的尾部,得到結合體文件。
[0115]進一步的,所述第二數據傳輸單元52具體用於:
[0116]根據其他待合併APK文件的數據計算得到其他待合併APK文件的文件頭結構和文件目錄結構,獲取保存的所述分解頭APK文件的固定文件目錄結構,將其他待合併APK文件的文件頭結構、其他待合併APK文件的數據、所述固定文件目錄結構和其他待合併APK文件的文件目錄結構,依次拼接在所述結合體文件的尾部,得到合併ZIP文件;
[0117]對所述合併ZIP文件進行籤名,形成包含籤名文件的合併APK文件。
[0118]進一步的,所述第一數據傳輸單元51在將所述結合體文件發送給接收設備後,保持與接收設備的網絡連接狀態;
[0119]所述第二數據傳輸單元52在將所述合併APK文件中未發送給接收設備的數據發送給接收設備後,關閉與接收設備的網絡傳輸鏈路。
[0120]參見圖6,本發明實施例提供一種APK文件的分解運行裝置,該裝置包括:
[0121]第一數據接收單元60,用於接收網關設備發送的結合體文件,該結合體文件中包含分解頭APK文件的固定數據體、一個被合併APK文件的文件頭結構和數據;所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;
[0122]第二數據接收單元61,用於接收網關設備發送的合併APK文件中未發送給接收設備的數據,所述合併APK文件中包含其他被合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各被合併APK文件的文件目錄結構、以及籤名文件;
[0123]安裝執行單元62,用於在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併文件釋放出來並分別安裝和執行。
[0124]進一步的,所述安裝執行單元62具體用於:
[0125]通過運行該合併APK文件中的分解頭APK文件,從所述合併APK文件中讀取各被合併APK文件的數據,並將讀取的每個被合併APK文件的數據分別轉存為一個APK文件;[0126]申請系統管理ROOT權限,在獲取到ROOT權限後將轉存的各APK文件進行安裝和運行。
[0127]綜上,本發明的有益效果包括:
[0128]本發明實施例提供的方案中,網關設備在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含用於安裝執行被合併APK文件的分解頭APK文件的固定數據體、該待合併APK文件的文件頭結構和數據;網關設備將該結合體文件發送給接收設備;在獲取到其他待合併APK文件後,基於該結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將合併APK文件中未發送給接收設備的數據發送給接收設備,接收設備接收結合體文件的數據後,繼續接收合併APK文件中未發送給接收設備的數據,在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併APK文件釋放出來並分別安裝和執行。可見,本方案中由網關設備將多個待合併APK文件進行合併傳輸,接收設備得到包含各被合併APK文件數據的合併APK文件後,釋放出各被合併APK文件並分別安裝執行,從而解決了如何對APK文件進行合併傳輸和分解的問題。
[0129]本發明方案同樣可以使用於對已存儲的APK文件進行靜態合併。採用動態合併的方式,不需要預先處理被合併的APK文件,對網絡中傳輸的任何APK文件都可以實時起效。利用本發明,可以滿足一些需要在網絡環境下對APK文件進行動態合併的需求。
[0130]本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0131]這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0132]這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0133]儘管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明範圍的所有變更和修改。
[0134]顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。
【權利要求】
1.一種安卓安裝包APK文件的合併傳輸方法,其特徵在於,該方法包括: 網關設備獲取保存的分解頭APK文件的固定數據體,所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件; 網關設備在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含所述固定數據體、所述待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備; 網關設備在獲取到其他待合併APK文件後,基於所述結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將所述合併APK文件中未發送給接收設備的數據發送給接收設備。
2.如權利要求1所述的方法,其特徵在於,在獲取保存的分解頭APK文件的固定數據體之前,進一步包括: 網關設備讀取預先設置的分解頭APK文件,將該分解頭APK文件分解為固定數據體、固定文件目錄結構和可變數據體三部分,並將分解出的三部分分別單獨保存;所述固定數據體包括所述分解頭APK文件中固定不變的子文件的文件頭結構和文件數據體,所述固定文件目錄結構包括所述分解頭APK文件中固定不變的子文件的文件目錄結構;所述可變數據體包括所述分解頭APK文件中可變文件的數據。
3.如權利要求1所述的方法,其特徵在於,所述生成結合體文件,具體包括: 網關設備根據所述待合併APK文件中的數據計算得到所述待合併APK文件的文件頭結構,將該待合併APK文件的文件頭結構和該待合併APK文件中的數據依次拼接在所述固定數據體的尾部,得到結合體文件。
4.如權利要求1所述的方法,其特徵在於,所述基於所述結合體文件生成合併APK文件,具體包括: 網關設備根據其他待合併APK文件的數據計算得到其他待合併APK文件的文件頭結構和文件目錄結構,獲取保存的所述分解頭APK文件的固定文件目錄結構,將其他待合併APK文件的文件頭結構、其他待合併APK文件的數據、所述固定文件目錄結構和其他待合併APK文件的文件目錄結構,依次拼接在所述結合體文件的尾部,得到合併ZIP文件; 網關設備對所述合併ZIP文件進行籤名,形成包含籤名文件的合併APK文件。
5.如權利要求1-4中任一所述的方法,其特徵在於,網關設備在將所述結合體文件發送給接收設備後,保持與接收設備的網絡連接狀態; 網關設備在將所述合併APK文件中未發送給接收設備的數據發送給接收設備後,關閉與接收設備的網絡傳輸鏈路。
6.—種APK文件的分解運行方法,其特徵在於,該方法包括: 接收設備接收網關設備發送的結合體文件,該結合體文件中包含分解頭APK文件的固定數據體、一個被合併APK文件的文件頭結構和數據;所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件; 接收設備接收網關設備發送的合併APK文件中未發送給接收設備的數據,所述合併APK文件中包含其他被合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各被 合併APK文件的文件目錄結構、以及籤名文件;接收設備在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併APK文件釋放出來並分別安裝和執行。
7.如權利要求6所述的方法,其特徵在於,所述通過運行該合併APK文件將各被合併APK文件釋放出來並分別安裝和執行,具體包括: 通過運行該合併APK文件中的分解頭APK文件,從所述合併APK文件中讀取各被合併APK文件的數據,並將讀取的每個被合併APK文件的數據分別轉存為一個APK文件; 申請系統管理ROOT權限,在獲取到ROOT權限後將轉存的各APK文件進行安裝和運行。
8.一種安卓安裝包APK文件的合併傳輸裝置,其特徵在於,該裝置包括: 獲取單元,用於獲取保存的分解頭APK文件的固定數據體,所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件; 第一數據傳輸單元,用於在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含所述固定數據體、所述待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備; 第二數據傳輸單元,用於在獲取到其他待合併APK文件後,基於所述結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將所述合併APK文件中未發送給接收設備的數據發送給接收設備。
9.一種APK文件的分解運行裝置,其特徵在於,該裝置包括: 第一數據接收單元,用於接收網關設備發送的結合體文件,該結合體文件中包含分解頭APK文件的固定數據體、一個待合併APK文件的文件頭結構和數據;所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件; 第二數據接收單元,用於接收網關設備發送的合併APK文件中未發送給接收設備的數據,所述合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件; 安裝執行單元,用於在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各待合併文件釋放出來並分別安裝和執行。
10.一種安卓安裝包APK文件的合併傳輸及分解運行系統,其特徵在於,該系統包括: 網關設備,用於獲取保存的分解頭APK文件的固定數據體,所述分解頭APK文件是用於安裝執行被合併APK文件的APK文件;在獲取到一個待合併APK文件後,生成結合體文件,該結合體文件中包含所述固定數據體、所述待合併APK文件的文件頭結構和數據;將該結合體文件發送給接收設備;在獲取到其他待合併APK文件後,基於所述結合體文件生成合併APK文件,該合併APK文件中包含其他待合併APK文件的文件頭結構和數據、所述分解頭APK文件的固定文件目錄結構和各待合併APK文件的文件目錄結構、以及籤名文件;將所述合併APK文件中未發送給接收設備的數據發送給接收設備; 接收設備,用於接收網關設備發送的結合體文件;接收網關設備發送的合併APK文件中未發送給接收設備的數據;在數據接收完畢得到合併APK文件後,通過運行該合併APK文件將各被合併文件釋放出來並分別安裝和執行。
【文檔編號】H04L29/08GK103595814SQ201310600731
【公開日】2014年2月19日 申請日期:2013年11月25日 優先權日:2013年11月25日
【發明者】夏巍 申請人:北京銳安科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀