應(yīng)用程序的存活狀態(tài)管理方法以及智能終端的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及智能手機(jī)操作系統(tǒng)技術(shù)領(lǐng)域,具體而言,本發(fā)明涉及一種應(yīng)用程序的 存活狀態(tài)管理方法以及智能終端。
【背景技術(shù)】
[0002] 目前,在智能手機(jī)中應(yīng)用程序的生命周期中一般有以下幾個階段或狀態(tài):激活 (actived)狀態(tài),暫停(paused)狀態(tài),停止(stoped)狀態(tài),回收(killed)狀態(tài)。其中,激活 狀態(tài)、暫停狀態(tài)、停止?fàn)顟B(tài)、回收狀態(tài)也可以稱為應(yīng)用程序的存活狀態(tài),如圖1所示。應(yīng)用程 序在進(jìn)入每種狀態(tài)時,有對應(yīng)的轉(zhuǎn)換函數(shù)被系統(tǒng)調(diào)用,使得應(yīng)用程序進(jìn)行狀態(tài)轉(zhuǎn)換。
[0003] 以android(安卓)系統(tǒng)為例,在進(jìn)行應(yīng)用程序的狀態(tài)設(shè)計時,主要涉及如下四種 基本狀態(tài):
[0004] I. Actived
[0005] 當(dāng)應(yīng)用程序或稱為實(shí)例(Activity)啟動入棧后,它在屏幕最前端,處于棧的最頂 端,此時它處于可見并可和用戶交互的激活狀態(tài)。
[0006] 2. Paused
[0007] 當(dāng)應(yīng)用程序被另一個透明或者對話框(Dialog)樣式的應(yīng)用程序覆蓋時,它依然 與窗口管理器保持連接,系統(tǒng)繼續(xù)維護(hù)其內(nèi)部狀態(tài),所以它仍然可見,但它已經(jīng)失去了焦點(diǎn) 故不可與用戶交互;此時,應(yīng)用程序處于Paused狀態(tài)。
[0008] 3. Stoped
[0009] 當(dāng)應(yīng)用程序被另外一個不透明的應(yīng)用程序覆蓋、失去焦點(diǎn)并不可見時,其處于 Stoped 狀態(tài)。
[0010] 4. Killed
[0011] 當(dāng)應(yīng)用程序被系統(tǒng)殺死回收或者沒有被啟動時,它處于Ki I led狀態(tài)。
[0012] 當(dāng)一個應(yīng)用程序被創(chuàng)建、銷毀或者啟動另外一個應(yīng)用程序時,它在這四種狀態(tài)之 間進(jìn)行轉(zhuǎn)換,這種轉(zhuǎn)換的發(fā)生依賴于用戶對應(yīng)用程序的操作。
[0013] 繼而,在應(yīng)用程序的基礎(chǔ)類中,可定義一些與應(yīng)用程序的生命周期相關(guān)的方法,比 如,可以根據(jù)需求來復(fù)寫所需要的方法,形成不同的轉(zhuǎn)換轉(zhuǎn)換函數(shù)。這樣,開發(fā)者可以通過 轉(zhuǎn)換函數(shù)的設(shè)計,調(diào)整程序的行為。例如,
[0014] CN 105159823 A ~P 2/12 頁
[0015] 其中,"protected void onCreate (Bundle savedlnstanceState) "在Activity 的 實(shí)例被啟動時調(diào)用。
[0016] "protected void onStartO "在Activity的實(shí)例被啟動之后被調(diào)用,或者在 Activity從Stoped狀態(tài)轉(zhuǎn)換為Actived狀態(tài)時被調(diào)用。
[0017] "protected void onResume () " 在 Activity 從 Paused 狀態(tài)轉(zhuǎn)換到 Actived 狀態(tài) 時被調(diào)用。
[0018] "protected void onPause () "在 Activity 從 Actived 狀態(tài)轉(zhuǎn)換到 Paused 狀態(tài)時 被調(diào)用。
[0019] "protected void onStop () " 在 Activity 從 Actived 狀態(tài)轉(zhuǎn)換到 Stoped 狀態(tài)時 被調(diào)用。在調(diào)用該方法時一般會進(jìn)行Activity的狀態(tài)信息的保存。
[0020] "protected void onDestroyO " 在 Activity 被結(jié)束回收時調(diào)用,即在 Activity 轉(zhuǎn)換到killed狀態(tài)時被調(diào)用。該方法是被結(jié)束時調(diào)用的最后一個方法,在調(diào)用該方法時, 通常會做些釋放資源,清理內(nèi)存等工作。
[0021] 隨著虛擬化技術(shù)的發(fā)展,利用虛擬化技術(shù),LXC(Linux container,Iinux容器)、 KVM(Kernel-based Virtual Machine,內(nèi)核虛擬機(jī))等可以在一個設(shè)備上運(yùn)行多個隔離系 統(tǒng),比如,多個android(安卓)系統(tǒng)。雖然,多個隔離系統(tǒng)可同時運(yùn)行,但也是有前后臺區(qū) 分的。比如,當(dāng)前與用戶交互的隔離系統(tǒng)處于前臺狀態(tài),反之處于后臺狀態(tài)。
[0022] 實(shí)際應(yīng)用中,本發(fā)明的發(fā)明人發(fā)現(xiàn),在設(shè)備上通過虛擬化技術(shù)運(yùn)行多個隔離系統(tǒng) 的情況下,通過上述現(xiàn)有的應(yīng)用程序的狀態(tài)設(shè)計和相應(yīng)的回調(diào)函數(shù),在應(yīng)用程序所屬的隔 離系統(tǒng)發(fā)生前后臺轉(zhuǎn)換時,應(yīng)用程序并不能適時的調(diào)整自己的行為;由此帶來一些問題,比 如轉(zhuǎn)為后臺的應(yīng)用程序不能釋放部分顯示相關(guān)的資源,或暫停對某些外設(shè)的使用等;從而 導(dǎo)致資源的浪費(fèi)。
[0023] 因此,有必要提供一種應(yīng)用程序的存活狀態(tài)管理方法,在多個隔離系統(tǒng)的情況下, 能夠感知所屬隔離系統(tǒng)的前后臺變換,以此適時調(diào)整自己行為,提高系統(tǒng)資源的利用率。
【發(fā)明內(nèi)容】
[0024] 針對上述現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供了一種應(yīng)用程序的存活狀態(tài)管理方法 以及智能終端,可以感知所屬隔離系統(tǒng)的前后臺變換,以此適時調(diào)整自己行為,提高系統(tǒng)資 源的利用率。
[0025] 本發(fā)明方案提供了一種應(yīng)用程序的存活狀態(tài)管理方法,包括:
[0026] 監(jiān)測到應(yīng)用程序所屬隔離系統(tǒng)由前臺切換為后臺后,判定所述應(yīng)用程序當(dāng)前的前 臺存活狀態(tài);
[0027] 將所述應(yīng)用程序調(diào)整到與所述前臺存活狀態(tài)相對應(yīng)的后臺存活狀態(tài)。
[0028] 根據(jù)本發(fā)明的另一方面,還提供了一種智能終端,包括:多個隔離系統(tǒng);其中,所 述隔離系統(tǒng)中包括:
[0029] 前后臺變換管理模塊,用于監(jiān)測到本隔離系統(tǒng)由前臺切換為后臺后,發(fā)送第一切 換通知;
[0030] 應(yīng)用程序管理模塊,用于接收到第一切換通知后,判定本隔離系統(tǒng)中的應(yīng)用程序 當(dāng)前的前臺存活狀態(tài),并將所述應(yīng)用程序調(diào)整到與所述前臺存活狀態(tài)相對應(yīng)的后臺存活狀 ??τ O
[0031] 本發(fā)明還提供了另一種智能終端,包括:多個隔離系統(tǒng);其中,所述隔離系統(tǒng)中包 括:
[0032] 應(yīng)用程序管理模塊,用于監(jiān)測到本隔離系統(tǒng)由前臺切換為后臺后,判定本隔離系 統(tǒng)中的應(yīng)用程序當(dāng)前的前臺存活狀態(tài),并調(diào)用所述應(yīng)用程序中相應(yīng)的存活狀態(tài)轉(zhuǎn)換函數(shù), 將所述應(yīng)用程序調(diào)整到與所述前臺存活狀態(tài)相對應(yīng)的后臺存活狀態(tài)。
[0033] 本發(fā)明的技術(shù)方案中,可以監(jiān)測應(yīng)用程序所屬隔離系統(tǒng)的前后臺狀態(tài)的變化,并 判定應(yīng)用程序當(dāng)前的前臺存活狀態(tài)或后臺存活狀態(tài);繼而,根據(jù)監(jiān)測的隔離系統(tǒng)的前后臺 狀態(tài)的變化,將應(yīng)用程序調(diào)整到相應(yīng)的存活狀態(tài)。這樣,可以在應(yīng)用程序所屬隔離系統(tǒng)由前 臺切換為后臺的情況下,應(yīng)用程序可以感知其所屬隔離系統(tǒng)的前后臺變換,并適時地調(diào)整 后臺存活狀態(tài),以釋放部分系統(tǒng)資源,使得前臺的隔離系統(tǒng)中的程序能夠擁有更多的系統(tǒng) 資源使用,從而提高系統(tǒng)資源的利用率。
[0034] 本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變 得明顯,或通過本發(fā)明的實(shí)踐了解到。
【附圖說明】
[0035] 圖1為應(yīng)用程序在現(xiàn)有各存活狀態(tài)之間的轉(zhuǎn)換示意圖;
[0036] 圖2為應(yīng)用程序在本發(fā)明的各存活狀態(tài)之間的轉(zhuǎn)換示意圖;
[0037] 圖3a、3b為本發(fā)明的應(yīng)用程序的存活狀態(tài)管理方法的流程示意圖;
[0038] 圖4為本發(fā)明的一種隔離系統(tǒng)的內(nèi)部結(jié)構(gòu)示意圖;
[0039] 圖5為本發(fā)明的另一種隔離系統(tǒng)的內(nèi)部結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0040] 以下將結(jié)合附圖對本發(fā)明的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施 例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普 通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所得到的所有其它實(shí)施例,都屬于本發(fā)明所保 護(hù)的范圍。
[0041] 本申請使用的"模塊"、"系統(tǒng)"等術(shù)語旨在包括與計算機(jī)相關(guān)的實(shí)體,例如但不限 于硬件、固件、軟硬件組合、軟件或者執(zhí)行中的軟件。例如,模塊可以是,但并不僅限于:處理 器上運(yùn)行的進(jìn)程、處理器、對象、可執(zhí)行程序、執(zhí)行的線程、程序和/或計算機(jī)。舉例來說,計 算設(shè)備上運(yùn)行的應(yīng)用程序和此計算設(shè)備都可以是模塊。一個或多個模塊可以位于執(zhí)行中的 一個進(jìn)程和/或線程內(nèi),一個模塊也可以位于一臺計算機(jī)上和/或分布于兩臺或更多臺計 算機(jī)之間。
[0042] 本技術(shù)領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的 一項(xiàng)或多項(xiàng)的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計和制造,或者也可以包括通用 計算機(jī)中的已知設(shè)備。這些設(shè)備具有存儲在其內(nèi)的計算機(jī)程序,這些計算機(jī)程序選擇性地 激活或重構(gòu)。這樣的計算機(jī)程序可以被存儲在設(shè)備(例如,計算機(jī))可讀介質(zhì)中或者存儲 在適于存儲電子指