本發(fā)明涉及終端技術(shù)領(lǐng)域,尤其涉及一種系統(tǒng)升級方法、裝置及終端。
背景技術(shù):
隨著電子終端技術(shù)的發(fā)展,智能手機(jī)、平板電腦等智能終端越來越普及。為了提高智能終端的性能,需要經(jīng)常對終端的系統(tǒng)進(jìn)行升級?,F(xiàn)有的系統(tǒng)升級方式一般是通過OTA(Over-the-Air Technology,空中下載技術(shù))對系統(tǒng)進(jìn)行升級,升級后主要是改變了system系統(tǒng)分區(qū)的核心jar包,升級后再次開機(jī)時,需要重新對所有的應(yīng)用執(zhí)行odex預(yù)處理。由于執(zhí)行odex預(yù)處理需要占用一定的系統(tǒng)資源且耗時較長,從而極大的降低了開機(jī)的速度,并因此導(dǎo)致產(chǎn)生系統(tǒng)卡頓、應(yīng)用使用異常、應(yīng)用安裝速度慢等諸多問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種系統(tǒng)升級方法、裝置及終端,旨在解決系統(tǒng)升級后開機(jī)速度緩慢、系統(tǒng)卡頓等技術(shù)問題。
本發(fā)明第一方面提供一種系統(tǒng)升級方法,包括:獲取系統(tǒng)升級安裝包;提取所述系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件;調(diào)用預(yù)置的預(yù)處理工具文件,對所述系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,以生成所述系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件;當(dāng)檢測到升級指令時,根據(jù)所述系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將所述系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下。
本發(fā)明第二方面提供一種系統(tǒng)升級裝置,包括:獲取模塊,用于獲取系統(tǒng)升級安裝包;提取模塊,用于提取所述系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件;預(yù)處理模塊,用于調(diào)用預(yù)置的預(yù)處理工具文件,對所述系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,以生成所述系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件;升級模塊,用于當(dāng)檢測到升級指令時,根據(jù)所述系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將所述系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下。
本發(fā)明第三方面提供一種終端,所述終端中運行有如上述本發(fā)明第二方面提供的一種系統(tǒng)升級裝置。
上述本發(fā)明實施例提供的系統(tǒng)升級方法、裝置及終端,通過在執(zhí)行系統(tǒng)升級操作前,從系統(tǒng)升級安裝包中提取待升級的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件,然后調(diào)用預(yù)置的預(yù)處理工具文件對提取出的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,當(dāng)執(zhí)行系統(tǒng)升級操作時,在升級過程中,將預(yù)處理后得到的系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下,以使得當(dāng)升級操作完成、重啟開機(jī)之后,可直接執(zhí)行該預(yù)設(shè)目錄下的各應(yīng)用的可運行文件。相較于現(xiàn)有技術(shù),本發(fā)明實施例由于在升級前預(yù)先對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行了相應(yīng)的預(yù)處理,使得在系統(tǒng)升級到新版本之后上述文件就已經(jīng)是可用的了,從而不需要再在升級后執(zhí)行繁瑣的odex處理過程,節(jié)約了整個系統(tǒng)升級的時間,提高了系統(tǒng)升級后的開機(jī)速度,并可保證開機(jī)后系統(tǒng)運行的穩(wěn)定度及流暢度,提升系統(tǒng)運行的穩(wěn)定性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
附圖1示出了一種終端的結(jié)構(gòu)框圖;
附圖2是本發(fā)明第一實施例提供的系統(tǒng)升級方法的實現(xiàn)流程示意圖;
附圖3是本發(fā)明第二實施例提供的系統(tǒng)升級方法的實現(xiàn)流程示意圖;
附圖4是本發(fā)明第三實施例提供的系統(tǒng)升級裝置的結(jié)構(gòu)示意圖;
附圖5是本發(fā)明第四實施例提供的系統(tǒng)升級裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部實施例。基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
附圖1示出了一種終端的結(jié)構(gòu)框圖。該終端可以但不限于包括:安裝有Android(安卓)或類似智能操作系統(tǒng)的智能手機(jī)、平板電腦、多媒體播放設(shè)備以智能穿戴設(shè)備等等移動或非移動類電子終端。如附圖1所示,終端10包括存儲器102、存儲控制器104,一個或多個(圖中僅示出一個)處理器106、外設(shè)接口108、射頻模塊110、按鍵模塊112、音頻模塊114以及顯示模塊116。這些組件通過一條或多條通訊總線/信號線122相互通訊。
可以理解,附圖1所示的結(jié)構(gòu)僅為示意,其并不對終端10的結(jié)構(gòu)造成限定。例如,終端10還可包括比附圖1所示更多或者更少的組件,或者具有與附圖1所示不同的配置。附圖1所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。
存儲器102可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的系統(tǒng)升級方法及裝置對應(yīng)的程序指令/模塊,處理器106通過運行存儲在存儲器102內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實現(xiàn)上述的系統(tǒng)升級方法。
其中,存儲器102中存儲的模塊,具體可包括:獲取模塊301、提取模塊302、預(yù)處理模塊303以及升級模塊304(附圖1中均未示出)。
可選的,存儲器102中存儲的模塊,具體還可包括:檢測模塊401、觸發(fā)模塊402、信息提示模塊403、接收模塊404以及指令觸發(fā)模塊405,其中檢測模塊401包括第一檢測模塊4011和第二檢測模塊4012(附圖1中均未示出)。
上述存儲器102中存儲的各模塊實現(xiàn)各自功能的具體過程,可結(jié)合附圖4與附圖5,參考下文中第三實施例以及第四實施例中的相關(guān)內(nèi)容,此處不再贅述。
存儲器102可包括高速隨機(jī)存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實例中,存儲器102可進(jìn)一步包括相對于處理器106遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至終端10。上述網(wǎng)絡(luò)的實例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。處理器106以及其他可能的組件對存儲器102的訪問可在存儲控制器104的控制下進(jìn)行。
外設(shè)接口108將各種輸入/輸入裝置耦合至處理器106以及存儲器102。處理器106運行存儲器102內(nèi)的各種軟件、指令以執(zhí)行終端10的各種功能以及進(jìn)行數(shù)據(jù)處理。
在一些實例中,外設(shè)接口108,處理器106以及存儲控制器104可以在單個芯片中實現(xiàn)。在其他一些實例中,他們可以分別由獨立的芯片實現(xiàn)。
射頻模塊110用于接收以及發(fā)送電磁波,實現(xiàn)電磁波與電信號的相互轉(zhuǎn)換,從而與通訊網(wǎng)絡(luò)或者其他設(shè)備進(jìn)行通訊。射頻模塊110可包括各種現(xiàn)有的用于執(zhí)行這些功能的電路元件,例如,天線、射頻收發(fā)器、數(shù)字信號處理器、加密/解密芯片、用戶身份模塊(SIM)卡、存儲器等等。射頻模塊110可與各種網(wǎng)絡(luò)如互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、預(yù)置類型的無線網(wǎng)絡(luò)進(jìn)行通訊或者通過預(yù)置類型的無線網(wǎng)絡(luò)與其他設(shè)備進(jìn)行通訊。上述的預(yù)置類型的無線網(wǎng)絡(luò)可包括蜂窩式電話網(wǎng)、無線局域網(wǎng)或者城域網(wǎng)。上述的預(yù)置類型的無線網(wǎng)絡(luò)可以使用各種通信標(biāo)準(zhǔn)、協(xié)議及技術(shù),包括但并不限于全球移動通信系統(tǒng)(Global System for Mobile Communication,GSM),增強(qiáng)型移動通信技術(shù)(Enhanced Data GSM Environment,EDGE),寬帶碼分多址技術(shù)(Wideband Code Division Multiple Access,W-CDMA),碼分多址技術(shù)(Code Division Access,CDMA),時分多址技術(shù)(Time Division Multiple Access,TDMA),藍(lán)牙,無線保真技術(shù)(Wireless-Fidelity,WiFi)(如美國電氣和電子工程師協(xié)會標(biāo)準(zhǔn)IEEE 802.11a、IEEE 802.11b、IEEE802.11g和/或IEEE 802.11n),網(wǎng)絡(luò)電話(Voice over Internet Protocol,VoIP),全球微波互聯(lián)接入(Worldwide Interoperability for Microwave Access,Wi-Max),其他用于郵件、即時通訊及短消息的協(xié)議,以及任何其他合適的通訊協(xié)議,甚至可包括那些當(dāng)前仍未被開發(fā)出來的協(xié)議。
按鍵模塊112提供用戶向終端10進(jìn)行輸入的接口,用戶可以通過按下不同的按鍵以使終端10執(zhí)行不同的功能。
音頻模塊114向用戶提供音頻接口,其可包括一個或多個麥克風(fēng)、一個或者多個揚(yáng)聲器以及音頻電路。音頻電路從外設(shè)接口108處接收聲音數(shù)據(jù),將聲音數(shù)據(jù)轉(zhuǎn)換為電信息,將電信息傳輸至揚(yáng)聲器。揚(yáng)聲器將電信息轉(zhuǎn)換為人耳能聽到的聲波。音頻電路還從麥克風(fēng)處接收電信息,將電信號轉(zhuǎn)換為聲音數(shù)據(jù),并將聲音數(shù)據(jù)傳輸至外設(shè)接口108中以進(jìn)行進(jìn)一步的處理。音頻數(shù)據(jù)可以從存儲器102處或者通過射頻模塊110獲取。此外,音頻數(shù)據(jù)也可以存儲至存儲器102中或者通過射頻模塊110進(jìn)行發(fā)送。在一些實例中,音頻模塊114還可包括一個耳機(jī)播孔,用于向耳機(jī)或者其他設(shè)備提供音頻接口。
顯示模塊116在終端10與用戶之間提供一個輸出界面。具體地,顯示模塊116向用戶顯示視頻輸出,這些視頻輸出的內(nèi)容可包括文字、圖形、視頻、及其任意組合。一些輸出結(jié)果是對應(yīng)于一些用戶界面對象。進(jìn)一步地,顯示模塊116還在終端10與用戶之間提供一個輸入界面,用于接收用戶的輸入,例如用戶的點擊、滑動等手勢操作,以便用戶界面對象對這些用戶的輸入做出響應(yīng)。檢測用戶輸入的技術(shù)可以是基于電阻式、電容式或者其他任意可能的觸控檢測技術(shù)。顯示模塊116顯示單元的具體實例包括但并不限于液晶顯示器或發(fā)光聚合物顯示器。
請參閱附圖2,附圖2為本發(fā)明第一實施例提供的系統(tǒng)升級方法的實現(xiàn)流程示意圖。本實施例提供的系統(tǒng)升級方法可應(yīng)用于如附圖1所示的終端10中,如附圖2所示,該方法主要包括以下步驟:
S101、獲取系統(tǒng)升級安裝包;
系統(tǒng)升級安裝包可以從服務(wù)器獲取,也可以從移動存儲設(shè)備中獲取。該系統(tǒng)升級安裝包可以是差分升級包,也可以是全量升級包。
S102、提取系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件;
系統(tǒng)應(yīng)用可指系統(tǒng)自帶的應(yīng)用程序,如配置在系統(tǒng)分區(qū)中的應(yīng)用程序。第三方應(yīng)用可指除了系統(tǒng)自帶的應(yīng)用程序之外的其他應(yīng)用程序,如配置在數(shù)據(jù)分區(qū)中的應(yīng)用程序。
S103、調(diào)用預(yù)置的預(yù)處理工具文件,對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,以生成系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件;
可選的,預(yù)置的預(yù)處理工具文件可以從系統(tǒng)升級安裝包中得到。調(diào)用預(yù)置的預(yù)處理工具文件,對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,例如對字節(jié)進(jìn)行重排序、結(jié)構(gòu)對齊等等,其目的主要是為了加快應(yīng)用的啟動速度。
S104、當(dāng)檢測到升級指令時,根據(jù)系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下。
當(dāng)檢測到升級指令時,根據(jù)獲取的系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將預(yù)處理得到的系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下,如復(fù)制到系統(tǒng)目錄/data/dalvik-cache下,從而使得當(dāng)升級完成后,再次開機(jī)時,系統(tǒng)可從該對應(yīng)的預(yù)設(shè)目錄讀取系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件,并直接執(zhí)行。
本發(fā)明實施例提供的系統(tǒng)升級方法,通過在執(zhí)行系統(tǒng)升級操作前,從系統(tǒng)升級安裝包中提取待升級的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件,然后調(diào)用預(yù)置的預(yù)處理工具文件對提取出的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,當(dāng)執(zhí)行系統(tǒng)升級操作時,在升級過程中,將預(yù)處理后得到的系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下,以使得當(dāng)升級操作完成、重啟開機(jī)之后,可直接執(zhí)行該預(yù)設(shè)目錄下的各應(yīng)用的可運行文件。相較于現(xiàn)有技術(shù),本發(fā)明實施例由于在升級前預(yù)先對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行了相應(yīng)的預(yù)處理,使得在系統(tǒng)升級到新版本之后上述文件就已經(jīng)是可用的了,從而不需要再在升級后執(zhí)行繁瑣的odex處理過程,節(jié)約了整個系統(tǒng)升級的時間,提高了系統(tǒng)升級后的開機(jī)速度,并可保證開機(jī)后系統(tǒng)運行的穩(wěn)定度及流暢度,提升系統(tǒng)運行的穩(wěn)定性。
請參閱附圖3,附圖3為本發(fā)明第二實施例提供的系統(tǒng)升級方法的實現(xiàn)流程示意圖。本實施例提供的系統(tǒng)升級方法可應(yīng)用于如附圖1所示的終端10中,如附圖3所示,該方法主要包括以下步驟:
S201、獲取系統(tǒng)升級安裝包;
可選的,通過OTA方式,從服務(wù)器下載系統(tǒng)升級安裝包。具體的,當(dāng)接收到服務(wù)器推送的系統(tǒng)更新提示消息時,輸出系統(tǒng)升級提示信息,以提示用戶是否獲取系統(tǒng)升級安裝包并進(jìn)行系統(tǒng)升級。然后,響應(yīng)于用戶基于該系統(tǒng)升級提示信息觸發(fā)的獲取指令,從服務(wù)器下載系統(tǒng)升級安裝包。該系統(tǒng)升級安裝包可以是差分升級包,也可以是全量升級包。
可以理解的,獲取指令也可根據(jù)用戶對預(yù)置升級交互界面中相關(guān)控件的預(yù)置操作觸發(fā),如用戶對升級交互界面中升級按鈕進(jìn)行的點擊操作。此外,系統(tǒng)升級安裝包也可以存儲在移動存儲設(shè)備中,則終端還可根據(jù)用戶觸發(fā)的獲取指令的指示,從移動存儲設(shè)備中獲取系統(tǒng)升級安裝包。
S202、檢測終端的工作狀態(tài)是否符合預(yù)置的空閑條件;
具體的,檢測終端的工作狀態(tài)是否符合預(yù)置的空閑條件可通過以下兩種方式實現(xiàn):
方式一,檢測終端是否進(jìn)入待機(jī)狀態(tài),若進(jìn)入待機(jī)狀態(tài),則確認(rèn)終端的工作狀態(tài)符合空閑條件。其中,待機(jī)狀態(tài)一般是指終端無任何操作且屏幕處于正常的主屏顯示之下的狀態(tài),或者鎖屏狀態(tài),或者休眠形式之下的狀態(tài)。
方式二、檢測終端中系統(tǒng)資源的占用率是否小于預(yù)置比率,若小于預(yù)置比率,則確認(rèn)終端的工作狀態(tài)符合空閑條件。系統(tǒng)資源的占用率一般是指內(nèi)存和/或CPU(Central Processing Unit,中央處理器)的占用率。在實際應(yīng)用中,可以只檢測內(nèi)存和CPU中的任一個,也可以兩個均檢測。當(dāng)同時檢測內(nèi)存和CPU的占用率時,需兩者的占用率均小于各自對應(yīng)的預(yù)置比率,才確認(rèn)終端的工作狀態(tài)符合空閑條件。
可以理解的,步驟S202還可在提取出系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件以及預(yù)置的預(yù)處理工具文件之后進(jìn)行,則若終端的工作狀態(tài)符合預(yù)置的空閑條件,則執(zhí)行調(diào)用預(yù)置的預(yù)處理工具文件,對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理的步驟。
S203、若符合空閑條件,則提取系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件,并從系統(tǒng)升級安裝包中提取預(yù)置的預(yù)處理工具文件;
于一具體應(yīng)用例中,升級安裝文件為apk(application package)文件,系統(tǒng)應(yīng)用是指system(系統(tǒng))分區(qū)的應(yīng)用,第三方應(yīng)用是指data(數(shù)據(jù))分區(qū)的應(yīng)用。預(yù)處理工具文件包括:boot.oat文件和boot.art文件。
需要說明的是,本實施例中涉及的相關(guān)文件、目錄以及分區(qū)的具體名稱,均是對應(yīng)在Android系統(tǒng)中的名稱,在其他操作系統(tǒng)中,還可以是其他名稱。
S204、調(diào)用預(yù)置的預(yù)處理工具文件,對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,以生成系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件;
具體的,調(diào)用提取出的boot.oat文件和boot.art文件對系統(tǒng)應(yīng)用的apk文件執(zhí)行patchoat命令,以對各系統(tǒng)應(yīng)用的apk文件進(jìn)行代碼優(yōu)化預(yù)處理,得到各系統(tǒng)應(yīng)用的可運行文件,即生成各系統(tǒng)應(yīng)用的odex文件。調(diào)用提取出的boot.oat文件和boot.art文件對第三方應(yīng)用的apk文件進(jìn)行odex2oat處理,得到各第三方應(yīng)用的可運行文件,即生成各第三方應(yīng)用的odex文件。
可以理解的,odex是Android上的應(yīng)用程序apk中提取出來的可運行文件(或,可以執(zhí)行的文件),即將apk中的classes.dex文件通過dex優(yōu)化過程將其優(yōu)化生成一個.dex文件單獨存放。
S205、當(dāng)檢測到升級指令時,根據(jù)系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件以及提取出的預(yù)置的預(yù)處理工具文件復(fù)制到各自對應(yīng)的預(yù)設(shè)目錄下。
具體的,檢測對各系統(tǒng)應(yīng)用及第三方應(yīng)用的apk文件的代碼優(yōu)化預(yù)處理是否全部完成,當(dāng)檢測到代碼優(yōu)化預(yù)處理全部完成時,輸出預(yù)置的升級提示信息,以提示用戶是否進(jìn)行系統(tǒng)升級;然后,接收用戶基于升級提示信息觸發(fā)的升級指令。可選的,也可當(dāng)檢測代碼優(yōu)化預(yù)處理全部完成時,系統(tǒng)自動觸發(fā)升級指令。
當(dāng)檢測到上述升級指令時,根據(jù)獲取的系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將提取出的預(yù)置的預(yù)處理工具文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下,如此,可省去升級過程中生成該預(yù)處理工具文件的時間,提高升級速度。同時,將預(yù)處理得到的系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄,從而使得當(dāng)升級完成后,再次開機(jī)時,系統(tǒng)可從該對應(yīng)的預(yù)設(shè)目錄讀取系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件,并直接執(zhí)行。
為更好的理解本發(fā)明實施例提供的系統(tǒng)升級方法,在一具體應(yīng)用例中,假設(shè)現(xiàn)有的操作系統(tǒng)為001版本,現(xiàn)在需要升級到002版本,整個方案流程如下:
(1)在001版本的操作系統(tǒng)中,下載002版本操作系統(tǒng)的升級包,可以是差分升級包或者全量升級包;
(2)從002版本操作系統(tǒng)的升級包中,將002版本的boot.oat和boot.art文件預(yù)先提取出來,以便基于這兩個文件對應(yīng)用做odex的預(yù)處理,其中需要預(yù)處理的應(yīng)用包括system分區(qū)的應(yīng)用和data分區(qū)的第三方應(yīng)用;
(3)在移動設(shè)備空閑時啟動對應(yīng)用的預(yù)處理任務(wù),其中針對system分區(qū)的系統(tǒng)應(yīng)用基于002版本的boot.oat和boot.art執(zhí)行patchoat的過程,以生成下個版本應(yīng)用可以執(zhí)行的文件odex;針對data分區(qū)的第三方應(yīng)用執(zhí)行odex2oat處理,得到第三方應(yīng)用的可以執(zhí)行的文件odex;
(4)預(yù)處理完所有應(yīng)用后,提示用戶可以升級或者自動升級系統(tǒng);
(5)根據(jù)下載的002版本操作系統(tǒng)的升級包對系統(tǒng)進(jìn)行升級,在系統(tǒng)升級過程中將上述預(yù)先提取的boot.oat和boot.art拷貝到系統(tǒng)目錄下;
(6)系統(tǒng)升級過程中將system分區(qū)和data分區(qū)的可執(zhí)行文件odex拷貝到系統(tǒng)目錄下/data/dalvik-cache,應(yīng)用執(zhí)行過程中需要從該目錄去取應(yīng)用可執(zhí)行,則將操作系統(tǒng)升級到002版本后,系統(tǒng)目錄下的這些文件就已經(jīng)是可直接使用用的了。
本發(fā)明實施例提供的系統(tǒng)升級方法,通過在執(zhí)行系統(tǒng)升級操作前,終端空閑時,從系統(tǒng)升級安裝包中提取待升級的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件,以及,預(yù)置的預(yù)處理工具文件,然后調(diào)用該預(yù)處理工具文件對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,當(dāng)執(zhí)行系統(tǒng)升級操作時,在升級過程中,將提取的預(yù)處理工具文件、以及預(yù)處理后得到的系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下,以使得在進(jìn)行升級操作時不必再重新生成該預(yù)處理工具文件,而當(dāng)升級操作完成、重啟開機(jī)之后,可直接執(zhí)行該預(yù)設(shè)目錄下的各應(yīng)用的可運行文件。相較于現(xiàn)有技術(shù),本發(fā)明實施例一方面,由于在升級前預(yù)先對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件以及預(yù)處理工具文件,進(jìn)行了相應(yīng)的預(yù)處理,使得在系統(tǒng)升級到新版本之后上述文件就已經(jīng)是可用的了,從而不需要再在升級后執(zhí)行繁瑣的odex處理過程,節(jié)約了整個系統(tǒng)升級的時間,提高了系統(tǒng)升級后的開機(jī)速度,并可保證開機(jī)后系統(tǒng)運行的穩(wěn)定度及流暢度,提升系統(tǒng)運行的穩(wěn)定性;另一方面,由于是在終端空閑時執(zhí)行的預(yù)處理操作,因此不會干擾到用戶對終端的正常使用。
請參閱附圖4,附圖4是本發(fā)明第三實施例提供的系統(tǒng)升級裝置的結(jié)構(gòu)示意圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。附圖4示例的系統(tǒng)升級裝置可以是前述實施例提供的系統(tǒng)升級方法的執(zhí)行主體,其可以是終端或者終端的一個功能模塊。附圖4示例的系統(tǒng)升級裝置,主要包括:獲取模塊301、提取模塊302、預(yù)處理模塊303以及升級模塊304。各功能模塊詳細(xì)說明如下:
獲取模塊301,用于獲取系統(tǒng)升級安裝包;
提取模塊302,用于提取該系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件;
預(yù)處理模塊303,用于調(diào)用預(yù)置的預(yù)處理工具文件,對該系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,以生成該系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件;
升級模塊304,用于當(dāng)檢測到升級指令時,根據(jù)該系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將該系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下。
具體的,系統(tǒng)升級安裝包可以從服務(wù)器獲取,也可以從移動存儲設(shè)備中獲取。該系統(tǒng)升級安裝包可以是差分升級包,也可以是全量升級包。獲取模塊301獲取系統(tǒng)升級安裝包后,觸發(fā)提取模塊302提取該系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件,然后觸發(fā)預(yù)處理模塊303調(diào)用預(yù)置的預(yù)處理工具文件,對該系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,以生成該系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件。當(dāng)檢測到升級指令時,升級模塊304根據(jù)獲取模塊301獲取的系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將預(yù)處理模塊303通過代碼優(yōu)化預(yù)處理操作得到的系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下。
需要說明的是,以上附圖4示例的系統(tǒng)升級裝置的實施方式中,各功能模塊的劃分僅是舉例說明,實際應(yīng)用中可以根據(jù)需要,例如相應(yīng)硬件的配置要求或者軟件的實現(xiàn)的便利考慮,而將上述功能分配由不同的功能模塊完成,即將該裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。而且,實際應(yīng)用中,本實施例中的相應(yīng)的功能模塊可以是由相應(yīng)的硬件實現(xiàn),也可以由相應(yīng)的硬件執(zhí)行相應(yīng)的軟件完成。本說明書提供的各個實施例都可應(yīng)用上述描述原則。
本發(fā)明實施例提供的系統(tǒng)升級裝置,通過在執(zhí)行系統(tǒng)升級操作前,從系統(tǒng)升級安裝包中提取待升級的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件,然后調(diào)用預(yù)置的預(yù)處理工具文件對提取出的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,當(dāng)執(zhí)行系統(tǒng)升級操作時,在升級過程中,將預(yù)處理后得到的系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下,以使得當(dāng)升級操作完成、重啟開機(jī)之后,可直接執(zhí)行該預(yù)設(shè)目錄下的各應(yīng)用的可運行文件。相較于現(xiàn)有技術(shù),本發(fā)明實施例由于在升級前預(yù)先對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行了相應(yīng)的預(yù)處理,使得在系統(tǒng)升級到新版本之后上述文件就已經(jīng)是可用的了,從而不需要再在升級后執(zhí)行繁瑣的odex處理過程,節(jié)約了整個系統(tǒng)升級的時間,提高了系統(tǒng)升級后的開機(jī)速度,并可保證開機(jī)后系統(tǒng)運行的穩(wěn)定度及流暢度,提升系統(tǒng)運行的穩(wěn)定性。
請參閱附圖5,附圖5是本發(fā)明第四實施例提供的系統(tǒng)升級裝置的結(jié)構(gòu)示意圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。附圖5示例的系統(tǒng)升級裝置可以是前述實施例提供的系統(tǒng)升級方法的執(zhí)行主體,其可以是終端或者終端中的一個功能模塊。如附圖5所示,該系統(tǒng)升級裝置包括:
獲取模塊301,用于獲取系統(tǒng)升級安裝包。
具體的,獲取模塊301可以在接收到服務(wù)器推送的系統(tǒng)更新提示消息時,輸出系統(tǒng)升級提示信息,以提示用戶是否獲取系統(tǒng)升級安裝包并進(jìn)行系統(tǒng)升級。然后,響應(yīng)于用戶基于該系統(tǒng)升級提示信息觸發(fā)的獲取指令,從服務(wù)器下載系統(tǒng)升級安裝包。其中該系統(tǒng)升級安裝包可以是差分升級包,也可以是全量升級包。
可以理解的,獲取指令也可根據(jù)用戶對預(yù)置升級交互界面中相關(guān)控件的預(yù)置操作觸發(fā),如用戶對升級交互界面中升級按鈕進(jìn)行的點擊操作。此外,系統(tǒng)升級安裝包也可以存儲在移動存儲設(shè)備中,則獲取模塊301還可根據(jù)用戶觸發(fā)的獲取指令的指示,從移動存儲設(shè)備中獲取系統(tǒng)升級安裝包。
提取模塊302,用于提取該系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件。
于一具體應(yīng)用例中,升級安裝文件為apk文件,系統(tǒng)應(yīng)用是指system分區(qū)的應(yīng)用,第三方應(yīng)用是指data分區(qū)的應(yīng)用。需要說明的是,本實施例中涉及的相關(guān)文件、目錄以及分區(qū)的具體名稱,均是對應(yīng)在Android系統(tǒng)中的名稱,在其他操作系統(tǒng)中,還可以是其他名稱。
預(yù)處理模塊303,用于調(diào)用預(yù)置的預(yù)處理工具文件,對該系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,以生成該系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件。
具體的,預(yù)處理工具文件包括:boot.oat文件和boot.art文件。預(yù)處理模塊303調(diào)用boot.oat文件和boot.art文件對系統(tǒng)應(yīng)用的apk文件執(zhí)行patchoat命令,以對各系統(tǒng)應(yīng)用的apk文件進(jìn)行代碼優(yōu)化預(yù)處理,得到各系統(tǒng)應(yīng)用的可運行文件,即生成各系統(tǒng)應(yīng)用的odex文件。調(diào)用boot.oat文件和boot.art文件對第三方應(yīng)用的apk文件進(jìn)行odex2oat處理,得到各第三方應(yīng)用的可運行文件,即生成各第三方應(yīng)用的odex文件。
可以理解的,odex是Android上的應(yīng)用程序apk中提取出來的可運行文件,即將apk中的classes.dex文件通過dex優(yōu)化過程將其優(yōu)化生成一個.dex文件單獨存放。
升級模塊304,用于當(dāng)檢測到升級指令時,根據(jù)該系統(tǒng)升級安裝包對系統(tǒng)進(jìn)行升級,并在升級過程中,將該系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下。
進(jìn)一步地,提取模塊302,還用于從該系統(tǒng)升級安裝包中提取該預(yù)置的預(yù)處理工具文件;
升級模塊304,還用于在升級過程中,將提取出的該預(yù)置的預(yù)處理工具文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下。
進(jìn)一步地,該裝置還包括:
檢測模塊401,用于檢測終端的工作狀態(tài)是否符合預(yù)置的空閑條件;
觸發(fā)模塊402,用于若檢測模塊401檢測到該終端的工作狀態(tài)符合該空閑條件,則觸發(fā)提取模塊302執(zhí)行該提取該系統(tǒng)升級安裝包中的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件的步驟;
觸發(fā)模塊402,還用于若檢測模塊401檢測到該終端的工作狀態(tài)符合該空閑條件,則觸發(fā)預(yù)處理模塊303執(zhí)行該調(diào)用預(yù)置的預(yù)處理工具文件,對該系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理的步驟。
進(jìn)一步地,檢測模塊401包括:
第一檢測模塊4011,用于檢測該終端是否進(jìn)入待機(jī)狀態(tài),若進(jìn)入該待機(jī)狀態(tài),則確認(rèn)該終端的工作狀態(tài)符合該空閑條件;
第二檢測模塊4012,用于檢測該終端中系統(tǒng)資源的占用率是否小于預(yù)置比率,若小于預(yù)置比率,則確認(rèn)該終端的工作狀態(tài)符合該空閑條件。
具體的,待機(jī)狀態(tài)一般是指終端無任何操作且屏幕處于正常的主屏顯示之下的狀態(tài),或者鎖屏狀態(tài),或者休眠形式之下的狀態(tài)。系統(tǒng)資源的占用率一般是指內(nèi)存和/或CPU的占用率。在實際應(yīng)用中,第二檢測模塊4012可以只檢測內(nèi)存和CPU中的任一個,也可以兩個均檢測。當(dāng)同時檢測內(nèi)存和CPU的占用率時,需兩者的占用率均小于各自對應(yīng)的預(yù)置比率,才確認(rèn)終端的工作狀態(tài)符合空閑條件。
進(jìn)一步地,該裝置還包括:
信息提示模塊403,用于當(dāng)檢測到該代碼優(yōu)化預(yù)處理全部完成時,輸出預(yù)置的升級提示信息,以提示用戶是否進(jìn)行系統(tǒng)升級;
接收模塊404,用于接收該用戶基于該升級提示信息觸發(fā)的該升級指令;
指令觸發(fā)模塊405,用于當(dāng)檢測該代碼優(yōu)化預(yù)處理全部完成時,觸發(fā)該升級指令。
具體的,檢測模塊401檢測預(yù)處理模塊303對各系統(tǒng)應(yīng)用及第三方應(yīng)用的apk文件的代碼優(yōu)化預(yù)處理是否全部完成,當(dāng)檢測到代碼優(yōu)化預(yù)處理全部完成時,觸發(fā)信息提示模塊403輸出預(yù)置的升級提示信息,以提示用戶是否進(jìn)行系統(tǒng)升級;然后,接收模塊404接收用戶基于升級提示信息觸發(fā)的升級指令??蛇x的,也可當(dāng)檢測代碼優(yōu)化預(yù)處理全部完成時,觸發(fā)指令觸發(fā)模塊405系統(tǒng)自動觸發(fā)升級指令。
本發(fā)明實施例提供的系統(tǒng)升級裝置,通過在執(zhí)行系統(tǒng)升級操作前,終端空閑時,從系統(tǒng)升級安裝包中提取待升級的系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件,以及,預(yù)置的預(yù)處理工具文件,然后調(diào)用該預(yù)處理工具文件對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件進(jìn)行代碼優(yōu)化預(yù)處理,當(dāng)執(zhí)行系統(tǒng)升級操作時,在升級過程中,將提取的預(yù)處理工具文件、以及預(yù)處理后得到的系統(tǒng)應(yīng)用及第三方應(yīng)用的可運行文件復(fù)制到對應(yīng)的預(yù)設(shè)目錄下,以使得在進(jìn)行升級操作時不必再重新生成該預(yù)處理工具文件,而當(dāng)升級操作完成、重啟開機(jī)之后,可直接執(zhí)行該預(yù)設(shè)目錄下的各應(yīng)用的可運行文件。相較于現(xiàn)有技術(shù),本發(fā)明實施例一方面,由于在升級前預(yù)先對系統(tǒng)應(yīng)用及第三方應(yīng)用的升級安裝文件以及預(yù)處理工具文件,進(jìn)行了相應(yīng)的預(yù)處理,使得在系統(tǒng)升級到新版本之后上述文件就已經(jīng)是可用的了,從而不需要再在升級后執(zhí)行繁瑣的odex處理過程,節(jié)約了整個系統(tǒng)升級的時間,提高了系統(tǒng)升級后的開機(jī)速度,并可保證開機(jī)后系統(tǒng)運行的穩(wěn)定度及流暢度,提升系統(tǒng)運行的穩(wěn)定性;另一方面,由于是在終端空閑時執(zhí)行的預(yù)處理操作,因此不會干擾到用戶對終端的正常使用。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露方法、裝置及終端,可以通過其它的方式實現(xiàn)。例如,以上所描述裝置實施例僅僅是示意性的,例如,該模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或模塊的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
該作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。
該集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例該方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
需要說明的是,對于前述的各方法實施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其它順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定都是本發(fā)明所必須的。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關(guān)描述。
以上為對本發(fā)明所提供的系統(tǒng)升級方法、裝置及終端的描述,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明實施例的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。