欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

應用程序運行方法、系統(tǒng)及應用程序的制作方法

文檔序號:6504880閱讀:161來源:國知局
應用程序運行方法、系統(tǒng)及應用程序的制作方法
【專利摘要】本發(fā)明提供一種應用程序運行方法,包括如下步驟:將應用程序各個進程設置為前臺進程或后臺進程;將所述前臺進程設置在操作系統(tǒng)的前臺運行,將所述后臺進程設置在操作系統(tǒng)的后臺運行;在所述前臺進程切換至后臺運行后,終止運行所述前臺進程,并釋放其占用的內(nèi)存。本發(fā)明還提供一種應用程序運行系統(tǒng)和應用程序,通過本發(fā)明的技術,可以達到節(jié)省內(nèi)存的目的,提高了內(nèi)存使用效率,提升了應用程序的運行效率。
【專利說明】應用程序運行方法、系統(tǒng)及應用程序

【技術領域】
[0001]本發(fā)明涉及移動互聯(lián)網(wǎng)技術,特別是涉及一種應用程序運行方法、系統(tǒng)及應用程序。

【背景技術】
[0002]移動互聯(lián)網(wǎng)時代,在新一代移動通信技術推動下,智能終端市場呈現(xiàn)激烈增長趨勢,在此過程中,高端智能終端的硬件性能,如CPU運算能力,內(nèi)存大小等不斷增強,但另一方面,隨著移動互聯(lián)網(wǎng)應用產(chǎn)品功能越來越強大,特別是Π效果更加炫目,對智能終端的性能也是提出更高要求。
[0003]目前,智能終端上安裝的應用程序是越來越多,各種應用程序啟用時,由于類似于界面呈現(xiàn)和交互響應等需要消耗較大的內(nèi)存,如果進程從前臺切換至后臺沒有主動釋放對象引用和主動進行垃圾回收(Garbage Collect1n, GC),應用程序仍將占用較大的內(nèi)存空間,導致內(nèi)存消耗大、使用效率低,使得智能終端經(jīng)常會出現(xiàn)內(nèi)存不足現(xiàn)象,甚至會導致系統(tǒng)死機或者崩潰。


【發(fā)明內(nèi)容】

[0004]基于此,有必要針對上述內(nèi)存消耗大、使用效率低的問題,提供一種應用程序運行方法、系統(tǒng)及應用程序。
[0005]一種應用程序運行方法,包括如下步驟:
[0006]將應用程序各個進程設置為前臺進程或后臺進程;
[0007]將所述前臺進程設置在操作系統(tǒng)的前臺運行,將所述后臺進程設置在操作系統(tǒng)的后臺運行;
[0008]在所述前臺進程切換至后臺運行后,終止運行所述前臺進程,并釋放其占用的內(nèi)存。
[0009]一種應用程序運行系統(tǒng),包括:
[0010]前后臺進程設置模塊,用于將應用程序各個進程設置為前臺進程或后臺進程;
[0011]雙線程運行模塊,用于將所述前臺進程設置在操作系統(tǒng)的前臺運行,將所述后臺進程設置在操作系統(tǒng)的后臺運行;
[0012]進程切換運行模塊,用于在所述前臺進程切換至后臺運行后,終止運行所述前臺進程,并釋放其占用的內(nèi)存。
[0013]上述應用程序運行方法和系統(tǒng),通過將應用程序設置為前后臺分離的雙線程同時運行的方案,可以將應用程序的部分進程設置為前臺進程,將部分進程在后臺駐留運行,當前臺進程由前臺轉(zhuǎn)入后臺運行后,及時釋放其占用的內(nèi)存,從而可以達到節(jié)省內(nèi)存的目的,提高了內(nèi)存使用效率,提升了應用程序的運行效率。
[0014]一種應用程序,包括:前臺進程集和后臺進程集;
[0015]所述前臺進程集中的前臺進程在操作系統(tǒng)前臺運行,所述后臺進程集中的進程在操作系統(tǒng)后臺運行;
[0016]當所述前臺進程由前臺切換至后臺運行時,應用程序終止運行該前臺進程,并釋放其占用的內(nèi)存。
[0017]上述應用程序,針對于操作系統(tǒng)多進程運行的特性,在程序架構(gòu)上突破了現(xiàn)有的單進程應用設計,通過將應用程序分離為前臺進程集和后臺進程集,可以將占用內(nèi)存較大的進程在前臺運行,而后臺僅保留需要常駐的最小代碼集合的進程,當應用程序的前臺進程由前臺進程切換至后臺運行后,及時終止運行并釋放其占用的內(nèi)存。從而從總體上節(jié)省了應用程序占用的內(nèi)存空間,提高了內(nèi)存使用效率,提升了程序運行效率,并保證了應用程序和系統(tǒng)運行的穩(wěn)定性和可靠性。

【專利附圖】

【附圖說明】
[0018]圖1為一個實施例的應用程序運行方法流程圖;
[0019]圖2為一個實施例的應用程序運行系統(tǒng)結(jié)構(gòu)示意圖;
[0020]圖3為一個應用實例的應用程序架構(gòu)圖。

【具體實施方式】
[0021]下面結(jié)合附圖對本發(fā)明的應用程序運行方法的【具體實施方式】作詳細描述。
[0022]參考圖1所示,圖1為一個實施例的應用程序運行方法流程圖,包括如下步驟:
[0023]步驟SlO:將應用程序各個進程設置為前臺進程或后臺進程。
[0024]步驟S30:將所述前臺進程設置在操作系統(tǒng)的前臺運行,將所述后臺進程設置在操作系統(tǒng)的后臺運行。
[0025]步驟S50:在所述前臺進程切換至后臺運行后,終止運行所述前臺進程,并釋放其占用的內(nèi)存。
[0026]本實施例的應用程序運行方法,通過設置前后臺分離的雙進程同時運行的方案,將應用程序的部分進程(如UI顯示和非駐留邏輯運行)設置為前臺進程,在操作系統(tǒng)前臺運行,將部分進程(如系統(tǒng)事件監(jiān)聽和駐留邏輯運行)設置在后臺駐留運行,當前臺進程由前臺轉(zhuǎn)入后臺運行后,及時釋放其占用的內(nèi)存,從而可以達到節(jié)省內(nèi)存的目的,提高了內(nèi)存使用效率,提升了程序運行效率。
[0027]在一個實施例中,前臺進程包括程序界面及其子元素呈現(xiàn)進程、UI控件事件處理進程、非持久運行的數(shù)據(jù)處理邏輯進程。其中,程序界面及其子元素呈現(xiàn)進程主要包括頁面、彈窗或動畫等控件事件處理進程主要包括按鈕響應、文本輸入或列表刷新等;非持久運行的數(shù)據(jù)處理邏輯進程主要包括臨時性文件處理或數(shù)據(jù)庫讀寫等。
[0028]Android系統(tǒng)作為當前主流移動操作系統(tǒng)平臺,支持多任務處理,可以同時運行多個應用程序。通過調(diào)用系統(tǒng)Low Memory Killer主動殺死某些進程。其中,Low MemoryKiller是根據(jù)進程的優(yōu)先級來決定是否殺死該進程,其優(yōu)先級順序由高到低依次是:F0REGR0UD_APP、VISIBLE_APP、SECONDARY_SERVER、HIDDEN_APP、C0NTENT_PR0VIDER、EMPTY_APP,進程優(yōu)先級越低,則最有可能先被殺死。
[0029]在Android系統(tǒng)中,前臺進程主要對應于Activity組件以及各種布局元素實現(xiàn)。前臺交互發(fā)生時,將前臺進程為設為F0REGR0UD_APP進程,其優(yōu)先級最高,系統(tǒng)不會殺死這些進程,當用戶選擇退出前臺操作(如Back鍵)或者切換致桌面(如Home鍵),將前臺進程優(yōu)先級降低,可以主動殺死前臺進程,或者調(diào)用系統(tǒng)的Low Memory Killer殺死該進程,從而節(jié)省內(nèi)存空間。
[0030]對于后臺進程,包括系統(tǒng)事件監(jiān)聽進程、持久運行的數(shù)據(jù)處理邏輯進程。其中,系統(tǒng)事件(Event)監(jiān)聽進程主要包括短信/彩信收發(fā)、來電/去電接聽與掛斷、系統(tǒng)時鐘或系統(tǒng)啟動/關閉等;持久運行的數(shù)據(jù)處理邏輯進程主要包括聯(lián)網(wǎng)流量統(tǒng)計、程序安裝/卸載事件或系統(tǒng)權限訪問統(tǒng)計等。
[0031]在Android系統(tǒng)中,后臺進程主要對應于Service組件和Receiver組件。后臺進程擁有Service組件,即其至少擁有SECONDARY_SERVER優(yōu)先級,高于HIDDEN_APP,一般不會被系統(tǒng)殺死,所以應用切換至后臺狀態(tài)后,前臺進程可能被殺死,后臺進程則會常駐內(nèi)存,此時后臺進程所占用的內(nèi)存即為整個應用程序占用的內(nèi)存,通過限制后臺進程的邏輯功能,僅保留需要常駐的最小代碼集合,保證其內(nèi)存占用最小,就可以大幅度降低系統(tǒng),特別是待機狀態(tài)下的內(nèi)存消耗。
[0032]在一個實施例中,步驟S50還包括:當用戶點擊應用程序圖標時,啟動所述應用程序的各個前臺進程,并在啟動所述前臺進程后,發(fā)送消息至各個后臺進程的Service組件(服務組件)啟動對應的后臺進程。
[0033]在本實施例中,提供了前后臺雙進程的啟動方式,在應用程序安裝后,用戶點擊程序圖標觸發(fā)前臺進程啟動,在前臺進程啟動完成后通過發(fā)送消息至后臺進程的Service組件來啟動后臺進程。
[0034]在一個實施例中,步驟S50在終止運行該前臺進程前還包括:維持執(zhí)行所述前臺進程切換時正在處理的邏輯。
[0035]在本實施例中,考慮到一些前臺進程在切換至后臺運行時,該進程所執(zhí)行的邏輯處理并不能馬上被終止,另外也是考慮到用戶錯誤操作而將前臺進程切換至后臺運行,因此,針對于某些邏輯處理,可以通過維持執(zhí)行前臺進程切換時正在處理的邏輯,在執(zhí)行完畢后再終止該進程以釋放內(nèi)存,從而保證切換時正在處理的邏輯能夠得到安全、合理的處理。
[0036]進一步地,上述維持執(zhí)行所述前臺進程切換時正在處理的邏輯的步驟可以包括如下:
[0037]若所述前臺進程不包含Service組件,則在該前臺進程中添加一個設定的Service組件,利用該Service組件執(zhí)行所述前臺進程切換時正在處理的邏輯;若所述前臺進程包含Service組件,則利用所述Service組件執(zhí)行所述前臺進程切換時正在處理的邏輯。
[0038]例如,在Android系統(tǒng)中,當前臺進程切換至后臺時,其優(yōu)先級通常會下降至HIDDEN_APP級別,此時,如果其中沒有處于運行狀態(tài)的Service組件,前臺進程將成為系統(tǒng)緩存進程,在內(nèi)存不足的情況下,系統(tǒng)會優(yōu)先殺死此類進程。
[0039]為了避免前臺進程切換至后臺后被即刻殺死,可以設置以下處理機制:
[0040](I)若前臺進程中沒有Service組件,在切換至后臺后,由于仍需要延時處理某些邏輯,因此不能將其放入系統(tǒng)緩存進程被終止,則可以為該前臺進程添加一個簡單(空實現(xiàn))的Service組件,在延時執(zhí)行所述邏輯處理完成后,停止該Service組件并將前臺進程放入系統(tǒng)緩存進程隊列,避免被系統(tǒng)殺死,這樣可以保證前臺進程數(shù)據(jù)處理的安全性和一致性。
[0041](2)若前臺進程本身已包含Service組件,則在保證數(shù)據(jù)安全性和一致性的前提下,當所有邏輯處理完成后停止所有的Service組件,讓前臺進程能夠進入緩存進程隊列,這樣更有利于系統(tǒng)釋放進程和回收內(nèi)存。
[0042]在一個實施例中,步驟S50進一步包括:當后臺進程進行前臺邏輯處理時,將所述前臺邏輯處理的消息請求發(fā)送至對應的前臺進程,利用所述前臺進程根據(jù)所述消息請求進行所述前臺邏輯處理。
[0043]具體的,后臺進程監(jiān)聽到事件后需要通過某種交互方式提示用戶或者觸發(fā)一個臨時性的數(shù)據(jù)操作,此時,需要后臺進程也能執(zhí)行該前臺操作,但為了節(jié)省內(nèi)存,通過上述處理機制,不通過后臺進程執(zhí)行此類邏輯,而是通過進程間通信機制,發(fā)送消息至對應的前臺進程,并有該前臺進程來完成具體的業(yè)務操作。
[0044]在本實施例中,通過建立上述進程間的通信機制,可以由后臺進程發(fā)送消息至前臺進程,由后者完成具體的業(yè)務操作,從而可以節(jié)省內(nèi)存。
[0045]例如,在Android系統(tǒng)中,上述進程間的通信機制可以包括兩種處理方式:
[0046](I)若所述消息請求為UI顯示,則將所述消息請求封裝在Intent對象中,發(fā)送至對應的前臺進程,利用該前臺進程調(diào)用對應的Activity組件進行UI顯示。
[0047]具體的,對于需要UI顯示的消息處理,使用Android系統(tǒng)的Intent消息傳遞機制,將消息請求封裝在Intent對象中發(fā)送至前臺進程,由該前臺進程調(diào)用具體的Activity組件完成顯示顯示操作。
[0048]上述處理方式,避免了直接使用Android系統(tǒng)自帶的提供的用于后臺Π顯示的Window Manager服務,由此可以保證后臺進程完全不用處理極耗內(nèi)存的UI邏輯,從而有效地節(jié)省了內(nèi)存空間。
[0049](2)若所述消息請求為非Π顯示,則根據(jù)接口定義語言對應的進程間通信接口,根據(jù)該進程間通信接口將消息數(shù)據(jù)傳遞至對應的前臺進程進行處理。
[0050]具體的,對于非UI顯示的消息處理,使用Android系統(tǒng)提供的輕量級IPC-RPC(Remote Procedure Call,遠程進程調(diào)用)來完成,即通過定義 AIDL (Android InterfaceDef init1n Language )接口文件來定義IPC接口,由前臺進程實現(xiàn)該接口,后臺進程調(diào)用該接口的本地代理,將消息數(shù)據(jù)傳遞至前臺進程進行相應處理。
[0051]上述處理方式,利用IPC調(diào)用方式,高效且輕量,可以避免在后臺進程處理非持久邏輯,特別是臨時大數(shù)據(jù)處理操作帶來的內(nèi)存開銷。
[0052]在本實施例中,由于引入前、后臺雙進程運行機制,后臺可以僅保留最小集合的駐留代碼,當后臺進程進行前臺邏輯處理(如監(jiān)聽到事件后需要通過交互方式提示用戶或者觸發(fā)一個臨時性的數(shù)據(jù)操作)時,后臺進程不直接執(zhí)行此類邏輯,而是通過進程間通信機制發(fā)送消息到前臺,調(diào)用對應的前臺進程完成具體的邏輯處理。通過上述處理方式,可以達到減少后臺駐留進程占用內(nèi)存的目的,提聞系統(tǒng)內(nèi)存使用效率。
[0053]在一個實施例中,在所述終止運行所述前臺進程時,若用戶重新進入該前臺進程的程序界面或該前臺進程被調(diào)用,則重新運行該前臺進程。
[0054]進一步地,若上述調(diào)用的前臺進程已被終止,則重新啟動所述前臺進程并利用該前臺進程執(zhí)行相應的邏輯處理。
[0055]例如,在Android系統(tǒng)中,后臺進程發(fā)起IPC調(diào)用時,若對應的前臺進程已被終止,則可通過啟動Activity組件或Service組件重新拉起前臺進程。
[0056]在本實施例中,提供了前后臺雙進程的終止方式,可以更合理地進行進程的切換和終止,從而節(jié)省更多內(nèi)存。
[0057]例如,在Android系統(tǒng)中,當用戶退出前臺操作時,前臺進程切換至后臺成為緩存進程,此時,為了避免系統(tǒng)直接終止該前臺進程導致重復啟動操作,可以設定以下合理終止機制:
[0058](I)如果用戶重新進入應用界面,則將其優(yōu)先級設為F0REGR0UD_APP進程(優(yōu)先級最高),使該前臺進程重新啟動。
[0059](2)如果后臺進程發(fā)起IPC調(diào)用時,可以提高其優(yōu)先級,將其從系統(tǒng)緩存進程中移除,避免該前臺進程被完全終止,如果有UI顯示,則將其重新設為F0REGR0UD_APP進程,避免被終止。
[0060](3)如果是用戶主動終止前臺進程或者被系統(tǒng)殺死,則可以直接終止該前臺進程以釋放更多可用內(nèi)存。
[0061]以上為本發(fā)明的應用程序運行方法的實施例,需要聲明的是,本發(fā)明的應用程序運行方法的各種實施方式,并不限定于上述各實施例中闡述的適應于Android系統(tǒng)中,也可以適用于具有類同性質(zhì)的操作系統(tǒng)中。
[0062]本發(fā)明提出的應用程序運行方法,將應用程序分離為前后臺兩個進程,當系統(tǒng)需要更多內(nèi)存時,可及時終止內(nèi)存消耗大的前臺進程以獲取更多的內(nèi)存空間,而后臺進程能夠穩(wěn)定長時間運行,卻極少消耗內(nèi)存,這樣就可以從總體上節(jié)省了應用程序和系統(tǒng)的內(nèi)存空間,并保證了應用程序和系統(tǒng)運行的穩(wěn)定性和可靠性。
[0063]下面結(jié)合附圖對本發(fā)明的應用程序運行系統(tǒng)的【具體實施方式】作詳細描述。
[0064]參見圖2所示,圖2為一個實施例的應用程序運行系統(tǒng)結(jié)構(gòu)示意圖,主要包括:
[0065]前后臺進程設置模塊10,用于將應用程序各個進程設置為前臺進程或后臺進程。
[0066]雙線程運行模塊30,用于將所述前臺進程設置在操作系統(tǒng)的前臺運行,將所述后臺進程設置在操作系統(tǒng)的后臺運行。
[0067]進程切換運行模塊50,用于在所述前臺進程切換至后臺運行后,終止運行所述前臺進程,并釋放其占用的內(nèi)存。
[0068]在一個實施例中,所述雙線程運行模塊30還用于:當用戶點擊應用程序圖標時,啟動所述應用程序的各個前臺進程,并在啟動所述前臺進程后,發(fā)送消息至各個后臺進程的Service組件啟動對應的后臺進程。
[0069]在一個實施例中,所述進程切換運行模塊50還用于:維持執(zhí)行所述前臺進程切換時正在處理的邏輯。
[0070]進一步地,所述進程切換運行模塊50維持執(zhí)行所述前臺進程切換時正在處理的邏輯的方法包括:
[0071]若所述前臺進程不包含Service組件,則在該前臺進程中添加一個設定的Service組件,利用該Service組件執(zhí)行所述前臺進程切換時正在處理的邏輯。
[0072]若所述前臺進程包含Service組件,則利用所述Service組件執(zhí)行所述前臺進程切換時正在處理的邏輯。
[0073]在一個實施例中,所述進程切換運行模塊50還用于:當后臺進程進行前臺邏輯處理時,將所述前臺邏輯處理的消息請求發(fā)送至對應的前臺進程,利用所述前臺進程根據(jù)所述消息請求進行所述前臺邏輯處理。
[0074]進一步地,所述進程切換運行模塊50在終止運行所述前臺進程的過程中,若用戶重新進入該前臺進程的程序界面或該前臺進程被調(diào)用,則重新運行該前臺進程。
[0075]在一個實施例中,,所述進程切換運行模塊50還用于:若所述調(diào)用的前臺進程已被終止,則重新啟動所述前臺進程并利用該前臺進程執(zhí)行相應的邏輯處理。
[0076]進一步地,所述操作系統(tǒng)為Android系統(tǒng),所述進程切換運行模塊50進一步用于:
[0077]若所述消息請求為UI顯示,則將所述消息請求封裝在Intent對象中,發(fā)送至對應的前臺進程,利用該前臺進程調(diào)用對應的Activity組件進行UI顯示。
[0078]若所述消息請求為非UI顯示,則根據(jù)接口定義語言對應的進程間通信接口,根據(jù)該進程間通信接口將消息數(shù)據(jù)傳遞至對應的前臺進程進行處理。
[0079]在一個實施例中,所述前臺進程包括:程序界面及其子元素呈現(xiàn)進程、UI控件事件處理進程和/或非持久運行的數(shù)據(jù)處理邏輯進程。其中,程序界面及其子元素呈現(xiàn)進程主要包括頁面、彈窗或動畫等;UI控件事件處理進程主要包括按鈕響應、文本輸入或列表刷新等;非持久運行的數(shù)據(jù)處理邏輯進程主要包括臨時性文件處理或數(shù)據(jù)庫讀寫等。
[0080]在一個實施例中,所述后臺進程包括:系統(tǒng)事件監(jiān)聽進程和/或持久運行的數(shù)據(jù)處理邏輯進程。其中,系統(tǒng)事件(Event)監(jiān)聽進程主要包括短信/彩信收發(fā)、來電/去電接聽與掛斷、系統(tǒng)時鐘或系統(tǒng)啟動/關閉等;持久運行的數(shù)據(jù)處理邏輯進程主要包括聯(lián)網(wǎng)流量統(tǒng)計、程序安裝/卸載事件或系統(tǒng)權限訪問統(tǒng)計等。
[0081]本發(fā)明的應用程序運行系統(tǒng)與本發(fā)明的應用程序運行方法一一對應,在上述應用程序運行方法的實施例闡述的技術特征及其有益效果均適用于應用程序運行系統(tǒng)的實施例中,特此聲明。
[0082]下面對本發(fā)明的應用程序的【具體實施方式】作詳細描述。
[0083]一種應用程序,包括:前臺進程集和后臺進程集。
[0084]所述前臺進程集中的前臺進程在操作系統(tǒng)前臺運行,所述后臺進程集中的進程在操作系統(tǒng)后臺運行。
[0085]當所述前臺進程由前臺切換至后臺運行時,應用程序終止運行該前臺進程,并釋放其占用的內(nèi)存。
[0086]本發(fā)明提供的應用程序,針對于操作系統(tǒng)多進程運行的特性,在程序架構(gòu)上突破了現(xiàn)有的單進程應用設計,通過將應用程序分離為前臺進程和后臺進程,可以將占用內(nèi)存較大的進程在前臺運行,而后臺僅保留需要常駐的最小代碼集合的進程,應用程序由前臺進程切換至后臺運行后,及時終止運行并釋放其占用的內(nèi)存。從而從總體上節(jié)省了應用程序占用的內(nèi)存空間,提高了內(nèi)存使用效率,提升了程序運行效率,并保證了應用程序和系統(tǒng)運行的穩(wěn)定性和可靠性。
[0087]進一步地,當所述后臺進程進行前臺邏輯處理時,所述后臺進程將執(zhí)行所述前臺邏輯處理的消息請求發(fā)送至對應的前臺進程,所述前臺進程根據(jù)所述消息請求執(zhí)行相應的邏輯處理。
[0088]本實施例中,通過建立上述進程間的通信機制,當應用程序的后臺進程監(jiān)聽到事件后,需要進行前臺操作時,由后臺進程發(fā)送消息至對應前臺進程,由該前臺進程完成具體的業(yè)務操作,從而可以節(jié)省應用程序所占用的內(nèi)存。
[0089]以上為本發(fā)明的應用程序的實施例,需要聲明的是,本發(fā)明的應用程序的運行過程,可以基于本發(fā)明的應用程序運行方法的各種運行方式實施例來實現(xiàn),特此聲明。
[0090]參考圖3所示,圖3為一個應用實例的應用程序架構(gòu)圖,該實例為應用于Android系統(tǒng)(Android System)的程序架構(gòu),應用程序(Applicat1n)分為前臺進程(Fore-groundProcess)和后臺進程(Back-ground Process)兩部分,其中,前臺進程主要對應于Activity組件和部分交互的Service組件,后臺進程主要對應于Service組件和Receiver組件,后臺程序主要是完成系統(tǒng)事件(Event)的監(jiān)聽功能,如短信/彩信收發(fā)功能(SMS/MMSservice)、來去電接聽與掛斷功能(Phone service)、系統(tǒng)時鐘功能(Timer service)等,前臺進程與后臺進程之間采用IPC (intent/RPC)進行通信。
[0091]本領域普通技術人員可以理解實現(xiàn)上述實施方式中的全部或部分流程,以及對應的系統(tǒng),是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各實施方式的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(RandomAccess Memory, RAM)等。
[0092]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應以所附權利要求為準。
【權利要求】
1.一種應用程序運行方法,其特征在于,包括如下步驟: 將應用程序各個進程設置為前臺進程或后臺進程; 將所述前臺進程設置在操作系統(tǒng)的前臺運行,將所述后臺進程設置在操作系統(tǒng)的后臺運行; 在所述前臺進程切換至后臺運行后,終止運行所述前臺進程,并釋放其占用的內(nèi)存。
2.根據(jù)權利要求1所述的應用程序運行方法,其特征在于,還包括: 當用戶點擊應用程序圖標時,啟動所述應用程序的各個前臺進程,并在啟動所述前臺進程后,發(fā)送消息至各個后臺進程的Service組件啟動對應的后臺進程。
3.根據(jù)權利要求1所述的應用程序運行方法,其特征在于,在所述終止運行該前臺進程的步驟前還包括:維持執(zhí)行所述前臺進程切換時正在處理的邏輯。
4.根據(jù)權利要求3所述的應用程序運行方法,其特征在于,所述維持執(zhí)行所述前臺進程切換時正在處理的邏輯的步驟包括: 若所述前臺進程不包含Service組件,貝U在該前臺進程中添加一個設定的Service組件,利用該Service組件執(zhí)行所述前臺進程切換時正在處理的邏輯; 若所述前臺進程包含Service組件,貝U利用所述Service組件執(zhí)行所述前臺進程切換時正在處理的邏輯。
5.根據(jù)權利要求1所述的應用程序運行方法,其特征在于,還包括: 當后臺進程進行前臺邏輯處理時,將所述前臺邏輯處理的消息請求發(fā)送至對應的前臺進程,利用所述前臺進程根據(jù)所述消息請求進行所述前臺邏輯處理。
6.根據(jù)權利要求5所述的應用程序運行方法,其特征在于,在所述終止運行所述前臺進程時,若用戶重新進入該前臺進程的程序界面或該前臺進程被調(diào)用,則重新運行該前臺進程。
7.根據(jù)權利要求5或6所述的應用程序運行方法,其特征在于,若所述調(diào)用的前臺進程已被終止,則重新啟動所述前臺進程并利用該前臺進程執(zhí)行相應的邏輯處理。
8.根據(jù)權利要求5所述的應用程序運行方法,其特征在于,所述操作系統(tǒng)為Android系統(tǒng); 若所述消息請求為UI顯示,則將所述消息請求封裝在Intent對象中,發(fā)送至對應的前臺進程,利用該前臺進程調(diào)用對應的Activity組件進行UI顯示; 若所述消息請求為非UI顯示,則根據(jù)接口定義語言對應的進程間通信接口,根據(jù)該進程間通信接口將消息數(shù)據(jù)傳遞至對應的前臺進程進行處理。
9.根據(jù)權利要求1所述的應用程序運行方法,其特征在于,所述前臺進程包括: 程序界面及其子元素呈現(xiàn)進程、Π控件事件處理進程和/或非持久運行的數(shù)據(jù)處理邏輯進程。
10.根據(jù)權利要求1所述的應用程序運行方法,其特征在于,所述后臺進程包括: 系統(tǒng)事件監(jiān)聽進程和/或持久運行的數(shù)據(jù)處理邏輯進程。
11.一種應用程序運行系統(tǒng),其特征在于,包括: 前后臺進程設置模塊,用于將應用程序各個進程設置為前臺進程或后臺進程; 雙線程運行模塊,用于將所述前臺進程設置在操作系統(tǒng)的前臺運行,將所述后臺進程設置在操作系統(tǒng)的后臺運行; 進程切換運行模塊,用于在所述前臺進程切換至后臺運行后,終止運行所述前臺進程,并釋放其占用的內(nèi)存。
12.根據(jù)權利要求11所述的應用程序運行系統(tǒng),其特征在于,所述雙線程運行模塊還用于: 當用戶點擊應用程序圖標時,啟動所述應用程序的各個前臺進程,并在啟動所述前臺進程后,發(fā)送消息至各個后臺進程的Service組件啟動對應的后臺進程。
13.根據(jù)權利要求11所述的應用程序運行系統(tǒng),其特征在于,所述進程切換運行模塊還用于:維持執(zhí)行所述前臺進程切換時正在處理的邏輯。
14.根據(jù)權利要求13所述的應用程序運行系統(tǒng),其特征在于,所述進程切換運行模塊維持執(zhí)行所述前臺進程切換時正在處理的邏輯的方法包括: 若所述前臺進程不包含Service組件,貝U在該前臺進程中添加一個設定的Service組件,利用該Service組件執(zhí)行所述前臺進程切換時正在處理的邏輯; 若所述前臺進程包含Service組件,則利用所述Service組件執(zhí)行所述前臺進程切換時正在處理的邏輯。
15.根據(jù)權利要求11所述的應用程序運行系統(tǒng),其特征在于,所述進程切換運行模塊還用于: 當后臺進程進行前臺邏輯處理時,將所述前臺邏輯處理的消息請求發(fā)送至對應的前臺進程,利用所述前臺進程根據(jù)所述消息請求進行所述前臺邏輯處理。
16.根據(jù)權利要求15所述的應用程序運行系統(tǒng),其特征在于,所述進程切換運行模塊在終止運行所述前臺進程的過程中,若用戶重新進入該前臺進程的程序界面或該前臺進程被調(diào)用,則重新運行該前臺進程。
17.根據(jù)權利要求15或16所述的應用程序運行系統(tǒng),其特征在于,所述進程切換運行模塊還用于: 若所述調(diào)用的前臺進程已被終止,則重新啟動所述前臺進程并利用該前臺進程執(zhí)行相應的邏輯處理。
18.根據(jù)權利要求15所述的應用程序運行系統(tǒng),其特征在于,所述操作系統(tǒng)為Android系統(tǒng); 所述進程切換運行模塊進一步用于: 若所述消息請求為UI顯示,則將所述消息請求封裝在Intent對象中,發(fā)送至對應的前臺進程,利用該前臺進程調(diào)用對應的Activity組件進行UI顯示; 若所述消息請求為非UI顯示,則根據(jù)接口定義語言對應的進程間通信接口,根據(jù)該進程間通信接口將消息數(shù)據(jù)傳遞至對應的前臺進程進行處理。
19.根據(jù)權利要求11所述的應用程序運行系統(tǒng),其特征在于,所述前臺進程包括: 程序界面及其子元素呈現(xiàn)進程、Π控件事件處理進程和/或非持久運行的數(shù)據(jù)處理邏輯進程。
20.根據(jù)權利要求11所述的應用程序運行系統(tǒng),其特征在于,所述后臺進程包括: 系統(tǒng)事件監(jiān)聽進程和/或持久運行的數(shù)據(jù)處理邏輯進程。
21.一種應用程序,其特征在于,包括:前臺進程集和后臺進程集; 所述前臺進程集中的前臺進程在操作系統(tǒng)前臺運行,所述后臺進程集中的進程在操作系統(tǒng)后臺運打; 當所述前臺進程由前臺切換至后臺運行時,應用程序終止運行該前臺進程,并釋放其占用的內(nèi)存。
22.根據(jù)權利要求21所述的應用程序,其特征在于,當所述后臺進程進行前臺邏輯處理時,所述后臺進程將執(zhí)行所述前臺邏輯處理的消息請求發(fā)送至對應的前臺進程,所述前臺進程根據(jù)所述消息請求執(zhí)行相應的邏輯處理。
【文檔編號】G06F9/48GK104252389SQ201310263411
【公開日】2014年12月31日 申請日期:2013年6月27日 優(yōu)先權日:2013年6月27日
【發(fā)明者】羅錦堅, 何聰, 林春優(yōu) 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
普格县| 华宁县| 江门市| 和政县| 新绛县| 繁昌县| 建水县| 邳州市| 江门市| 凯里市| 道孚县| 寿光市| 周至县| 乃东县| 信丰县| 上思县| 江油市| 昌黎县| 青阳县| 枣阳市| 自贡市| 泸西县| 济宁市| 五大连池市| 磐安县| 上饶县| 巍山| 布拖县| 巩义市| 九台市| 白朗县| 揭阳市| 沙河市| 兴山县| 临清市| 临澧县| 牡丹江市| 临汾市| 四川省| 山东| 苍溪县|