国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種Android應(yīng)用熱修復(fù)的方法和裝置的制造方法

      文檔序號(hào):10470919閱讀:219來源:國知局
      一種Android應(yīng)用熱修復(fù)的方法和裝置的制造方法
      【專利摘要】本發(fā)明提供了一種Android應(yīng)用熱修復(fù)的方法和裝置,所述方法包括將Android應(yīng)用接入第三方軟件開發(fā)工具包,通過比較匹配,在第三方軟件開發(fā)工具包中選取最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫文件,利用dexclassloader動(dòng)態(tài)加載版本目錄下的代碼和動(dòng)態(tài)鏈接庫文件,完成熱修復(fù)。所述Android應(yīng)用熱修復(fù)的方法和裝置,可以在未知宿主應(yīng)用運(yùn)行環(huán)境中CPU架構(gòu)的前提下,自動(dòng)識(shí)別并適配宿主應(yīng)用運(yùn)行環(huán)境中的CPU架構(gòu),并完成熱修復(fù)功能,同時(shí)也還可以對(duì)版本目錄進(jìn)行控制和切換。
      【專利說明】
      一種And r o i d應(yīng)用熱修復(fù)的方法和裝置
      技術(shù)領(lǐng)域
      :
      [0001]本發(fā)明涉及信息技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用程序的修復(fù)方法和裝置。
      【背景技術(shù)】
      :
      [0002]Android系統(tǒng)是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。作為當(dāng)代熱門的移動(dòng)操作系統(tǒng)之一,基于Android系統(tǒng)開發(fā)的應(yīng)用程序數(shù)量已難以統(tǒng)計(jì),而這數(shù)量極為龐大的Android應(yīng)用基本都會(huì)面臨著版本更新的問題。由于系統(tǒng)平臺(tái)限制,常規(guī)的應(yīng)用版本更新都需要對(duì)整個(gè)應(yīng)用進(jìn)行整體更新,這種更新方式往往都需要耗用使用者大量的時(shí)間與資源但實(shí)際上更新的內(nèi)容只有很少一部分。鑒于上述弊端,逐漸出現(xiàn)了一部分Android應(yīng)用發(fā)行方者利用Android應(yīng)用動(dòng)態(tài)加載進(jìn)行應(yīng)用程序的熱修復(fù)。這種熱修復(fù)方法能夠在不發(fā)布新版本的前提下,修復(fù)或者更新已發(fā)布版本存在的一些問題,從而達(dá)到用時(shí)更少資源好耗費(fèi)更低的效果。
      [0003]另外,在裝載有Android系統(tǒng)的移動(dòng)設(shè)備上他們使用的CPU架構(gòu)也是不盡相同的,目前常見的就有32位系列、64位系列、arm和x86系列等架構(gòu)。每個(gè)Android應(yīng)用都可能在好幾種不同的CHJ架構(gòu)的環(huán)境中運(yùn)行,發(fā)行方進(jìn)行應(yīng)用程序熱修復(fù)的時(shí)候如果沒有對(duì)不同CPU架構(gòu)進(jìn)行適配則會(huì)導(dǎo)致程序報(bào)錯(cuò)或者熱修復(fù)失敗。

      【發(fā)明內(nèi)容】

      :
      [0004]有鑒于此,實(shí)有必要提供一種能適配未知宿主應(yīng)用CPU架構(gòu)并進(jìn)行熱修復(fù)的應(yīng)用修復(fù)方法和裝置。
      [0005]—種Android應(yīng)用熱修復(fù)的方法,包括第三方軟件開發(fā)工具包,第三方軟件開發(fā)工具包括至少兩個(gè)CPU架構(gòu)互不相同的動(dòng)態(tài)鏈接庫文件;還包括如下步驟:
      [0006]步驟一= Android應(yīng)用接入第三方軟件開發(fā)工具包;
      [0007]步驟二:從Android應(yīng)用中的assert目錄中把第三方軟件開發(fā)工具包的相關(guān)代碼與配置文件拷貝到Android應(yīng)用中的內(nèi)部目錄中,并生成以第三方軟件開發(fā)工具包為名稱的版本目錄;
      [0008]步驟三:從移動(dòng)設(shè)備上獲取第一CPU架構(gòu)信息,從Android應(yīng)用的安裝信息上獲取Android應(yīng)用支持的第二 CPU架構(gòu)信息;
      [0009]步驟四:通過比較匹配,在第三方軟件開發(fā)工具包中選取最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫文件,并從Android應(yīng)用中的assert目錄中把最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫拷貝到版本目錄中的庫目錄;
      [0010]步驟五:利用dexclassloader動(dòng)態(tài)加載版本目錄下的代碼和動(dòng)態(tài)鏈接庫文件,并把版本信息寫到配置文件中。
      [0011]一種Android應(yīng)用熱修復(fù)的裝置,包括第三方軟件開發(fā)工具包,第三方軟件開發(fā)工具包括至少兩個(gè)CPU架構(gòu)互不相同的動(dòng)態(tài)鏈接庫文件;還包括處理模塊、匹配模塊和加載模塊;
      [0012]處理模塊用于:
      [0013]將Android應(yīng)用接入第三方軟件開發(fā)工具包;
      [OOM] 從Android應(yīng)用中的assert目錄中把第三方軟件開發(fā)工具包的相關(guān)代碼與配置文件拷貝到Android應(yīng)用中的內(nèi)部目錄中,并生成以第三方軟件開發(fā)工具包為名稱的版本目錄;
      [0015]從移動(dòng)設(shè)備上獲取第一CPU架構(gòu)信息,從Android應(yīng)用的安裝信息上獲取Android應(yīng)用支持的第二 (PU架構(gòu)信息;
      [0016]匹配模塊用于:
      [0017]通過比較匹配,在第三方軟件開發(fā)工具包中選取最優(yōu)CI3U架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫文件,并從Android應(yīng)用中的assert目錄中把最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫拷貝到版本目錄中的庫目錄;
      [0018]加載模塊用于:
      [0019]利用dexclassloader動(dòng)態(tài)加載版本目錄下的代碼和動(dòng)態(tài)鏈接庫文件,并把版本信息寫到配置文件中。
      [0020]上述Android應(yīng)用熱修復(fù)的方法和裝置,可以在未知宿主應(yīng)用運(yùn)行環(huán)境中CPU架構(gòu)的前提下,自動(dòng)識(shí)別并適配宿主應(yīng)用運(yùn)行環(huán)境中的CPU架構(gòu),并完成熱修復(fù)功能,同時(shí)也還可以對(duì)版本目錄進(jìn)行控制和切換。
      【附圖說明】
      :
      [0021 ]圖1為本發(fā)明第一實(shí)施例的Android應(yīng)用熱修復(fù)的方法流程圖;
      [0022]圖2與圖3為本發(fā)明第二實(shí)施例的Android應(yīng)用熱修復(fù)的方法流程圖;
      [0023]圖4為本發(fā)明第一實(shí)施例的Android應(yīng)用熱修復(fù)的裝置結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      :
      [0024]為闡述本發(fā)明的思想及目的,下面將結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說明。
      [0025]圖1為本發(fā)明第一實(shí)施例提供的Android應(yīng)用熱修復(fù)的方法流程圖。該方法包括下面步驟:
      [0026]其中,第三方軟件開發(fā)工具包可以是一些被軟件工程師用于為特定的軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。本實(shí)施例中所指的第三方軟件開發(fā)工具包包括有常用的幾種CPU架構(gòu)不同的動(dòng)態(tài)連接庫文件,其中動(dòng)態(tài)連接庫文件適用的CPU架構(gòu)包含但不僅限于32位系列、64位系列、arm和x86系列等架構(gòu)。
      [0027]SlOl =Android應(yīng)用接入第三方軟件開發(fā)工具包
      [0028]S102:從所述Android應(yīng)用中的assert目錄中把第三方軟件開發(fā)工具包的相關(guān)代碼與配置文件拷貝到Android應(yīng)用中的內(nèi)部目錄中,并生成以版本目錄。相關(guān)代碼指的是能夠?qū)崿F(xiàn)Andro i d應(yīng)用熱修復(fù)的核心代碼
      [0029]S103:獲取移動(dòng)設(shè)備的第一 CPU架構(gòu)信息以及獲取Android應(yīng)用支持的第二 CPU架構(gòu)?目息;
      [0030]自Android系統(tǒng)5.0版本更新之后,Android系統(tǒng)會(huì)在一個(gè)應(yīng)用安裝的時(shí)候,將Android應(yīng)用提供的動(dòng)態(tài)鏈接庫文件的關(guān)于CPU架構(gòu)的信息保存在應(yīng)用程序中,步驟S103提到的第二 CPU架構(gòu)信息。若第一 CPU架構(gòu)信息并不一定與第二 CPU架構(gòu)信息完全匹配,但最合適或者最接近的CHJ架構(gòu)信息。
      [0031 ] S104:通過比較匹配,在第三方軟件開發(fā)工具包中選取最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫文件,并從Android應(yīng)用中的assert目錄中把最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫拷貝到版本目錄中的庫目錄;
      [0032]通過將第一CPU架構(gòu)信息、第二 CPU架構(gòu)信息與第三方軟件開發(fā)工具包的綜合比較匹配,得出一個(gè)最合適的CPU架構(gòu)信息,并在第三方軟件開發(fā)工具包中將該最合適的CPU架構(gòu)信息對(duì)應(yīng)的動(dòng)態(tài)鏈接庫文件拷貝至庫目錄中。
      [0033]假如該Android應(yīng)用中沒有使用動(dòng)態(tài)鏈接庫,那么則直接通過與在移動(dòng)設(shè)備上獲取得出的第一 (PU架構(gòu)信息進(jìn)行比較匹配得出最合適的CPU架構(gòu)信息。
      [0034]S105:利用dexclassloader動(dòng)態(tài)加載版本目錄下的代碼和動(dòng)態(tài)鏈接庫文件,并把版本信息寫到配置文件中。
      [0035]本實(shí)施例中的Android應(yīng)用熱修復(fù)方法不僅可以實(shí)現(xiàn)在不發(fā)布新版本的Android應(yīng)用前提下完成熱修復(fù)功能,更重要的是可以在未知宿主的CPU架構(gòu)信息的前提下,適配各種CPU架構(gòu)不相同的移動(dòng)設(shè)備且達(dá)到熱修復(fù)的功能,解決了目前熱修復(fù)不能在CPU架構(gòu)不同的移動(dòng)設(shè)備上的問題。
      [0036]圖2為本發(fā)明第二實(shí)施例提供的Android應(yīng)用熱修復(fù)的方法流程圖,本實(shí)施例以上述第一實(shí)施例為基礎(chǔ),該方法還包括:
      [0037]S201:判斷Android應(yīng)用是否第一次運(yùn)行,
      [0038]如果是,則執(zhí)行S203 ;如果不是,則執(zhí)行S207。
      [0039]因?yàn)锳ndroid系統(tǒng)會(huì)在一個(gè)應(yīng)用安裝的時(shí)候,將Android應(yīng)用提供的動(dòng)態(tài)鏈接庫文件的關(guān)于CPU架構(gòu)的信息保存在應(yīng)用程序中,所以當(dāng)Android應(yīng)用不是第一次運(yùn)行的時(shí)候,對(duì)應(yīng)的Andr ο i d系統(tǒng)中一定記錄有相關(guān)的信息。也就是說二次運(yùn)行的Andr ο i d應(yīng)用可以利用其相關(guān)已經(jīng)保存好的信息進(jìn)行操作,可以達(dá)到省去部分非必要操作的效果。如果Android應(yīng)用是第一次在移動(dòng)設(shè)備上運(yùn)行時(shí),后續(xù)的動(dòng)作與本發(fā)明中的第一實(shí)施例相同。
      [0040]S207:檢查內(nèi)部目錄中版本目錄的數(shù)量;
      [0041]如果版本目錄的數(shù)量大于I的時(shí)候,執(zhí)行S210(先讀取配置文件,根據(jù)配置信息來加載相應(yīng)的版本目錄代碼,并更新配置文件),然后執(zhí)行S211:判斷配置信息是否與版本目錄是否匹配;如果匹配則執(zhí)行S206,如果不匹配則執(zhí)行S212(選擇最新的版本目錄代碼加載,并更新配置文件);最后執(zhí)行S206。
      [0042]如果版本目錄的數(shù)量為等于I個(gè)的時(shí)候,執(zhí)行S209(直接加載該版本目錄的代碼,并更新配置文件),然后執(zhí)行S206。
      [0043]在Android應(yīng)用需要不斷更新的同時(shí),第三方軟件開發(fā)工具包也同樣存在需要更新的情況,如果不及時(shí)對(duì)第三方軟件開發(fā)工具包的內(nèi)容進(jìn)行更新,則有可能導(dǎo)致其服務(wù)無法正常提供,為了更好地提供熱修復(fù)服務(wù),在利用dexclassloader動(dòng)態(tài)加載完成加載動(dòng)作之后,我們還需要對(duì)第三方軟件開發(fā)工具包的內(nèi)容進(jìn)行檢測(cè)更新。
      [0044]如圖3所述為本發(fā)明第二實(shí)施例提供的Android應(yīng)用熱修復(fù)的方法流程圖的后續(xù)部分,該方法還包括:
      [0045]S213:判斷第三方軟件開發(fā)工具包是否存在新版本;
      [0046]如果是,則加載最新的第三方軟件開發(fā)工具包到內(nèi)部目錄,并生成新的版本目錄;否則繼續(xù)運(yùn)行Andro id應(yīng)用。
      [0047]S216:判斷最新的第三方軟件開發(fā)工具包是否完整;如果是,則把新的版本信息記錄到配置文件中;否則將其刪除且重新進(jìn)行加載。
      [0048]S219:判斷版本目錄的數(shù)量是否大于三個(gè);如果數(shù)量大于三個(gè),則按照版本目錄創(chuàng)建的時(shí)間順序,依次刪除創(chuàng)建時(shí)間最早的版本目錄;如果數(shù)量不大于三個(gè),則繼續(xù)運(yùn)行Andrο id應(yīng)用。
      [0049]本實(shí)施例中利用版本目錄對(duì)熱修復(fù)的第三方軟件開發(fā)工具包進(jìn)行控制與切換,有效防止了因?yàn)榫W(wǎng)絡(luò)狀態(tài)或者加載過程突然中斷等原因造成文件包損壞,可自動(dòng)地對(duì)損壞文件進(jìn)行刪除并重新加載,極大地提升了應(yīng)用程序的用戶體驗(yàn)感。另一方面,通過對(duì)舊版本的第三方軟件開發(fā)工具包進(jìn)行定期清理,有效解決了 Android應(yīng)用過于臃腫的問題。
      [0050]圖4為本發(fā)明第一實(shí)施例提供的Android應(yīng)用熱修復(fù)的裝置結(jié)構(gòu)示意圖,該裝置包括處理模塊301、匹配模塊302、加載模塊303和檢測(cè)模塊304。優(yōu)選地,檢測(cè)模塊304包括第一檢測(cè)模塊、第二檢測(cè)模塊、第三檢測(cè)模塊、第四檢測(cè)模塊、第五檢測(cè)模塊和第六檢測(cè)模塊。[0051 ]本實(shí)施例中Android應(yīng)用熱修復(fù)的裝置,包括第三方軟件開發(fā)工具包,第三方軟件開發(fā)工具包括至少兩個(gè)CPU架構(gòu)互不相同的動(dòng)態(tài)鏈接庫文件;還包括處理模塊301、匹配模塊302和加載模塊303;
      [0052]處理模塊301用于:
      [0053]將Android應(yīng)用接入第三方軟件開發(fā)工具包;
      [0054]從Android應(yīng)用中的assert目錄中把第三方軟件開發(fā)工具包的相關(guān)代碼與配置文件拷貝到Android應(yīng)用中的內(nèi)部目錄中,并生成以第三方軟件開發(fā)工具包為名稱的版本目錄;
      [0055]從移動(dòng)設(shè)備上獲取第一CPU架構(gòu)信息,從Android應(yīng)用的安裝信息上獲取Android應(yīng)用支持的第二 (PU架構(gòu)信息;
      [0056]匹配模塊302用于:
      [0057]通過比較匹配,在第三方軟件開發(fā)工具包中選取最優(yōu)CHJ架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫文件,并從Android應(yīng)用中的assert目錄中把最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫拷貝到版本目錄中的庫目錄;
      [0058]加載模塊303用于:
      [0059]利用dexclassloader動(dòng)態(tài)加載版本目錄下的代碼和動(dòng)態(tài)鏈接庫文件,并把版本信息寫到配置文件中。
      [0060]其中,第一檢測(cè)模塊用于檢測(cè)Android應(yīng)用是否第一次在移動(dòng)設(shè)備上運(yùn)行,第二檢測(cè)模塊用于檢測(cè)內(nèi)部目錄中版本目錄的數(shù)量;
      [0061]如果Android應(yīng)用是第一次在移動(dòng)設(shè)備上運(yùn)行,則執(zhí)行處理模塊、匹配模塊和加載模塊;如果Android應(yīng)用不是第一次運(yùn)行時(shí),則執(zhí)行第二檢測(cè)模塊;
      [0062]如果版本目錄的數(shù)量為一個(gè)的時(shí)候,把當(dāng)前第三方軟件開發(fā)工具包的版本目錄號(hào)記錄到配置文件,然后執(zhí)行加載模塊;版本目錄的數(shù)量為大于一個(gè)的時(shí)候,根據(jù)配置文件記錄的第三方軟件開發(fā)工具包版本號(hào)信息加載相應(yīng)的版本內(nèi)容,然后執(zhí)行加載模塊。
      [0063]本實(shí)施例中Android應(yīng)用熱修復(fù)的裝置還包括第三檢測(cè)模塊,第三檢測(cè)模塊用于檢測(cè)判斷配置文件消息是否與版本目錄相匹配,如果匹配,則執(zhí)行加載模塊;如果不匹配,則選擇最新的版本目錄代碼加載,并更新配置文件,然后執(zhí)行加載模塊。
      [0064]本實(shí)施例中Android應(yīng)用熱修復(fù)的裝置還包括第三檢測(cè)模塊,第三檢測(cè)模塊用于檢測(cè)第三方軟件開發(fā)工具包是否存在新版本;如果第三方軟件開發(fā)工具包存在新版本,則加載最新的第三方軟件開發(fā)工具包到內(nèi)部目錄,并生成新的版本目錄;如果不存在新版本則繼續(xù)運(yùn)行Andro id應(yīng)用。
      [0065]本實(shí)施例中Android應(yīng)用熱修復(fù)的裝置還包括第四檢測(cè)模塊,第四檢測(cè)模塊用于檢測(cè)最新的第三方軟件開發(fā)工具包;如果完整,則把新的版本信息記錄到配置文件中;如果不完整,則將其刪除且重新進(jìn)行加載。
      [0066]本實(shí)施例中Android應(yīng)用熱修復(fù)的裝置還包括第五檢測(cè)模塊,第五檢測(cè)模塊用于檢測(cè)第三方軟件開發(fā)工具包的版本目錄的數(shù)量是否大于三個(gè);如果數(shù)量大于三個(gè),則按照版本目錄創(chuàng)建的時(shí)間順序,依次刪除創(chuàng)建時(shí)間最早的版本目錄;如果數(shù)量不大于三個(gè),則繼續(xù)運(yùn)行Andro id應(yīng)用。
      [0067]上述實(shí)施例只是為了說明本技術(shù)構(gòu)思及特點(diǎn),其目的是在于讓本領(lǐng)域內(nèi)的技術(shù)人員能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡是根據(jù)本
      【發(fā)明內(nèi)容】
      的實(shí)質(zhì)所作出的等效的變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
      【主權(quán)項(xiàng)】
      1.一種Android應(yīng)用熱修復(fù)的方法,其特征在于,包括第三方軟件開發(fā)工具包,所述第三方軟件開發(fā)工具包括至少兩個(gè)(PU架構(gòu)互不相同的動(dòng)態(tài)鏈接庫文件;還包括如下步驟: 步驟一:Android應(yīng)用接入所述第三方軟件開發(fā)工具包; 步驟二:從所述Android應(yīng)用中的assert目錄中把所述第三方軟件開發(fā)工具包的相關(guān)代碼與配置文件拷貝到所述Android應(yīng)用中的內(nèi)部目錄中,并生成以所述第三方軟件開發(fā)工具包為名稱的版本目錄; 步驟三:從移動(dòng)設(shè)備上獲取第一 CPU架構(gòu)信息,從所述Android應(yīng)用的安裝信息上獲取Android應(yīng)用支持的第二 CPU架構(gòu)信息; 步驟四:通過比較匹配,在第三方軟件開發(fā)工具包中選取所述最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫文件,并從所述Android應(yīng)用中的assert目錄中把所述最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫拷貝到所述版本目錄中的庫目錄; 步驟五:利用dexclassloader動(dòng)態(tài)加載所述版本目錄下的代碼和動(dòng)態(tài)鏈接庫文件,并把版本信息寫到所述配置文件中。2.如權(quán)利要求1所述的Android應(yīng)用熱修復(fù)的方法,其特征在于,還包括判斷所述Android應(yīng)用是否第一次在所述移動(dòng)設(shè)備上運(yùn)行,如果是,則執(zhí)行所述步驟一至五;如果不是,則檢查所述內(nèi)部目錄中版本目錄的數(shù)量; 如果所述版本目錄的數(shù)量為一個(gè)的時(shí)候,直接加載所述版本目錄的代碼,并更新所述配置文件,然后執(zhí)行步驟五;如果所述版本目錄的數(shù)量為大于一個(gè)的時(shí)候,先讀取所述配置文件,根據(jù)所述配置文件信息來加載相應(yīng)的版本目錄中的代碼,并更新所述配置文件,然后執(zhí)行步驟五。3.如權(quán)利要求2所述的Android應(yīng)用熱修復(fù)的方法,其特征在于,還包括判斷所述第三方軟件開發(fā)工具包是否存在新版本;如果存在,則加載最新的第三方軟件開發(fā)工具包到所述內(nèi)部目錄,并生成新的版本目錄;否則繼續(xù)運(yùn)行Android應(yīng)用。4.如權(quán)利要求3所述的Android應(yīng)用熱修復(fù)的方法,其特征在于,還包判斷所述最新的第三方軟件開發(fā)工具包是否完整;如果是,則把新的版本信息記錄到所述配置文件中;否則將其刪除且重新進(jìn)行加載。5.如權(quán)利要求4所述的Android應(yīng)用熱修復(fù)的方法,其特征在于,還包括判斷所述版本目錄的數(shù)量是否大于三個(gè);如果所述數(shù)量大于三個(gè),則按照所述版本目錄創(chuàng)建的時(shí)間順序,依次刪除創(chuàng)建時(shí)間最早的版本目錄;如果所述數(shù)量不大于三個(gè),則繼續(xù)運(yùn)行Android應(yīng)用。6.—種Android應(yīng)用熱修復(fù)的裝置,其特征在于,包括第三方軟件開發(fā)工具包,所述第三方軟件開發(fā)工具包括至少兩個(gè)CHJ架構(gòu)互不相同的動(dòng)態(tài)鏈接庫文件;還包括處理模塊、匹配模塊和加載模塊; 所述處理模塊用于: 將Android應(yīng)用接入所述第三方軟件開發(fā)工具包; 從所述Android應(yīng)用中的assert目錄中把所述第三方軟件開發(fā)工具包的相關(guān)代碼與配置文件拷貝到所述Android應(yīng)用中的內(nèi)部目錄中,并生成以所述第三方軟件開發(fā)工具包為名稱的版本目錄; 從移動(dòng)設(shè)備上獲取第一 CPU架構(gòu)信息,從所述Android應(yīng)用的安裝信息上獲取Android應(yīng)用支持的第二 (PU架構(gòu)信息; 所述匹配模塊用于: 通過比較匹配,在第三方軟件開發(fā)工具包中選取所述最優(yōu)CHJ架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫文件,并從所述Android應(yīng)用中的assert目錄中把所述最優(yōu)CPU架構(gòu)對(duì)應(yīng)的動(dòng)態(tài)鏈接庫拷貝到所述版本目錄中的庫目錄; 所述加載模塊用于: 利用dexclassloader動(dòng)態(tài)加載所述版本目錄下的代碼和動(dòng)態(tài)鏈接庫文件,并把版本信息寫到所述配置文件中。7.如權(quán)利要求6所述的Android應(yīng)用熱修復(fù)的裝置,其特征在于,還包括第一檢測(cè)模塊、第二檢測(cè)模塊和第三檢測(cè)模塊,所述第一檢測(cè)模塊用于檢測(cè)所述Android應(yīng)用是否第一次在所述移動(dòng)設(shè)備上運(yùn)行,所述第二檢測(cè)模塊用于檢測(cè)所述內(nèi)部目錄中版本目錄的數(shù)量;所述第三檢測(cè)模塊用于檢測(cè)所述配置文件信息是否與所述版本目錄信息相匹配; 如果所述Android應(yīng)用是第一次在所述移動(dòng)設(shè)備上運(yùn)行,則執(zhí)行所述處理模塊、匹配模塊和加載模塊;如果Android應(yīng)用不是第一次運(yùn)行時(shí),則執(zhí)行第二檢測(cè)模塊; 如果版本目錄的數(shù)量為一個(gè)的時(shí)候,把當(dāng)前所述第三方軟件開發(fā)工具包的版本目錄號(hào)記錄到所述配置文件,然后執(zhí)行加載模塊; 如果所述版本目錄的數(shù)量為大于一個(gè)的時(shí)候,先讀取所述配置文件,根據(jù)所述配置文件信息來加載相應(yīng)的版本目錄代碼,并更新所述配置文件,然后執(zhí)行第三檢測(cè)模塊;如果匹配則直接執(zhí)行所述加載模塊,否則選擇最新的版本目錄代碼加載,并更新所述配置文件,然后執(zhí)行所述加載模塊。8.如權(quán)利要求7所述的Android應(yīng)用熱修復(fù)的裝置,其特征在于,還包括第四檢測(cè)模塊,所述第四檢測(cè)模塊用于檢測(cè)所述第三方軟件開發(fā)工具包是否存在新版本;如果所述第三方軟件開發(fā)工具包存在新版本,則加載最新的第三方軟件開發(fā)工具包到所述內(nèi)部目錄,并生成新的版本目錄;如果不存在新版本則繼續(xù)運(yùn)行Andro id應(yīng)用。9.如權(quán)利要求8所述的Android應(yīng)用熱修復(fù)的裝置,其特征在于,還包括第五檢測(cè)模塊,所述第五檢測(cè)模塊用于檢測(cè)所述最新的第三方軟件開發(fā)工具包;如果完整,則把新的版本信息記錄到所述配置文件中;如果不完整,則將其刪除且重新進(jìn)行加載。10.如權(quán)利要求9所述的Android應(yīng)用熱修復(fù)的裝置,其特征在于,還包括第六檢測(cè)模塊,所述第六檢測(cè)模塊用于檢測(cè)所述第三方軟件開發(fā)工具包的版本目錄的數(shù)量是否大于三個(gè);如果所述數(shù)量大于三個(gè),則按照所述版本目錄創(chuàng)建的時(shí)間順序,依次刪除創(chuàng)建時(shí)間最早的版本目錄;如果所述數(shù)量不大于三個(gè),則繼續(xù)運(yùn)行Android應(yīng)用。
      【文檔編號(hào)】G06F9/445GK105824623SQ201610143435
      【公開日】2016年8月3日
      【申請(qǐng)日】2016年3月14日
      【發(fā)明人】陳水德
      【申請(qǐng)人】廣州趣丸網(wǎng)絡(luò)科技有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1