一種Android系統升級的方法及終端的制作方法
【技術領域】
[0001]本發明涉及終端技術領域,尤其涉及一種Android系統升級的方法及終端。
【背景技術】
[0002]隨著智能終端的飛速發展,智能終端如手機或者平板電腦等,在用戶的生活、工作、娛樂等方面可提供越來越多的幫助。隨著系統功能的不斷改進,用戶需要對終端上當前安裝的系統進行升級,以獲得更好的體驗。
[0003]現有技術中,現有Android系統下的升級過程一般包括以下步驟:
[0004]S1、系統啟動;
[0005]S2、啟動升級服務;
[0006]S3、下載升級包到緩存分區(即cache分區);
[0007]S4、調用系統接口進入recovery模式;
[0008]S5、在recovery模式下安裝升級包;
[0009]S6、啟動升級后的新系統;
[0010]S7、顯示“Android正在更新”,進行Android初始化;
[0011]S8、升級完成。
[0012]其中,在步驟S7中,不管采用dalvikvm模式或art模式的虛擬機環境,均需要對升級文件進行轉化,需要耗費大量的時間,而在轉化的過程中,終端都無法使用,嚴重影響用戶的體驗。
【發明內容】
[0013]本發明實施例所要解決的技術問題在于,提供一種Android系統升級的方法及終端。以解決Android系統升級時終端無法使用的問題。
[0014]為了解決上述技術問題,本發明實施例提供了一種Android系統升級的方法,包括:
[0015]接收用戶輸入的升級指令,下載升級包;
[0016]在后臺對所述升級包中的文件進行轉化處理;
[0017]將轉化處理后的文件保存至除系統升級緩存區的其他存儲位置;
[0018]在recovery模式下將所述轉化處理后的文件拷貝至所述系統升級緩存區,完成升級。
[0019]其中,還包括:
[0020]若所述升級包為增量升級包,則將所述升級包中的系統歸檔文件及系統Android安裝包進行合成;
[0021]若所述升級包為全量升級包,則無需進行合成。
[0022]其中,若所述升級包為增量升級包,則將所述升級包中的系統歸檔文件及系統Android安裝包進行合成在后臺進行。
[0023]其中,所述將轉化處理后的文件保存至除系統升級緩存區的其他存儲位置,包括:
[0024]將轉化處理后的文件保存至外置安全數碼卡中;或者
[0025]將轉化處理后的文件保存至終端內置存儲中除系統升級緩存區的其他存儲路徑。
[0026]其中,所述升級包中的文件包括系統歸檔文件、系統Android安裝包以及用戶安裝的Android安裝包;
[0027]所述轉化處理包括odex轉化處理或oat轉化處理。
[0028]相應地,本發明實施例還提供了一種終端,包括:
[0029]下載單元,用于接收用戶輸入的升級指令,下載升級包;
[0030]轉化單元,用于在后臺對所述升級包中的文件進行轉化處理;
[0031]存儲單元,用于將轉化處理后的文件保存至除系統升級緩存區的其他存儲位置;
[0032]升級單元,用于在recovery模式下將所述轉化處理后的文件拷貝至所述系統升級緩存區,完成升級。
[0033]其中,所述轉化單元還用于:
[0034]若所述升級包為增量升級包,則將所述升級包中的系統歸檔文件及系統Android安裝包進行合成;
[0035]若所述升級包為全量升級包,則無需進行合成。
[0036]其中,若所述升級包為增量升級包,則將所述升級包中的系統歸檔文件及系統Android安裝包進行合成在后臺進行。
[0037]其中,所述存儲單元具體用于:
[0038]將轉化處理后的文件保存至外置安全數碼卡中;或者
[0039]將轉化處理后的文件保存至終端內置存儲中除系統升級緩存區的其他存儲路徑。
[0040]其中,所述升級包中的文件包括系統歸檔文件、系統Android安裝包以及用戶安裝的Android安裝包;
[0041]所述轉化處理包括odex轉化處理或oat轉化處理。
[0042]實施本發明實施例,具有如下有益效果:
[0043]通過接收用戶輸入的升級指令,下載升級包,然后在后臺對所述升級包中的文件進行轉化處理,并將轉化處理后的文件保存至除系統升級緩存區之外的其他存儲位置,然后在recovery模式下將所述轉化處理后的文件拷貝至所述系統升級緩存區,完成升級,由于轉化處理在后臺進行,因此在升級過程中用戶可照常使用舊系統;且轉化完成后,將轉化處理后的文件存儲在非系統升級緩存區,并在recovery模式下將其拷貝至系統升級緩存區,從而使得Android的初始化過程大大縮短,升級直接完成,在升級過程中,用戶可以使用舊系統,在升級完成后,終端可直接調用轉化處理后的文件使用,這樣用戶也就可以直接在終端重啟后直接使用新的系統,使得整個升級過程中,終端的不可使用時間大大縮短,提升了終端的易用性,也提升了用戶體驗。
【附圖說明】
[0044]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0045]圖1是本發明提供的Android系統升級的方法的第一實施例的流程示意圖;
[0046]圖2是本發明提供的Android系統升級的方法的第二實施例的流程示意圖;
[0047]圖3是本發明提供的Android系統升級的方法的第三實施例的流程示意圖;
[0048]圖4是本發明提供的終端的第一實施例的組成示意圖。
【具體實施方式】
[0049]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0050]本發明實施例中的終端可以包括安裝有Android系統的智能手機、平板電腦、掌上電腦、筆記本電腦、移動互聯網設備(MID,Mobile Internet Devices)或穿戴式設備等,上述終端僅是舉例,而非窮舉,包含但不限于上述終端。
[0051]請參照圖1,為本發明提供的Android系統升級的方法的第一實施例的流程示意圖,在本實施例中,所述方法包括以下步驟:
[0052]S101,接收用戶輸入的升級指令,下載升級包。
[0053]S102,在后臺對所述升級包中的文件進行轉化處理。
[0054]其中,所述升級包中的文件包括系統歸檔(Java Archive,簡稱JAR)文件、系統Android安裝包(Android Package,簡稱APK)以及用戶安裝的Android安裝包。
[0055]所述轉化處理包括odex轉化處理或oat轉化處理。兩種轉化處理根據終端當前所使用的虛擬機環境而定。
[0056]—般地,需要進行轉化處理的文件路徑為/system/framework/*.jar、/system/app/氺.apk、/system/pri~app/apk、/vendor/app/*.apk 以及 /data/app/*.apk。氺為應用名稱。
[0057]針對APK,還需要考慮版本號的差別,需要判別到底需要轉化哪個APK,如果系統的APK已經升級過,則無需轉化處理,已包含在/data/app中,具體的判斷可以通過系統接口來進行。
[0058]其中,當終端使用dalvikvm的虛擬機環境時,需要對升級包中的JAR文件、系統APK以及用戶安裝的APK進行odex轉化處理。具體地,在dex環境下,將上述三種文件里的dex轉化為odex,而在odex環境下,系統JAR文件已經是odex 了,不需要轉化;同時大部分APK也是odex,但是系統里仍有部分dex的APK,仍需要轉化為odex,而且用戶自行安裝的APK也需要轉化。其中,dex和odex均為安卓(Android)平臺上的可執行文件的類型。且odex是安卓上的APK中提取出來的可運行文件,即將APK中的classes, dex文件通過dex優化過程將其優化生成一個dex文件單獨存放,原APK中的classes, dex文件會保留,這樣做可以加快應用的啟動速度,預先提取,減少對RAM的占用,因為沒有odex的話,系統要從apk包中提取dex再運行。
[0059]另一種情況,當終端使用安卓運行環境(Android runtime,簡稱art)的虛擬機環境時,不管是dex環境下還是ode