安卓安裝包轉換方法和裝置以及運行應用的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種安卓安裝包轉換方法和裝置以及運行應用的方法和裝置。響應于用戶基于第一應用的客戶端運行第二應用的請求,獲取通過轉換第二應用的安卓安裝包而構建的新數(shù)據(jù)包,然后基于第一應用的客戶端,使用新數(shù)據(jù)包運行第二應用。該轉換方法包括:獲取安卓安裝包中的基礎可執(zhí)行文件;從基礎可執(zhí)行文件獲取資源類文件;將資源類文件中特定于安卓系統(tǒng)的內(nèi)容修改為特定于第一應用的客戶端的內(nèi)容,以形成新資源類文件;將新資源類文件編譯為附加可執(zhí)行文件;以及構建新數(shù)據(jù)包,新數(shù)據(jù)包包括基礎可執(zhí)行文件和附加可執(zhí)行文件。由此,使得可以基于第一應用,在不需要安裝第二應用的情況下,直接運行第二應用,從而可以為用戶提供更好的體驗。
【專利說明】安卓安裝包轉換方法和裝置以及運行應用的方法和裝置
【技術領域】
[0001] 本發(fā)明涉及安卓系統(tǒng)中的應用,特別涉及轉換安卓安裝包的方法和裝置以及基于 第一應用的客戶端運行第二應用的方法和裝置。
【背景技術】
[0002] 安卓(Android)系統(tǒng)是由谷歌公司推出的移動終端操作系統(tǒng)。
[0003] 基于安卓系統(tǒng),用戶可以在應用市場(或應用商店)中購買/下載并安裝應用,然 后可以在移動終端(例如手機等)上運行應用。
[0004]目前,在安卓系統(tǒng)中,每個應用在安裝前都以安卓安裝包(APK)的方式存在。用 戶如果想在安卓系統(tǒng)中使用某個應用,則需要使用系統(tǒng)提供的應用安裝API(應用程序接 口),在應用商店或其他應用中,將此應用的APK安裝到系統(tǒng)中,之后用戶可以直接運行這 個應用。
[0005] 不只是應用市場,還有很多應用,都會在其中提供一些其它應用的介紹和鏈接。用 戶可以通過點擊這些鏈接來下載其它應用。
[0006] 根據(jù)目前的技術,如果要在一個應用(例如應用市場)中,不經(jīng)過對其它應用的安 裝過程而直接啟動(運行)其它應用,而該其它應用尚沒有被安裝在安卓系統(tǒng)中,則需要采 用插件技術。
[0007] 插件一般指為了在一個主程序中實現(xiàn)比較通用的功能,把業(yè)務相關或者讓可以讓 用戶自定義擴展的功能不附加在主程序中,主程序可在運行時安裝和卸載。
[0008] 在安卓系統(tǒng)中如何實現(xiàn)插件也已經(jīng)被廣泛傳播,實現(xiàn)的原理都是實現(xiàn)一套插件接 口,把插件實現(xiàn)編成apk包或者dex文件,然后,在運行時使用DexClassLoader動態(tài)加載進 來。
[0009] 通過這樣的方式,可以在一個應用中,直接啟動并使用通過插件技術實現(xiàn)的apk。
[0010] 然而,在通過插件來實現(xiàn)在一個應用中啟動其它應用的情況下,需要將被啟動的 應用本身修改為安卓插件的形式。而這樣的修改往往需要被啟動的應用的開發(fā)者自己來執(zhí) 行。因此,在一般情況下,這種方案是不方便的,甚至是難以或不能做到的。
【發(fā)明內(nèi)容】
[0011] 本發(fā)明所要解決的技術問題是提供一種轉換安卓安裝包的方法和裝置以及基于 第一應用的客戶端運行第二應用的方法和裝置,使得不需要將應用修改為安卓插件的形式 即可在第一應用中不經(jīng)過對第二應用的安裝過程而直接啟動/運行尚沒有被安裝在安卓 系統(tǒng)中的第二應用。
[0012] 根據(jù)本發(fā)明的一個方面,提供了 一種對第二應用的安卓安裝包進行轉換以適于在 第一應用中運行的方法,包括:獲取安卓安裝包中的基礎可執(zhí)行文件;從基礎可執(zhí)行文件 獲取資源類文件;將資源類文件中特定于安卓系統(tǒng)的內(nèi)容修改為特定于第一應用的客戶端 的內(nèi)容,以形成新資源類文件;將新資源類文件編譯為附加可執(zhí)行文件;以及構建新數(shù)據(jù) 包,新數(shù)據(jù)包包括基礎可執(zhí)行文件和附加可執(zhí)行文件。
[0013] 優(yōu)選地,該方法還可以包括:檢索安卓安裝包的資源文件目錄中是否有XML布局 文件;如果檢索到XML布局文件,則通過安卓系統(tǒng)軟件開發(fā)工具包將XML布局文件的內(nèi)容合 并到資源類文件中。
[0014] 優(yōu)選地,該方法還可以包括:判斷在基礎可執(zhí)行文件的實際執(zhí)行過程中是否會用 到XML布局文件。如果判定沒有用到XML布局文件,則忽略XML布局文件。
[0015] 優(yōu)選地,將資源類文件中特定于安卓系統(tǒng)的內(nèi)容修改為特定于第一應用的客戶端 的內(nèi)容的步驟可以包括:將資源類文件中依賴安卓活動對象的編程語句修改為依賴第一應 用的客戶端管理的相應活動對象的編程語句;和/或?qū)①Y源類文件中與安卓系統(tǒng)進行交互 的編程語句修改為與第一應用的客戶端進行交互的編程語句。
[0016] 優(yōu)選地,該方法還可以包括:對基礎可執(zhí)行文件進行修改,以便將其中依賴于安卓 系統(tǒng)對服務對象和活動對象的生命周期進行管理的內(nèi)容,修改為依賴于第一應用的客戶端 對服務對象和活動對象的生命周期進行管理的內(nèi)容。新數(shù)據(jù)包中包括的是修改后的基礎可 執(zhí)行文件。
[0017] 優(yōu)選地,可以按照適于第一應用的客戶端執(zhí)行的結構來構建新數(shù)據(jù)包。新數(shù)據(jù)包 適于在第一應用中無需安裝而直接運行第二應用。
[0018] 優(yōu)選地,該方法還可以包括:獲取安卓安裝包中的資源文件;以第一應用的客戶 端能夠提取的格式壓縮資源文件,以形成資源壓縮包。新數(shù)據(jù)包還包括資源壓縮包。
[0019] 優(yōu)選地,該方法還可以包括:創(chuàng)建針對第一應用的客戶端的新簽名文件。新數(shù)據(jù)包 還包括新簽名文件。
[0020] 優(yōu)選地,該方法還可以包括:獲取安卓安裝包中除基礎可執(zhí)行文件、XML布局文 件、資源文件以及原有的簽名文件之外的至少部分其余文件。新數(shù)據(jù)包還包括上述至少部 分其余文件。
[0021] 優(yōu)選地,該方法可以是在所述第一應用的服務器端執(zhí)行的?;蛘?,該方法也可以是 在所述第一應用的客戶端執(zhí)行的。
[0022] 根據(jù)本發(fā)明的另一個方面,提供了一種基于第一應用的客戶端運行第二應用的方 法,包括:響應于用戶基于第一應用的客戶端運行第二應用的請求,獲取根據(jù)上述轉換方法 針對第二應用構建的新數(shù)據(jù)包;基于第一應用的客戶端,使用新數(shù)據(jù)包運行第二應用。
[0023] 優(yōu)選地,獲取新數(shù)據(jù)包的步驟可以包括:向第一應用的服務器端發(fā)送獲取針對第 二應用構建的新數(shù)據(jù)包的請求;從第一應用的服務器端接收新數(shù)據(jù)包。
[0024] 優(yōu)選地,獲取新數(shù)據(jù)包的步驟可以包括:向第一應用的服務器端發(fā)送獲取第二應 用的安卓安裝包的請求;從第一應用的服務器端接收安卓安裝包;基于安卓安裝包,使用 上述轉換方法,構建新數(shù)據(jù)包。
[0025] 優(yōu)選地,使用新數(shù)據(jù)包運行第二應用的步驟可以包括:獲取第二應用對安卓系統(tǒng) 資源的調(diào)用請求;基于調(diào)用請求,調(diào)用安卓系統(tǒng)資源。
[0026] 優(yōu)選地,使用新數(shù)據(jù)包運行第二應用的步驟可以包括:獲取第二應用的數(shù)據(jù)輸入 請求;基于數(shù)據(jù)輸入請求,從安卓系統(tǒng)資源獲取數(shù)據(jù);將數(shù)據(jù)提供給第二應用。
[0027] 優(yōu)選地,使用新數(shù)據(jù)包運行第二應用的步驟可以包括:使第一應用的客戶端管理 和控制第二應用的服務對象和活動對象的生命周期;以及使第一應用的客戶端替代安卓系 統(tǒng)為第二應用提供全部的安卓系統(tǒng)服務與功能。
[0028] 優(yōu)選地,在使用新數(shù)據(jù)包運行第二應用的步驟中,不需要安裝第二應用而直接使 用新數(shù)據(jù)包運行第二應用。
[0029] 根據(jù)本發(fā)明的另一個方面,提供了一種對第二應用的安卓安裝包進行轉換以適于 在第一應用中運行的裝置,包括:用于獲取安卓安裝包中的基礎可執(zhí)行文件的裝置;用于 從基礎可執(zhí)行文件獲取資源類文件的裝置;用于將資源類文件中特定于安卓系統(tǒng)的內(nèi)容修 改為特定于第一應用的客戶端的內(nèi)容以形成新資源類文件的裝置;用于將新資源類文件編 譯為附加可執(zhí)行文件的裝置;以及用于構建新數(shù)據(jù)包的裝置,新數(shù)據(jù)包包括基礎可執(zhí)行文 件和附加可執(zhí)行文件。
[0030] 優(yōu)選地,該裝置還可以包括:用于檢索安卓安裝包的資源文件目錄中是否有XML 布局文件的裝置;用于在檢索到XML布局文件的情況下通過安卓系統(tǒng)軟件開發(fā)工具包將 XML布局文件的內(nèi)容合并到資源類文件中的裝置。
[0031] 優(yōu)選地,該裝置還可以包括:用于在檢索到XML布局文件的情況下判斷在基礎可 執(zhí)行文件的實際執(zhí)行過程中是否會用到XML布局文件的裝置。如果判定沒有用到XML布局 文件,則忽略XML布局文件。
[0032] 優(yōu)選地,將資源類文件中特定于安卓系統(tǒng)的內(nèi)容修改為特定于第一應用的客戶端 的內(nèi)容以形成新資源類文件的裝置包括:用于將資源類文件中依賴安卓活動對象的編程語 句修改為依賴第一應用的客戶端管理的相應活動對象的編程語句的裝置;和/或用于將資 源類文件中與安卓系統(tǒng)進行交互的編程語句修改為與第一應用的客戶端進行交互的編程 語句的裝置。
[0033] 優(yōu)選地,該裝置還可以包括:用于對基礎可執(zhí)行文件進行修改的裝置,以便將其中 依賴于安卓系統(tǒng)對服務對象和活動對象的生命周期進行管理的內(nèi)容,修改為依賴于第一應 用的客戶端對服務對象和活動對象的生命周期進行管理的內(nèi)容。新數(shù)據(jù)包中包括的是修改 后的基礎可執(zhí)行文件。
[0034] 優(yōu)選地,用于構建新數(shù)據(jù)包的裝置可以按照適于第一應用的客戶端執(zhí)行的結構來 構建新數(shù)據(jù)包。新數(shù)據(jù)包適于在第一應用中無需安裝而直接運行第二應用。
[0035] 優(yōu)選地,該裝置還可以包括:用于獲取安卓安裝包中的資源文件的裝置;用于以 第一應用的客戶端能夠提取的格式壓縮資源文件以形成資源壓縮包的裝置。新數(shù)據(jù)包還包 括資源壓縮包。
[0036] 優(yōu)選地,該裝置還可以包括:用于創(chuàng)建針對第一應用的客戶端的新簽名文件的裝 置。新數(shù)據(jù)包還包括新簽名文件。
[0037] 優(yōu)選地,該裝置還可以包括:用于獲取安卓安裝包中除基礎可執(zhí)行文件、XML布局 文件、資源文件以及原有的簽名文件之外的至少部分其余文件的裝置。新數(shù)據(jù)包還包括上 述至少部分其余文件。
[0038] 根據(jù)本發(fā)明的另一個方面,提供了一種基于第一應用的客戶端運行第二應用的裝 置,包括:用于響應于用戶基于第一應用的客戶端運行第二應用的請求獲取根據(jù)上述轉換 裝置針對第二應用構建的新數(shù)據(jù)包的裝置;用于基于第一應用的客戶端使用新數(shù)據(jù)包運行 第二應用的裝置。
[0039] 優(yōu)選地,用于獲取新數(shù)據(jù)包的裝置包括:用于向第一應用的服務器端發(fā)送獲取針 對第二應用構建的新數(shù)據(jù)包的請求的裝置;用于從第一應用的服務器端接收新數(shù)據(jù)包的裝 置。
[0040] 優(yōu)選地,用于獲取新數(shù)據(jù)包的裝置包括:用于向第一應用的服務器端發(fā)送獲取第 二應用的安卓安裝包的請求的裝置;用于從第一應用的服務器端接收安卓安裝包的裝置; 用于基于安卓安裝包使用根據(jù)上述轉換裝置構建新數(shù)據(jù)包的裝置。
[0041] 優(yōu)選地,用于使用新數(shù)據(jù)包運行第二應用的裝置包括:用于獲取第二應用對安卓 系統(tǒng)資源的調(diào)用請求的裝置;用于基于調(diào)用請求調(diào)用安卓系統(tǒng)資源的裝置。
[0042] 優(yōu)選地,用于使用新數(shù)據(jù)包運行第二應用的裝置包括:用于獲取第二應用的數(shù)據(jù) 輸入請求的裝置;用于基于數(shù)據(jù)輸入請求從安卓系統(tǒng)資源獲取數(shù)據(jù)的裝置;用于將數(shù)據(jù)提 供給第二應用的裝置。
[0043] 優(yōu)選地,用于使用新數(shù)據(jù)包運行第二應用的裝置包括:用于使第一應用的客戶端 管理和控制第二應用的服務對象和活動對象的生命周期的裝置;以及用于使第一應用的客 戶端替代安卓系統(tǒng)為第二應用提供全部的安卓系統(tǒng)服務與功能的裝置。
[0044] 優(yōu)選地,用于基于第一應用的客戶端使用新數(shù)據(jù)包運行第二應用的裝置不需要安 裝第二應用而直接使用新數(shù)據(jù)包運行第二應用。
[0045] 根據(jù)本發(fā)明,使得可以在第一應用中提供試用/直接運行第二應用的功能,即基 于第一應用,在不需要安裝第二應用的情況下,直接運行第二應用,從而可以為用戶提供更 好的體驗。對于第二應用,不需要第二應用的開發(fā)者進行任何改動,也不需要用戶對其進行 任何改動,即可實現(xiàn)在第一應用中直接啟動。
[0046] 根據(jù)本發(fā)明,由第一應用例如應用市場接管了第二應用對系統(tǒng)的大部分(甚至全 部)依賴,進而實現(xiàn)了第一應用直接啟動第二應用的目的。
【專利附圖】
【附圖說明】
[0047] 圖1是根據(jù)本發(fā)明第一實施例轉換安卓安裝包的方法的流程圖。
[0048] 圖2是根據(jù)本發(fā)明第一實施例轉換安卓安裝包的方法的子步驟的流程圖。
[0049] 圖3是根據(jù)本發(fā)明第二實施例轉換安卓安裝包的方法的流程圖。
[0050] 圖4是根據(jù)本發(fā)明第三實施例基于第一應用的客戶端運行第二應用的方法的流 程圖。
[0051] 圖5是可以用來實現(xiàn)圖4中的步驟S400的一種方式的流程圖。
[0052] 圖6是可以用來實現(xiàn)圖4中的步驟S400的另一種方式的流程圖。
[0053] 圖7是圖4中的步驟S500的部分子步驟的流程圖。
[0054] 圖8是圖4中的步驟S500的部分子步驟的流程圖。
[0055] 圖9是圖4中的步驟S500的部分子步驟的流程圖。
【具體實施方式】
[0056] 下面參考附圖來詳細描述根據(jù)本發(fā)明對第二應用的安卓安裝包進行轉換以適于 在第一應用中運行的方法和裝置,以及基于第一應用的客戶端運行第二應用的方法和裝 置。
[0057] 在本公開文本中,第一應用可以是應用市場(應用商店),也可以是其它類型的應 用,其中例如可以提供第二應用的鏈接。用戶可以在第一用戶中接觸到第二應用,例如可以 根據(jù)需要下載第二應用。
[0058] 然而用戶有時候在下載安裝第二應用之前,希望能夠試用一下第二應用,或者說 嘗試一下第二應用,或者說在不經(jīng)過安裝過程的情況下直接運行第二應用,以便能夠充分 了解第二應用,然后再決定是否需要安裝第二應用。
[0059] 或者,用戶也有可能并不想安裝第二應用,而是希望每次都總是在第一應用(例 如應用商店)中直接運行第二應用。
[0060] 例如,用戶在使用一個基于安卓系統(tǒng)或者在安卓系統(tǒng)上修改得到的系統(tǒng)(比如 MIUI)的設備,例如手機/平板電腦/智能電視/機頂盒時,如果用戶想使用一個在當前設 備上沒有安裝的應用時,用戶需要在應用商店中安裝此應用,之后用戶可以打開安裝的這 個應用(應用是一個統(tǒng)稱,包括各種類別,比如但不限于游戲)。但是很多時候,用戶只是想 試用一下這個應用,或者用戶的設備上已經(jīng)沒有空間安裝這個應用。這時候,用戶就會遇到 問題,因為現(xiàn)在所有的此類應用商店或者類似的應用和功能,都沒有提供用戶直接啟動一 個應用的功能。
[0061] 通過本發(fā)明的技術方案,可以實現(xiàn)在任何基于安卓系統(tǒng)的系統(tǒng)里,在應用商店 (或者類似于應用商店的應用,或其它應用)中,不需要安裝而直接啟動并使用任何應用, 而且這個應用的開發(fā)者和用戶都不需要對這個應用進行任何修改。
[0062] 本發(fā)明提供了一種使得用戶能夠在第一應用中選擇試用或直接使用第二應用的 方案。
[0063] 為了在第一應用中,無需安裝而直接運行第二應用,需要對第二應用的現(xiàn)有安卓 安裝包(apk包)進行轉換,以便適于在第二應用中運行。
[0064] 一個APK包通常包括以下文件和目錄:
【權利要求】
1. 一種對第二應用的安卓安裝包進行轉換以適于在第一應用中運行的方法,包括: 獲取所述安卓安裝包中的基礎可執(zhí)行文件; 從所述基礎可執(zhí)行文件獲取資源類文件; 將所述資源類文件中特定于安卓系統(tǒng)的內(nèi)容修改為特定于所述第一應用的客戶端的 內(nèi)容,以形成新資源類文件; 將所述新資源類文件編譯為附加可執(zhí)行文件;以及 構建新數(shù)據(jù)包,所述新數(shù)據(jù)包包括所述基礎可執(zhí)行文件和所述附加可執(zhí)行文件。
2. 根據(jù)權利要求1所述的方法,還包括: 檢索所述安卓安裝包的資源文件目錄中是否有XML布局文件; 如果檢索到所述XML布局文件,則通過安卓系統(tǒng)軟件開發(fā)工具包將所述XML布局文件 的內(nèi)容合并到所述資源類文件中。
3. 根據(jù)權利要求2所述的方法,還包括: 判斷在所述基礎可執(zhí)行文件的實際執(zhí)行過程中是否會用到所述XML布局文件, 如果判定沒有用到所述XML布局文件,則忽略所述XML布局文件。
4. 根據(jù)權利要求1所述的方法,其中,將所述資源類文件中特定于安卓系統(tǒng)的內(nèi)容修 改為特定于所述第一應用的客戶端的內(nèi)容的步驟包括: 將所述資源類文件中依賴安卓活動對象的編程語句修改為依賴所述第一應用的客戶 端管理的相應活動對象的編程語句;和/或 將所述資源類文件中與安卓系統(tǒng)進行交互的編程語句修改為與所述第一應用的客戶 端進行交互的編程語句。
5. 根據(jù)權利要求1所述的方法,還包括: 對所述基礎可執(zhí)行文件進行修改,以便將其中依賴于安卓系統(tǒng)對服務對象和活動對象 的生命周期進行管理的內(nèi)容,修改為依賴于所述第一應用的客戶端對服務對象和活動對象 的生命周期進行管理的內(nèi)容, 其中,所述新數(shù)據(jù)包中包括的是修改后的基礎可執(zhí)行文件。
6. 根據(jù)權利要求1至5中任何一項所述的方法,其中, 按照適于所述第一應用的客戶端執(zhí)行的結構來構建所述新數(shù)據(jù)包, 所述新數(shù)據(jù)包適于在所述第一應用中無需安裝而直接運行所述第二應用。
7. 根據(jù)權利要求6所述的方法,還包括: 獲取所述安卓安裝包中的資源文件; 以所述第一應用的客戶端能夠提取的格式壓縮所述資源文件,以形成資源壓縮包, 其中,所述新數(shù)據(jù)包還包括所述資源壓縮包。
8. 根據(jù)權利要求6所述的方法,還包括: 創(chuàng)建針對所述第一應用的客戶端的新簽名文件, 其中,所述新數(shù)據(jù)包還包括所述新簽名文件。
9. 根據(jù)權利要求6所述的方法,還包括: 獲取安卓安裝包中除所述基礎可執(zhí)行文件、所述XML布局文件、所述資源文件以及原 有的簽名文件之外的至少部分其余文件, 其中,所述新數(shù)據(jù)包還包括所述至少部分其余文件。
10. 根據(jù)權利要求1至5中任何一項所述的方法,其中, 該方法是在所述第一應用的服務器端執(zhí)行的;或者 該方法是在所述第一應用的客戶端執(zhí)行的。
11. 一種基于第一應用的客戶端運行第二應用的方法,包括: 響應于用戶基于所述第一應用的客戶端運行第二應用的請求,獲取根據(jù)權利要求1至 10中任何一項所述的方法針對所述第二應用構建的新數(shù)據(jù)包; 基于所述第一應用的客戶端,使用所述新數(shù)據(jù)包運行所述第二應用。
12. 根據(jù)權利要求11所述的方法,其中,獲取新數(shù)據(jù)包的步驟包括: 向所述第一應用的服務器端發(fā)送獲取針對所述第二應用構建的新數(shù)據(jù)包的請求;以及 從所述第一應用的服務器端接收所述新數(shù)據(jù)包。
13. 根據(jù)權利要求11所述的方法,其中,獲取新數(shù)據(jù)包的步驟包括: 向所述第一應用的服務器端發(fā)送獲取所述第二應用的安卓安裝包的請求; 從所述第一應用的服務器端接收所述安卓安裝包;以及 基于所述安卓安裝包,使用根據(jù)權利要求1至10中任何一項所述的方法,構建所述新 數(shù)據(jù)包。
14. 根據(jù)權利要求11所述的方法,其中,使用所述新數(shù)據(jù)包運行所述第二應用的步驟 包括: 獲取所述第二應用對安卓系統(tǒng)資源的調(diào)用請求;以及 基于所述調(diào)用請求,調(diào)用所述安卓系統(tǒng)資源。
15. 根據(jù)權利要求11所述的方法,其中,使用所述新數(shù)據(jù)包運行所述第二應用的步驟 包括: 獲取所述第二應用的數(shù)據(jù)輸入請求; 基于所述數(shù)據(jù)輸入請求,從所述安卓系統(tǒng)資源獲取數(shù)據(jù);以及 將所述數(shù)據(jù)提供給所述第二應用。
16. 根據(jù)權利要求11所述的方法,其中,使用所述新數(shù)據(jù)包運行所述第二應用的步驟 包括: 使所述第一應用的客戶端管理和控制所述第二應用的服務對象和活動對象的生命周 期;以及 使所述第一應用的客戶端替代安卓系統(tǒng)為第二應用提供全部的安卓系統(tǒng)服務與功能。
17. 根據(jù)權利要求11所述的方法,其中,在使用所述新數(shù)據(jù)包運行所述第二應用的步 驟中,不需要安裝所述第二應用而直接使用所述新數(shù)據(jù)包運行所述第二應用。
18. -種對第二應用的安卓安裝包進行轉換以適于在第一應用中運行的裝置,包括: 用于獲取所述安卓安裝包中的基礎可執(zhí)行文件的裝置; 用于從所述基礎可執(zhí)行文件獲取資源類文件的裝置; 用于將所述資源類文件中特定于安卓系統(tǒng)的內(nèi)容修改為特定于所述第一應用的客戶 端的內(nèi)容以形成新資源類文件的裝置; 用于將所述新資源類文件編譯為附加可執(zhí)行文件的裝置;以及 用于構建新數(shù)據(jù)包的裝置,所述新數(shù)據(jù)包包括所述基礎可執(zhí)行文件和所述附加可執(zhí)行 文件。
19. 根據(jù)權利要求18所述的裝置,還包括: 用于檢索所述安卓安裝包的資源文件目錄中是否有XML布局文件的裝置; 用于在檢索到所述XML布局文件的情況下通過安卓系統(tǒng)軟件開發(fā)工具包將所述XML布 局文件的內(nèi)容合并到所述資源類文件中的裝置。
20. 根據(jù)權利要求18所述的裝置,還包括: 用于在檢索到XML布局文件的情況下判斷在所述基礎可執(zhí)行文件的實際執(zhí)行過程中 是否會用到所述XML布局文件的裝置, 如果判定沒有用到所述XML布局文件,則忽略所述XML布局文件。
21. 根據(jù)權利要求18所述的裝置,其中,將所述資源類文件中特定于安卓系統(tǒng)的內(nèi)容 修改為特定于所述第一應用的客戶端的內(nèi)容以形成新資源類文件的裝置包括: 用于將所述資源類文件中依賴安卓活動對象的編程語句修改為依賴所述第一應用的 客戶端管理的相應活動對象的編程語句的裝置;和/或 用于將所述資源類文件中與安卓系統(tǒng)進行交互的編程語句修改為與所述第一應用的 客戶端進行交互的編程語句的裝置。
22. 根據(jù)權利要求18所述的裝置,還包括: 用于對所述基礎可執(zhí)行文件進行修改的裝置,以便將其中依賴于安卓系統(tǒng)對服務對象 和活動對象的生命周期進行管理的內(nèi)容,修改為依賴于所述第一應用的客戶端對服務對象 和活動對象的生命周期進行管理的內(nèi)容, 所述新數(shù)據(jù)包中包括的是修改后的基礎可執(zhí)行文件。
23. 根據(jù)權利要求18至22中任何一項所述的裝置,其中, 用于構建新數(shù)據(jù)包的裝置按照適于所述第一應用的客戶端執(zhí)行的結構來構建所述新 數(shù)據(jù)包, 其中,所述新數(shù)據(jù)包適于在所述第一應用中無需安裝而直接運行所述第二應用。
24. 根據(jù)權利要求23所述的裝置,還包括: 用于獲取所述安卓安裝包中的資源文件的裝置; 用于以所述第一應用的客戶端能夠提取的格式壓縮所述資源文件以形成資源壓縮包 的裝置, 其中,所述新數(shù)據(jù)包還包括所述資源壓縮包。
25. 根據(jù)權利要求23所述的裝置,還包括: 用于創(chuàng)建針對所述第一應用的客戶端的新簽名文件的裝置, 其中,所述新數(shù)據(jù)包還包括所述新簽名文件。
26. 根據(jù)權利要求23所述的裝置,還包括: 用于獲取安卓安裝包中除所述基礎可執(zhí)行文件、所述XML布局文件、所述資源文件以 及原有的簽名文件之外的至少部分其余文件的裝置, 其中,所述新數(shù)據(jù)包還包括所述至少部分其余文件。
27. -種基于第一應用的客戶端運行第二應用的裝置,包括: 用于響應于用戶基于所述第一應用的客戶端運行第二應用的請求獲取根據(jù)權利要求 18至26中任何一項所述的裝置針對所述第二應用構建的新數(shù)據(jù)包的裝置; 用于基于所述第一應用的客戶端使用所述新數(shù)據(jù)包運行所述第二應用的裝置。
28. 根據(jù)權利要求27所述的裝置,其中,用于獲取新數(shù)據(jù)包的裝置包括: 用于向所述第一應用的服務器端發(fā)送獲取針對所述第二應用構建的新數(shù)據(jù)包的請求 的裝置; 用于從所述第一應用的服務器端接收所述新數(shù)據(jù)包的裝置。
29. 根據(jù)權利要求27所述的裝置,其中,用于獲取新數(shù)據(jù)包的裝置包括: 用于向所述第一應用的服務器端發(fā)送獲取所述第二應用的安卓安裝包的請求的裝 置; 用于從所述第一應用的服務器端接收所述安卓安裝包的裝置; 用于基于所述安卓安裝包使用根據(jù)權利要求18至26中任何一項所述的裝置構建所述 新數(shù)據(jù)包的裝置。
30. 根據(jù)權利要求27所述的裝置,其中,用于使用所述新數(shù)據(jù)包運行所述第二應用的 裝置包括: 用于獲取所述第二應用對安卓系統(tǒng)資源的調(diào)用請求的裝置; 用于基于所述調(diào)用請求調(diào)用所述安卓系統(tǒng)資源的裝置。
31. 根據(jù)權利要求27所述的裝置,其中,用于使用所述新數(shù)據(jù)包運行所述第二應用的 裝置包括: 用于獲取所述第二應用的數(shù)據(jù)輸入請求的裝置; 用于基于所述數(shù)據(jù)輸入請求從所述安卓系統(tǒng)資源獲取數(shù)據(jù)的裝置; 用于將所述數(shù)據(jù)提供給所述第二應用的裝置。
32. 根據(jù)權利要求27所述的裝置,其中,用于使用所述新數(shù)據(jù)包運行所述第二應用的 裝置包括: 用于使所述第一應用的客戶端管理和控制所述第二應用的服務對象和活動對象的生 命周期的裝置;以及 用于使所述第一應用的客戶端替代安卓系統(tǒng)為第二應用提供全部的安卓系統(tǒng)服務與 功能的裝置。
33. 根據(jù)權利要求27所述的裝置,其中,用于基于所述第一應用的客戶端使用所述新 數(shù)據(jù)包運行所述第二應用的裝置不需要安裝所述第二應用而直接使用所述新數(shù)據(jù)包運行 所述第二應用。
【文檔編號】H04L29/08GK104317573SQ201410522318
【公開日】2015年1月28日 申請日期:2014年10月3日 優(yōu)先權日:2014年10月3日
【發(fā)明者】李宏偉, 楊琦 申請人:李宏偉