一種應(yīng)用進(jìn)程被停止后自動重啟的實(shí)現(xiàn)方法及其系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及安卓系統(tǒng)應(yīng)用進(jìn)程管理的技術(shù)領(lǐng)域,具體涉及一種應(yīng)用進(jìn)程被停止后自動重啟的實(shí)現(xiàn)方法及其系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)在安卓系統(tǒng)中,每個(gè)應(yīng)用都會包含至少一個(gè)進(jìn)程,每個(gè)進(jìn)程都會受安卓系統(tǒng)進(jìn)行管理;所以在安卓系統(tǒng)應(yīng)用程序管理中都會有每個(gè)應(yīng)用的管理界面,在這里能強(qiáng)制停止應(yīng)用也可以清理應(yīng)用的數(shù)據(jù),這個(gè)接口方法是系統(tǒng)隱藏的,不開放出去給應(yīng)用層調(diào)用,但是市場上一些第三方清理軟件利用root過的系統(tǒng)來授權(quán)調(diào)用系統(tǒng)的這個(gè)接口,從而強(qiáng)制停止所有運(yùn)行的應(yīng)用;所以在這種情況下,怎樣保護(hù)應(yīng)用不被強(qiáng)制停止(適用于非root及root環(huán)境)成為業(yè)內(nèi)亟待解決的問題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的,就是克服現(xiàn)有技術(shù)的不足,提供一種應(yīng)用進(jìn)程被停止后自動重啟的實(shí)現(xiàn)方法。
[0004]基于上述目的,本發(fā)明還提供了一種實(shí)現(xiàn)應(yīng)用進(jìn)程被停止后自動重啟的系統(tǒng)。
[0005]為了達(dá)到上述目的,采用如下技術(shù)方案:一種應(yīng)用進(jìn)程被停止后自動重啟的實(shí)現(xiàn)方法,所述方法包括:
[0006]創(chuàng)建用于監(jiān)聽?wèi)?yīng)用進(jìn)程是否被停止的子進(jìn)程;
[0007]將所述子進(jìn)程掛在系統(tǒng)初始化進(jìn)程上進(jìn)行監(jiān)聽,若監(jiān)聽到應(yīng)用進(jìn)程被停止,則子進(jìn)程向系統(tǒng)底層發(fā)送重新啟動應(yīng)用進(jìn)程服務(wù)指令;
[0008]系統(tǒng)底層收到指令后,執(zhí)行啟動應(yīng)用進(jìn)程的服務(wù)指令來喚醒應(yīng)用進(jìn)程,以達(dá)到應(yīng)用進(jìn)程被停止后自動重啟的目的。
[0009]進(jìn)一步,所述創(chuàng)建用于監(jiān)聽?wèi)?yīng)用進(jìn)程是否被停止的子進(jìn)程的具體操作為:通過JNI方式在native層創(chuàng)建應(yīng)用進(jìn)程的子進(jìn)程執(zhí)行監(jiān)聽任務(wù)。
[0010]優(yōu)選地,所述方法還包括:將通過JNI方式在native層創(chuàng)建應(yīng)用進(jìn)程的子進(jìn)程執(zhí)行監(jiān)聽任務(wù)的方法編譯成so庫,放到系統(tǒng)工程的Iibs目錄中,在服務(wù)的oncreate創(chuàng)建方法中進(jìn)行調(diào)用native層方法來執(zhí)行創(chuàng)建子進(jìn)程及監(jiān)聽任務(wù)。
[0011]進(jìn)一步,所述子進(jìn)程通過判斷主進(jìn)程中應(yīng)用進(jìn)程中ID值是否存在來判斷應(yīng)用進(jìn)程是否被停止。
[0012]為實(shí)現(xiàn)本發(fā)明的另一目的,本發(fā)明還采用如下技術(shù)方案:一種實(shí)現(xiàn)應(yīng)用進(jìn)程被停止后自動重啟的系統(tǒng),所述系統(tǒng)包括:
[0013]創(chuàng)建單元,創(chuàng)建用于監(jiān)聽?wèi)?yīng)用進(jìn)程是否被停止的子進(jìn)程;
[0014]監(jiān)聽單元,將所述子進(jìn)程掛在系統(tǒng)初始化進(jìn)程上進(jìn)行監(jiān)聽,若監(jiān)聽到應(yīng)用進(jìn)程被停止,則子進(jìn)程向系統(tǒng)底層發(fā)送重新啟動應(yīng)用進(jìn)程服務(wù)指令;
[0015]執(zhí)行單元,收到指令后執(zhí)行啟動應(yīng)用進(jìn)程的服務(wù)指令來喚醒應(yīng)用進(jìn)程,以達(dá)到應(yīng)用進(jìn)程被停止后自動重啟的目的。
[0016]進(jìn)一步,所述創(chuàng)建單元通過JNI方式在native層創(chuàng)建應(yīng)用進(jìn)程的子進(jìn)程執(zhí)行監(jiān)聽任務(wù)。
[0017]優(yōu)選地,所述系統(tǒng)還包括:編譯單元,將通過JNI方式在native層創(chuàng)建應(yīng)用進(jìn)程的子進(jìn)程執(zhí)行監(jiān)聽任務(wù)的方法編譯成so庫,放到系統(tǒng)工程的libs目錄中,創(chuàng)建單元在服務(wù)的oncreate創(chuàng)建方法中進(jìn)行調(diào)用native層方法來執(zhí)行創(chuàng)建子進(jìn)程及監(jiān)聽任務(wù)。
[0018]進(jìn)一步,所述子進(jìn)程通過判斷主進(jìn)程中應(yīng)用進(jìn)程中ID值是否存在來判斷應(yīng)用進(jìn)程是否被停止。
[0019]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:本發(fā)明通過創(chuàng)建用于監(jiān)聽?wèi)?yīng)用進(jìn)程是否被停止的子進(jìn)程;將所述子進(jìn)程掛在系統(tǒng)初始化進(jìn)程上進(jìn)行監(jiān)聽,若監(jiān)聽到應(yīng)用進(jìn)程被停止,則子進(jìn)程向系統(tǒng)底層發(fā)送重新啟動應(yīng)用進(jìn)程服務(wù)指令;系統(tǒng)底層收到指令后,執(zhí)行啟動應(yīng)用進(jìn)程的服務(wù)指令來喚醒應(yīng)用進(jìn)程,以達(dá)到應(yīng)用進(jìn)程被停止后自動重啟的目的。
【附圖說明】
[0020]圖1本發(fā)明實(shí)施例一實(shí)現(xiàn)應(yīng)用進(jìn)程被停止后自動重啟的系統(tǒng)示意圖;
[0021]圖2本發(fā)明實(shí)施例一應(yīng)用進(jìn)程被停止后自動重啟的實(shí)現(xiàn)方法的流程圖;
[0022]圖3本發(fā)明實(shí)施例二實(shí)現(xiàn)應(yīng)用進(jìn)程被停止后自動重啟的系統(tǒng)示意圖;
[0023]圖4本發(fā)明實(shí)施例二應(yīng)用進(jìn)程被停止后自動重啟的實(shí)現(xiàn)方法的流程圖。
【具體實(shí)施方式】
[0024]下面將結(jié)合附圖以及具體實(shí)施方法來詳細(xì)說明本發(fā)明,在本發(fā)明的示意性實(shí)施及說明用來解釋本發(fā)明,但并不作為對本發(fā)明的限定。
[0025]實(shí)施例一
[0026]如圖1所示,一種實(shí)現(xiàn)應(yīng)用進(jìn)程被停止后自動重啟的系統(tǒng),所述系統(tǒng)包括:
[0027]創(chuàng)建單元,創(chuàng)建用于監(jiān)聽?wèi)?yīng)用進(jìn)程是否被停止的子進(jìn)程;
[0028]監(jiān)聽單元,將所述子進(jìn)程掛在系統(tǒng)初始化進(jìn)程上進(jìn)行監(jiān)聽,若監(jiān)聽到應(yīng)用進(jìn)程被停止,則子進(jìn)程向系統(tǒng)底層發(fā)送重新啟動應(yīng)用進(jìn)程服務(wù)指令;
[0029]執(zhí)行單元,收到指令后執(zhí)行啟動應(yīng)用進(jìn)程的服務(wù)指令來喚醒應(yīng)用進(jìn)程,以達(dá)到應(yīng)用進(jìn)程被停止后自動重啟的目的。
[0030]如圖2所示,一種應(yīng)用進(jìn)程被停止后自動重啟的實(shí)現(xiàn)方法,所述方法包括:
[0031]SlOl:創(chuàng)建用于監(jiān)聽?wèi)?yīng)用進(jìn)程是否被停止的子進(jìn)程;
[0032]S102:將子進(jìn)程掛在系統(tǒng)初始化進(jìn)程上進(jìn)行監(jiān)聽;
[0033]S103:子進(jìn)程監(jiān)聽?wèi)?yīng)用進(jìn)程是否被停止,若是,進(jìn)入步驟S105;若否,進(jìn)入步驟S104 ;
[0034]S104:循環(huán)監(jiān)聽;
[0035]S105:子進(jìn)程向系統(tǒng)底層發(fā)送重新啟動應(yīng)用進(jìn)程服務(wù)指令;
[0036]S106:系統(tǒng)底層收到指令后,執(zhí)行啟動應(yīng)用進(jìn)程的服務(wù)指令來喚醒應(yīng)用進(jìn)程,以達(dá)到應(yīng)用進(jìn)程被停止后自動重啟的目的。
[0037]實(shí)施例二
[0038]如圖3所示,一種實(shí)現(xiàn)應(yīng)用進(jìn)程被停止后自動重啟的系統(tǒng),所述系統(tǒng)包括:
[0039]編譯單元,將通過JNI方式在native層創(chuàng)建應(yīng)用進(jìn)程的子進(jìn)程執(zhí)行監(jiān)聽任務(wù)的方法編譯成so庫,放到系統(tǒng)工程的Iibs目錄中,
[0040]創(chuàng)建單元,在服務(wù)的oncreate創(chuàng)建方法中進(jìn)行調(diào)用native層方法來創(chuàng)建用于監(jiān)聽?wèi)?yīng)用進(jìn)程是否被停止的子進(jìn)程;
[0041]監(jiān)聽單元,將