一種進(jìn)程保護(hù)的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種進(jìn)程保護(hù)方法及裝置。
【背景技術(shù)】
[0002]隨著科技的飛速發(fā)展,眾多電子產(chǎn)品跨入智能化觸摸屏?xí)r代,如智能手機(jī),ipad等。智能化電子產(chǎn)品具有獨(dú)立的操作系統(tǒng),可由用戶根據(jù)自己的需要自行安裝各種第三方服務(wù)商提供的應(yīng)用軟件,通過(guò)此類應(yīng)用軟件,可以擴(kuò)展智能化電子產(chǎn)品的功能。智能化電子產(chǎn)品的開(kāi)放性及可操作性強(qiáng)等特性決定了其應(yīng)用范圍廣泛。
[0003]電子產(chǎn)品在運(yùn)行過(guò)程中,需要依賴自身安裝的操作系統(tǒng),操作系統(tǒng)可以分為多種類型,如安卓操作系統(tǒng),windows操作系統(tǒng),1s操作系統(tǒng)等,由于安卓操作系統(tǒng)是一種基于Linux的自由開(kāi)放的源代碼操作系統(tǒng),其允許多個(gè)應(yīng)用軟件(即應(yīng)用程序)同時(shí)運(yùn)行;當(dāng)一個(gè)應(yīng)用程序從前臺(tái)運(yùn)行切換至后臺(tái)運(yùn)行時(shí),由于內(nèi)存資源緊張或者由于系統(tǒng)管理軟件設(shè)置問(wèn)題,會(huì)將運(yùn)行于后臺(tái)的應(yīng)用程序關(guān)閉,從而導(dǎo)致用戶希望運(yùn)行的應(yīng)用程序無(wú)法運(yùn)行的問(wèn)題。例如,用戶通過(guò)在電子產(chǎn)品中運(yùn)行即時(shí)通訊應(yīng)用程序,完成實(shí)時(shí)通訊;當(dāng)用戶不希望關(guān)閉該即時(shí)通訊應(yīng)用程序,且需要運(yùn)行其他應(yīng)用程序或者進(jìn)入待機(jī)界面時(shí),將通過(guò)電子產(chǎn)品控制即時(shí)通訊應(yīng)用程序切換至后臺(tái)運(yùn)行,當(dāng)系統(tǒng)內(nèi)存資源緊張時(shí),操作系統(tǒng)將優(yōu)先結(jié)束所有后臺(tái)運(yùn)行的各個(gè)應(yīng)用程序,以釋放更多的內(nèi)存資源;此時(shí),即時(shí)通訊應(yīng)用程序?qū)⒈魂P(guān)閉,電子產(chǎn)品將無(wú)法接收到其他用戶通過(guò)即時(shí)通訊應(yīng)用程序發(fā)送的信息。
[0004]基于上述技術(shù)問(wèn)題,通常采用在電子產(chǎn)品中設(shè)置一個(gè)鬧鐘服務(wù),每隔預(yù)設(shè)時(shí)長(zhǎng)即檢查一次上述應(yīng)用程序是否仍在后臺(tái)運(yùn)行,若該應(yīng)用程序被關(guān)閉,則重新啟動(dòng)該應(yīng)用程序;采用該技術(shù)方案,電子產(chǎn)品每隔一段時(shí)間需要對(duì)后臺(tái)應(yīng)用程序進(jìn)行檢測(cè),從而導(dǎo)致系統(tǒng)資源消耗大的問(wèn)題。
[0005]由此可見(jiàn),電子產(chǎn)品在應(yīng)用程序切換至后臺(tái)運(yùn)行后,重新啟動(dòng)該應(yīng)用程序的過(guò)程中存在系統(tǒng)資源消耗大的問(wèn)題。
【發(fā)明內(nèi)容】
[0006]本發(fā)明實(shí)施例提供一種進(jìn)程保護(hù)方法及裝置,用以解決現(xiàn)有技術(shù)中電子產(chǎn)品在應(yīng)用程序切換至后臺(tái)運(yùn)行后,重新啟動(dòng)該應(yīng)用程序的過(guò)程中存在系統(tǒng)資源消耗大的問(wèn)題。
[0007]本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:
[0008]一種進(jìn)程保護(hù)方法,包括:
[0009]若應(yīng)用程序的主進(jìn)程啟動(dòng),則調(diào)用所述應(yīng)用程序中的第一指定函數(shù),生成保護(hù)進(jìn)程;
[0010]控制所述保護(hù)進(jìn)程啟動(dòng)所述應(yīng)用程序中的被保護(hù)進(jìn)程;
[0011 ] 建立所述保護(hù)進(jìn)程和所述被保護(hù)進(jìn)程之間的連接;
[0012]控制所述保護(hù)進(jìn)程判定所述保護(hù)進(jìn)程和所述被保護(hù)進(jìn)程之間的連接中斷時(shí),重新啟動(dòng)所述被保護(hù)進(jìn)程中的部分或者全部功能。
[0013]一種進(jìn)程保護(hù)裝置,包括:
[0014]保護(hù)進(jìn)程生成單元,用于若應(yīng)用程序的主進(jìn)程啟動(dòng),則調(diào)用所述應(yīng)用程序中的第一指定函數(shù),生成保護(hù)進(jìn)程;
[0015]啟動(dòng)單元,用于控制所述保護(hù)進(jìn)程啟動(dòng)所述應(yīng)用程序中的被保護(hù)進(jìn)程;
[0016]連接建立單元,用于建立所述保護(hù)進(jìn)程和所述被保護(hù)進(jìn)程之間的連接;
[0017]重新啟動(dòng)單元,用于控制所述保護(hù)進(jìn)程判定所述保護(hù)進(jìn)程和所述被保護(hù)進(jìn)程之間的連接中斷時(shí),重新啟動(dòng)所述被保護(hù)進(jìn)程中的部分或者全部功能。
[0018]本發(fā)明實(shí)施例中,在應(yīng)用程序的主進(jìn)程啟動(dòng)時(shí),調(diào)用應(yīng)用程序中包含的第一指定函數(shù),生成保護(hù)進(jìn)程;建立保護(hù)進(jìn)程和應(yīng)用程序的被保護(hù)進(jìn)程之間的連接;控制該保護(hù)進(jìn)程監(jiān)控到上述連接中斷時(shí),重新啟動(dòng)應(yīng)用程序中的被保護(hù)進(jìn)程。采用本發(fā)明技術(shù)方案,電子產(chǎn)品為應(yīng)用程序創(chuàng)建保護(hù)進(jìn)程,通過(guò)該保護(hù)進(jìn)程監(jiān)控被保護(hù)進(jìn)程,由于當(dāng)被保護(hù)進(jìn)程被中斷,被保護(hù)進(jìn)程和保護(hù)進(jìn)程之間的連接將被中斷,因此,通過(guò)保護(hù)進(jìn)程監(jiān)控到上述連接中斷即可確定被保護(hù)進(jìn)程被中斷,將重新啟動(dòng)被保護(hù)進(jìn)程,無(wú)須頻繁啟動(dòng)鬧鐘應(yīng)用程序?qū)笈_(tái)運(yùn)行應(yīng)用程序進(jìn)程檢測(cè),有效降低了系統(tǒng)資源消耗;并且,當(dāng)保護(hù)進(jìn)程監(jiān)控到上述連接中斷時(shí),將立刻重新啟動(dòng)被保護(hù)進(jìn)程,確定后臺(tái)運(yùn)行應(yīng)用程序被中斷以及重新啟動(dòng)后臺(tái)運(yùn)行應(yīng)用程序的延遲時(shí)間短,大大降低了后臺(tái)運(yùn)行應(yīng)用程序的中斷對(duì)該后臺(tái)運(yùn)行應(yīng)用程序接收數(shù)據(jù)的影響,有效提高了系統(tǒng)性能。
【附圖說(shuō)明】
[0019]圖1為本發(fā)明實(shí)施例中保護(hù)進(jìn)程的流程圖;
[0020]圖2為本發(fā)明實(shí)施例中具體應(yīng)用場(chǎng)景下保護(hù)進(jìn)程的流程圖;
[0021]圖3為本發(fā)明實(shí)施例中進(jìn)程保護(hù)裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]為了解決現(xiàn)有技術(shù)中電子產(chǎn)品在應(yīng)用程序切換至后臺(tái)運(yùn)行后,重新啟動(dòng)該應(yīng)用程序的過(guò)程中存在系統(tǒng)資源消耗大的問(wèn)題。本發(fā)明實(shí)施例中,在應(yīng)用程序的主進(jìn)程啟動(dòng)時(shí),調(diào)用應(yīng)用程序中包含的第一指定函數(shù),生成保護(hù)進(jìn)程;建立保護(hù)進(jìn)程和應(yīng)用程序的被保護(hù)進(jìn)程之間的連接;控制該保護(hù)進(jìn)程監(jiān)控到上述連接中斷時(shí),重新啟動(dòng)應(yīng)用程序中的被保護(hù)進(jìn)程。采用本發(fā)明技術(shù)方案,電子產(chǎn)品為應(yīng)用程序創(chuàng)建保護(hù)進(jìn)程,通過(guò)該保護(hù)進(jìn)程監(jiān)控被保護(hù)進(jìn)程,由于當(dāng)被保護(hù)進(jìn)程被中斷,被保護(hù)進(jìn)程和保護(hù)進(jìn)程之間的連接將被中斷,因此,通過(guò)保護(hù)進(jìn)程監(jiān)控到上述連接中斷即可確定被保護(hù)進(jìn)程被中斷,將重新啟動(dòng)被保護(hù)進(jìn)程,無(wú)須頻繁啟動(dòng)鬧鐘應(yīng)用程序?qū)笈_(tái)運(yùn)行應(yīng)用程序進(jìn)程檢測(cè),有效降低了系統(tǒng)資源消耗;并且,當(dāng)保護(hù)進(jìn)程監(jiān)控到上述連接中斷時(shí),將立刻重新啟動(dòng)被保護(hù)進(jìn)程,確定后臺(tái)運(yùn)行應(yīng)用程序被中斷以及重新啟動(dòng)后臺(tái)運(yùn)行應(yīng)用程序的延遲時(shí)間短,大大降低了后臺(tái)運(yùn)行應(yīng)用程序的中斷對(duì)該后臺(tái)運(yùn)行應(yīng)用程序接收數(shù)據(jù)的影響,有效提高了系統(tǒng)性能。
[0023]下面結(jié)合說(shuō)明書(shū)附圖,對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)描述。
[0024]參閱圖1所示,本發(fā)明實(shí)施例中,電子產(chǎn)品中安裝有安卓操作系統(tǒng),該電子產(chǎn)品保護(hù)安卓操作系統(tǒng)中進(jìn)程的過(guò)程,包括:
[0025]步驟100:若應(yīng)用程序的主進(jìn)程啟動(dòng),則調(diào)用該應(yīng)用程序中的第一指定函數(shù),生成保護(hù)進(jìn)程。
[0026]本發(fā)明實(shí)施例中,電子產(chǎn)品接收應(yīng)用程序啟動(dòng)指令,該指令中包含待啟動(dòng)的應(yīng)用程序標(biāo)識(shí),電子產(chǎn)品啟動(dòng)主進(jìn)程;可選的,當(dāng)應(yīng)用程序的主進(jìn)程啟動(dòng)時(shí),執(zhí)行特定函數(shù),指示啟動(dòng)保護(hù)進(jìn)程,其中,該特定函數(shù)即為Applicat1n的OnCreate。
[0027]可選的,當(dāng)應(yīng)用程序的主進(jìn)程啟動(dòng)時(shí),通過(guò)該應(yīng)用程序中的第一指定函數(shù),生成保護(hù)進(jìn)程,電子產(chǎn)品啟動(dòng)該保護(hù)進(jìn)程后,執(zhí)行OnstartCommand函數(shù);其中,該第一指定函數(shù)可以為 StartService 函數(shù)。
[0028]步驟110:控制保護(hù)進(jìn)程啟動(dòng)上述應(yīng)用程序中的被保護(hù)進(jìn)程。
[0029]本發(fā)明實(shí)施例中,電子產(chǎn)品創(chuàng)建第二指定函數(shù),控制第二指定函數(shù)分離主進(jìn)程和保護(hù)進(jìn)程之間的關(guān)聯(lián),其中,該第二指定函數(shù)為fork函數(shù)和setsid等函數(shù),上述保護(hù)進(jìn)程通過(guò)調(diào)用該fork函數(shù)和setsid等函數(shù),將保護(hù)進(jìn)程轉(zhuǎn)變?yōu)榫`進(jìn)程,通過(guò)該fork函數(shù)能夠分離主進(jìn)程和保護(hù)進(jìn)程之間的關(guān)聯(lián)性,從而避免主進(jìn)程被回收時(shí),保護(hù)進(jìn)程同樣被回收的問(wèn)題,從而影響最終的被保護(hù)進(jìn)程中斷的判斷結(jié)果,提高了重啟應(yīng)用程序操作的準(zhǔn)確性。
[0030]進(jìn)一步的,在分離主進(jìn)程和保護(hù)進(jìn)程之間的關(guān)聯(lián)之后,電子產(chǎn)品建立保護(hù)進(jìn)程的套接口。具體的,電子產(chǎn)品建立保護(hù)進(jìn)程的套接口的過(guò)程,包括:在應(yīng)用程序的數(shù)據(jù)目錄下創(chuàng)建指定文件;控制保護(hù)