亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

系統(tǒng)升級(jí)方法及裝置的制造方法

文檔序號(hào):9579102閱讀:304來(lái)源:國(guó)知局
系統(tǒng)升級(jí)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本公開(kāi)涉及操作系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種系統(tǒng)升級(jí)方法及裝置。
【背景技術(shù)】
[0002]安卓(Android)系統(tǒng)是一個(gè)開(kāi)源的移動(dòng)設(shè)備操作系統(tǒng)。目前很多移動(dòng)設(shè)備操作系統(tǒng)均基于安卓系統(tǒng)開(kāi)發(fā),為安卓兼容系統(tǒng)。但是,所有安卓兼容系統(tǒng)必須兼容所有為安卓系統(tǒng)開(kāi)發(fā)的軟件。因此,這些安卓兼容系統(tǒng)不但需要保證自有軟件的正常使用,而且需要保證基于安卓系統(tǒng)開(kāi)發(fā)的第三方軟件的正常使用。
[0003]為了將安卓系統(tǒng)改造為一個(gè)新的安卓兼容系統(tǒng),現(xiàn)有的技術(shù)方案,是通過(guò)修改源代碼來(lái)實(shí)現(xiàn)的。通過(guò)在安卓系統(tǒng)的源代碼中,在適當(dāng)?shù)奈恢貌迦牖蛘咝薷脑a,然后再一起編譯來(lái)實(shí)現(xiàn)。
[0004]由于必須修改源代碼,才能實(shí)現(xiàn)安卓系統(tǒng)的改造,這就導(dǎo)致當(dāng)安卓系統(tǒng)升級(jí)時(shí),必須付出額外的工作進(jìn)行源代碼的合并和修改才可以完成兼容系統(tǒng)的升級(jí),不僅耗費(fèi)時(shí)間多且容易出錯(cuò)。

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

[0005]為克服相關(guān)技術(shù)中存在的問(wèn)題,本公開(kāi)提供一種系統(tǒng)升級(jí)方法及裝置。
[0006]根據(jù)本公開(kāi)實(shí)施例的第一方面,提供一種系統(tǒng)升級(jí)方法,包括:
[0007]將原方法替換為第一方法,將所述原方法備份到第二方法中;
[0008]將對(duì)所述原方法的調(diào)用轉(zhuǎn)換為對(duì)所述第一方法的調(diào)用,并通過(guò)所述第二方法調(diào)用備份的所述原方法。
[0009]在一實(shí)施例中,所述將原方法替換為第一方法,將所述原方法備份到第二方法中,包括:
[0010]將所述原方法入口處將要被覆蓋的代碼備份到一內(nèi)存區(qū)域;
[0011]在所述原方法的入口處寫(xiě)入第一跳轉(zhuǎn)指令,所述第一跳轉(zhuǎn)指令用于跳轉(zhuǎn)到第一函數(shù),所述第一函數(shù)用于將所述原方法的參數(shù)轉(zhuǎn)換為所述第一方法的參數(shù);
[0012]在所述第二方法的入口處寫(xiě)入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令用于跳轉(zhuǎn)到第二函數(shù),所述第二函數(shù)用于將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù);
[0013]在所述內(nèi)存區(qū)域?qū)懭胩刂噶睢?br>[0014]在一實(shí)施例中,在所述將所述原方法入口處將要被覆蓋的代碼備份到一內(nèi)存區(qū)域之前,所述方法還包括:
[0015]創(chuàng)建一數(shù)據(jù)區(qū)域,所述數(shù)據(jù)區(qū)域用于保存所述原方法的地址、所述第一方法的地址、所述第二方法的地址和所述內(nèi)存區(qū)域的地址;
[0016]在所述原方法的入口處寫(xiě)入第一跳轉(zhuǎn)指令時(shí),所述方法還包括:
[0017]寫(xiě)入所述數(shù)據(jù)區(qū)域的地址;
[0018]在所述第二方法的入口處寫(xiě)入第二跳轉(zhuǎn)指令時(shí),所述方法還包括:
[0019]寫(xiě)入所述數(shù)據(jù)區(qū)域的地址。
[0020]在一實(shí)施例中,所述將對(duì)所述原方法的調(diào)用轉(zhuǎn)換為對(duì)所述第一方法的調(diào)用,包括:
[0021]通過(guò)所述第一跳轉(zhuǎn)指令跳轉(zhuǎn)到第一函數(shù),并通過(guò)所述第一函數(shù)將所述原方法的參數(shù)轉(zhuǎn)換為所述第一方法的參數(shù),以執(zhí)行所述第一方法。
[0022]在一實(shí)施例中,所述通過(guò)所述第二方法調(diào)用備份的所述原方法,包括:
[0023]通過(guò)所述第二跳轉(zhuǎn)指令跳轉(zhuǎn)到第二函數(shù),通過(guò)所述第二函數(shù)將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù),以執(zhí)行所述內(nèi)存區(qū)域備份的代碼。
[0024]在一實(shí)施例中,在所述通過(guò)所述第二函數(shù)將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù)之后,所述方法還包括:
[0025]根據(jù)所述跳回指令跳回執(zhí)行所述原方法未被覆蓋部分的代碼。
[0026]根據(jù)本公開(kāi)實(shí)施例的第二方面,提供一種系統(tǒng)升級(jí)裝置,包括:
[0027]替換備份模塊,被配置為將原方法替換為第一方法,將所述原方法備份到第二方法中;
[0028]轉(zhuǎn)換調(diào)用模塊,被配置為將對(duì)所述原方法的調(diào)用轉(zhuǎn)換為對(duì)所述替換備份模塊替換的所述第一方法的調(diào)用,并通過(guò)所述第二方法調(diào)用所述替換備份模塊備份的所述原方法。
[0029]在一實(shí)施例中,所述替換備份模塊包括:
[0030]備份子模塊,被配置為將所述原方法入口處將要被覆蓋的代碼備份到一內(nèi)存區(qū)域;
[0031]第一寫(xiě)入子模塊,被配置為在所述原方法的入口處寫(xiě)入第一跳轉(zhuǎn)指令,所述第一跳轉(zhuǎn)指令用于跳轉(zhuǎn)到第一函數(shù),所述第一函數(shù)用于將所述原方法的參數(shù)轉(zhuǎn)換為所述第一方法的參數(shù);
[0032]第二寫(xiě)入子模塊,被配置為在所述第二方法的入口處寫(xiě)入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令用于跳轉(zhuǎn)到第二函數(shù),所述第二函數(shù)用于將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù);
[0033]第三寫(xiě)入子模塊,被配置為在所述內(nèi)存區(qū)域?qū)懭胩刂噶睢?br>[0034]在一實(shí)施例中,所述替換備份模塊還包括:
[0035]創(chuàng)建子模塊,被配置為在所述備份子模塊將所述原方法入口處將要被覆蓋的代碼備份到一內(nèi)存區(qū)域之前,創(chuàng)建一數(shù)據(jù)區(qū)域,所述數(shù)據(jù)區(qū)域用于保存所述原方法的地址、所述第一方法的地址、所述第二方法的地址和所述內(nèi)存區(qū)域的地址;
[0036]其中,所述第一寫(xiě)入子模塊,還被配置為在所述原方法的入口處寫(xiě)入第一跳轉(zhuǎn)指令時(shí),寫(xiě)入所述數(shù)據(jù)區(qū)域的地址;
[0037]其中,所述第二寫(xiě)入子模塊,還被配置為在所述第二方法的入口處寫(xiě)入第二跳轉(zhuǎn)指令時(shí),寫(xiě)入所述數(shù)據(jù)區(qū)域的地址。
[0038]在一實(shí)施例中,所述轉(zhuǎn)換調(diào)用模塊包括:
[0039]第一跳轉(zhuǎn)轉(zhuǎn)換子模塊,被配置為通過(guò)所述第一寫(xiě)入子模塊寫(xiě)入的所述第一跳轉(zhuǎn)指令跳轉(zhuǎn)到第一函數(shù),并通過(guò)所述第一函數(shù)將所述原方法的參數(shù)轉(zhuǎn)換為所述第一方法的參數(shù),以執(zhí)行所述第一方法。
[0040]在一實(shí)施例中,所述轉(zhuǎn)換調(diào)用模塊包括:
[0041]第二跳轉(zhuǎn)轉(zhuǎn)換子模塊,被配置為通過(guò)所述第二寫(xiě)入子模塊寫(xiě)入的所述第二跳轉(zhuǎn)指令跳轉(zhuǎn)到第二函數(shù),通過(guò)所述第二函數(shù)將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù),以執(zhí)行所述內(nèi)存區(qū)域備份的代碼。
[0042]在一實(shí)施例中,所述轉(zhuǎn)換調(diào)用模塊還包括:
[0043]跳回執(zhí)行子模塊,被配置為在所述第二跳轉(zhuǎn)轉(zhuǎn)換子模塊通過(guò)所述第二函數(shù)將所述第二方法的參數(shù)轉(zhuǎn)換為所述原方法的參數(shù)之后,根據(jù)所述跳回指令跳回執(zhí)行所述原方法未被覆蓋部分的代碼。
[0044]根據(jù)本公開(kāi)實(shí)施例的第三方面,提供一種系統(tǒng)升級(jí)裝置,包括:
[0045]處理器;
[0046]用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
[0047]其中,處理器被配置為:
[0048]將原方法替換為第一方法,將所述原方法備份到第二方法中;
[0049]將對(duì)所述原方法的調(diào)用轉(zhuǎn)換為對(duì)所述第一方法的調(diào)用,并通過(guò)所述第二方法調(diào)用備份的所述原方法。
[0050]本公開(kāi)的實(shí)施例提供的技術(shù)方案可以包括以下有益效果:通過(guò)將原方法替換為第一方法,將原方法備份到第二方法中,然后將對(duì)原方法的調(diào)用轉(zhuǎn)換為對(duì)第一方法的調(diào)用,并通過(guò)第二方法調(diào)用備份的原方法,從而在不修改源代碼的情況下,實(shí)現(xiàn)兼容系統(tǒng)的升級(jí),大大地節(jié)省了時(shí)間、減少了出錯(cuò)率以及提高了升級(jí)效率。
[0051]通過(guò)寫(xiě)入跳轉(zhuǎn)指令實(shí)現(xiàn)將原方法替換為第一方法,將原方法備份到第二方法中,從而為后續(xù)實(shí)現(xiàn)方法調(diào)用轉(zhuǎn)換提供了條件。
[0052]通過(guò)創(chuàng)建數(shù)據(jù)區(qū)域,保存替換過(guò)程中所需的信息,為實(shí)現(xiàn)方法替換提供了條件。
[0053]可以通過(guò)參數(shù)轉(zhuǎn)換實(shí)現(xiàn)由原方法到第一方法的調(diào)用,由于第一方法中包含了升級(jí)后的新代碼,因此,該實(shí)施例可以在不修改源代碼的情況下實(shí)現(xiàn)系統(tǒng)升級(jí)。
[0054]通過(guò)參數(shù)轉(zhuǎn)換實(shí)現(xiàn)由第二方法到備份代碼的調(diào)用,從而可以保證對(duì)第三方軟件的兼容。
[0055]通過(guò)跳回指令跳回執(zhí)行原方法未覆蓋部分代碼的調(diào)用,從而可以保證對(duì)第三方軟件的兼容。
[0056]應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開(kāi)。
【附圖說(shuō)明】
[0057]此處的附圖被并入說(shuō)明書(shū)中并構(gòu)成本說(shuō)明書(shū)的一部分,示出了符合本發(fā)明的實(shí)施例,并與說(shuō)明書(shū)一起用于解釋本發(fā)明的原理。
[0058]圖1是根據(jù)一示例性實(shí)施例示出的一種系統(tǒng)升級(jí)方法的流程圖。
[0059]圖2是根據(jù)一示例性實(shí)施例示出的一種方法替換過(guò)程的流程圖。
[0060]圖3A是根據(jù)一示例性實(shí)施例示出的ART的執(zhí)行過(guò)程示意圖。
[0061]圖3B是根據(jù)一示例性實(shí)施例示出的一種Class的組織結(jié)構(gòu)示意圖。
[0062]圖3C-3D是根據(jù)一示例性實(shí)施例示出的一種系統(tǒng)升級(jí)方法的場(chǎng)景圖。
[0063]圖4是根據(jù)一示例性實(shí)施例示出的另一種方法替換過(guò)程的流程圖。
[0064]圖5是根據(jù)一示例性實(shí)施例示出的一種對(duì)原方法的調(diào)用轉(zhuǎn)換為對(duì)第一方法的調(diào)用的流程圖。
[0065]圖6是根據(jù)一示例性實(shí)施例示出的一種通過(guò)第二方法調(diào)用原方法的流程圖。
[0066]圖7是根據(jù)一不例性實(shí)施例不出的一種系統(tǒng)升級(jí)裝置的框圖。
[0067]圖8是根據(jù)一示例性實(shí)施例示出的另一種系統(tǒng)升級(jí)裝置的框圖。
[0068]圖9是根據(jù)一不例性實(shí)施例不出的另一種系統(tǒng)升級(jí)裝置的框圖。
[0069]圖10是根據(jù)一不例性實(shí)施例不出的另一種系統(tǒng)升級(jí)裝置的框圖。
[0070]圖11是根據(jù)一
當(dāng)前第1頁(yè)1 2 3 4 5 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1