一種對移動終端的存儲器進行格式化的方法和裝置的制造方法
【專利摘要】本發明實施例提供一種對移動終端的存儲器進行格式化的方法和裝置,其中所述方法包括:在檢測到移動終端啟動時,判斷所述移動終端的存儲器是否已經格式化;若判定所述移動終端的存儲器還沒有格式化,則對所述移動終端的存儲器執行格式化操作,所述格式化操作包括:獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值,其中,所述軟件代碼為不同存儲容量大小的存儲器共用的軟件代碼。本發明實施例可以針對不同存儲容量的存儲器采用一套共用的軟件代碼,提高了軟件代碼的兼容性,降低了軟件代碼對存儲器的依賴性,以及,降低了軟件代碼的維護成本。
【專利說明】
一種對移動終端的存儲器進行格式化的方法和裝置
技術領域
[0001]本發明實施例涉及存儲技術領域,尤其涉及一種對移動終端的存儲器進行格式化的方法以及一種對移動終端的存儲器進行格式化的裝置。
【背景技術】
[0002]隨著信息技術的發展,移動終端越來越普及。為了滿足不同用戶群體的需求,移動終端的設備廠商會生產存儲容量不同的移動終端,例如,32G、64G或128G等等。
[0003]在現有技術中,針對存儲器的不同存儲容量大小,需要維護一套對應的軟件代碼,則不同的存儲容量需要維護多套代碼,代碼維護成本高,代碼管理復雜度高。
【發明內容】
[0004]本發明實施例提供一種對移動終端的存儲器進行格式化的方法和裝置,用以解決現有技術中存儲器的不同的存儲容量需要維護多套代碼,代碼維護成本高,代碼管理復雜度高的問題。
[0005]本發明實施例提供一種對移動終端的存儲器進行格式化的方法,所述方法包括:
[0006]在檢測到移動終端啟動時,判斷所述移動終端的存儲器是否已經格式化;
[0007]若判定所述移動終端的存儲器還沒有格式化,則對所述移動終端的存儲器執行格式化操作,所述格式化操作包括:獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值,其中,所述軟件代碼為不同存儲容量大小的存儲器共用的軟件代碼。
[0008]本發明實施例還提供一種對移動終端的存儲器進行格式化的裝置,所述裝置包括:
[0009]格式化判斷模塊,用于在檢測到移動終端啟動時,判斷所述移動終端的存儲器是否已經格式化;
[0010]格式化模塊,用于在判定所述移動終端的存儲器還沒有格式化時,對所述移動終端的存儲器執行格式化操作,所述格式化操作包括:獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值,其中,所述軟件代碼為不同存儲容量大小的存儲器共用的軟件代碼。
[0011]在本發明實施例中,在移動終端啟動時,首先判斷移動終端的存儲器是否已經格式化,若該存儲器沒有格式化,則對存儲器執行獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值等格式化操作,本發明實施例針對不同存儲容量的存儲器采用一套共用的軟件代碼,提高了軟件代碼的兼容性,降低了軟件代碼對存儲器的依賴性,以及,降低了軟件代碼的維護成本。
【附圖說明】
[0012]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0013]圖1為本發明實施例的一種對移動終端的存儲器進行格式化的方法實施例一的步驟流程圖;
[0014]圖2為本發明實施例的一種對移動終端的存儲器進行格式化的方法實施例二的步驟流程圖;
[0015]圖3為本發明實施例的一種對移動終端的存儲器進行格式化的裝置實施例一的結構框圖。
【具體實施方式】
[0016]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0017]參考圖1,示出了本發明實施例的一種對移動終端的存儲器進行格式化的方法實施例一的步驟流程圖,具體可以包括如下步驟:
[0018]步驟101,在檢測到移動終端啟動時,判斷所述移動終端的存儲器是否已經格式化;
[0019]步驟102,若判定所述移動終端的存儲器還沒有格式化,則對所述移動終端的存儲器執行格式化操作,所述格式化操作包括:獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值,其中,所述軟件代碼為不同存儲容量大小的存儲器共用的軟件代碼。
[0020]在本發明實施例中,在移動終端啟動時,首先判斷移動終端的存儲器是否已經格式化,若該存儲器沒有格式化,則對存儲器執行獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值等格式化操作,本發明實施例針對不同存儲容量的存儲器采用一套共用的軟件代碼,提高了軟件代碼的兼容性,降低了軟件代碼對存儲器的依賴性,以及,降低了軟件代碼的維護成本。
[0021]參考圖2,示出了本發明實施例的一種對移動終端的存儲器進行格式化的方法實施例二的步驟流程圖。
[0022]在本發明實施例中,可以應用于包含存儲器的移動終端中,該存儲器優選可以為eMMC( (Embedded MultiMediaCard, MMC協會所訂立的內嵌式存儲器標準規格)存儲器,eMMC存儲器的一個明顯優勢是在封裝中集成了一個控制器,它提供標準接口并管理閃存,使得移動終端廠商能夠專注于產品開發的其它部分,并縮短向市場推出產品的時間。
[0023]通常,從廠家出來的eMMC可以至少可以包括如下部分:
[0024]Boot分區:即啟動分區,可以包括第一Boot分區Boot I和第二 Boot分區Boot 2。這兩個分區是由廠家在生產過程中配置好,可以用來存儲啟動圖像boot image、default配置參數等等。
[0025]RPMB (Replay Protected Memory Block,回放保護內存塊):存在目的是用來給系統存放一些特殊的、需要進行訪問授權的數據。
[0026]User Data Area:用戶分區,用戶可以進行讀寫存儲的區域,通常其大小為整塊EMMC表示大小的93%左右,即4GB的eMMC UDA的區域只有4GB*93% = 3809MB。
[0027]本發明實施例針對eMMC不同的存儲容量大小提出了一種兼容性的解決方案,可以包括如下步驟:
[0028]步驟201,在檢測到移動終端啟動時,采用預設的引導加載程序Bootloader讀取Boot分區中預設的第一格式化參數的值;
[0029]應用于本發明實施例,可以在eMMC的Boot分區中預先設置第一格式化參數(作為一種示例,該第一格式化參數可以定義為erase_data參數),該第一格式化參數可以為一個全局變量,用于作為移動終端第一次開機啟動時對內存格式化的標識。
[0030]在實際中,第一格式化參數可以為布爾bool類型的參數,可取值為true(或yes,即第一預設閾值)和false (或no,即第二預設閾值),在本發明實施例中,可以將第一格式化參數的值默認為第一預設閾值。
[0031]當移動終端上電啟動后,可以首先從Boot分區中讀取第一格式化參數的值。在具體實現中,移動終端可以采用引導加載程序Bootloader來從Boot分區中讀取第一格式化參數的值,其中,Bootloader是嵌入式系統在加電后執行的第一段代碼,在它完成CPU和相關硬件的格式化之后,再將操作系統映像或固化的嵌入式應用程序裝在到內存中然后跳轉到操作系統所在的空間,啟動操作系統運行。
[0032]步驟202,判斷所述第一格式化參數的值為第一預設閾值還是第二預設閾值;若所述第一格式化參數的值為第一預設閾值,則執行步驟203 ;若所述第一格式化參數的值為第二預設閾值,則執行步驟204 ;
[0033]例如,bootloader從 Boot 分區讀取 erase_data 的取值,若 erase_data = yes,則執行步驟203 ;如果erase_data = no,則執行步驟204。
[0034]步驟203,判定所述移動終端沒有格式化,以及,將所述第一格式化參數的值更改為第二預設閾值,并設定所述Boot分區中預設的第二格式化參數的值為第三預設閾值;
[0035]具體來說,若第一格式化參數的值為第一預設閾值,例如,當erase_data = yes時,則可以判定該移動終端沒有格式化,此時,可以將第一格式化參數的值更改為第二預設閾值,例如,設置eraSe_data = no,則移動終端下次開機啟動時可以讀取到該第一格式化參數的值為第二預設閾值。
[0036]應用于本發明實施例,在Boot分區中還定義有第二格式化參數(作為一種示例,該第二格式化參數可以定義為cmdline.android, x.erase_userdata參數),用于作為移動終端的操作系統進入內核層后對內存格式化的標識。當判定移動終端還沒有格式化時,可以進一步讀取第二格式化參數,并將第二格式化參數的值配置為第三預設閾值,例如,設定為 cmdline.android, x.erase_userdata = yes。
[0037]步驟204,判定所述移動終端已經格式化,并設定預設的第二格式化參數的值為第四預設閾值;
[0038]若第一格式化參數的值為第二預設閾值,例如,當erase_data = no時,則可以判定該移動終端已經格式化,此時,可以將第二格式化參數的值配
[0039]步驟205,當進入操作系統的內核層時,讀取所述第二格式化參數的值;
[0040]當bootloader運行完畢以后,可以進入移動終端的操作系統內核層kernel,在操作系統內核層中,可以通過讀取第二格式化參數的值來判斷該移動終端的存儲器是否已經格式化。
[0041]步驟206,若所述第二格式化參數的值為第三預設閾值,則對Data分區執行格式化操作。
[0042]當進入內核層kernel以后,如果讀取的第二格式化參數的值為第三預設閾值,例如,cmdline.android, x.erase_userdata = yes,則在內核層中可以判定該移動終端還沒有執行格式化操作,此時可以在內核層中對移動終端執行格式化操作,具體可以為,對eMMC的Data分區執行格式化操作,其中,格式化(format)操作是指對磁盤(本發明實施例可以為eMMC)或磁盤中的分區(partit1n)進行初始化的一種操作,這種操作通常會導致現有的磁盤或分區中所有的文件被清除。
[0043]在一種實施方式中,該格式化操作具體可以包括:獲取所述移動終端的存儲器的可用存儲容量值,并將所述可用存儲容量值替換軟件代碼中預設的存儲容量值。
[0044]具體而言,本發明實施例能夠為多種不同存儲容量大小的存儲器設置一套共用的軟件代碼,以實現軟件代碼的兼容性,為了實現共用性,該共用的軟件代碼中可以設置有預設的存儲容量值,例如,1G0當運行該共用的軟件代碼,讀取到該預設的存儲容量值時,可以進一步獲取移動終端的存儲器的可用存儲容量值,并將該可用存儲容量值替換共用軟件代碼中預設的存儲容量值,以使得在移動終端中顯示該存儲器的可用存儲容量值。
[0045]在本發明實施例的一種優選實施例中,上述獲取所述移動終端的存儲器的可用存儲容量值,可以采用如下方式:
[0046]獲取所述移動終端的存儲器的實際存儲容量值;計算所述移動終端的存儲器的已用存儲容量值;計算所述實際存儲容量值與所述已用存儲容量值的差值,得到所述存儲器的可用存儲容量值。
[0047]例如,第一存儲器的實際容量大小為32G,移動終端中安裝的應用程序所占的已用存儲容量值為4G,則該第一存儲器的可用存儲容量值為28G。若共用的軟件代碼中預設的存儲容量值為10G,則可以將28G替換該軟件代碼中的10G,使得移動終端顯示的可用存儲容量值為28G,以完成移動終端的內存格式化。
[0048]又如,第二存儲器的實際容量大小為16G,移動終端中安裝的應用程序所占的已用存儲容量值為2G,則該存儲器的可用存儲容量值為14G。若共用的軟件代碼中預設的存儲容量值為10G,則可以將14G替換該軟件代碼中的10G,使得移動終端顯示的可用存儲容量值為14G,以完成移動終端的內存格式化。
[0049]另一方面,若第二格式化參數的值為第四預設閾值,例如,cmdline.android,x.erase_userdata = no,則在內核層中可以判定該移動終端已經執行格式化操作,此時可以結束流程。
[0050]在本發明實施例中,不同存儲容量值的eMMC能夠共用一套通用的軟件代碼,將獲取到的eMMC的可用存儲容量值替換共用軟件代碼中預設的存儲容量值,以實現軟件代碼的兼容性,避免維護多套代碼的麻煩,使軟件代碼不用考慮更多硬件的變動,降低軟件代碼對硬件的依賴性,省去了在代碼運行前需用編譯開關來控制代碼的編譯復雜性。
[0051]參考圖3,示出了本發明實施例的一種對移動終端的存儲器進行格式化的裝置實施例的結構框圖,具體可以包括如下模塊:
[0052]格式化判斷模塊301,用于在檢測到移動終端啟動時,判斷所述移動終端的存儲器是否已經格式化;
[0053]格式化模塊302,用于在判定所述移動終端的存儲器還沒有格式化時,對所述移動終端的存儲器執行格式化操作,所述格式化操作包括:獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值。
[0054]在本發明實施例的一種優選實施例中,所述存儲器包括啟動分區Boot分區,所述格式化判斷模塊301可以包括如下子模塊:
[0055]第一格式化參數讀取子模塊,用于在檢測到移動終端啟動時,采用預設的引導加載程序Bootloader讀取所述Boot分區中預設的第一格式化參數的值;
[0056]判斷子模塊,用于判斷所述第一格式化參數的值為第一預設閾值還是第二預設閾值;
[0057]第一判定子模塊,用于在所述第一格式化參數的值為第一預設閾值時,判定所述移動終端的存儲器沒有格式化;
[0058]第二判定子模塊,用于在所述第一格式化參數的值為第二預設閾值時,判定所述移動終端的存儲器已經格式化。
[0059]在本發明實施例的一種優選實施例中,所述裝置還可以包括如下模塊:
[0060]第一參數設定模塊,用于在判定所述移動終端的存儲器沒有格式化時,將所述第一格式化參數的值更改為第二預設閾值,并設定所述Boot分區中預設的第二格式化參數的值為第三預設閾值;
[0061]第二參數設定模塊,用于在判定所述移動終端的存儲器已經格式化時,設定所述第二格式化參數的值為第四預設閾值。
[0062]在本發明實施例的一種優選實施例中,所述存儲器還包括用戶分區Data分區,所述格式化模塊302可以包括如下子模塊:
[0063]第二格式化參數讀取子模塊,用于在進入操作系統的內核層時,讀取所述第二格式化參數的值;
[0064]分區格式化子模塊,用于在所述第二格式化參數的值為第三預設閾值時,對所述Data分區執行格式化操作。
[0065]在本發明實施例的一種優選實施例中,所述獲取所述移動終端的存儲器的可用存儲容量值,采用如下方式:
[0066]獲取所述移動終端的存儲器的實際存儲容量值;
[0067]計算所述移動終端的存儲器的已用存儲容量值;
[0068]計算所述實際存儲容量值與所述已用存儲容量值的差值,得到所述存儲器的可用存儲容量值。
[0069]對于圖3的裝置實施例而言,由于其與上述方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
[0070]以上所描述的客戶端或服務器實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創造性的勞動的情況下,即可以理解并實施。
[0071]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件。基于這樣的理解,上述技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在計算機可讀存儲介質中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行各個實施例或者實施例的某些部分所述的方法。
[0072]最后應說明的是:以上實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的精神和范圍。
【主權項】
1.一種對移動終端的存儲器進行格式化的方法,其特征在于,所述方法包括: 在檢測到移動終端啟動時,判斷所述移動終端的存儲器是否已經格式化; 若判定所述移動終端的存儲器還沒有格式化,則對所述移動終端的存儲器執行格式化操作,所述格式化操作包括:獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值,其中,所述軟件代碼為不同存儲容量大小的存儲器共用的軟件代碼。2.根據權利要求1所述的方法,其特征在于,所述存儲器包括啟動分區Boot分區,所述在檢測到移動終端啟動時,判斷所述移動終端的存儲器是否已經格式化的步驟包括: 在檢測到移動終端啟動時,采用預設的引導加載程序Bootloader讀取所述Boot分區中預設的第一格式化參數的值; 判斷所述第一格式化參數的值為第一預設閾值還是第二預設閾值; 若所述第一格式化參數的值為第一預設閾值,則判定所述移動終端的存儲器沒有格式化; 若所述第一格式化參數的值為第二預設閾值,則判定所述移動終端的存儲器已經格式化。3.根據權利要求2所述的方法,其特征在于,在所述若所述移動終端的存儲器還沒有格式化,則對所述移動終端的存儲器執行格式化操作的步驟之前,還包括: 若判定所述移動終端的存儲器沒有格式化,則將所述第一格式化參數的值更改為第二預設閾值,并設定所述Boot分區中預設的第二格式化參數的值為第三預設閾值; 若判定所述移動終端的存儲器已經格式化,則設定所述第二格式化參數的值為第四預設閾值。4.根據權利要求3所述的方法,其特征在于,所述存儲器還包括用戶分區Data分區,所述若所述移動終端的存儲器還沒有格式化,則對所述移動終端的存儲器執行格式化操作的步驟包括: 當進入操作系統的內核層時,讀取所述第二格式化參數的值; 若所述第二格式化參數的值為第三預設閾值,則對所述Data分區執行格式化操作。5.根據權利要求1-4任一項所述的方法,其特征在于,所述獲取所述移動終端的存儲器的可用存儲容量值,采用如下方式: 獲取所述移動終端的存儲器的實際存儲容量值; 計算所述移動終端的存儲器的已用存儲容量值; 計算所述實際存儲容量值與所述已用存儲容量值的差值,得到所述存儲器的可用存儲容量值。6.一種對移動終端的存儲器進行格式化的裝置,其特征在于,所述裝置包括: 格式化判斷模塊,用于在檢測到移動終端啟動時,判斷所述移動終端的存儲器是否已經格式化; 格式化模塊,用于在判定所述移動終端的存儲器還沒有格式化時,對所述移動終端的存儲器執行格式化操作,所述格式化操作包括:獲取所述移動終端的存儲器的可用存儲容量值,將所述可用存儲容量值替換軟件代碼中預設的存儲容量值,其中,所述軟件代碼為不同存儲容量大小的存儲器共用的軟件代碼。7.根據權利要求6所述的裝置,其特征在于,所述存儲器包括啟動分區Boot分區,所述格式化判斷模塊包括: 第一格式化參數讀取子模塊,用于在檢測到移動終端啟動時,采用預設的引導加載程序Bootloader讀取所述Boot分區中預設的第一格式化參數的值; 判斷子模塊,用于判斷所述第一格式化參數的值為第一預設閾值還是第二預設閾值; 第一判定子模塊,用于在所述第一格式化參數的值為第一預設閾值時,判定所述移動終端的存儲器沒有格式化; 第二判定子模塊,用于在所述第一格式化參數的值為第二預設閾值時,判定所述移動終端的存儲器已經格式化。8.根據權利要求7所述的裝置,其特征在于,還包括: 第一參數設定模塊,用于在判定所述移動終端的存儲器沒有格式化時,將所述第一格式化參數的值更改為第二預設閾值,并設定所述Boot分區中預設的第二格式化參數的值為第三預設閾值; 第二參數設定模塊,用于在判定所述移動終端的存儲器已經格式化時,設定所述第二格式化參數的值為第四預設閾值。9.根據權利要求8所述的裝置,其特征在于,所述存儲器還包括用戶分區Data分區,所述格式化模塊包括: 第二格式化參數讀取子模塊,用于在進入操作系統的內核層時,讀取所述第二格式化參數的值; 分區格式化子模塊,用于在所述第二格式化參數的值為第三預設閾值時,對所述Data分區執行格式化操作。10.根據權利要求6-9任一項所述的裝置,其特征在于,所述獲取所述移動終端的存儲器的可用存儲容量值,采用如下方式: 獲取所述移動終端的存儲器的實際存儲容量值; 計算所述移動終端的存儲器的已用存儲容量值; 計算所述實際存儲容量值與所述已用存儲容量值的差值,得到所述存儲器的可用存儲容量值。
【文檔編號】G06F9/445GK105975291SQ201510756772
【公開日】2016年9月28日
【申請日】2015年11月6日
【發明人】于燕
【申請人】樂視移動智能信息技術(北京)有限公司