令并分別耦聯(lián)到總線的任何類(lèi)型的介質(zhì)中,所述計(jì)算機(jī)可讀介質(zhì)包括但 不限于任何類(lèi)型的盤(pán)(包括軟盤(pán)、硬盤(pán)、光盤(pán)、⑶-ROM、和磁光盤(pán))、R0M(Read-Only Memory, 只讀存儲(chǔ)器)、RAM (Random Access Memory,隨即存儲(chǔ)器)、EPROM (Erasable Programmable Read-Only Memory,可擦寫(xiě)可編程只讀存儲(chǔ)器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲(chǔ)器)、閃存、磁性卡片或光線卡 片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計(jì)算機(jī))以能夠讀的形式存儲(chǔ)或傳輸信息的任何 介質(zhì)。
[0043] 本技術(shù)領(lǐng)域技術(shù)人員可以理解,可以用計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)這些結(jié)構(gòu)圖和/或 框圖和/或流圖中的每個(gè)框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù) 領(lǐng)域技術(shù)人員可以理解,可以將這些計(jì)算機(jī)程序指令提供給通用計(jì)算機(jī)、專(zhuān)業(yè)計(jì)算機(jī)或其 他可編程數(shù)據(jù)處理方法的處理器來(lái)實(shí)現(xiàn),從而通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處 理器來(lái)執(zhí)行本發(fā)明公開(kāi)的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個(gè)框中指定的方案。
[0044] 實(shí)際應(yīng)用中,在應(yīng)用程序所屬的隔離系統(tǒng)運(yùn)行在前臺(tái)時(shí),應(yīng)用程序在設(shè)備的屏幕 最前端,處于可見(jiàn)狀態(tài),并且可以與用戶交互,占用顯示、輸入等相關(guān)的系統(tǒng)資源;而在應(yīng)用 程序所屬的隔離系統(tǒng)切換到后臺(tái)之后,應(yīng)用程序?qū)τ谟脩敉遣豢梢?jiàn),此時(shí)不再需要占 用顯示、輸入等相關(guān)的系統(tǒng)資源。
[0045] 然而,本發(fā)明的發(fā)明人發(fā)現(xiàn),在設(shè)備上通過(guò)虛擬化技術(shù)運(yùn)行多個(gè)隔離系統(tǒng)的情況 下,現(xiàn)有的應(yīng)用程序在各種存活狀態(tài)下,由于無(wú)法感知其所屬的隔離系統(tǒng)的前后臺(tái)狀態(tài),也 就不能適時(shí)的調(diào)整自己的行為。
[0046] 比如,對(duì)于處于激活狀態(tài)下的應(yīng)用程序,應(yīng)用程序所屬的隔離系統(tǒng)由前臺(tái)切換到 后臺(tái)的情況下,處于后臺(tái)激活狀態(tài)的應(yīng)用程序?qū)τ脩籼幱诓豢梢?jiàn)狀態(tài),然而由于應(yīng)用程序 無(wú)法感知其所屬的隔離系統(tǒng)的前后臺(tái)狀態(tài)發(fā)生了變化,在系統(tǒng)內(nèi)仍然占用很多顯示相關(guān)的 系統(tǒng)資源,比如CPU、顯存等,應(yīng)用程序并沒(méi)有根據(jù)其所屬的隔離系統(tǒng)的前后臺(tái)狀態(tài)的變化, 適時(shí)地釋放占用的系統(tǒng)資源,降低了系統(tǒng)資源的利用率。
[0047] 因此,本發(fā)明的發(fā)明人考慮,可以監(jiān)測(cè)應(yīng)用程序所屬隔離系統(tǒng)的前后臺(tái)狀態(tài)的變 化,并根據(jù)應(yīng)用程序所屬隔離系統(tǒng)的前后臺(tái)狀態(tài)的變化,及時(shí)調(diào)整應(yīng)用程序的存活狀態(tài)。
[0048] 本發(fā)明的發(fā)明人考慮到,可以在現(xiàn)有技術(shù)的4種存活狀態(tài)的基礎(chǔ)上,增加3種用于 后臺(tái)的存活狀態(tài):后臺(tái)激活(back-actived)狀態(tài)、后臺(tái)暫停(back-paused)狀態(tài)、后臺(tái)停止 (back-stoped)狀態(tài),如圖2所示。
[0049] 其中,后臺(tái)激活狀態(tài)指的是,應(yīng)用程序所屬隔離系統(tǒng)處于后臺(tái)時(shí),該應(yīng)用程序處于 棧的最頂端,處于不可見(jiàn)、無(wú)法與用戶交互(無(wú)法接收用戶的輸入事件,比如,用戶通過(guò)觸 屏、或按鍵事件進(jìn)行的輸入事件)的存活狀態(tài)。
[0050] 后臺(tái)暫停狀態(tài)指的是,應(yīng)用程序所屬隔離系統(tǒng)處于后臺(tái)時(shí),該應(yīng)用程序在棧中但 不處于最頂端,被另一個(gè)透明或者對(duì)話框(Dialog)樣式的應(yīng)用程序部分覆蓋遮擋的存活 狀態(tài),處于不可見(jiàn)、無(wú)法與用戶交互的狀態(tài)。
[0051] 后臺(tái)停止?fàn)顟B(tài)指的是,應(yīng)用程序所屬隔離系統(tǒng)處于后臺(tái)時(shí),該應(yīng)用程序在棧中但 不處于最頂端,被其它不透明的應(yīng)用程序完全遮擋覆蓋的存活狀態(tài),處于不可見(jiàn)、無(wú)法與用 戶交互的狀態(tài)。
[0052] 為便于描述,本文中將現(xiàn)有的4種存活狀態(tài):激活(actived)狀態(tài),暫停(paused) 狀態(tài),停止(stoped)狀態(tài),回收(killed)狀態(tài),統(tǒng)稱(chēng)為前臺(tái)存活狀態(tài)。
[0053] 將新增的3種用于后臺(tái)的存活狀態(tài):后臺(tái)激活(back-actived)狀態(tài)、后臺(tái)暫停 (back-paused)狀態(tài)、后臺(tái)停止(back-stoped)狀態(tài),統(tǒng)稱(chēng)為后臺(tái)存活狀態(tài)。
[0054] 本發(fā)明的技術(shù)方案中,監(jiān)測(cè)到應(yīng)用程序所屬隔離系統(tǒng)由前臺(tái)切換為后臺(tái)后,判定 應(yīng)用程序當(dāng)前的前臺(tái)存活狀態(tài);并將應(yīng)用程序調(diào)整到與前臺(tái)存活狀態(tài)相對(duì)應(yīng)的后臺(tái)存活狀 ??τ O
[0055] 這樣,應(yīng)用程序可以根據(jù)其所屬隔離系統(tǒng)的前臺(tái)變換后臺(tái)的情況,適時(shí)地調(diào)整存 活狀態(tài),從而適時(shí)地調(diào)整了相應(yīng)行為,及時(shí)釋放部分系統(tǒng)資源,比如釋放顯示相關(guān)的資源, 調(diào)低或者關(guān)閉音量,暫停對(duì)某些外設(shè)的使用,從而提高系統(tǒng)資源的利用率。
[0056] 下面結(jié)合附圖詳細(xì)說(shuō)明本發(fā)明的技術(shù)方案。
[0057] 本發(fā)明提供的智能終端中,包括:至少兩個(gè)隔離系統(tǒng)。
[0058] 其中,隔離系統(tǒng)為通過(guò)容器進(jìn)行隔離的操作系統(tǒng);也就是說(shuō),通過(guò)容器技術(shù)使得多 個(gè)操作系統(tǒng)之間相互隔離,比如通過(guò)LXC(lin UX container)隔離操作系統(tǒng)。每個(gè)隔離系統(tǒng) 中安裝有多個(gè)應(yīng)用程序。
[0059] 多個(gè)隔離系統(tǒng)中有一個(gè)隔離系統(tǒng)處于前臺(tái)狀態(tài),用戶可以啟動(dòng)、使用前臺(tái)的隔離 系統(tǒng)的應(yīng)用程序;用戶還可以進(jìn)行隔離系統(tǒng)的前后臺(tái)切換,從而實(shí)現(xiàn)智能終端的雙操作系 統(tǒng),或多操作系統(tǒng)的切換。
[0060] 本發(fā)明技術(shù)方案對(duì)隔離系統(tǒng)中的應(yīng)用程序的存活狀態(tài)進(jìn)行管理的具體方法流程, 如圖3a所示,可以包括如下步驟:
[0061] SlOl :監(jiān)測(cè)到應(yīng)用程序所屬隔離系統(tǒng)由前臺(tái)切換為后臺(tái)后,判定應(yīng)用程序當(dāng)前的 前臺(tái)存活狀態(tài)。
[0062] 本發(fā)明實(shí)施例中,應(yīng)用程序的前臺(tái)存活狀態(tài)可以包括但不限于如下三種存活狀 態(tài):前臺(tái)激活(actived)狀態(tài)、前臺(tái)暫停(paused)狀態(tài)、前臺(tái)停止(stoped)狀態(tài)。
[0063] 這樣,在監(jiān)測(cè)到應(yīng)用程序所屬隔離系統(tǒng)由前臺(tái)切換為后臺(tái)后,可以判定應(yīng)用程序 當(dāng)前的前臺(tái)存活狀態(tài)。
[0064] S102 :將應(yīng)用程序調(diào)整到與前臺(tái)存活狀態(tài)相對(duì)應(yīng)的后臺(tái)存活狀態(tài)。
[0065] 具體地,在通過(guò)步驟S102判定應(yīng)用程序當(dāng)前的前臺(tái)存活狀態(tài)后,可以將應(yīng)用程序 調(diào)整到與前臺(tái)存活狀態(tài)相對(duì)應(yīng)的后臺(tái)存活狀態(tài)。
[0066] 本發(fā)明技術(shù)方案中,與應(yīng)用程序的前臺(tái)存活狀態(tài)相對(duì)應(yīng)的后臺(tái)存活狀態(tài)可以包括 但不限于如下三種存活狀態(tài):后臺(tái)激活(back-actived)狀態(tài)、后臺(tái)暫停(back-paused)狀 態(tài)、后臺(tái)停止(back-stoped)狀態(tài)。
[0067] 具體地,若應(yīng)用程序當(dāng)前的前臺(tái)存活狀態(tài)為前臺(tái)激活狀態(tài),則可以將應(yīng)用程序調(diào) 整到與前臺(tái)激活狀態(tài)相對(duì)應(yīng)的后臺(tái)激活狀態(tài)。
[0068] 若應(yīng)用程序當(dāng)前的前臺(tái)存活狀態(tài)處于前臺(tái)暫停狀態(tài),則將應(yīng)用程序調(diào)整到與前臺(tái) 暫停狀態(tài)相對(duì)應(yīng)的后臺(tái)暫停狀態(tài)。
[0069] 若應(yīng)用程序當(dāng)前的前臺(tái)存活狀態(tài)處于前臺(tái)停止?fàn)顟B(tài),則將應(yīng)用程序調(diào)整到與前臺(tái) 暫停狀態(tài)相對(duì)應(yīng)的后臺(tái)停止?fàn)顟B(tài)。
[0070] 實(shí)際應(yīng)用中,可以在應(yīng)用程序基礎(chǔ)類(lèi)中,預(yù)先設(shè)置與應(yīng)用程序從前臺(tái)存活狀態(tài)切 換為相應(yīng)的后臺(tái)存活狀態(tài)對(duì)應(yīng)的轉(zhuǎn)換函數(shù)。這樣,應(yīng)用程序可以繼承這些轉(zhuǎn)換函數(shù),并由開(kāi) 發(fā)者基于繼承的內(nèi)容以及實(shí)際需求,在這些轉(zhuǎn)換函數(shù)中增加或調(diào)整一些功能,得到應(yīng)用程 序在從前臺(tái)切換到后臺(tái)時(shí)的存活狀態(tài)轉(zhuǎn)換函數(shù)。之后,根據(jù)應(yīng)用程序在前后臺(tái)的變換,調(diào)用 應(yīng)用程序中相應(yīng)的存活狀態(tài)轉(zhuǎn)換函數(shù),使得應(yīng)用程序調(diào)整從前臺(tái)存活狀態(tài)切換為相應(yīng)的后 臺(tái)存活狀態(tài)時(shí)的行為,比如釋放顯存等。
[0071] 具體地,在應(yīng)用程序基礎(chǔ)類(lèi)中設(shè)置的與應(yīng)用程序從前臺(tái)存活狀態(tài)切換為相應(yīng)的后 臺(tái)存活狀態(tài)時(shí)對(duì)應(yīng)的轉(zhuǎn)換函數(shù)可以包括:
[0072] protected void onActiveToBack();
[0073] protected void onPauseToBack();
[0074] protected void onStopToBack () 〇
[0075] 其中,"protected void onActiveToBack() " 在應(yīng)用程序從 actived 狀態(tài)轉(zhuǎn)換到 back-actived狀態(tài)時(shí)被調(diào)用。
[0076] "protected void onPauseToBack () " 在應(yīng)用程序從 paused 狀態(tài)轉(zhuǎn)換到 back-paused狀態(tài)時(shí)被調(diào)用。
[0077] "protected void onStopToBack () " 在應(yīng)用程序從 stoped 狀態(tài)轉(zhuǎn)換到 back-stoped狀態(tài)時(shí)被調(diào)用。
[0078] 實(shí)際應(yīng)用中,相對(duì)于前臺(tái)激活狀態(tài),應(yīng)用程序處于后臺(tái)激活狀態(tài)時(shí),應(yīng)用程序?qū)τ?用戶是不可見(jiàn)的,也無(wú)法接收用戶輸入事件。因此,應(yīng)用程序處于后臺(tái)激活狀態(tài)時(shí),可以停 止圖形顯示相