在恢復(fù)模式下支持外置存儲設(shè)備熱插拔的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明實施例設(shè)及移動終端技術(shù)領(lǐng)域,尤其設(shè)及一種在恢復(fù)模式下支持外置存儲 設(shè)備熱插拔的方法及裝置。
【背景技術(shù)】
[0002] 隨著科技的發(fā)展,現(xiàn)在的用戶對手機的依賴性越來越高,而手機內(nèi)置存儲空間十 分有限,此時需要擴展存儲空間來達(dá)到要求。通常使用存儲卡或外置存儲設(shè)備來擴展手機 的內(nèi)存。
[0003] 手機的恢復(fù)(recovery)模式指的是一種可W對安卓機內(nèi)部的數(shù)據(jù)或系統(tǒng)進(jìn)行修 改的模式(類似于windowsPE或DO巧。在運個模式下用戶可W刷入新的安卓系統(tǒng),或者對 已有的系統(tǒng)進(jìn)行備份或升級,也可W在此恢復(fù)出廠設(shè)置等。
[0004] 在現(xiàn)有技術(shù)中,通常將廠商發(fā)布的升級包放置在手機存儲空間中,即手機內(nèi)存或 者手機內(nèi)置存儲卡中,啟動recovery板式后,從手機存儲至間中讀取升級包,對系統(tǒng)進(jìn)行 升級或修復(fù)。
[0005] 但是,現(xiàn)有手機的存儲空間有限,而廠商發(fā)布的升級包一般數(shù)據(jù)量比較大,在升級 時,如果用戶手機存儲空間不足,則需要用戶刪除一些數(shù)據(jù)來增加存儲空間,W便于將升級 包放置在手機存儲空間中,完成升級。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實施例提供一種在恢復(fù)模式下支持外置存儲設(shè)備熱插拔的方法及裝置,能 夠使移動終端在recovery模式下支持外置存儲設(shè)備,節(jié)省存儲空間。
[0007]第一方面,本發(fā)明實施例提供了一種在恢復(fù)recovery模式下支持外置存儲設(shè)備 熱插拔的方法,包括:
[0008] 在recovery模式下檢測是否有外置存儲設(shè)備接入,若是,則創(chuàng)建所述外置存儲設(shè) 備對應(yīng)的設(shè)備文件;
[0009] 建立所述外置存儲設(shè)備與所述設(shè)備文件的關(guān)聯(lián)關(guān)系;
[0010] 將所述外置存儲設(shè)備中的存儲內(nèi)容讀取到所述設(shè)備文件中。
[0011] 第二方面,本發(fā)明實施例還提供一種在恢復(fù)recovery模式下支持外置存儲設(shè)備 熱插拔的裝置,包括:
[0012] 檢測創(chuàng)建模塊,用于在recovery模式下檢測是否有外置存儲設(shè)備接入,若是,貝U 創(chuàng)建所述外置存儲設(shè)備對應(yīng)的設(shè)備文件;
[0013] 關(guān)聯(lián)建立模塊,用于建立所述外置存儲設(shè)備與所述設(shè)備文件的關(guān)聯(lián)關(guān)系;
[0014] 內(nèi)容讀取模塊,用于將所述外置存儲設(shè)備中的存儲內(nèi)容讀取到所述設(shè)備文件中。
[0015] 本發(fā)明實施例通過在recovery模式下直接建立外置存儲設(shè)備與所述設(shè)備文件的 關(guān)聯(lián)關(guān)系,將所述外置存儲設(shè)備中的存儲內(nèi)容讀取到所述設(shè)備文件中,從而在recovery模 式下通過所述設(shè)備文件完成與所述外置存儲設(shè)備的讀取操作。本發(fā)明實施例能夠使移動終 端在recovery模式下支持外置存儲設(shè)備,節(jié)省存儲空間。
【附圖說明】
[0016] 圖1為本發(fā)明實施例一提供的在恢復(fù)recovery模式下支持外置存儲設(shè)備熱插拔 的方法的流程示意圖;
[0017] 圖2為本發(fā)明實施例二提供的在恢復(fù)recovery模式下支持外置存儲設(shè)備熱插拔 的方法的流程示意圖;
[0018] 圖3是本發(fā)明實施例S提供的在恢復(fù)recovery模式下支持外置存儲設(shè)備熱插拔 的裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0019] 下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步的詳細(xì)說明??蒞理解的是,此處所描 述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便 于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0020] 本發(fā)明實施例提供的在恢復(fù)recovery模式下支持外置存儲設(shè)備熱插拔的方法的 執(zhí)行主體,可為安裝在移動終端(例如,智能手機、平板電腦等)上的在恢復(fù)recovery模式 下支持外置存儲設(shè)備熱插拔的裝置,該在恢復(fù)recovery模式下支持外置存儲設(shè)備熱插拔 的裝置可W采用硬件或軟件實現(xiàn)。 陽OW 實施例一
[0022] 圖1為本發(fā)明實施例一提供的在恢復(fù)recovery模式下支持外置存儲設(shè)備熱插拔 的方法的流程示意圖,如圖1所示,具體包括:
[0023] 步驟11、在recovery模式下檢測是否有外置存儲設(shè)備接入,若是,則創(chuàng)建所述外 置存儲設(shè)備對應(yīng)的設(shè)備文件;
[0024] 其中,recovery模式是指可W對安卓機內(nèi)部的數(shù)據(jù)或系統(tǒng)進(jìn)行修改的模式,在 recovery模式下可W刷入新的安卓系統(tǒng),或者對已有的系統(tǒng)進(jìn)行備份或升級,也可W在此 恢復(fù)出廠設(shè)置等。因此,為了節(jié)省移動終端的存儲空間,廠商將事先發(fā)布的升級包放置在外 置存儲設(shè)備(例如0TG設(shè)備)中,通過建立recovery模式下與外置存儲設(shè)備的讀取操作, 即可直接完成備份或升級操作。
[00巧]具體的,如果移動終端使用的是安卓系統(tǒng),則可直接利用安卓系統(tǒng)的驅(qū)動層檢測 在recovery模式下是否有外置存儲設(shè)備接入,例如,當(dāng)有外置存儲設(shè)備接入時,可檢測到 移動終端接口中引腳的信號電壓的變化,根據(jù)該信號變化即可檢測到是否有外置存儲設(shè)備 接入。若檢測到有外置存儲設(shè)備接入,則自動創(chuàng)建所述外置存儲設(shè)備對應(yīng)的設(shè)備文件。 [00%] 步驟12、建立所述外置存儲設(shè)備與所述設(shè)備文件的關(guān)聯(lián)關(guān)系;
[0027] 為了能夠讀取到所述外置存儲設(shè)備的內(nèi)容,需要建立所述外置存儲設(shè)備與所述設(shè) 備文件的關(guān)聯(lián)關(guān)系。
[0028] 步驟13、將所述外置存儲設(shè)備中的存儲內(nèi)容讀取到所述設(shè)備文件中。
[0029] 本實施例通過在recovery模式下直接建立外置存儲設(shè)備與所述設(shè)備文件的關(guān)聯(lián) 關(guān)系,將所述外置存儲設(shè)備中的存儲內(nèi)容讀取到所述設(shè)備文件中,從而在recovery模式 下通過所述設(shè)備文件完成與所述外置存儲設(shè)備的讀取操作。本實施例能夠使移動終端在 recovery模式下支持外置存儲設(shè)備,節(jié)省存儲空間。
[0030] 示例性的,在上述實施例的基礎(chǔ)上,建立所述外置存儲設(shè)備與所述設(shè)備文件的關(guān) 聯(lián)關(guān)系之后,還包括:
[0031] 在recovery模式下檢測所述外置存儲設(shè)備是否拔出,若是,則刪除所述外置存儲 設(shè)備對應(yīng)的設(shè)備文件。
[0032] 示例性的,在上述實施例的基礎(chǔ)上,為了建立recovery模式與所述外置存儲設(shè)備 的關(guān)聯(lián),在創(chuàng)建所述外置存儲設(shè)備對應(yīng)的設(shè)備文件之后、將所述外置存儲設(shè)備中的存儲內(nèi) 容讀取到所述設(shè)備文件之前,進(jìn)一步還包括如下步驟:
[0033] 在recovery模式下創(chuàng)建第一線程,實時檢測所述設(shè)備文件的存在狀態(tài);
[0034] 若檢測到所述設(shè)備文件存在,則確定所述外置存儲設(shè)備目前處于接入狀態(tài),并觸 發(fā)將所述外置存儲設(shè)備中的存儲內(nèi)容讀取到所述設(shè)備文件的操作;
[0035] 若檢測到所述設(shè)備文件不存在,則確定所述外置存儲設(shè)備目前處于拔出狀態(tài),并 銷毀所述第一線程。
[0036] 示例性的,為了使用戶能夠直觀的獲知所述外置存儲設(shè)備的掛載狀態(tài),在所述建 立所述外置存儲設(shè)備與所述設(shè)備文件的關(guān)聯(lián)關(guān)系之后,還包括:
[0037] 在recovery模式下創(chuàng)建第二線程,實時檢測所述外置存儲設(shè)備的掛載狀態(tài);
[0038] 若檢測到所述外置存儲設(shè)備處于被掛載狀態(tài),則實時顯示所述外置存儲設(shè)備的設(shè) 備標(biāo)識;
[0039] 若檢測到所述外置存儲設(shè)備處于卸載狀態(tài),則顯示所述外置存儲設(shè)備已卸載或已 拔出。
[0040] 示例性的,利用安卓系統(tǒng)的特性,可直接采用Ueventd機制實現(xiàn)在recovery模式 下與所述外置存儲設(shè)備的讀取操作,在recovery模式下檢測是否有外置存儲設(shè)備接入,若 是,則創(chuàng)建所述外置存儲設(shè)備對應(yīng)的設(shè)備文件具體包括:
[0041] 通過終端的驅(qū)動層檢測是否有外置存儲設(shè)備接入,若是,則將外置存儲設(shè)備接入 指令上報給化ventd進(jìn)程;
[0042] 通過所述化ventd進(jìn)程調(diào)用化vent進(jìn)程,由所述化vent進(jìn)程創(chuàng)建所述外置存儲 設(shè)備對應(yīng)的設(shè)備文件;
[0043] 相應(yīng)的,建立所述外置存儲設(shè)備與所述設(shè)備文件的關(guān)聯(lián)關(guān)系,將所述外置存儲設(shè) 備中的存儲內(nèi)容讀取到所述設(shè)備文件中具體包括:
[0044] 通過recovery進(jìn)程建立所述外置存儲設(shè)備與所述設(shè)備文件的關(guān)聯(lián)關(guān)系,通過所 述設(shè)備文件讀取所述存儲內(nèi)容。
[0045] 上述各實施例同樣通過在recove巧模式下直接建立外置存儲設(shè)備與所述設(shè) 備文件的關(guān)聯(lián)關(guān)系,將所述外置存儲設(shè)備中的存儲內(nèi)容讀取到所述設(shè)備文件中,從而在 recovery模式下通過所述設(shè)備文件完成與所述外置存儲設(shè)備的讀取操作,同樣能夠使移動 終端在recovery模式下支持外置存儲設(shè)備,節(jié)省存儲空間。
[0046] 實施例二
[0047] 圖2為本發(fā)明實施例二提供的在恢復(fù)recovery模式下支持外置存儲設(shè)備熱插拔 的方法的流程示意圖,本實施例采用化vent機制實現(xiàn)在恢復(fù)recovery模式下支持外置存 儲設(shè)備熱插拔的方法,由于大多數(shù)移動終端均采用安卓系統(tǒng)實現(xiàn),而在安卓系統(tǒng)中,有很多 的地方都通過化vent的架構(gòu)實現(xiàn)驅(qū)動層與應(yīng)用層的通信,即是安卓系統(tǒng)的驅(qū)動層通知應(yīng) 用層有狀態(tài)變化的一種方法,比如USB線插入、拔出,電池電量變化等等,其本質(zhì)是驅(qū)動層 發(fā)送(可W通過socket) -個字符串給應(yīng)用層,應(yīng)用層接收并解釋該字符串,獲取相應(yīng)信 息。而在recovery模式下,驅(qū)動層跑完后,會執(zhí)行一個叫化ventd的進(jìn)程,存在如下一個死 循環(huán):
[0048]
[0049]
[0050] 運個死循環(huán)是化vent架構(gòu)為了防止一種意外情況設(shè)置的,化vent架構(gòu)是通過 Socket與驅(qū)動層進(jìn)行通信的,并且在處理邏輯中會有一個poll 0系統(tǒng)調(diào)用,正常情況下, 每循環(huán)一次都會進(jìn)入poll 0方法并等待,直到接收到下一個Socket消息后才會繼續(xù)本次 循環(huán),然后從緩沖器讀取驅(qū)動上報的化vent信息,然后進(jìn)行設(shè)備文件的創(chuàng)建與移除,本實 施例利用進(jìn)入recovery模式時執(zhí)行化vnetd運一特點,讓其支持熱插拔外置存儲的功能。 如圖2所示,具體包括如下步驟:
[0051] 步驟21、驅(qū)動層檢測是否有外置存儲設(shè)備接入,若是,則將外置存儲設(shè)備接入指令 上報給化ventd進(jìn)程;
[0052] 步驟22、所述化ventd進(jìn)程通知化vent進(jìn)程,由所述化vent進(jìn)程創(chuàng)建所述外置存 儲設(shè)備對應(yīng)的設(shè)備文件;
[0053] 所述化ventd進(jìn)程可采用socket通信通知化vent進(jìn)程,然后進(jìn)行設(shè)備文件的 創(chuàng)建?;蛘?,當(dāng)驅(qū)動層檢測有外置存儲設(shè)備的拔出時,則將外置存儲設(shè)備拔出指令上報給 Ueventd進(jìn)程,所述化ventd進(jìn)程采用socket通信通知化vent進(jìn)程,然后進(jìn)行設(shè)備文件的 移除。
[0054] 步驟23、recovery進(jìn)程創(chuàng)建第一線程,建立所述外置存儲設(shè)備與所述設(shè)備文件的 關(guān)聯(lián)關(guān)系,并實