終端設備及其啟動控制方法
【專利摘要】啟動控制方法以及終端設備,所述啟動控制方法應用于終端設備,所述啟動控制方法包括:在操作系統(tǒng)的系統(tǒng)服務進程啟動之前,啟動開機動畫進程并顯示開機動畫;在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程初始化鎖屏進程;在系統(tǒng)服務進程完成鎖屏進程的初始化之后,所述系統(tǒng)服務進程啟動桌面進程;在所述桌面進程執(zhí)行啟動桌面所需的處理期間,所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面,同時所述桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
【專利說明】終端設備及其啟動控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種終端設備及其啟動控制方法。
【背景技術(shù)】
[0002]當前,越來越多的用戶正在使用諸如智能手機或平板電腦之類的終端設備。在終端設備的使用中,上述終端設備的開機速度是影響用戶體驗的重要因素。例如,在安裝了Android操作系統(tǒng)的終端設備中,終端設備的用戶更啟動終端設備所需的時間一般30為秒以上。此外,在終端設備中安裝了大量應用程序之后,終端設備的啟動時間將會更長。在終端設備的啟動過程中,終端設備通常除了開機動畫外,不能給用戶任何有用的提示,并且用戶不能對終端設備進行操作,因此終端設備的用戶可能會變得很煩躁。另外,由于終端設備的用戶很容易將終端設備的性能與終端設備的開機速度聯(lián)系起來,因此優(yōu)化終端設備的開機速度對于提高用戶體驗至關(guān)重要。
【發(fā)明內(nèi)容】
[0003]為了解決現(xiàn)有技術(shù)中的上述技術(shù)問題,根據(jù)本發(fā)明的一方面,提供一種啟動控制方法,應用于終端設備,所述啟動控制方法包括:在操作系統(tǒng)的系統(tǒng)服務進程啟動之前,啟動開機動畫進程并顯示開機動畫;在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程初始化鎖屏進程;在系統(tǒng)服務進程完成鎖屏進程的初始化之后,所述系統(tǒng)服務進程啟動桌面進程;在所述桌面進程執(zhí)行啟動桌面所需的處理期間,所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面,同時所述桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
[0004]此外,根據(jù)本發(fā)明的一個實施例,其中所述方法進一步包括:在系統(tǒng)服務進程完成鎖屏進程的初始化之后,所述系統(tǒng)服務進程啟動壁紙管理進程;在壁紙管理進程完成壁紙的加載之后,所述壁紙管理進程向所述系統(tǒng)服務進程發(fā)送壁紙加載完成的消息;在所述系統(tǒng)服務進程獲得壁紙加載完成的消息之后,所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面。
[0005]此外,根據(jù)本發(fā)明的一個實施例,其中在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過所述終端設備中存儲的應用程序安裝包的掃描;如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過所述應用程序安裝包的掃描,則所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件。
[0006]此外,根據(jù)本發(fā)明的一個實施例,其中所述終端設備的處理單元至少包括兩個處理核心,所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件的步驟進一步包括:在所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件時,所述數(shù)據(jù)包管理進程建立至少兩個掃描進程來通過所述處理單元的至少兩個處理核心并行讀取并解析所述應用程序安裝包中應用程序配置文件。
[0007]此外,根據(jù)本發(fā)明的一個實施例,其中所述方法進一步包括:在所述終端設備開始啟動時,啟動操作系統(tǒng)加載程序;所述操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序;在所述操作系統(tǒng)內(nèi)核程序啟動完成之后,啟動操作系統(tǒng)虛擬機;所述操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程。
[0008]此外,根據(jù)本發(fā)明的一個實施例,其中所述終端設備的處理單元包括至少兩個處理核心,所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程的步驟進一步包括:通過所述處理單元中的兩個處理核心之一執(zhí)行所述操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理;以及通過所述處理單元中的另一個處理核心執(zhí)行啟動所述系統(tǒng)服務進程的處理。
[0009]此外,根據(jù)本發(fā)明的另一方面,提供一種啟動控制方法,應用于終端設備,所述終端設備的處理單元至少包括兩個處理核心,所述方法包括:在所述終端設備開始啟動時,啟動操作系統(tǒng)加載程序;所述操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序;在所述操作系統(tǒng)內(nèi)核程序啟動完成之后,啟動操作系統(tǒng)虛擬機;所述操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程,其中通過所述處理單元中的兩個處理核心之一執(zhí)行所述操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理;以及通過所述處理單元中的另一個處理核心執(zhí)行啟動所述系統(tǒng)服務進程的處理。
[0010]此外,根據(jù)本發(fā)明的一個實施例,其中所述方法進一步包括:在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過所述終端設備中存儲的應用程序安裝包的掃描;如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過所述應用程序安裝包的掃描,則所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件。
[0011]此外,根據(jù)本發(fā)明的一個實施例,其中在所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件時,所述數(shù)據(jù)包管理進程建立至少兩個掃描進程來通過所述處理單元的至少兩個處理核心并行讀取并解析所述應用程序安裝包中應用程序配置文件。
[0012]根據(jù)本發(fā)明的另一方面,提供一種終端設備,包括:顯示單元,配置來顯示畫面;處理單元,配置來在所述終端設備的啟動過程期間,在操作系統(tǒng)的系統(tǒng)服務進程啟動之前,啟動開機動畫進程并通過所述顯示單元顯示開機動畫;在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程初始化鎖屏進程;在系統(tǒng)服務進程完成鎖屏進程的初始化之后,通過所述系統(tǒng)服務進程啟動桌面進程;在所述桌面進程執(zhí)行啟動桌面所需的處理期間,通過所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面,同時通過所述桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
[0013]此外,根據(jù)本發(fā)明的一個實施例,其中在系統(tǒng)服務進程完成鎖屏進程的初始化之后,所述處理單元通過所述系統(tǒng)服務進程啟動壁紙管理進程;以及在壁紙管理進程完成壁紙的加載之后,所述處理單元通過所述壁紙管理進程向所述系統(tǒng)服務進程發(fā)送壁紙加載完成的消息;在所述系統(tǒng)服務進程獲得壁紙加載完成的消息之后,所述處理單元通過所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面。
[0014]此外,根據(jù)本發(fā)明的一個實施例,其中在系統(tǒng)服務進程執(zhí)行期間,所述處理單元通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過所述終端設備中存儲的應用程序安裝包的掃描;如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過所述應用程序安裝包的掃描,則所述處理單元通過所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件。[0015]此外,根據(jù)本發(fā)明的一個實施例,其中所述終端設備的處理單元至少包括兩個處理核心;以及在僅讀取并解析所述應用程序安裝包中應用程序配置文件時,所述處理單元通過所述數(shù)據(jù)包管理進程建立至少兩個掃描進程,使得所述處理單元的至少兩個處理核心并行讀取并解析所述應用程序安裝包中應用程序配置文件。
[0016]此外,根據(jù)本發(fā)明的一個實施例,其中在所述終端設備開始啟動時,所述處理單元啟動操作系統(tǒng)加載程序;所述處理單元通過所述操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序;在所述操作系統(tǒng)內(nèi)核程序啟動完成之后,所述處理單元啟動操作系統(tǒng)虛擬機;所述操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,所述處理單元通過所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程。
[0017]此外,根據(jù)本發(fā)明的一個實施例,其中所述處理單元包括至少兩個處理核心:以及所述處理單元中的兩個處理核心之一執(zhí)行所述操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理;以及通過所述處理單元中的另一個處理核心執(zhí)行啟動所述系統(tǒng)服務進程的處理。
[0018]根據(jù)本發(fā)明的另一方面,提供一種終端設備,包括:處理單元,包括至少兩個處理核心,并且配置來執(zhí)行所述終端設備的啟動控制,其中在所述終端設備開始啟動時,所述處理單元啟動操作系統(tǒng)加載程序;所述處理單元通過所述操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序;在所述操作系統(tǒng)內(nèi)核程序啟動完成之后,所述處理單元啟動操作系統(tǒng)虛擬機;所述操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,所述處理單元通過所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程,其中通過所述處理單元中的兩個處理核心之一執(zhí)行所述操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理;以及通過所述處理單元中的另一個處理核心執(zhí)行啟動所述系統(tǒng)服務進程的處理。
[0019]此外,根據(jù)本發(fā)明的一個實施例,其中在系統(tǒng)服務進程執(zhí)行期間,所述處理單元通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過所述終端設備中存儲的應用程序安裝包的掃描;如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過所述應用程序安裝包的掃描,則所述處理單元通過所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件。
[0020]此外,根據(jù)本發(fā)明的一個實施例,其中在所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件時,所述處理單元通過所述數(shù)據(jù)包管理進程建立至少兩個掃描進程,使得通過所述處理單元的至少兩個處理核心并行讀取并解析所述應用程序安裝包中應用程序配置文件。
[0021]通過上述方式,通過改變終端設備的啟動過程中的部分進程的執(zhí)行順序或?qū)⑦M程的串行執(zhí)行改變?yōu)椴⑿袌?zhí)行或省略掉不必要的掃描,可以有效地縮短終端設備的啟動時間,由此可以大大提高用戶的使用體驗。
【專利附圖】
【附圖說明】
[0022]圖1是圖解根據(jù)本發(fā)明一個實施例的終端設備的示意圖;
[0023]圖2是圖解根據(jù)本發(fā)明另一個實施例的終端設備的示意圖;
[0024]圖3是圖解根據(jù)本發(fā)明一個實施例的啟動控制方法的流程圖;以及
[0025]圖4是圖解根據(jù)本發(fā)明另一個實施例的啟動控制方法的流程圖【具體實施方式】
[0026]將參照附圖詳細描述根據(jù)本發(fā)明的各個實施例。這里,需要注意的是,在附圖中,將相同的附圖標記賦予基本上具有相同或類似結(jié)構(gòu)和功能的組成部分,并且將省略關(guān)于它們的重復描述。
[0027]下面將參照圖1描述根據(jù)本發(fā)明實施例的終端設備。這里,根據(jù)本發(fā)明實施例的終端設備可以是諸如安裝了 Android操作系統(tǒng)的智能手機或平板電腦之類的終端設備。
[0028]如圖1所示,根據(jù)本發(fā)明實施例的終端設備I可以包括顯示單元10以及處理單元11。
[0029]顯示單元10可以由任意的液晶顯示屏幕或OLED顯示屏幕實現(xiàn),并且可以基于所提供的圖像信號顯示畫面。
[0030]處理單元11可以由任意的處理器或微處理器實現(xiàn),并且可以在特定的軟件或應用的控制下執(zhí)行預設的處理。
[0031]根據(jù)本發(fā)明的實施例,可以配置終端設備I的操作系統(tǒng)中的程序代碼,使得處理單元11可以執(zhí)行根據(jù)本發(fā)明實施例的啟動控制方法。下面,以Android操作系統(tǒng)為例進行描述。
[0032]對于具有Android操作系統(tǒng)的終端設備來說,通常,在用戶按下終端設備I的開機鍵(未示出)之后,終端設備開始啟動。通常,終端設備I的處理單元11首先運行操作系統(tǒng)加載程序(Bootloader)。然后,處理單元11在加載完操作系統(tǒng)加載程序之后,通過操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序(Kernel),該操作系統(tǒng)內(nèi)核程序為終端設備的操作系統(tǒng)的基礎。然后,處理單元11在該操作系統(tǒng)內(nèi)核程序啟動完成之后,處理單元11啟動操作系統(tǒng)虛擬機(Android zygote虛擬機),這里,操作系統(tǒng)虛擬機用于加載操作系統(tǒng)所需的各種進程以及資源。例如,操作系統(tǒng)虛擬機可以用于加載終端設備的操作系統(tǒng)運行所需的類文件(class)和各種資源以及系統(tǒng)服務進程(SystemSever進程)。這里,系統(tǒng)服務進程可以提供操作系統(tǒng)提供所有的核心服務。
[0033]在現(xiàn)有技術(shù)中,在系統(tǒng)服務進程啟動之后,系統(tǒng)服務進程初始化鎖屏進程,然后系統(tǒng)服務進程啟動桌面進程(Launcher)以及壁紙管理進程(WalIpaperManagerService)。這里,桌面進程主要用于通過顯示單元10顯示終端設備的用戶桌面,加載桌面上的圖標以及小程序(widget)。在這種情況下,如果終端設備的用戶桌面上內(nèi)容較多(可能還會包括幾個擴展屏,供用戶左右拖動切換)。桌面進程的啟動速度將會隨著終端設備的桌面上加載內(nèi)容的增加而延長。壁紙管理進程用于通過顯示單元10顯示終端設備的壁紙(背景)。此外,鎖屏進程為用于顯示透明背景的應用,其背景為壁紙管理進程所顯示的背景圖。因此,在壁紙管理進程加載完壁紙之后,鎖屏進程就可以顯示鎖屏畫面。然而,在現(xiàn)有技術(shù)中,當桌面進程處理完啟動桌面所需的所有處理(例如初始化擴展屏、加載圖標、加載widget)之后,桌面進程會進入到空閑狀態(tài)。在這種情況下,系統(tǒng)服務進程檢測到桌面進程進入到空閑狀態(tài)后,桌面進程會停止開機動畫的顯示,并且通知鎖屏進程通過顯示單元10顯示鎖屏畫面。
[0034]然而,隨著用戶在終端設備中安裝的應用越來越多,桌面進程執(zhí)行處理的時間會隨之延長,由此會延長終端設備的開機速度。
[0035]在在這種情況下,根據(jù)本發(fā)明的實施例,配置終端設備I的操作系統(tǒng),使得在終端設備的啟動過程期間對上述進程的執(zhí)行順序進行優(yōu)化以提高終端設備I的開機速度。
[0036]根據(jù)本發(fā)明的一個實施例,在操作系統(tǒng)的系統(tǒng)服務進程啟動之前,處理單元11首先啟動開機動畫進程并通過顯示單元10顯示開機動畫。這里,可以在終端設備11運行操作系統(tǒng)加載程序(Bootloader)時啟動該開機動畫進程。然后,在系統(tǒng)服務進程執(zhí)行期間,處理單元11通過系統(tǒng)服務進程初始化鎖屏進程。然后,在處理單元11通過系統(tǒng)服務進程完成鎖屏進程的初始化之后,處理單元11通過系統(tǒng)服務進程啟動桌面進程。這里,與現(xiàn)有技術(shù)不同,在桌面進程執(zhí)行啟動桌面所需的處理期間,處理單元11通過系統(tǒng)服務進程停止開機動畫進程,并且通知鎖屏進程顯示鎖屏畫面。此時,處理單元11通過桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
[0037]具體地,在系統(tǒng)服務進程完成鎖屏進程的初始化之后,處理單元11還通過系統(tǒng)服務進程啟動壁紙管理進程來加載終端設備I的壁紙。在壁紙管理進程完成壁紙的加載之后,處理單元11通過壁紙管理進程向系統(tǒng)服務進程發(fā)送壁紙加載完成的消息。這里,如上所述,由于鎖屏進程用于通過顯示單元10顯示透明背景,而鎖屏進程的背景為壁紙管理進程所顯示的背景圖。因此,在壁紙管理進程加載完壁紙之后,鎖屏進程就可以顯示鎖屏畫面。在這種情況下,在系統(tǒng)服務進程獲得了壁紙加載完成的消息之后,處理單元11通過系統(tǒng)服務進程停止開機動畫進程,并且通知鎖屏進程顯示鎖屏畫面。此時,由于桌面進程所執(zhí)行的啟動桌面所需的全部處理的時間要遠遠大于壁紙管理進程加載壁紙的時間,因此在處理單元11通過系統(tǒng)服務進程通知鎖屏進程顯示鎖屏畫面,并且鎖屏進程通過顯示單元10顯示鎖屏畫面時,桌面進程尚未完成啟動桌面所需的全部處理。在這種情況下,處理單元11通過桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
[0038]這里,在終端設備I的用戶看到鎖屏畫面直到終端設備I的用戶進行解鎖操作通常至少需要數(shù)秒鐘的時間,因此在該段時間內(nèi),處理單元11通過桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理以完成終端設備I的桌面的加載。在這種情況下,由于先顯示鎖屏畫面,因此用戶會感覺到終端設備I的開機速度加快。經(jīng)測試,通過上述配置,可以將具有相同配置的終端設備I的開機速度提高至少2秒。
[0039]此外,還可以通過其它方式加快終端設備I的開機速度。在現(xiàn)有技術(shù)中,在終端設備I開機時的系統(tǒng)服務進程執(zhí)行期間,系統(tǒng)服務進程中的數(shù)據(jù)包管理進程(PackageManagerService)會串行掃描終端設備I中所有的應用安裝文件(Apk文件)。在數(shù)據(jù)包管理進程掃描所有的應用安裝文件(Apk文件)時,數(shù)據(jù)包管理進程會首先讀取應用安裝文件(Apk)中應用程序配置文件(即,AndroidManifest.xml),并且根據(jù)程序配置文件解析應用的數(shù)據(jù)包名、圖標,權(quán)限,應用所包含事件、服務等等,以供操作系統(tǒng)的后續(xù)使用。然后,數(shù)據(jù)包管理進程會讀取應用安裝文件中的classes, dex文件,并且將其優(yōu)化并生成設備I的啟動時間減少10秒。
[0040]此外,在終端設備I的處理單元11為雙核處理器的情況下,處理單元11包括兩個處理核心。在這種情況下,在僅讀取并解析應用程序安裝包中應用程序配置文件時,還可以配置數(shù)據(jù)包管理進程,使得通過數(shù)據(jù)包管理進程建立兩個掃描進程,并且向該兩個處理核心分別分配一個掃描進程,使得處理單元11的兩個處理核心可以并行讀取并解析應用程序安裝包中應用程序配置文件以提高終端設備I的啟動速度。此外,還可以通過數(shù)據(jù)包管理進程建立至少兩個的掃描進程(如,8個),使得向該兩個處理核心分別分配至少一個掃描進程來讀取并解析應用程序安裝包中應用程序配置文件。另外,在終端設備11為四核處理器的情況下,還可以通過數(shù)據(jù)包管理進程建立四個掃描進程,使得處理單元11的四個處理核心分別分配一個掃描進程來并行讀取并解析應用程序安裝包中應用程序配置文件。
[0041]此外,還可以通過其它方式加快終端設備I的開機速度。在現(xiàn)有技術(shù)中,在終端設備開始啟動之后,終端設備I的處理單元11首先運行操作系統(tǒng)加載程序(Bootloader)。然后,處理單元11在加載完操作系統(tǒng)加載程序之后,通過操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序(Kernel)。然后,處理單元11在該操作系統(tǒng)內(nèi)核程序啟動完成之后,處理單元11啟動操作系統(tǒng)虛擬機(Android zygote虛擬機)。這里,操作系統(tǒng)虛擬機可以用于加載終端設備的操作系統(tǒng)運行所需的類文件(class)和各種資源以及系統(tǒng)服務進程(SystemSever進程)。在現(xiàn)有技術(shù)中,操作系統(tǒng)虛擬機首先加載終端設備的操作系統(tǒng)運行所需的類文件和各種資源(即,虛擬機中的preload進程處理)。在完成類文件和各種資源的加載之后,操作系統(tǒng)虛擬機才開始啟動系統(tǒng)服務進程,此時系統(tǒng)服務進程才能夠運行其所包含的各種進程。這里,由于在完成類文件和各種資源的加載之后,操作系統(tǒng)虛擬機才開始啟動系統(tǒng)服務進程,因此加載資源以及啟動系統(tǒng)服務進程的串行處理會導致終端設備I的開機速度變慢。
[0042]針對上述情況,根據(jù)本發(fā)明的一個實施例,在終端設備開始啟動時,處理單元11首先啟動操作系統(tǒng)加載程序。然后,處理單元11通過操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序。然后,在操作系統(tǒng)內(nèi)核程序啟動完成之后,處理單元11啟動操作系統(tǒng)虛擬機。此時,與現(xiàn)有技術(shù)不同,在操作系統(tǒng)虛擬機在加載所需的類文件以及各種資源的同時,處理單元11通過操作系統(tǒng)虛擬對應的Odex包,并將所產(chǎn)生的Odex包放在終端設備I的緩存中(如,/data/dalvik-cache)以供操作系統(tǒng)中的特定服務或應用執(zhí)行。此外,數(shù)據(jù)包管理進程還會讀取應用安裝文件中的庫文件(如,Iib庫),并且將庫文件放置到終端設備的另一個緩存中(如,/data/data/{Pacakge Name} /lib)?這里,數(shù)據(jù)包管理進程從應用安裝文件產(chǎn)生odex包和讀取lib庫所占用的時間較長,而對于預裝在終端設備中的應用安裝文件來說,在終端設備的第一次啟動掃描對應的應用安裝文件時就已經(jīng)完成,之后也不會對所產(chǎn)生并存儲在緩存中的odex包和讀取并存儲在另一緩存中的Iib庫做任何修改。此外,對于用戶使用終端設備I安裝的應用來說,在應用的安裝過程中,就已經(jīng)完成了上述步驟并將odex包和Iib庫存儲在對應的緩存中。因此,只要數(shù)據(jù)包管理進程成功掃描過所有應用安裝文件,終端設備隨后的啟動過程中,并不需`要產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理。
[0043]因此,根據(jù)本發(fā)明的一個實施例,在系統(tǒng)服務進程執(zhí)行期間,處理單元11通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過終端設備中存儲的應用程序安裝文件的掃描。這里,例如,如果處理單元11確定已經(jīng)掃描過(如,終端設備第一次啟動或安裝應用時)終端設備I中存儲的所有應用程序安裝文件,則處理單元11可以在終端設備I中存儲表示已經(jīng)進行過掃描的標識。在這種情況下,如果處理單元11通過數(shù)據(jù)包管理進程檢測到該標識,則處理單元11通過數(shù)據(jù)包管理進程判斷已經(jīng)進行過終端設備I中所有應用程序安裝文件的掃描。
[0044]如果處理單元11通過數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過應用程序安裝包的掃描,則處理單元11通過數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中應用程序配置文件。也就是說,處理單元11通過數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中的AndroidManifest.xml文件,并且不進行產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理。此外,在處理單元11通過數(shù)據(jù)包管理進程判斷還未進行過應用程序安裝包的掃描,則處理單元11通過數(shù)據(jù)包管理進程執(zhí)行與之前的現(xiàn)有技術(shù)描述中的處理相同處理。
[0045]通過上述方式,由于在終端設備I啟動期間省略了數(shù)據(jù)包管理進程對所有的應用安裝文件執(zhí)行產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理,因此可以大大減少終端設備I的啟動時間。特別是在應用數(shù)量很大的情況下,終端設備I的開機速度明顯加快。經(jīng)測試,至少可以將具有相同配置的終端機并行啟動系統(tǒng)服務進程。這里,具體地,處理單元11可以是雙核處理器,并且可以包括兩個處理核心。在這種情況下,可以配置操作系統(tǒng)虛擬機中的系統(tǒng)服務進程以及加載類文件和各種資源的進程(preload進程)的執(zhí)行順序使得二者可以并行執(zhí)行。例如,可以將系統(tǒng)服務進程的啟動順序放置在加載類文件和各種資源的進程之前,使得在操作系統(tǒng)虛擬機在加載所需的類文件以及各種資源的同時,處理單元11通過操作系統(tǒng)虛擬機并行啟動系統(tǒng)服務進程并且系統(tǒng)服務進程執(zhí)行對應的處理。這里,由于處理單元11具有兩個處理核心,因此在并行建立系統(tǒng)服務進程以及加載類文件和各種資源的進程時,處理單元11的兩個處理核心之一被分配了系統(tǒng)服務進程,而另一個處理核心被分配了加載類文件和各種資源的進程。因此,處理單元11的一個處理核心執(zhí)行操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理,而另一個處理核心執(zhí)行啟動系統(tǒng)服務進程的處理。在這種情況下,系統(tǒng)服務進程以及加載類文件和各種資源的進程的并行處理可以大大提高終端設備I的啟動速度。經(jīng)測試,系統(tǒng)服務進程以及加載類文件和各種資源的進程的并行處理可以至少將具有相同配置的終端設備I的啟動時間減少2秒。
[0046]下面,將參照圖2描述根據(jù)本發(fā)明另一實施例的終端設備。
[0047]如圖2所示,根據(jù)本發(fā)明實施例的終端設備2可以包括處理單元20。這里,處理單元20可以為任意的雙核處理器,并且包括兩個處理核心200和201。處理核心200以及201均可以在特定的軟件或應用的控制下執(zhí)行預設的處理。這里,可以配置終端設備2的操作系統(tǒng)中的程序代碼,使得處理單元20可以執(zhí)行根據(jù)本發(fā)明實施例的啟動控制方法。下面,以Android操作系統(tǒng)為例進行描述。
[0048]與針對圖1的描述類似,在現(xiàn)有技術(shù)中,在終端設備開始啟動之后,首先運彳Ti呆作系統(tǒng)加載程序。然后,在加載完操作系統(tǒng)加載程序之后,通過操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序。然后,在該操作系統(tǒng)內(nèi)核程序啟動完成之后,啟動操作系統(tǒng)虛擬機。這里,在現(xiàn)有技術(shù)中,操作系統(tǒng)虛擬機首先加載終端設備的操作系統(tǒng)運行所需的類文件和各種資源(即,虛擬機中的preload進程處理)。在完成類文件和各種資源的加載之后,操作系統(tǒng)虛擬機才開始啟動系統(tǒng)服務進程。這里,加載資源以及啟動系統(tǒng)服務進程的串行處理會導致終端設備的開機速度變慢。
[0049]針對上述情況,根據(jù)本發(fā)明的一個實施例,在終端設備2開始啟動時,處理單元20首先啟動操作系統(tǒng)加載程序。然后,處理單元20通過操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序。然后,在操作系統(tǒng)內(nèi)核程序啟動完成之后,處理單元20啟動操作系統(tǒng)虛擬機。此時,與現(xiàn)有技術(shù)不同,在操作系統(tǒng)虛擬機在加載所需的類文件以及各種資源的同時,處理單元20通過操作系統(tǒng)虛擬機并行啟動系統(tǒng)服務進程。這里,處理單元20是雙核處理器,并且包括兩個處理核心200以及201,因此,可以配置操作系統(tǒng)虛擬機中的系統(tǒng)服務進程以及加載類文件和各種資源的進程(preload進程)的執(zhí)行順序使得二者可以并行執(zhí)行。例如,可以將系統(tǒng)服務進程的啟動順序放置在加載類文件和各種資源的進程之前,使得在操作系統(tǒng)虛擬機在加載所需的類文件以及各種資源的同時,處理單元20通過操作系統(tǒng)虛擬機并行啟動系統(tǒng)服務進程并且系統(tǒng)服務進程執(zhí)行對應的處理。具體地,由于處理單元20具有兩個處理核心200以及201,因此在并行建立系統(tǒng)服務進程以及加載類文件和各種資源的進程時,處理單元20的兩個處理核心200和201中的一個處理核心被分配了系統(tǒng)服務進程,而另一個處理核心被分配了加載類文件和各種資源的進程。因此,處理單元20的一個處理核心執(zhí)行操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理,而另一個處理核心執(zhí)行啟動系統(tǒng)服務進程的處理。在這種情況下,系統(tǒng)服務進程以及加載類文件和各種資源的進程的并行處理可以大大提高終端設備I的啟動速度。經(jīng)測試,系統(tǒng)服務進程以及加載類文件和各種資源的進程的并行處理可以至少將具有相同配置的終端設備2的啟動時間減少2秒。
[0050]此外,還可以通過其它方式加快終端設備I的開機速度。例如,在現(xiàn)有技術(shù)中,在終端設備I開機時的系統(tǒng)服務進程執(zhí)行處理期間,系統(tǒng)服務進程中的數(shù)據(jù)包管理進程(PackageManagerService)會串行掃描終端設備I中所有的應用安裝文件(Apk文件)。在數(shù)據(jù)包管理進程掃描所有的應用安裝文件(Apk文件)時,數(shù)據(jù)包管理進程會首先讀取應用安裝文件(Apk)中應用程序配置文件(即,AndroidManifest.xml),并且根據(jù)程序配置文件解析應用的數(shù)據(jù)包名、圖標,權(quán)限,應用所包含事件、服務等等,以供操作系統(tǒng)的后續(xù)使用。然后,數(shù)據(jù)包管理進程會讀取應用安裝文件中的classes, dex文件,并且將其優(yōu)化并生成對應的odex包,并將所產(chǎn)生的odex包放在終端設備I的緩存中(如,/data/dalvik-cache)以供操作系統(tǒng)中的特定服務或應用執(zhí)行。此外,數(shù)據(jù)包管理進程還會讀取應用安裝文件中的庫文件(如,Iib庫),并且將庫文件放置到終端設備的另一個緩存中(如,/data/data/{Pacakge Name}/lib)。這里,對于預裝在終端設備中的應用安裝文件來說,在終端設備的第一次啟動掃描對應的應用安裝文件時就已經(jīng)完成產(chǎn)生并存儲odex包和讀取并存儲Iib庫的處理,之后也不會對存儲在緩存中的odex包和存儲在另一緩存中的Iib庫做任何修改。此外,對于用戶使用終端設備I安裝的應用來說,在應用的安裝過程中,就已經(jīng)完成了上述步驟并將odex包和Iib庫存儲在對應的緩存中。因此,只要數(shù)據(jù)包管理進程成功掃描過所有應用安裝文件,終端設備隨后的啟動過程中,并不需要產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理。
[0051]因此,根據(jù)本發(fā)明的一個實施例,在系統(tǒng)服務進程執(zhí)行期間,處理單元20通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過終端設備中存儲的應用程序安裝文件的掃描。這里,例如,如果處理單元20確定已經(jīng)掃描過(如,終端設備第一次啟動或安裝應用時)終端設備2中存儲的所有應用程序安裝文件,則處理單元20可以在終端設備2中存儲表示已經(jīng)進行過掃描的標識。在這種情況下,如果處理單元20通過數(shù)據(jù)包管理進程檢測到該標識,則處理單元20通過數(shù)據(jù)包管理進程判斷已經(jīng)進行過終端設備2中所有應用程序安裝文件的掃描。
[0052]如果處理單元20通過數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過應用程序安裝包的掃描,則處理單元20通過數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中應用程序配置文件。也就是說,處理單元20通過數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中的AndroidManifest.xml文件,并且不進行產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理。此外,在處理單元20通過數(shù)據(jù)包管理進程判斷還未進行過應用程序安裝包的掃描,則處理單元20通過數(shù)據(jù)包管理進程執(zhí)行與之前的現(xiàn)有技術(shù)描述中的處理相同處理。通過上述方式,由于在終端設備2啟動期間省略了數(shù)據(jù)包管理進程對所有的應用安裝文件執(zhí)行產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理,因此可以大大減少終端設備2的啟動時間。特別是在應用數(shù)量很大的情況下,終端設備2的開機速度明顯加快。經(jīng)測試,至少可以將具有相同配置的終端設備2的啟動時間減少10秒。
[0053]此外,由于終端設備2的處理單元20為雙核處理器并包括兩個處理核心200和201,因此在僅讀取并解析應用程序安裝包中應用程序配置文件時,還可以配置數(shù)據(jù)包管理進程,使得通過數(shù)據(jù)包管理進程建立兩個掃描進程,并且向該兩個處理核心200和201分別分配一個掃描進程,使得處理單元20的兩個處理核心200和201可以并行讀取并解析應用程序安裝包中應用程序配置文件以提高終端設備2的啟動速度。此外,還可以通過數(shù)據(jù)包管理進程建立至少兩個的掃描進程(如,8個),使得向該兩個處理核心200和201分別分配至少一個(如,4個)掃描進程來讀取并解析應用程序安裝包中應用程序配置文件以進一步提高終端設備2的啟動速度。
[0054]接下來,將參照圖3描述根據(jù)本發(fā)明實施例的啟動控制方法。這里,圖3的方法可以應用到圖1所示的終端設備上。
[0055]如圖3所示,在步驟S301,在操作系統(tǒng)的系統(tǒng)服務進程啟動之前,啟動開機動畫進程并顯示開機動畫。
[0056]具體地,在操作系統(tǒng)的系統(tǒng)服務進程啟動之前,處理單元11首先啟動開機動畫進程并通過顯示單元10顯示開機動畫。這里,可以在終端設備11運行操作系統(tǒng)加載程序(Bootloader)時啟動該開機動畫進程。
[0057]在步驟S302,在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程初始化鎖屏進程。
[0058]具體地,在系統(tǒng)服務進程執(zhí)行期間,處理單元11通過系統(tǒng)服務進程初始化鎖屏進程。
[0059]在步驟S303,在系統(tǒng)服務進程完成鎖屏進程的初始化之后,系統(tǒng)服務進程啟動桌面進程。
[0060]具體地,在處理單元11通過系統(tǒng)服務進程完成鎖屏進程的初始化之后,處理單元11通過系統(tǒng)服務進程啟動桌面進程。
[0061]在步驟S304,在桌面進程執(zhí)行啟動桌面所需的處理期間,系統(tǒng)服務進程停止開機動畫進程,并且通知鎖屏進程顯示鎖屏畫面,同時桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
[0062]具體地,在桌面進程執(zhí)行啟動桌面所需的處理期間,處理單元11通過系統(tǒng)服務進程停止開機動畫進程,并且通知鎖屏進程顯示鎖屏畫面。此時,處理單元11通過桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
[0063]這里,為了實現(xiàn)在桌面進程執(zhí)行啟動桌面所需的處理期間,系統(tǒng)服務進程停止開機動畫進程,并且通知鎖屏進程顯示鎖屏畫面,同時桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理的處理,圖3的啟動控制方法還可以進一步包括:在系統(tǒng)服務進程完成鎖屏進程的初始化之后,系統(tǒng)服務進程啟動壁紙管理進程;在壁紙管理進程完成壁紙的加載之后,壁紙管理進程向系統(tǒng)服務進程發(fā)送壁紙加載完成的消息;在系統(tǒng)服務進程獲得壁紙加載完成的消息之后,系統(tǒng)服務進程停止開機動畫進程,并且通知鎖屏進程顯示鎖屏畫面。
[0064]具體地,在系統(tǒng)服務進程完成鎖屏進程的初始化之后,處理單元11還通過系統(tǒng)服務進程啟動壁紙管理進程來加載終端設備I的壁紙。在壁紙管理進程完成壁紙的加載之后,處理單元11通過壁紙管理進程向系統(tǒng)服務進程發(fā)送壁紙加載完成的消息。這里,由于鎖屏進程用于通過顯示單元10顯示透明背景,而鎖屏進程的背景為壁紙管理進程所顯示的背景圖。因此,在壁紙管理進程加載了壁紙之后,鎖屏進程就可以顯示鎖屏畫面。在這種情況下,在系統(tǒng)服務進程獲得了壁紙加載完成的消息之后,處理單元11通過系統(tǒng)服務進程停止開機動畫進程,并且通知鎖屏進程顯示鎖屏畫面。此時,由于桌面進程所執(zhí)行的啟動桌面所需的全部處理的時間要遠遠大于壁紙管理進程加載壁紙的時間,因此在處理單元11通過系統(tǒng)服務進程通知鎖屏進程顯示鎖屏畫面,并且鎖屏進程通過顯示單元10顯示鎖屏畫面時,桌面進程尚未完成啟動桌面所需的全部處理。在這種情況下,處理單元11通過桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。這里,在終端設備I的用戶看到鎖屏畫面直到終端設備I的用戶進行解鎖操作通常至少需要數(shù)秒鐘的時間,因此在該段時間內(nèi),處理單元11通過桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理以完成終端設備I的桌面的加載。
[0065]通過上述方式,與現(xiàn)有技術(shù)中桌面進程處理完啟動桌面所需的所有處理(例如初始化擴展屏、加載圖標、加載Widget)之后,桌面進程停止開機動畫的顯示,并且通知鎖屏進程顯示鎖屏畫面的處理不同,只要壁紙管理進程完成了壁紙的加載,就通知鎖屏進程顯示鎖屏畫面,同時桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。在這種情況下,終端設備I的用戶可以提前看到終端設備I顯示鎖屏畫面,由此會感到終端設備I的啟動速度加快。
[0066]此外,還可以通過其它方式加快終端設備I的開機速度。例如,根據(jù)本發(fā)明的另一個實施例,圖3的啟動控制方法還可以包括步驟:在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過終端設備中存儲的應用程序安裝包的掃描;如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過應用程序安裝包的掃描,則數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中應用程序配置文件。
[0067]具體地,與之前的描述類似,在現(xiàn)有技術(shù)中,在終端設備I開機時的系統(tǒng)服務進程執(zhí)行期間,系統(tǒng)服務進程中的數(shù)據(jù)包管理進程會串行掃描終端設備I中所有的應用安裝文件(AndroidManifest.xml)。在數(shù)據(jù)包管理進程掃描所有的應用安裝文件(Apk文件)時,數(shù)據(jù)包管理進程會首先讀取應用安裝文件(Apk)中應用程序配置文件。然后,數(shù)據(jù)包管理進程會讀取應用安裝文件中的classes, dex文件,并且將其優(yōu)化并生成對應的odex包,并將所產(chǎn)生的odex包放在終端設備I的緩存中。此外,數(shù)據(jù)包管理進程還會讀取應用安裝文件中的庫文件,并且將庫文件放置到終端設備的另一個緩存中。這里,在終端設備I掃描過(如,終端設備I第一次開機和安裝應用時)對應的應用安裝文件時就已經(jīng)完成產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理,之后也不會存儲在緩存中的odex包以及存儲在另一緩存中的Iib庫做任何修改。因此,只要數(shù)據(jù)包管理進程成功掃描過所有應用安裝文件,終端設備隨后的啟動過程中,并不需要產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理。
[0068]因此,根據(jù)本發(fā)明的一個實施例,在系統(tǒng)服務進程執(zhí)行期間,處理單元11通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過終端設備中存儲的應用程序安裝文件的掃描。這里,例如,如果處理單元11確定已經(jīng)掃描過(如,終端設備第一次啟動或安裝應用時)終端設備I中存儲的所有應用程序安裝文件,則處理單元11可以在終端設備I中存儲表示已經(jīng)進行過掃描的標識。在這種情況下,如果處理單元11通過數(shù)據(jù)包管理進程檢測到該標識,則處理單元11通過數(shù)據(jù)包管理進程判斷已經(jīng)進行過終端設備I中所有應用程序安裝文件的掃描。如果處理單元11通過數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過應用程序安裝包的掃描,則處理單元11通過數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中應用程序配置文件。也就是說,處理單元11通過數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中的AndroidManifest.xml文件,并且不進行產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理。此外,在處理單元11通過數(shù)據(jù)包管理進程判斷還未進行過應用程序安裝包的掃描,則處理單元11通過數(shù)據(jù)包管理進程執(zhí)行與之前的現(xiàn)有技術(shù)描述中的處理相同處理。
[0069]通過上述方式,由于在終端設備I啟動期間省略了數(shù)據(jù)包管理進程對所有的應用安裝文件執(zhí)行產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理,因此可以大大減少終端設備I的啟動時間。
[0070]此外,在終端設備I的處理單元11為雙核處理器并包括兩個處理核心的情況下,數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中應用程序配置文件的步驟可以進一步包括:在數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中應用程序配置文件時,數(shù)據(jù)包管理進程建立至少兩個掃描進程來通過處理單元的兩個處理核心并行讀取并解析應用程序安裝包中應用程序配置文件。
[0071]具體地,在僅讀取并解析應用程序安裝包中應用程序配置文件時,還可以配置數(shù)據(jù)包管理進程,使得通過數(shù)據(jù)包管理進程建立兩個掃描進程,并且向處理單元11的兩個處理核心分別分配一個掃描進程,使得處理單元11的兩個處理核心可以并行讀取并解析應用程序安裝包中應用程序配置文件以提高終端設備I的啟動速度。此外,還可以通過數(shù)據(jù)包管理進程建立至少兩個的掃描進程(如,8個),使得向該兩個處理核心分別分配至少一個掃描進程來讀取并解析應用程序安裝包中應用程序配置文件。另外,在終端設備11為四核處理器的情況下,還可以通過數(shù)據(jù)包管理進程建立四個掃描進程,使得處理單元11的四個處理核心分別分配一個掃描進程來并行讀取并解析應用程序安裝包中應用程序配置文件。
[0072]此外,還可以通過其它方式加快終端設備I的開機速度。例如,根據(jù)本發(fā)明的另一個實施例,圖3的啟動控制方法還可以包括步驟:在終端設備開始啟動時,啟動操作系統(tǒng)加載程序;操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序;在操作系統(tǒng)內(nèi)核程序啟動完成之后,啟動操作系統(tǒng)虛擬機;操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,操作系統(tǒng)虛擬機并行啟動系統(tǒng)服務進程。
[0073]具體地,與針對圖1的描述類似,在現(xiàn)有技術(shù)中,操作系統(tǒng)虛擬機首先加載終端設備的操作系統(tǒng)運行所需的類文件和各種資源(即,虛擬機中的preload進程處理)。在完成類文件和各種資源的加載之后,操作系統(tǒng)虛擬機才開始啟動系統(tǒng)服務進程,此時系統(tǒng)服務進程才能夠運行其所包含的各種進程。因此加載資源以及啟動系統(tǒng)服務進程的串行處理會導致終端設備I的開機速度變慢。針對上述情況,根據(jù)本發(fā)明的一個實施例,在終端設備開始啟動時,處理單元11首先啟動操作系統(tǒng)加載程序。然后,處理單元11通過操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序。然后,在操作系統(tǒng)內(nèi)核程序啟動完成之后,處理單元11啟動操作系統(tǒng)虛擬機。此時,與現(xiàn)有技術(shù)不同,在操作系統(tǒng)虛擬機在加載所需的類文件以及各種資源的同時,處理單元11通過操作系統(tǒng)虛擬機并行啟動系統(tǒng)服務進程。這里,具體地,處理單元11可以是雙核處理器,并且可以包括兩個處理核心。在這種情況下,可以配置操作系統(tǒng)虛擬機中的系統(tǒng)服務進程以及加載類文件和各種資源的進程(preload進程)的執(zhí)行順序使得通過處理單元11中的兩個處理核心之一執(zhí)行操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理,并且通過處理單元11中的另一個處理核心執(zhí)行啟動系統(tǒng)服務進程的處理。具體地,由于處理單元11具有兩個處理核心,因此在并行建立系統(tǒng)服務進程以及加載類文件和各種資源的進程時,處理單元11的兩個處理核心之一被分配了系統(tǒng)服務進程,而另一個處理核心被分配了加載類文件和各種資源的進程。因此,處理單元11的一個處理核心執(zhí)行操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理,而另一個處理核心執(zhí)行啟動系統(tǒng)服務進程的處理。在這種情況下,系統(tǒng)服務進程以及加載類文件和各種資源的進程的并行處理可以大大提高終端設備I的啟動速度。
[0074]接下來,將參照圖4描述根據(jù)本發(fā)明另一個實施例的啟動控制方法。圖4的方法可以應用到圖2所示的終端設備2中,其中終端設備2包括處理單元20,并且處理單元20包括兩個處理核心200和201。
[0075]如圖4所示,在步驟S401,在終端設備開始啟動時,啟動操作系統(tǒng)加載程序。
[0076]在步驟S402,操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序。
[0077]在步驟S403,在丨呆作系統(tǒng)內(nèi)核程序啟動完成之后,啟動丨呆作系統(tǒng)虛擬機。
[0078]在步驟S404,操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,操作系統(tǒng)虛擬機并行啟動系統(tǒng)服務進程,其中通過處理單元中的兩個處理核心之一執(zhí)行操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理,并且通過處理單元中的另一個處理核心執(zhí)行啟動系統(tǒng)服務進程的處理。
[0079]具體地,在終端設備2開始啟動時,處理單元20首先啟動操作系統(tǒng)加載程序。然后,處理單元20通過操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序。在操作系統(tǒng)內(nèi)核程序啟動完成之后,處理單元20啟動操作系統(tǒng)虛擬機。此時,與現(xiàn)有技術(shù)不同,在操作系統(tǒng)虛擬機在加載所需的類文件以及各種資源的同時,處理單元20通過操作系統(tǒng)虛擬機并行啟動系統(tǒng)服務進程。這里,處理單元20是雙核處理器,并且包括兩個處理核心200以及201,因此,可以配置操作系統(tǒng)虛擬機中的系統(tǒng)服務進程以及加載類文件和各種資源的進程(preload進程)的執(zhí)行順序使得二者可以并行執(zhí)行。例如,可以將系統(tǒng)服務進程的啟動順序放置在加載類文件和各種資源的進程之前,使得在操作系統(tǒng)虛擬機在加載所需的類文件以及各種資源的同時,處理單元20通過操作系統(tǒng)虛擬機并行啟動系統(tǒng)服務進程并且系統(tǒng)服務進程執(zhí)行對應的處理。具體地,由于處理單元20具有兩個處理核心200以及201,因此在并行建立系統(tǒng)服務進程以及加載類文件和各種資源的進程時,處理單元20的兩個處理核心200和201中的一個處理核心被分配了系統(tǒng)服務進程,而另一個處理核心被分配了加載類文件和各種資源的進程。因此,處理單元20的一個處理核心執(zhí)行操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理,而另一個處理核心執(zhí)行啟動系統(tǒng)服務進程的處理。
[0080]通過上述方式,與現(xiàn)有技術(shù)中操作系統(tǒng)虛擬機首先加載終端設備的操作系統(tǒng)運行所需的類文件和各種資源然后才開始啟動系統(tǒng)服務進程的串行處理不同。系統(tǒng)服務進程以及加載類文件和各種資源的進程的并行處理可以大大提高終端設備2的啟動速度。
[0081]此外,還可以通過其它方式加快終端設備2的開機速度。例如圖4所示的啟動控制方法還可以包括:在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過終端設備中存儲的應用程序安裝包的掃描;如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過應用程序安裝包的掃描,則數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中應用程序配置文件。[0082]具體地,與之前的描述類似,在現(xiàn)有技術(shù)中,在終端設備2開機時的系統(tǒng)服務進程執(zhí)行處理期間,系統(tǒng)服務進程中的數(shù)據(jù)包管理進程會串行掃描終端設備2中所有的應用安裝文件(Apk文件)。在數(shù)據(jù)包管理進程掃描所有的應用安裝文件(Apk文件)時,數(shù)據(jù)包管理進程會首先讀取應用安裝文件(Apk)中應用程序配置文件(即,AndroidManifest.xml)。然后,數(shù)據(jù)包管理進程會讀取應用安裝文件中的classes, dex文件,并且將其優(yōu)化并生成對應的odex包,并將所產(chǎn)生的odex包放在終端設備I的緩存中。此外,數(shù)據(jù)包管理進程還會讀取應用安裝文件中的庫文件(如,Iib庫),并且將庫文件放置到終端設備的另一個緩存中。在終端設備掃描過(如,終端設備的首次開機以及安裝應用時)對應的應用安裝文件時就已經(jīng)完成產(chǎn)生并存儲odex包和讀取并存儲Iib庫的處理,之后也不會對存儲在緩存中的odex包和存儲在另一緩存中的Iib庫做任何修改。因此,終端設備隨后的啟動過程中,并不需要產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理。
[0083]在這種情況下,根據(jù)本發(fā)明的一個實施例,在系統(tǒng)服務進程執(zhí)行期間,處理單元20通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過終端設備中存儲的應用程序安裝文件的掃描。這里,例如,如果處理單元20確定已經(jīng)掃描過(如,終端設備第一次啟動或安裝應用時)終端設備2中存儲的所有應用程序安裝文件,則處理單元20可以在終端設備2中存儲表示已經(jīng)進行過掃描的標識。在這種情況下,如果處理單元20通過數(shù)據(jù)包管理進程檢測到該標識,則處理單元20通過數(shù)據(jù)包管理進程判斷已經(jīng)進行過終端設備2中所有應用程序安裝文件的掃描。如果處理單元20通過數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過應用程序安裝包的掃描,則處理單元20通過數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中應用程序配置文件。也就是說,處理單元20通過數(shù)據(jù)包管理進程僅讀取并解析應用程序安裝包中的AndroidManifest.xml文件,并且不進行產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理。此外,在處理單元20通過數(shù)據(jù)包管理進程判斷還未進行過應用程序安裝包的掃描,則處理單元20通過數(shù)據(jù)包管理進程執(zhí)行與之前的現(xiàn)有技術(shù)描述中的處理相同處理。
[0084]通過上述方式,由于在終端設備2啟動期間省略了數(shù)據(jù)包管理進程對所有的應用安裝文件執(zhí)行產(chǎn)生并存儲odex包以及讀取并存儲Iib庫的處理,因此可以大大減少終端設備2的啟動時間。特別是在應用數(shù)量很大的情況下,終端設備2的開機速度明顯加快。
[0085]此外,由于終端設備2的處理單元20為雙核處理器并包括兩個處理核心200和201,因此在僅讀取并解析應用程序安裝包中應用程序配置文件時,還可以配置數(shù)據(jù)包管理進程,使得通過數(shù)據(jù)包管理進程建立兩個掃描進程,并且向該兩個處理核心200和201分別分配一個掃描進程,使得處理單元20的兩個處理核心200和201可以并行讀取并解析應用程序安裝包中應用程序配置文件以提高終端設備2的啟動速度。此外,還可以通過數(shù)據(jù)包管理進程建立至少兩個的掃描進程(如,8個),使得向該兩個處理核心200和201分別分配至少一個(如,4個)掃描進程來讀取并解析應用程序安裝包中應用程序配置文件以進一步提高終端設備2的啟動速度。
[0086]在上面詳細描述了本發(fā)明的各個實施例。然而,本領(lǐng)域技術(shù)人員應該理解,在不脫離本發(fā)明的原理和精神的情況下,可對這些實施例進行各種修改,組合或子組合,并且這樣的修改應落入本發(fā)明的范圍內(nèi)。
【權(quán)利要求】
1.一種啟動控制方法,應用于終端設備,所述啟動控制方法包括: 在操作系統(tǒng)的系統(tǒng)服務進程啟動之前,啟動開機動畫進程并顯示開機動畫; 在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程初始化鎖屏進程; 在系統(tǒng)服務進程完成鎖屏進程的初始化之后,所述系統(tǒng)服務進程啟動桌面進程; 在所述桌面進程執(zhí)行啟動桌面所需的處理期間,所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面,同時所述桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
2.如權(quán)利要求1所述的方法,進一步包括: 在系統(tǒng)服務進程完成鎖屏進程的初始化之后,所述系統(tǒng)服務進程啟動壁紙管理進程;在壁紙管理進程完成壁紙的加載之后,所述壁紙管理進程向所述系統(tǒng)服務進程發(fā)送壁紙加載完成的消息; 在所述系統(tǒng)服務進程獲得壁紙加載完成的消息之后,所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面。
3.如權(quán)利要求1所述的啟動控制方法,進一步包括: 在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過所述終端設備中存儲的應用程序安裝包的掃描; 如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過所述應用程序安裝包的掃描,則所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件。
4.如權(quán)利要求3所述的啟動控制方法,其中所述終端設備的處理單元至少包括兩個處理核心,所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件的步驟進一步包括: 在所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件時,所述數(shù)據(jù)包管理進程建立至少兩個掃描進程來通過所述處理單元的至少兩個處理核心并行讀取并解析所述應用程序安裝包中應用程序配置文件。
5.如權(quán)利要求1所述的啟動控制方法,進一步包括: 在所述終端設備開始啟動時,啟動fe作系統(tǒng)加載程序; 所述操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序; 在所述操作系統(tǒng)內(nèi)核程序啟動完成之后,啟動操作系統(tǒng)虛擬機; 所述操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程。
6.如權(quán)利要求5所述的啟動控制方法,其中所述終端設備的處理單元包括至少兩個處理核心,所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程的步驟進一步包括: 通過所述處理單元中的兩個處理核心之一執(zhí)行所述操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理;以及 通過所述處理單元中的另一個處理核心執(zhí)行啟動所述系統(tǒng)服務進程的處理。
7.一種啟動控制方法,應用于終端設備,所述終端設備的處理單元至少包括兩個處理核心,所述方法包括 在所述終端設備開始啟動時,啟動fe作系統(tǒng)加載程序; 所述操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序;在所述操作系統(tǒng)內(nèi)核程序啟動完成之后,啟動操作系統(tǒng)虛擬機; 所述操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程, 其中通過所述處理單元中的兩個處理核心之一執(zhí)行所述操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理;以及 通過所述處理單元中的另一個處理核心執(zhí)行啟動所述系統(tǒng)服務進程的處理。
8.如權(quán)利要求7所述的啟動控制方法,進一步包括: 在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過所述終端設備中存儲的應用程序安裝包的掃描; 如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過所述應用程序安裝包的掃描,則所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件。
9.如權(quán)利要求8所述的啟動控制方法,其中 在所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件時,所述數(shù)據(jù)包管理進程建立至少兩個掃描進程來通過所述處理單元的至少兩個處理核心并行讀取并解析所述應用程序安裝包中應用程序配置文件。
10.一種終端設備,包括: 顯示單元,配置來顯示畫面; 處理單元,配置來在所述終端設備的啟動過程期間,在操作系統(tǒng)的系統(tǒng)服務進程啟動之前,啟動開機動畫進程并通過所述顯示單元顯示開機動畫;在系統(tǒng)服務進程執(zhí)行期間,通過系統(tǒng)服務進程初始化鎖屏進程;在系統(tǒng)服務進程完成鎖屏進程的初始化之后,通過所述系統(tǒng)服務進程啟動桌面進程;在所述桌面進程執(zhí)行啟動桌面所需的處理期間,通過所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面,同時通過所述桌面進程繼續(xù)執(zhí)行啟動桌面所需的剩余處理。
11.如權(quán)利要求10所述的終端設備,其中 在系統(tǒng)服務進程完成鎖屏進程的初始化之后,所述處理單元通過所述系統(tǒng)服務進程啟動壁紙管理進程;以及 在壁紙管理進程完成壁紙的加載之后,所述處理單元通過所述壁紙管理進程向所述系統(tǒng)服務進程發(fā)送壁紙加載完成的消息; 在所述系統(tǒng)服務進程獲得壁紙加載完成的消息之后,所述處理單元通過所述系統(tǒng)服務進程停止所述開機動畫進程,并且通知所述鎖屏進程顯示所述鎖屏畫面。
12.如權(quán)利要求10所述的終端設備,其中: 在系統(tǒng)服務進程執(zhí)行期間,所述處理單元通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過所述終端設備中存儲的應用程序安裝包的掃描; 如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過所述應用程序安裝包的掃描,則所述處理單元通過所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件。
13.如權(quán)利要求12所述的終端設備,其中 所述終端設備的處理單元至少包括兩個處理核心;以及 在僅讀取并解析所述應用程序安裝包中應用程序配置文件時,所述處理單元通過所述數(shù)據(jù)包管理進程建立至少兩個掃描進程,使得所述處理單元的至少兩個處理核心并行讀取并解析所述應用程序安裝包中應用程序配置文件。
14.如權(quán)利要求10所述的終端設備,其中: 在所述終端設備開始啟動時,所述處理單元啟動操作系統(tǒng)加載程序; 所述處理單元通過所述操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序; 在所述操作系統(tǒng)內(nèi)核程序啟動完成之后,所述處理單元啟動操作系統(tǒng)虛擬機; 所述操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,所述處理單元通過所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程。
15.如權(quán)利要求14所述的終端設備,其中 所述處理單元包括至少兩個處理核心:以及 所述處理單元中的兩個處理核心之一執(zhí)行所述操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理;以及 通過所述處理單元中的另一個處理核心執(zhí)行啟動所述系統(tǒng)服務進程的處理。
16.—種終端設備,包括: 處理單元,包括至少兩個處理核心,并且配置來執(zhí)行所述終端設備的啟動控制,其中 在所述終端設備開始啟動時,所述處理單元啟動操作系統(tǒng)加載程序; 所述處理單元通過所述操作系統(tǒng)加載程序啟動操作系統(tǒng)內(nèi)核程序; 在所述操作系統(tǒng)內(nèi)核程序啟動完成之后,所述處理單元啟動操作系統(tǒng)虛擬機; 所述操作系統(tǒng)虛擬機在加載所需的類文件以及資源的同時,所述處理單元通過所述操作系統(tǒng)虛擬機并行啟動所述系統(tǒng)服務進程, 其中通過所述處理單元中的兩個處理核心之一執(zhí)行所述操作系統(tǒng)虛擬機加載所需的類文件以及資源的處理;以及 通過所述處理單元中的另一個處理核心執(zhí)行啟動所述系統(tǒng)服務進程的處理。
17.如權(quán)利要求16所述的終端設備,其中 在系統(tǒng)服務進程執(zhí)行期間,所述處理單元通過系統(tǒng)服務進程中的數(shù)據(jù)包管理進程判斷之前是否進行過所述終端設備中存儲的應用程序安裝包的掃描; 如果數(shù)據(jù)包管理進程判斷之前已經(jīng)進行過所述應用程序安裝包的掃描,則所述處理單元通過所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件。
18.如權(quán)利要求17所述的終端設備,其中 在所述數(shù)據(jù)包管理進程僅讀取并解析所述應用程序安裝包中應用程序配置文件時,所述處理單元通過所述數(shù)據(jù)包管理進程建立至少兩個掃描進程,使得通過所述處理單元的至少兩個處理核心并行讀取并解析所述應用程序安裝包中應用程序配置文件。
【文檔編號】G06F9/445GK103699398SQ201210366352
【公開日】2014年4月2日 申請日期:2012年9月27日 優(yōu)先權(quán)日:2012年9月27日
【發(fā)明者】史子旺, 董佳 申請人:聯(lián)想(北京)有限公司