本發(fā)明涉及應用管理技術領域,尤其涉及一種應用運行控制方法及裝置。
背景技術:
隨著軟硬件的發(fā)展,諸如智能手機、平板電腦、智能手表或電子閱讀器等移動智能終端也得到了相當廣泛的普及和發(fā)展。因此,圍繞移動智能終端的各種應用也層出不窮。
而應用的運行離不開對應的進程,在移動智能終端使用過程中,處于前臺的進程始終只有一個,而處于后臺的活躍進程及非活躍進程則會隨著移動終端的使用而不斷增多,這些不斷增多的進程會將系統(tǒng)資源占據(jù)消耗殆盡,最終影響系統(tǒng)運行的流暢性。
因此,在傳統(tǒng)的應用管理模式中,當一個應用被切換到后臺運行時,很有可能會由于系統(tǒng)回收空閑進程等原因而被系統(tǒng)停止,從而導致用戶再次啟動該應用時將耗費較長的時間、無法及時收到應用推送消息或者無法執(zhí)行需要應用在后臺長時間運行的功能等等問題。
為此,一些應用提供商采用一些措施來進行彌補,主要的解決方案有兩大類:其一,由兩個或更多個應用之間進行互相重啟(喚醒),這種方式需要用戶在移動智能終端上安裝兩個或兩個以上的、且包含相互重啟(喚醒)邏輯的應用,容易導致移動智能終端上安裝和運行過多對于用戶來說沒有太多實際使用價值的應用,占用更多的系統(tǒng)資源而影響移動智能終端的正常運行速度;其二,申請將應用加入不會被停止的應用白名單,白名單的方式可以很好地避免應用被系統(tǒng)停止的問題,但是,由于應用白名單大多數(shù)是由移動智能終端廠商在產(chǎn)品出廠前就已經(jīng)預先設置好,雖然用戶在使用過程中也可以補充添加白名單中的應用,但是用戶補充添加的方式并不能保證應用會被及時添加至白名單中,而應用提供商與移動智能終端廠商進行溝通和維護應用白名單帶來的商務合作和商業(yè)運營成本都相對較高。
技術實現(xiàn)要素:
本發(fā)明實施例所要解決的技術問題在于,提供一種應用運行控制方法及裝置,能保證應用連續(xù)正常運行。
為解決上述技術問題,本發(fā)明實施例首先提供如下技術方案:一種應用運行控制方法,包括:
響應于應用的啟動創(chuàng)建第一進程,根據(jù)所述第一進程創(chuàng)建第二進程,所述第二進程與所述第一進程同步運行所述應用;
在所述第二進程中建立監(jiān)測機制,使所述第二進程對所述第一進程進行監(jiān)測;
若監(jiān)測到所述第一進程被停止,重啟所述第一進程,并恢復所述第一進程和所述第二進程同步運行所述應用且所述第二進程對所述第一進程進行監(jiān)測的運行狀態(tài)。
進一步地,根據(jù)所述第一進程創(chuàng)建第二進程具體包括:
以所述第一進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的第二進程。
進一步地,所述方法還包括:
在所述第一進程中建立監(jiān)測機制,使所述第一進程對所述第二進程進行監(jiān)測;
若監(jiān)測到所述第二進程被停止,重啟所述第二進程,并恢復所述第一進程和所述第二進程同步運行所述應用且所述第一進程對所述第二進程進行監(jiān)測的運行狀態(tài)。
進一步地,所述第二進程對所述第一進程進行監(jiān)測或所述第一進程對所述第二進程進行監(jiān)測包括:
監(jiān)測被監(jiān)測進程是否存在被停止的信號;
在監(jiān)測到所述被監(jiān)測進程存在被停止的信號時,生成所述被監(jiān)測進程的進程停止狀態(tài)標識。
進一步地,所述被監(jiān)測進程被停止的信號包括所述被監(jiān)測進程的注冊文件在系統(tǒng)的進程文件中被移除,或在系統(tǒng)中所述被監(jiān)測進程的進程標識符不存在。
進一步地,所述重啟所述第一進程或所述重啟所述第二進程的具體操作包括:
根據(jù)所述被監(jiān)測進程的進程停止狀態(tài)標識發(fā)送重啟所述被監(jiān)測進程服務的指令;
以實施監(jiān)測的進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的所述被監(jiān)測進程。
另一方面,本發(fā)明實施例還提供一種應用運行控制裝置,包括:
進程創(chuàng)建模塊,用于響應于應用的啟動創(chuàng)建第一進程,根據(jù)所述第一進程創(chuàng)建第二進程,所述第二進程與所述第一進程同步運行所述應用;
第一監(jiān)測模塊,用于在所述第二進程中建立監(jiān)測機制,使所述第二進程對所述第一進程進行監(jiān)測;
第一重啟模塊,用于在監(jiān)測到所述第一進程被停止時,重啟所述第一進程,并恢復所述第一進程和所述第二進程同步運行所述應用且所述第二進程對所述第一進程進行監(jiān)測的運行狀態(tài)。
進一步地,所述進程創(chuàng)建模塊還包括:第一調(diào)用單元,用于以所述第一進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的第二進程。
進一步地,所述裝置還包括:
第二監(jiān)測模塊,用于在所述第一進程中建立監(jiān)測機制,使所述第一進程對所述第二進程進行監(jiān)測;
第二重啟模塊,用于在監(jiān)測到所述第二進程被停止時,重啟所述第二進程,并恢復所述第一進程和所述第二進程同步運行所述應用且所述第一進程對所述第二進程進行監(jiān)測的運行狀態(tài)。
進一步地,所述第一監(jiān)測模塊或第二監(jiān)測模塊包括:
監(jiān)測單元,用于監(jiān)測被監(jiān)測進程是否存在被停止的信號;
標識單元,用于在監(jiān)測到被監(jiān)測進程存在被停止的信號時,生成所述被監(jiān)測進程的進程停止狀態(tài)標識。
進一步地,所述監(jiān)測單元中的被監(jiān)測進程被停止的信號包括所述被監(jiān)測進程的注冊文件在系統(tǒng)的進程文件中被移除,或在系統(tǒng)中所述被監(jiān)測進程的進程標識符不存在。
進一步地,所述第一重啟模塊或第二重啟模塊包括:
指令單元,用于根據(jù)所述被監(jiān)測進程的進程停止狀態(tài)標識發(fā)送重啟所述被監(jiān)測進程服務的指令;
第二調(diào)用單元,用于以實施監(jiān)測的進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的所述被監(jiān)測進程。
采用上述技術方案后,本發(fā)明至少具有如下有益效果:本發(fā)明實施例的方法及裝置在響應于應用的啟動創(chuàng)建第一進程時,還及時地根據(jù)所述第一進程創(chuàng)建一個第二進程,兩個進程同步運行所述應用并且由所述第二進程對所述第一進程進行監(jiān)測,而可及時發(fā)現(xiàn)所述第一進程是否被停止,并能在所述第一進程被停止時立即重啟所述第一進程,保證了應用在后臺運行時不會發(fā)生中斷情況,有利于用戶快捷地再次啟動進入該應用,還可維持該應用在后臺進行消息推送或耗時長的數(shù)據(jù)處理等運行操作。本發(fā)明實施例僅需在應用中采用相關處理措施,即可實現(xiàn)應用不被系統(tǒng)停止,開發(fā)成本和實現(xiàn)成本都較低,而且用戶無需在移動智能終端上安裝多個應用,避免了安裝和運行多個應用帶來的占用大量系統(tǒng)資源的問題。
附圖說明
圖1是本發(fā)明實施例應用運行控制方法的原理示意圖。
圖2是本發(fā)明實施例應用運行控制方法的流程示意圖。
圖3是本發(fā)明另一個實施例應用運行控制方法的流程示意圖。
圖4是本發(fā)明實施例應用運行控制方法的第二進程對第一進程進行監(jiān)測或第一進程對第二進程進行監(jiān)測的流程步驟示意圖。
圖5是本發(fā)明實施例應用運行控制方法的重啟所述第一進程或重啟所述第二進程的操作步驟示意圖。
圖6是本發(fā)明實施例應用運行控制裝置的構成原理框圖。
圖7是本發(fā)明實施例應用運行控制裝置的進程創(chuàng)建模塊的構成原理框圖。
圖8是本發(fā)明另一實施例應用運行控制裝置的構成原理框圖。
圖9是本發(fā)明實施例應用運行控制裝置的監(jiān)測模塊的構成原理框圖。
圖10是本發(fā)明實施例應用運行控制裝置的第一重啟模塊或第二重啟模塊的構成原理框圖。
具體實施方式
下面結合附圖和具體實施例對本申請作進一步詳細說明。需要說明的是,以下的示意性實施及說明僅用來解釋本發(fā)明,并不作為對本發(fā)明的限定,而且,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互結合。
本發(fā)明實施例涉及一種應用運行控制方法及裝置,可以應用于各種智能終端,在本發(fā)明實施例中,該智能終端可以是智能手機、平板電腦、智能電視、智能手表或電子閱讀器等,所述智能終端運行的操作系統(tǒng)可以是安卓(Android)系統(tǒng),也還可以是諸如Windows操作系統(tǒng)、塞班操作系統(tǒng)、IOS操作系統(tǒng)等操作系統(tǒng)。
結合圖1及圖2所示,在本發(fā)明的一個實施例中,提供了一種應用運行控制方法,包括:
S11,響應于應用的啟動創(chuàng)建第一進程,根據(jù)所述第一進程創(chuàng)建第二進程,所述第二進程與所述第一進程同步運行所述應用;
S12,在所述第二進程中建立監(jiān)測機制,使所述第二進程對所述第一進程進行監(jiān)測;
S13,若監(jiān)測到所述第一進程被停止時,重啟所述第一進程,并恢復第一進程和第二進程同步運行所述應用且所述第二進程對所述第一進程進行監(jiān)測的運行狀態(tài)。
在智能終端的使用過程中,在啟動一個應用時,例如:用戶根據(jù)使用需求而自主啟動應用,或者系統(tǒng)根據(jù)預設指令自啟動應用(開機自啟動或者在預定時間點自啟動),系統(tǒng)均會創(chuàng)建一個對應的進程來執(zhí)行所述應用的運行操作。而本發(fā)明實施例通過在響應于應用的啟動創(chuàng)建第一進程時,還及時地根據(jù)所述第一進程創(chuàng)建一個第二進程,兩個進程同步運行所述應用并且由所述第二進程對所述第一進程進行監(jiān)測,從而可以及時發(fā)現(xiàn)第一進程是否被停止,并且能在第一進程被停止時立即重啟第一進程,保證了應用在后臺運行時不會發(fā)生中斷情況,有利于用戶快捷地再次啟動進入該應用,還可維持該應用在后臺進行消息推送或耗時長的數(shù)據(jù)處理等運行操作。本發(fā)明實施例僅需在應用中采用相關處理方法,即可實現(xiàn)應用不被系統(tǒng)停止,開發(fā)成本和實現(xiàn)成本都較低,而且用戶無需在移動智能終端上安裝多個應用,避免了安裝和運行多個應用帶來的占用大量系統(tǒng)資源的問題。
在本發(fā)明另一個實施例中,根據(jù)所述第一進程創(chuàng)建第二進程具體包括:
以所述第一進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的第二進程。
由于采用fork函數(shù)方式可以很方便地實現(xiàn)建立一個進程(父進程)的克隆進程(子進程),因此,本發(fā)明通過以第一進程為父進程以fork函數(shù)方式通過系統(tǒng)調(diào)用創(chuàng)建所述第二進程,由于fork函數(shù)的特性,所創(chuàng)建的第二進程與第一進程基本相同,均用于執(zhí)行相同的事件,即同步地運行同一應用,從而為應用的運行提供了一個實時的備份,在后續(xù)的運行過程中,即使第一進程被系統(tǒng)停止了,所述第二進程仍能維持應用的持續(xù)運行,可以很好地保證用戶再次啟動該應用時可以很快地進入,還能在后臺實現(xiàn)所述應用的消息推送,以及在后臺進行耗時長的數(shù)據(jù)處理等運行操作。
可選的,通常以所述第一進程在前臺運行,并能根據(jù)實際情況轉(zhuǎn)入后臺運行,而所述第二進程則通常僅是在后臺運行,而且,當一個應用需要從后臺運行轉(zhuǎn)入前臺運行時,也通常以所述第一進程來實現(xiàn)。
而在本發(fā)明一個可選實施例中,如圖3所示,所述方法還進一步包括:
S14,在所述第一進程中建立監(jiān)測機制,使所述第一進程對所述第二進程進行監(jiān)測;
S15,若監(jiān)測到所述第二進程被停止,重啟所述第二進程,并恢復所述第一進程和所述第二進程同步運行所述應用且所述第一進程對所述第二進程進行監(jiān)測的運行狀態(tài)。
由于所述第一進程或所述第二進程都在后臺運行時都存在被系統(tǒng)停止的可能性,本實施例通過進一步在所述第一進程中也建立監(jiān)測機制,使所述第一進程也對所述第二進程進行監(jiān)測,從而可以在所述第一進程監(jiān)測到所述第二進程被停止時,也能及時地重啟所述第二進程。由于在第一進程和第二進程中均建立起對應的監(jiān)測機制實現(xiàn)了相互的監(jiān)測,每一個進程在一個關系場景中是作為實施監(jiān)測的進程,而在另一個關系場景中又成為了被監(jiān)測進程,當一個進程作為實施監(jiān)測的進程時,在監(jiān)測到被監(jiān)測進程被停止時,即可通知系統(tǒng)立即重啟被停止的被監(jiān)測進程,從而更為有效地保證了所述第一進程和第二進程均能始終維持運行狀態(tài)。
而在本發(fā)明的另一個實施例中,如圖4所示,所述第二進程對所述第一進程進行監(jiān)測和所述第一進程對第二進程進行監(jiān)測的處理方式是相同的,均包括:
S121(S141),監(jiān)測是否有被監(jiān)測進程被停止的信號;
S122(S142),在監(jiān)測到所述被監(jiān)測進程存在被停止的信號時,生成所述被監(jiān)測進程的進程停止狀態(tài)標識。
在第一進程和第二進程進行相互監(jiān)測時,可通過監(jiān)測被監(jiān)測進程是否存在被停止的信號來確定被監(jiān)測進程的狀態(tài),例如:已經(jīng)被停止或者仍然繼續(xù)在運行中,若監(jiān)測到被監(jiān)測進程仍然繼續(xù)在運行中,則循環(huán)進行監(jiān)測,若監(jiān)測到被監(jiān)測進程已經(jīng)被停止時,即會產(chǎn)生對應的被監(jiān)測進程的進程停止狀態(tài)標識,從而有利于快速采取后續(xù)的重啟進程的操作,提升處理效率,有效保證了應用的運行不會中斷。
在具體實施時,所述被監(jiān)測進程被停止的信號包括被監(jiān)測進程的注冊文件在系統(tǒng)的進程文件中被移除,或在系統(tǒng)中所述被監(jiān)測進程的進程標識符(process ID)不存在。通過針對這些易于識別和監(jiān)測的信號進行監(jiān)測,即可快速地判斷確定為被監(jiān)測進程是否被停止。
在本發(fā)明另一個實施例中,如圖5所示,所述重啟所述第一進程或所述重啟所述第二進程的具體操作包括:
S131(S151),根據(jù)被監(jiān)測進程的進程停止狀態(tài)標識發(fā)送重啟所述被監(jiān)測進程服務的指令;
S132(S152),以實施監(jiān)測的進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的所述被監(jiān)測進程。
通過根據(jù)進程停止狀態(tài)標識發(fā)送重啟所述被停止的另一個進程服務的指令,準確性高,而且,重啟進程的操作和創(chuàng)建第二進程的操作基本相同,均是以一個進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的所述另一個進程,這種創(chuàng)建方式效率高,且能保證子進程和父進程運行相同的應用且所運行的應用的進度都能保持同步。在具體實施過程中,所述第一進程作為實施監(jiān)測的進程監(jiān)測到作為被監(jiān)測進程的第二進程被停止時,則由所述第一進程向系統(tǒng)底層發(fā)送重啟所述第二進程服務的指令,系統(tǒng)底層收到所述指令后,以所述第一進程為父進程,通過調(diào)用方式重啟所述第二進程;反之,當?shù)诙M程作為實施監(jiān)測的進程監(jiān)測到作為被監(jiān)測進程的第一進程被停止時,則由所述第二進程向系統(tǒng)底層發(fā)送重啟所述第一進程服務的指令,系統(tǒng)底層收到指令后,則以所述第二進程為父進程,通過調(diào)用方式重啟所述第一進程。
具體實施時,所述重啟被監(jiān)測進程,以實施監(jiān)測的進程為父進程,也是以fork函數(shù)通過調(diào)用方式進行創(chuàng)建對應的作為子進程的被監(jiān)測進程,在創(chuàng)建對應的子進程后,還在該新創(chuàng)建的子進程中再建立監(jiān)測機制,一方面,可使得新創(chuàng)建的子進程和父進程同步運行同一應用且恢復監(jiān)測,從而進入下一個相互監(jiān)測及重啟的處理循環(huán)周期,從而,在任何時候,當兩個進程中的任意一個進程被停止時都能再次快速重啟進程。
如上所述,根據(jù)所述第一進程創(chuàng)建第二進程以及重啟所述被停止的被監(jiān)測進程都可以以fork函數(shù)通過調(diào)用方式來創(chuàng)建對應的子進程。對此,為提升創(chuàng)建進程的效率,可以將由父進程以fork函數(shù)方式通過系統(tǒng)調(diào)用創(chuàng)建對應子進程的方法編譯成so庫,并存放到系統(tǒng)工程的libs目錄中,在服務的oncreate創(chuàng)建方法中進行調(diào)用來執(zhí)行創(chuàng)建新的子進程及監(jiān)測機制的任務。對于本發(fā)明而言,所述編譯成so庫的步驟僅需在應用開發(fā)時實施一次,即可供后續(xù)實際使用的操作步驟來靈活地調(diào)用。
另一方面,為更好地實現(xiàn)以上方法,如圖6所示,本發(fā)明實施例還提供了一種應用運行控制裝置,包括:
進程創(chuàng)建模塊10,用于響應于應用的啟動創(chuàng)建第一進程,根據(jù)所述第一進程創(chuàng)建第二進程,所述第二進程與第一進程同步運行所述應用;
第一監(jiān)測模塊20,用于在所述第二進程中建立監(jiān)測機制,使所述第二進程對第一進程進行監(jiān)測;
第一重啟模塊30,用于在監(jiān)測到第一進程被停止時,重啟所述第一進程,并恢復所述第一進程和所述第二進程同步運行所述應用且所述第二進程對所述第一進程進行的監(jiān)測的運行狀態(tài)。
在智能終端的使用過程中,系統(tǒng)需要創(chuàng)建相應的進程來執(zhí)行應用的運行操作。而本發(fā)明實施例進程創(chuàng)建模塊10可以通過響應應用的啟動創(chuàng)建第一進程來執(zhí)行所述應用,而且還及時地根據(jù)所述第一進程創(chuàng)建一個第二進程來同步運行所述應用,并且還由第一監(jiān)測模塊實現(xiàn)第二進程對第一進程的監(jiān)測,從而可以及時發(fā)現(xiàn)第一進程是否被停止,并且能在第一進程被停止時立即重啟第一進程,保證了應用在后臺運行時不會發(fā)生中斷情況,有利于用戶快捷地再次啟動進入該應用,還可維持該應用在后臺進行消息推送或耗時長的數(shù)據(jù)處理等運行操作。
本發(fā)明實施例僅需在應用中采用相關處理方法,即可實現(xiàn)應用不被系統(tǒng)停止,開發(fā)成本和實現(xiàn)成本都較低,而且用戶無需在移動智能終端上安裝多個應用,避免了安裝和運行多個應用帶來的占用大量系統(tǒng)資源的問題。
在本發(fā)明的另一個實施例中,如圖7所示,所述進程創(chuàng)建模塊10還包括:第一調(diào)用單元100,用于以所述第一進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的第二進程。
由于采用fork函數(shù)方式可以很方便地實現(xiàn)建立一個進程(父進程)的克隆進程(子進程),因此,本發(fā)明具體實施時通過以所述第一進程為父進程以fork函數(shù)方式通過系統(tǒng)調(diào)用創(chuàng)建第二進程。由于fork函數(shù)的特性,所創(chuàng)建的所述第二進程與所述第一進程基本相同,均用于執(zhí)行相同的事件,即同步地運行同一應用,從而為應用的運行提供了一個實時的備份,在后續(xù)的運行過程中,即使第一進程被系統(tǒng)停止了,還有第二進程能維持應用的持續(xù)運行,可以很好地保證用戶再次啟動該應用時可以很快地進入,還能在后臺實現(xiàn)所述應用的消息推送,以及在后臺進行耗時長的數(shù)據(jù)處理等運行操作。
而在本發(fā)明的另一個實施例中,如圖8所示,所述裝置還包括:
第二監(jiān)測模塊40,用于在所述第一進程中建立監(jiān)測機制,使所述第一進程對所述第二進程進行監(jiān)測;
第二重啟模塊50,用于在監(jiān)測到所述第二進程被停止時,重啟所述第二進程,并恢復所述第一進程和所述第二進程同步運行所述應用且所述第一進程對所述第二進程進行監(jiān)測的運行狀態(tài)。
由于所述第一進程和所述第二進程都在后臺運行時都存在被系統(tǒng)停止的可能性,本實施例進一步通過第二監(jiān)測模塊40在所述第一進程中也建立監(jiān)測機制,使所述第一進程也對所述第二進程進行監(jiān)測,從而可以在所述第一進程監(jiān)測到所述第二進程被停止時,也能及時地由第二重啟模塊50重啟所述第二進程。由于在第一進程和第二進程中均建立起對應的監(jiān)測機制實現(xiàn)了相互的監(jiān)測,每一個進程在一個關系場景中是作為實施監(jiān)測的進程,而在另一個關系場景中又成為了被監(jiān)測進程,當一個進程作為實施監(jiān)測的進程時,在監(jiān)測到被監(jiān)測進程被停止時,即可通知系統(tǒng)立即重啟被停止的被監(jiān)測進程,從而更為有效地保證了所述第一進程和第二進程均能始終維持運行狀態(tài)。
在本發(fā)明的另一個實施例中,如圖9所示,所述第一監(jiān)測模塊20和第二監(jiān)測模塊40的實現(xiàn)原理和結構也相同,均包括:
監(jiān)測單元200(400),用于監(jiān)測被監(jiān)測進程是否存在被停止的信號;
標識單元202(402),用于在監(jiān)測到所述被監(jiān)測進程存在被停止的信號時,生成所述被監(jiān)測的進程停止狀態(tài)標識。
在第一進程和第二進程進行相互監(jiān)測時,可通過監(jiān)測被監(jiān)測進程是否存在被停止的信號來確定被監(jiān)測進程的狀態(tài),若監(jiān)測到被監(jiān)測進程仍然繼續(xù)在運行中,則循環(huán)進行監(jiān)測,若監(jiān)測到被監(jiān)測進程已經(jīng)被停止時,即會產(chǎn)生對應的被監(jiān)測進程的進程停止狀態(tài)標識,從而有利于快速采取后續(xù)的重啟進程的操作,提升處理效率,有效保證了應用的運行不會中斷。
在具體實施時,所述被監(jiān)測進程被停止的信號包括被監(jiān)測進程的注冊文件在系統(tǒng)的進程文件中被移除,或在系統(tǒng)中所述被監(jiān)測進程的進程標識符(process ID)不存在。通過針對這些易于識別和監(jiān)測的信號進行監(jiān)測,即可快速地判斷確定為被監(jiān)測進程是否被停止。
在本發(fā)明的另一個實施例中,如圖10所示,所述第一重啟模塊30和第二重啟模塊50的實現(xiàn)原理和結構也相同,均包括:
指令單元300(500),用于根據(jù)被監(jiān)測進程的進程停止狀態(tài)標識發(fā)送重啟所述被監(jiān)測進程服務的指令;
第二調(diào)用單元302(502),用于以實施監(jiān)測的進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的所述被監(jiān)測進程。
通過根據(jù)進程停止狀態(tài)標識發(fā)送重啟所述被停止的被監(jiān)測進程服務的指令,準確性高。而且,重啟進程的操作和創(chuàng)建第二進程的操作基本相同,均是以一個進程作為父進程,通過調(diào)用方式創(chuàng)建作為子進程的所述被監(jiān)測進程,這種創(chuàng)建方式效率高,且能保證子進程和父進程運行相同的應用且所運行的應用的進度都能保持同步。
在具體實施時,所述重啟被監(jiān)測進程,以實施監(jiān)測的進程為父進程,也是以fork函數(shù)通過調(diào)用方式進行創(chuàng)建對應的作為子進程的被監(jiān)測進程,在創(chuàng)建對應的子進程后,還在該新創(chuàng)建的子進程中再建立監(jiān)測機制,一方面,可使得新創(chuàng)建的子進程和父進程同步運行同一應用且恢復監(jiān)測,從而進入下一個相互監(jiān)測及重啟的處理循環(huán)周期,從而,在任何時候,當兩個進程中的任意一個進程被停止時都能再次快速重啟進程。
為提升創(chuàng)建進程的效率,可以將由父進程以fork函數(shù)方式通過系統(tǒng)調(diào)用創(chuàng)建對應子進程的方法編譯成so庫,并存放到系統(tǒng)工程的libs目錄中,在服務的oncreate創(chuàng)建方法中進行調(diào)用來執(zhí)行創(chuàng)建新的子進程及監(jiān)測機制的任務。對于本發(fā)明而言,所述編譯成so庫的步驟僅需在應用開發(fā)時實施一次,即可供后續(xù)實際使用的操作步驟來靈活地調(diào)用,從而快速實現(xiàn)根據(jù)第一進程創(chuàng)建第二進程以及重啟所述已被停止的被監(jiān)測進程的操作。
本發(fā)明實施例所述的功能如果以軟件功能模塊或單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算設備可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實施例對現(xiàn)有技術做出貢獻的部分或者該技術方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算設備(可以是個人計算機,服務器,移動計算設備或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。
盡管已經(jīng)示出和描述了本發(fā)明的實施例,對于本領域的普通技術人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權利要求及其等同范圍限定。