一種云編譯實現Java應用安裝的方法、裝置及系統的制作方法
【技術領域】
[0001] 本發明涉及通信技術領域,尤其涉及一種云編譯實現Java應用安裝的方法、裝置 及系統。
【背景技術】
[0002] Java是一種可以撰寫跨平臺應用軟件的面向對象的程序設計語言。Java技術具 有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用于個人PC、數據中心、游戲控制 臺、科學超級計算機、移動電話和互聯網,同時擁有全球最大的開發者專業社群。Java平臺 由Java虛擬機和Java應用程序接口搭建,Java語言則是進入這個平臺的通道,用Java語 言編寫并編譯的程序可以運行在這個平臺上。當前針對終端領域的Android平臺也是采用 Java進行應用程序開發。
[0003] 由于Android虛擬機相比原來的Java虛擬機的運行策略不一樣(Java虛擬機是 棧式運行方式,而Android虛擬機是采用寄存器運行方式),使得Android虛擬機在應用程 序安裝過程中,除了解壓*. apk文件和掃描*. dex文件等中間碼文件外,還需要針對當前硬 件設備進行二進制編譯,在編譯過程中添加針對當前硬件設備的硬件配置信息實現應用程 序優化的優化算法,將編譯得到的優化文件保存在系統中(上述編譯過程也稱編譯優化過 程)。應用程序運行時,硬件設備直接將編譯得到的優化文件以及相關的方法和類庫拷貝加 載到其內存,使得Java應用程序運行的時候性能得到改善。
[0004] 然而,現有技術中硬件設備安裝應用程序時,從應用市場上下載了 *. apk文件并 解壓出*. dex文件,然后進行bytecode掃描提取,進而根據當前硬件設備的配置信息轉碼 優化成為本地機器碼格式的*. oat文件。對應用程序進行優化安裝時,需要在轉碼成*. oat 文件之前調用編譯優化模塊,對其針對當前硬件設備的配置信息進行中間碼的優化編譯, 雖然使得應用程序運行時性能得以提升,但是需要將編譯優化放在終端設備上執行,占用 了終端設備的運行內存和存儲空間,使得應用程序的安裝時間變長,Java應用程序的安裝 用戶體驗差。
【發明內容】
[0005] 本發明實施例提供一種云編譯實現Java應用程序安裝的方法及裝置,可減少應 用程序優化安裝占用的設備內存,提高應用程序優化安裝的效率,增強應用程序安裝的用 戶體驗。
[0006] 本發明實施例第一方面提供了一種云編譯實現Java應用程序安裝的方法,其可 包括:
[0007] 終端設備將其硬件配置信息及目標應用程序的版本信息發送給應用市場服務器, 以通過所述應用市場服務器獲取與所述硬件配置信息及所述目標應用程序的版本信息對 應的所述目標應用程序的升級信息;
[0008] 所述終端設備接收所述應用市場服務器反饋的所述目標應用程序的升級信息,所 述升級信息包括:所述目標應用程序的版本信息對應的中間碼文件在云端服務器上編譯得 到的所述目標應用程序的最新版本信息對應的目標碼文件;
[0009] 所述終端設備根據所述升級信息對所述目標應用程序進行優化安裝,以更新所述 目標應用程序的版本。
[0010] 結合第一方面,在第一種可能的實現方式中,所述終端設備接收所述應用市場服 務器反饋的所述目標應用程序的升級信息,包括:
[0011] 所述終端設備接收所述應用市場服務器發送的所述目標應用程序的最新版本信 息對應的優化安裝包;
[0012] 其中,所述優化安裝包由所述目標應用程序的最新版本信息對應的目標碼文件打 包生成,所述目標碼文件由所述云端服務器根據所述目標應用程序的所述版本信息中包含 的所有功能對應的中間碼文件編譯得到,所述優化安裝包存儲于所述應用市場服務器。
[0013] 結合第一方面第一種可能的實現方式,在第二種可能的實現方式中,所述終端設 備根據所述升級信息對所述目標應用程序進行優化安裝,以更新所述目標應用程序的版 本,包括:
[0014] 所述終端設備根據所述優化安裝包重新安裝所述目標應用程序,以將所述目標應 用程序的所有功能的版本更新為最新版本。
[0015] 結合第一方面,在第三種可能的實現方式中,所述終端設備接收所述應用市場服 務器反饋的所述目標應用程序的升級信息,包括:
[0016] 所述終端設備接收所述應用市場服務器發送的所述目標應用程序的增量升級 包;
[0017] 其中,所述增量升級包由所述目標應用程序中的指定功能的最新版本信息的目標 碼文件打包生成,所述目標碼文件由所述云端服務器根據所述目標應用程序中待升級優化 的所述指定功能對應的中間碼文件編譯得到,所述增量升級包存儲于所述應用市場服務 器。
[0018] 結合第一方面第三種可能的實現方式,在第四種可能的實現方式中,所述終端設 備根據所述升級信息對所述目標應用程序進行優化安裝,以更新所述目標應用程序的版 本,包括:
[0019] 所述終端設備將所述目標應用程序的所述增量升級包與所述目標應用程序版本 信息對應的安裝包進行融合,以生成包含所述指定功能的最新版本信息的所述目標應用程 序的安裝包;
[0020] 根據所述安裝包重新安裝所述目標應用程序,以將所述目標應用程序的所述指定 功能的版本更新為最新版本。
[0021] 本發明實施例第二方面提供了一種云編譯實現Java應用程序安裝的方法,其可 包括:
[0022] 云端服務器獲取應用市場服務器發送的目標終端設備的硬件配置信息,以及所述 目標終端設備內置的目標應用程序的中間碼文件;
[0023] 所述云端服務器根據所述目標終端設備的硬件配置信息,以及所述云端服務器存 儲的終端設備的硬件配置信息與應用程序的版本信息的對應關系,判斷所述目標終端設備 內置的目標應用程序的版本是否為最新版本;
[0024] 若所述目標終端設備內置的目標應用程序的版本不是最新版本,則根據最新版本 信息對所述的目標應用程序的中間碼文件進行編譯,以得到所述目標應用程序的最新版本 信息對應的目標碼文件;
[0025] 所述云端服務器向所述應用市場服務器發送所述目標應用程序的最新版本信息 對應的目標碼文件,以通過所述應用市場服務器向所述目標終端設備發送所述目標應用程 序的最新版本信息對應的目標碼文件。
[0026] 結合第二方面,在第一種可能的實現方式中,所述云端服務器根據所述目標終端 設備的硬件配置信息,以及所述云端服務器存儲的終端設備的硬件配置信息與應用程序 的版本信息的對應關系,判斷所述目標終端設備內置的目標應用程序的版本是否為最新版 本,包括:
[0027] 所述云端服務器將所述目標終端設備的硬件配置信息與所述云端服務器存儲的 各個終端設備的硬件配置信息進行匹配,確定所述目標終端設備的硬件配置信息是否為所 述云端服務器存儲的所述各個終端設備的硬件配置信息中的任一個;
[0028] 若所述目標終端設備的硬件配置信息為所述云端服務器存儲的所述硬件配置信 息中的任一個,則根據所述各個終端設備的硬件配置信息與應用程序的版本信息的對應關 系,確定所述目標終端設備的硬件配置信息對應的所述目標應用程序的最新版本信息;
[0029] 將所述目標終端設備內置的所述目標應用程序的版本信息與所述目標應用程序 的最新版本信息進行匹配,以判斷所述目標終端設備內置的所述目標應用程序的版本是否 為最新版本。
[0030] 結合第二方面,在第二種可能的實現方式中,所述根據所述最新版本信息對所述 的目標應用程序的中間碼文件進行編譯,以得到所述目標應用程序的最新版本信息對應的 目標碼文件,包括:
[0031] 將所述目標終端設備內置的所述目標應用程序的版本信息與所述目標應用程序 的最新版本信息進行匹配,確定所述目標應用程序的最新版本信息中新增的指定功能的升 級信息;
[0032] 根據所述指定功能的升級信息對所述目標終端內置的所述目標應用程序的安裝 包中包含的中間碼文件進行編譯,以得到包含所述指定功能的最新版本信息的所述目標應 用程序的最新版本信息對應的目標碼文件,并將所述目標碼文件打包生成所述目標應用程 序的最新版本信息對應的優化安裝包。
[0033] 結合第二方面,在第三種可能的實現方式中,所述根據所述最新版本信息對所述 的目標應用程序的中間碼文件進行編譯,以得到所述目標應用程序的最新版本信息對應的 目標碼文件,包括:
[0034] 將所述目標終端設備內置的所述目標應用程序的版本信息與所述目標應用程序 的最新版本信息進行匹配,確定所述目標應用程序的最新版本信息中新增的指定功能的升 級信息;
[0035] 根據所述指定功能的升級信息對所述指定功能對應的中間碼文件進行編譯,以生 成所述指定功能的最新版本信息對應的目標碼文件,并將所述目標碼文件打包生成所述目 標應用程序的增量升級包。
[0036] 結合第二方面至第二方面第三種可能的實現方式中任一種,在第四種可能的實現 方式中,所述云端服務器獲取應用市場服務器發送的目標終端設備的硬件配置信息之前, 所述方法還包括:
[0037] 所述云端服務器通過所述應用市場服務器從應用市場中獲取至少一種硬件配置 類型的至少一個終端設備的硬件配置信息;
[0038] 通過所述應用市場服務器從所述應用市場中獲取各個所述終端設備的硬件配置 信息對應的至少一個應用程序的最新版本信息;
[0039] 建立所述各個終端設備的硬件配置信息與各個所述應用程序的最新版本信息的 對應關系。
[0040] 本發明實施例第三方面提供了一種云編譯實現Java應用程序安裝的方法,其可 包括:
[0041] 應用市場服務器獲取終端設備發送的所述終端設備的硬件配置信息及目標應用 程序的版本信息;
[0042] 所述應用市場服務器根據所述終端設備的硬件配置信息,以及所述應用市場服務 器中存儲的終端設備的硬件配置信息與所述目標應用程序的最新版本信息的對應關系,確 定所述終端設備的硬件配置信息對應的所述目標應用程序的最新版本信息;
[0043] 所述應用市場服務器根據所述終端設備發送的所述目標應用程序的版本信息,判 斷所述版本息是否為最新版本息;
[0044] 若所述版本信息不是最新版本信息,則將所述目標應用程序的升級信息發送給所 述終端設備,所述升級信息包括:所述目標應用程序的版本信息對應的中間碼文件在云端 服務器上編譯得到的所述目標應用程序的最新版本信息對應的目標碼文件。
[0045] 結合第三方面,在第一種可能的實現方式中,所述應用市場服務器獲取終端設備 發送的所述終端設備的硬件配置信息及目標應用程序的版本信息之后,所述方法還包括:
[0046] 所述應用市場服務器將所述終端設備的配置信息,以及所述應用市場服務器中存 儲的所述目標應用程序的中間碼文件發送給所述云端服務器,以通過所述云端服務器根據 所述目標應用程序的最新版本信息對所述目標應用程序的中間碼文件進行編譯,得到所述 目標應用程序的最新版本信息對應的目標碼文件。
[0047] 本發明實施例第四方面提供了一種終端設備,其可包括:
[0048] 發送模塊,用于將終端設備的硬件配置信息及目標應用程序的版本信息發送給應 用市場服務器,以通過所述應用市場服務器獲取與所述硬件配置信息及所述目標應用程序 的版本信息對應的所述目標應用程序的升級信息;
[0049] 接收模塊,用于接收所述應用市場服務器反饋的所述目標應用程序的升級信息, 所述升級信息包括:所述目標應用程序的版本信息對應的中間碼文件在云端服務器上編譯 得到的所述目標應用程序的最新版本信息對應的目標碼文件;
[0050] 安裝模塊,用于根據所述接收模塊接收到的所述升級信息對所述目標應用程序進 行優化安裝,以更新所述目標應用程序的版本。
[0051] 結合第四方面,在第一種可能的實現方式中,所述接收模塊具體用于:
[0052] 接收所述應用市場服務器發送的所述目標應用程序的最新版本信息對應的優化 安裝包;
[0053] 其中,所述優化安裝包由所述目標應用程序的最新版本信息對應的目標碼文件打 包生成,所述目標碼文件由所述云端服務器根據所述目標應用程序的所述版本信息中包含 的所有功能對應的中間碼文件編譯得到,所述優化安裝包存儲于所述應用市場服務器。
[0054] 結合第四方面第一種可能的實現方式,在第二種可能的實現方式中,所述安裝模 塊具體用于:
[0055] 根據所述接收模塊接收的所述優化安裝包重新安裝所述目標應用程序,以將所述 目標應用程序的所有功能的版本更新為最新版本。
[0056] 結合第四方面,在第三種可能的實現方式中,所述接收模塊具體用于:
[0057] 接收所述應用市場服務器發送的所述目標應用程序的增量升級包;
[0058] 其中,所述增量升級包由所述目標應用程序中的指定功能的最新版本信息的目標 碼文件打包生成,所述目標碼文件由所述云端服務器根據所述目標應用程序中待升級優化 的所述指定功能對應的中間碼文件編譯得到,所述增量升級包存儲于所述應用市場服務 器。
[0059] 結合第四方面第三種可能的實現方式,在第四種可能的實現方式中,所述安裝模 塊具體用于:
[0060] 將所述接收模塊接收的所述目標應用程序的所述增量升級包與所述目標應用程 序版本信息對應的安裝包進行融合,以生成包含所述指定功能的最新版本信息的所述目標 應用程序的安裝包;
[0061 ] 根據所述安裝包重新安裝所述目標應用程序,以將所述目標應用程序的所述指定 功能的版本更新為最新版本。
[0062] 本發明實施例第五方面提供了一種云端服務器,其可包括:
[0063] 獲取模塊,用于獲取應用市場服務器發送的目標終端設備的硬件配置信息,以及 所述目標終端設備內置的目標應用程序的中間碼文件;
[0064] 判斷模塊,用于根據所述獲取模塊獲取的所述目標終端設備的硬件配置信息,以 及所述云端服務器存儲的終端設備的硬件配置信息與應用程序的版本信息的對應關系,判 斷所述目標終端設備內置的目標應用程序的版本是否為最新版本;
[0065] 編譯模塊,用于在所述判斷模塊判斷結果為否時,根據最新版本信息對所述的目 標應用程序的中間碼文件進行編譯,以得到所述目標應用程序的最新版本信息對應的目標 碼文件;
[0066] 發送模塊,用于向所述應用市場服務器發送所述編譯模塊編譯得到的所述目標應 用程序的最新版本信息對應的目標碼文件,以通過所述應用市場服務器向所述目標終端設 備發送所述目標應用程序的最新版本信息對應的目標碼文件。
[0067] 結合第五方面,在第一種可能的實現方式中,所述判斷模塊具體用于:
[0068] 將所述獲取模塊獲取的所述目標終端設備的硬件配置信息與所述云端服務器存 儲的各個終端設備的硬件配置信息進行匹配,確定所述目標終端設備的硬件配置信息是否 為所述云端服務器存儲的所述各個終端設備的硬件配置信息中的任一個;
[0069] 若所述目標終端設備的硬件配置信息為所述云端服務器存儲的所述硬件配置信 息中的任一個,則根據所述各個終端設備的硬件配置信息與應用程序的版本信息的對應關 系,確定所述目標終端設備的硬件配置信息對應的所述目標應用程序的最新版本信息;
[0070] 將所述目標終端設備內置的所述目標應用程序的版本信息與所述目標應用程序 的最新版本信息進行匹配,以判斷所述目標終端設備內置的所述目標應用程序的版本是否 為最新版本。
[0071] 結合第五方面,在第二種可能的實現方式中,所述編譯模塊具體用于:
[0072] 將所述目標終端設備內置的所述目標應用程序的版本信息與所述目標應用程序 的最新版本信息進行匹配,確定所述目標應用程序的最新版本信息中新增的指定功能的升 級信息;
[0073] 根據所述指定功能的升級信息對所述目標終端內置的所述目標應用程序的安裝 包中包含的中間碼文件進行編譯,以得到包含所述指定功能的最新版本信息的所述目標應 用程序的最新版本信息對應的目標碼文件,并將所述目標碼文件打包生成所述目標應用程 序的最新版本信息對應的優化安裝包。
[0074] 結合第五方面,在第三種可能的實現方式中,所述編譯模塊具體用于