一種安卓系統中的用戶數據鏡像加載方法、裝置及終端的制作方法
【技術領域】
[0001]本發明涉及通信領域,尤其涉及一種安卓系統中的用戶數據鏡像加載方法、裝置及終端。
【背景技術】
[0002]在安卓(Android)系統中,Android源碼編譯后,在out/target/product/generic下生成的三個鏡像文件:ramdisk.1mg (根文件鏡像)、system.1mg(系統鏡像)、userdata.1mg(用戶數據鏡像),以及它們對應的目錄樹root、system、data。其中,ramdisk.1mg是根文件系統,system, img包括了主要的包、庫等文件,userdata.1mg包括了一些用戶數據。Android加載這3個映像文件后,會把system和userdata分別加載到ramdisk文件系統中的system和data目錄下。
[0003]由于system, img和userdata.1mg采用Ext4(第四代擴展文件系統)格式構建,根據標準規定,采用Ext4格式構建的鏡像,需要預先規定鏡像大小,以便在鏡像加載過程中,根據預先規定的鏡像大小,將該鏡像中包含的全部數據加載到指定目錄。
[0004]在實際中,同型號的終端卻可能具有不同容量的存儲空間,例如:兩個智能手機除存儲空間不同(一為16G,另一為64G)之外,其余配置均相同。但由于Ext4格式的制約,必須為上述兩個智能手機分別編譯不同的userdata.1mg鏡像,即為存儲空間是16G的智能手機編譯一個userdata_l.1mg鏡像,還要為存儲空間是64G的智能手機編譯另一個userdata_2.1mg鏡像。并根據兩個智能手機的存儲空間的不同,將userdata_2.1mg的鏡像大小設置的更大,而將userdata_l.1mg的鏡像大小設置的較小,但實際上,userdata_l.1mg和userdata_2.1mg中所包含的用戶數據是相同的。
[0005]可見,現有技術需要為不同存儲容量的終端,編譯不同版本的userdata.1mg鏡像。
【發明內容】
[0006]本發明實施例提供一種安卓系統中的用戶數據鏡像的加載方法、裝置及終端,用以提供一種能夠根據終端的存儲空間容量的大小進行自適應調整的用戶數據鏡像的加載方法,降低了用戶數據鏡像編譯的復雜性,同時降低了用戶數據鏡像的開發和維護資源。
[0007]本發明實施例提供一種安卓系統中的用戶數據鏡像的加載方法,該方法包括:
[0008]獲取預先生成的分區表、用戶數據鏡像和非用戶數據鏡像;所述非用戶數據鏡像至少包括系統鏡像和根文件鏡像;
[0009]根據所述分區表將所述非用戶數據鏡像分別加載到所述終端的指定目錄下;
[0010]根據所述終端可用存儲空間的總容量和加載非用戶數據鏡像所占用的存儲空間容量,計算所述終端的剩余容量;
[0011]根據所述剩余容量將所述分區表中預設的用戶數據分區容量修改為與所述剩余容量相同的大小;
[0012]將所述預先生成的用戶數據鏡像的大小擴容到與修改后的分區表中的用戶數據分區容量相同的大小,并根據所述修改后的分區表將擴容后的用戶數據鏡像加載到所述終端的指定目錄下;
[0013]其中,擴容后的用戶數據鏡像與所述預先生成的用戶數據鏡像中包含有相同的用戶數據。
[0014]本發明實施例還提供一種安卓系統中的用戶數據鏡像的加載裝置,該裝置包括:
[0015]獲取單元,用于獲取預先生成的分區表、用戶數據鏡像和非用戶數據鏡像;所述非用戶數據鏡像至少包括系統鏡像和根文件鏡像;
[0016]非用戶數據鏡像加載單元,用于根據所述分區表將所述非用戶數據鏡像分別加載到所述終端的指定目錄下;
[0017]計算單元,用于根據所述終端可用存儲空間的總容量和加載所述非用戶數據鏡像所占用的存儲空間容量,計算所述終端的剩余容量;
[0018]修改單元,用于根據所述剩余容量則將所述分區表中預設的用戶數據分區容量修改為與所述剩余容量相同的大小;
[0019]擴容及加載單元,用于將所述預先生成的用戶數據鏡像的大小擴容到與修改后的分區表中的用戶數據分區容量相同的大小,并根據所述修改后的分區表將擴容后的用戶數據鏡像加載到所述終端的指定目錄下;
[0020]其中,擴容后的用戶數據鏡像與所述預先生成的用戶數據鏡像中包含有相同的用戶數據。
[0021]本發明實施例還提供一種終端,該終端包括一種安卓系統中的用戶數據鏡像的加載裝置。
[0022]從上述技術方案可以看出,本發明實施例可以預先生成一個較小且適用于各種終端的用戶數據鏡像(userdata.1mg),并在終端初始化時,先將系統鏡像(system, img)根文件鏡像和系統鏡像(ramdisk.1mg)等非用戶數據鏡像加載到終端的指定目錄下后,根據終端的當前剩余存儲空間,自動的將預先生成的、容量較小的用戶數據鏡像進行無損擴容,以保證擴容后的用戶數據鏡像包含有預先生成的用戶數據鏡像中所包含的全部數據,因此擴容后的用戶數據鏡像雖然在容量上能夠與終端的剩余容量匹配、但卻不會損失任何用戶數據。在各類終端中預置本發明實施例提供的用戶數據鏡像后,可以實現根據終端的本地存儲空間容量,自動的進行用戶數據鏡像無損擴容的方案,從而不需要為不同容量的終端分別編譯各種版本的用戶數據鏡像,進而簡化了開發復雜度、節省了開發及維護資源。
【附圖說明】
[0023]為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0024]圖1為本發明實施例提供的一種安卓系統中的用戶數據鏡像的加載方法的流程示意圖;
[0025]圖2為本發明實施例提供的分區表中userdata分區的調整方案的流程示意圖;
[0026]圖3(a)為本發明實施例中一種預先生成的分區表的示意圖;
[0027]圖3(b)為本發明實施例中修改后的分區表的不意圖;
[0028]圖4為本發明實施例提供的文件系統中userdata.1mg的無損擴容方案的流程示意圖;
[0029]圖5為本發明實施例提供的一種安卓系統中的用戶數據鏡像的加載裝置的結構示意圖。
【具體實施方式】
[0030]為了使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其它實施例,都屬于本發明保護的范圍。
[0031]本發明實施例可以應用于各類終端(如智能手機、平板電腦等設備),尤其適用于采用安卓(Android)操作系統的終端。當然,也可適用于采用雙系統的終端,雙系統中至少包括安卓操作系統。
[0032]為了便于在終端出廠時,能夠在終端內預置部分的預裝應用程序或數據(如圖片數據、視頻數據等),一般需要在終端初始化過程中,將預置的用戶數據鏡像(為了描述方便,以下可簡稱為userdata.1mg)加載到ramdisk文件系統中的data(數據)目錄下。
[0033]針對安卓系統中的用戶數據鏡像加載過程,本發明實施例提供的方法可以按照本發明提供的分區表中所設置的加載順序,在系統將ramdisk.1mg、system, img等其他非用戶數據鏡像加載到相應目錄之后,將預先生成的較小的userdata.1mg加載到相應的目錄下。
[0034]在本發明實施例中,由于終端運行需要許多分區,這些分區可以包括modem(存儲modem鏡像)/config (廠商的配置信息),modemstl (NV信息)等,也可以包括用戶自定義分區,其對應的非用戶數據鏡像至少包括ramdisk.1mg、system.1mg、modem鏡像、config廠商配置鏡像等。
[0035]需要說明的是,在本發明實施例中,在加載:ramdisk.1mg到根目錄之后,還可以按照現有技術加載其他鏡像,但需要將userdata.1mg作為最后一個鏡像加載到相應目錄下。
[0036]本發明實施例提供的userdata.1mg的大小可以小于現有技術中的userdata.1mg,這樣可以保