進程管理方法及裝置製造方法
2023-05-02 14:28:51
進程管理方法及裝置製造方法
【專利摘要】本發明公開了一種進程管理方法,所述方法包括:獲取作業系統中的進程的標識號;在所述進程關閉後,響應所述作業系統中所發生的第一系統事件檢查所述第一系統事件的第一事件發送對象集合中是否存在所述標識號並生成檢查結果;在所述檢查結果為所述第一事件發送對象集合中存在所述標識號的情況下,將所述標識號從所述第一事件發送對象集合中刪除。本發明還公開了一種進程管理裝置。本發明能有效地防止進程在關閉後被非法觸發啟動。
【專利說明】進程管理方法及裝置 【【技術領域】】
[0001] 本發明涉及計算機【技術領域】,特別涉及一種進程管理方法及裝置。 【【背景技術】】
[0002] 傳統的關閉作業系統中的進程的方式有如下三種方案:
[0003] 第一種方案:普通用戶身份通過調用作業系統中的killBackgroundProcesses接 口來關閉進程。
[0004] 第二種方案:通過root並調用作業系統中的kill pid命令,以關閉進程。
[0005] 第三種方案:通過root並調用作業系統中的forceStopPackage命令,以關閉進 程。
[0006] 在實踐中,發明人發現現有技術至少存在以下問題:
[0007] 對於上述第一種方案,其能達到釋放內存的目的,但作業系統會馬上重啟進程,所 以效果並不明顯。
[0008] 對於上述第二種方案,由於kill pid命令是linux層的命令,直接跳過android 〇S (安卓作業系統)層邏輯,因此通過kill pid命令把進程關閉,其一是會產生一些不可預 料的錯誤,其二是無法避免進程會被某些系統事件觸發啟動。
[0009] 對於上述第三種方案,其同樣無法避免會被系統事件觸發啟動。
[0010] 綜上,傳統的技術方案不能防止進程在關閉後被非法觸發啟動。
[0011] 故,有必要提出一種新的技術方案,以解決上述技術問題。 【
【發明內容】
】
[0012] 鑑於此,本發明提供一種進程管理方法及裝置,其能防止進程在關閉後被非法觸 發啟動。
[0013] 為解決上述技術問題,本發明的技術方案如下:
[0014] 一種進程管理方法,所述方法包括:獲取作業系統中的進程的標識號;在所述進 程關閉後,響應所述作業系統中所發生的第一系統事件以檢查所述第一系統事件的第一事 件發送對象集合中是否存在所述標識號,並生成檢查結果;在所述檢查結果為所述第一事 件發送對象集合中存在所述標識號的情況下,將所述標識號從所述第一事件發送對象集合 中刪除。
[0015] 一種進程管理裝置,所述裝置包括:標識號獲取模塊,用於獲取作業系統中的進程 的標識號;檢查模塊,用於在所述進程關閉後,響應所述作業系統中所發生的第一系統事件 以檢查所述第一系統事件的第一事件發送對象集合中是否存在所述標識號,並生成檢查結 果;標識號操作模塊,用於在所述檢查結果為所述第一事件發送對象集合中存在所述標識 號的情況下,將所述標識號從所述第一事件發送對象集合中刪除。
[0016] 相對現有技術,本發明由於通過獲取將要關閉或者已關閉的進程的標識號,並在 所述進程關閉後以及在所述作業系統發生某一系統事件時將該標識號從所述系統事件的 事件發送對象集合中刪除,因此可以防止所述已經關閉了的進程被所述系統事件非法觸發 啟動,有效地防止了進程在關閉後被非法拉起。
[0017] 為讓本發明的上述內容能更明顯易懂,下文特舉優選實施例,並配合所附圖式,作 詳細說明如下: 【【專利附圖】
【附圖說明】】
[0018] 圖1為本發明的進程管理裝置的運行環境示意圖;
[0019] 圖2為本發明的進程管理裝置的第一實施例的結構框圖;
[0020] 圖3為本發明的進程管理裝置的第二實施例的結構框圖;
[0021] 圖4為本發明的進程管理裝置的第三實施例的結構框圖;
[0022] 圖5為本發明的進程管理方法的第一實施例的流程圖;
[0023] 圖6為本發明的進程管理方法的第二實施例的流程圖;
[0024] 圖7為本發明的進程管理方法的第三實施例的流程圖;
[0025] 圖8A和圖8B為本發明的進程管理方法的第四實施例的流程圖;
[0026] 圖9A和圖9B為本發明的進程管理方法的第五實施例的流程圖。 【【具體實施方式】】
[0027] 以下各實施例的說明是參考附加的圖式,用以例示本發明可用以實施的特定實施 例。
[0028] 參考圖1,本發明的進程管理裝置可以運行於計算機或安裝有目前常用的可攜式 可移動智能設備的作業系統平臺的用戶設備中,該計算機可以是個人電腦、伺服器等等中 的一種或者一種以上組合而成的系統,該用戶設備可以是移動終端、掌上電腦、平板電腦等 等中的任意一種,該計算機或者該用戶設備中可以包括至少一個處理器101 (圖中僅示意出 一個)、存儲器102、電源103、開關器件104、傳感器105、時鐘信號生成器106、輸入輸出設備 107等中的任意組合100,上述計算機或者用戶設備中的處理器101、存儲器102、電源103、 開關器件104、傳感器105、時鐘信號生成器106、輸入輸出設備107等中的任意組合100用 於實現本發明的進程管理方法中的步驟及進程管理裝置中的功能。
[0029] 在本實施例中,所述進程管理裝置所對應的軟體程序指令存儲於存儲器102中, 並被處理器101執行,以實現作業系統中的進程管理。
[0030] 另外,上述存儲器102為計算機可讀取的存儲介質,該存儲介質可為磁碟、光碟、 只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。
[0031] 參考圖2,為本發明的進程管理裝置200的第一實施例的結構框圖。
[0032] 為了更好的描述所述進程管理裝置200,本實施例按照該進程管理裝置200所對 應的程序指令能實現的功能,將該進程管理裝置200劃分為多個模塊,該多個模塊包括標 識號獲取模塊201、檢查模塊202和標識號操作模塊203。
[0033] 所述標識號獲取模塊201用於獲取作業系統中的進程的標識號。
[0034] 具體地,所述標識號獲取模塊201可以用於從所述作業系統中的接口中獲取所述 進程的標識號。所述標識號可以是所述進程的唯一碼,例如,開發者籤名等。
[0035] 所述檢查模塊202用於在所述進程關閉後,響應所述作業系統中所發生的第一系 統事件以檢查所述第一系統事件的第一事件發送對象集合中是否存在所述標識號,並生成 檢查結果。通過對該系統事件的事件發送對象集合進行檢查,檢查模塊202可以獲知該事 件發送對象集合中是否存在該標識號的情況。
[0036] 所述標識號操作模塊203用於在所述檢查結果為所述第一事件發送對象集合中 存在所述標識號的情況下,將所述標識號從所述第一事件發送對象集合中刪除。由於在所 述事件發送對象集合中存在該標識號的情況下,系統事件會拉起(即觸發啟動)該進程,從 而造成所述關閉了的進程再次被啟動,而通過將所述標識號從所述事件發送對象集合中刪 除,可以防止所述進程被非法觸發啟動。這裡所指的非法觸發啟動是指:在所述進程被關閉 了的情況下(此時,用戶不希望所述進程啟動),違背用戶的意願或希望去觸發啟動,或者誤 觸發啟動,或者由於其它因素而觸發啟動。
[0037] 在本實施例中,通過標識號獲取模塊201獲取將要關閉或者已關閉的進程的標識 號,並通過檢查模塊202和標識號操作模塊203在所述進程關閉後以及在所述作業系統發 生某一系統事件時將該標識號從所述系統事件的事件發送對象集合中刪除,因此可以防止 所述已經關閉了的進程被所述系統事件非法觸發啟動,有效地防止了進程在關閉後被非法 拉起。
[0038] 參考圖3,為本發明的進程管理裝置200的第二實施例的結構框圖。本實施例與上 述第一實施例相似,不同之處在於:
[0039] 所述裝置200還包括判斷模塊301。
[0040] 所述判斷模塊301用於判斷所述第一系統事件是否能夠觸發所述進程啟動並生 成判斷結果。具體地,判斷模塊301可以用於首先分析所述第一系統事件能夠觸發啟動哪 些進程,再將上述已關閉了的進程(對應所述標識號)與所述第一系統事件能夠觸發啟動的 進程進行比較,進而判斷所述第一系統事件是否能夠觸發啟動所述進程。
[0041] 所述檢查模塊202用於在所述判斷結果為所述第一系統事件能夠觸發所述進程 啟動的情況下,檢查所述第一事件發送對象集合中是否存在所述標識號並生成所述檢查結 果。
[0042] 在本實施例中,通過判斷模塊301預先判斷所述第一系統事件是否能夠觸發啟動 所述進程,並通過檢查模塊202在判斷得出所述第一系統事件能夠觸發啟動所述進程的情 況下再對所述第一事件發送對象集合中是否存在所述標識號進行檢查,因此可以避免在不 必要對所述第一事件發送對象集合進行檢查(所述第一系統事件不能夠觸發啟動所述進 程)的情況下對所述第一事件發送對象集合進行檢查,有利於減少用戶設備中處理器101, 如中央處理單元(Central Processing Unit, CPU)資源的消耗。
[0043] 參考圖4,為本發明的進程管理裝置200的第三實施例的結構框圖。本實施例與上 述第一或第二實施例相似,不同之處在於:
[0044] 所述裝置200還包括操作指令獲取模塊401和記錄模塊402。
[0045] 所述操作指令獲取模塊401用於響應用戶關閉所述進程的操作獲取與關閉所述 進程相關的第一操作指令。
[0046] 所述記錄模塊402用於根據所述第一操作指令記錄所述進程的狀態。
[0047] 針對上述標識號獲取模塊201,其獲取所述標識號這一操作可以在所述進程的狀 態為所述進程是由用戶的操作觸發關閉的情況下進行,此外,標識號獲取模塊201獲取所 述標識號這一操作可以在所述進程關閉後進行,也可以在所述進程關閉的過程中進行,還 可以在獲取到所述第一操作指令後以及在關閉所述進程之前進行。
[0048] 在本實施例中,通過記錄模塊402響應用戶的操作來記錄所述進程的狀態,因此 可以在所述進程的狀態為所述進程是由用戶的操作觸發關閉的情況下才實施禁止所述進 程被非法觸發啟動的措施,也就是說,可以識別所述進程的關閉是否是由用戶實施的,如果 所述進程是由用戶關閉的,則在下一次用戶啟動所述進程之前,保持所述進程處於關閉狀 態(即,禁止所述進程被其它軟體或進程觸發啟動),如果所述進程是由其它軟體或進程關 閉的(此時用戶並沒有希望所述進程關閉),則允許所述進程被其它軟體或進程觸發啟動, 而不是禁止所述進程被其它系統事件觸發啟動,也就是說,僅在用戶關閉了所述進程的情 況下(用戶希望所述進程關閉)禁止所述進程被非法觸發啟動,而在所述進程是被其它軟體 關閉了的情況下(即,所述進程的關閉並不是由用戶實施的),允許(或不禁止)所述進程再 次被其它系統事件觸發啟動(用戶沒有希望所述進程關閉)。
[0049] 本發明的進程管理裝置200的第四實施例與上述第一、第二、第三實施例中的任 意一個實施例相似,不同之處在於:
[0050] 在本實施例中,所述操作指令獲取模塊401還用於響應用戶啟動所述進程的操作 獲取與啟動所述進程相關的第二操作指令。
[0051] 所述記錄模塊402還用於根據所述第二操作指令記錄所述進程的狀態。
[0052] 在本實施例中,通過記錄模塊402響應用戶的操作來記錄所述進程的狀態,因此 可以獲知所述進程被用戶主動啟動(用戶希望所述進程啟動),進而對進程被其它系統事件 觸發啟動這一操作解禁。
[0053] 本發明的進程管理裝置200的第五實施例與上述第一、第二、第三、第四實施例中 的任意一個實施例相似,不同之處在於:
[0054] 在本實施例中,所述標識號操作模塊203還用於響應所述作業系統中所發生的第 二系統事件將所述標識號添加到所述第二系統事件的第二事件發送對象集合中。所述第二 系統事件可以與所述第一系統事件相同,所述第二事件發送對象集合可以與所述第一事件 發送對象集合相同。
[0055] 在本實施例中,通過標識號操作模塊203響應所述第二系統事件將所述標識號添 加到所述第二系統事件的第二事件發送對象集合中,有利於在允許所述進程被其它系統事 件觸發啟動的情況下,上述進程被觸發啟動。
[0056] 參考圖5,為本發明的進程管理方法的第一實施例的流程圖。
[0057] 本實施例的進程管理方法包括:
[0058] 步驟501,標識號獲取模塊201獲取作業系統中的進程的標識號。具體地,在本步 驟中,標識號獲取模塊201可以從所述作業系統中的接口中獲取所述進程的標識號。所述 標識號可以是所述進程的唯一碼,例如,開發者籤名等。
[0059] 步驟502和步驟503,檢查模塊202在所述進程關閉後,響應所述作業系統中所發 生的第一系統事件以檢查所述第一系統事件的第一事件發送對象集合中是否存在所述標 識號,並生成檢查結果。通過檢查模塊202對該系統事件的事件發送對象集合進行檢查,可 以獲知該事件發送對象集合中是否存在該標識號的情況。
[0060] 在所述檢查結果為所述第一事件發送對象集合中存在所述標識號的情況下,執行 步驟504。在所述檢查結果為所述第一事件發送對象集合中不存在所述標識號時,返回步驟 502。
[0061] 步驟504,標識號操作模塊203將所述標識號從所述第一事件發送對象集合中刪 除。
[0062] 由於在所述事件發送對象集合中存在該標識號的情況下,系統事件會拉起(即觸 發啟動)該進程,從而造成所述關閉了的進程再次被啟動,而通過標識號操作模塊203將所 述標識號從所述事件發送對象集合中刪除,可以防止所述進程被非法觸發啟動。這裡所指 的非法觸發啟動是指:在所述進程被關閉了的情況下(此時,用戶不希望所述進程啟動),違 背用戶的意願或希望去觸發啟動,或者誤觸發啟動,或者由於其它因素而觸發啟動。
[0063] 在本實施例中,通過標識號獲取模塊201獲取將要關閉或者已關閉的進程的標識 號,並通過檢查模塊202和標識號操作模塊203在所述進程關閉後以及在所述作業系統發 生某一系統事件時將該標識號從所述系統事件的事件發送對象集合中刪除,因此可以防止 所述已經關閉了的進程被所述系統事件非法觸發啟動,有效地防止了進程在關閉後被非法 拉起。
[0064] 參考圖6,為本發明的進程管理方法的第二實施例的流程圖。本實施例與上述第一 實施例相似,不同之處在於:
[0065] 在本實施例中,所述響應所述作業系統中所發生的第一系統事件以檢查所述第一 系統事件的第一事件發送對象集合中是否存在所述標識號,並生成檢查結果的步驟(即,步 驟502和步驟503)包括:
[0066] 步驟601和步驟602,判斷模塊301判斷所述第一系統事件是否能夠觸發所述進程 啟動並生成判斷結果。具體地,判斷模塊301可以首先分析所述第一系統事件能夠觸發啟 動哪些進程,再將上述已關閉了的進程(對應所述標識號)與所述第一系統事件能夠觸發啟 動的進程進行比較,進而判斷所述第一系統事件是否能夠觸發啟動所述進程。
[0067] 在所述判斷結果為所述第一系統事件能夠觸發所述進程啟動的情況下,執行步驟 603。否則,返回步驟601。
[0068] 步驟603和步驟604,檢查模塊202在所述判斷結果為所述第一系統事件能夠觸發 所述進程啟動的情況下,檢查所述第一事件發送對象集合,並於步驟604中判斷該第一事 件發送對象集合中是否存在所述標識號並生成所述檢查結果。
[0069] 在本實施例中,通過判斷模塊301預先判斷所述第一系統事件是否能夠觸發啟動 所述進程,並通過檢查模塊202在判斷得出所述第一系統事件能夠觸發啟動所述進程的情 況下再對所述第一事件發送對象集合中是否存在所述標識號進行檢查,因此可以避免在不 必要對所述第一事件發送對象集合進行檢查(所述第一系統事件不能夠觸發啟動所述進 程)的情況下對所述第一事件發送對象集合進行檢查,有利於減少用戶設備中處理器101資 源的消耗。
[0070] 參考圖7,為本發明的進程管理方法的第三實施例的流程圖。本實施例與上述第一 或第二實施例相似,不同之處在於:
[0071] 在本實施例中,在所述響應所述作業系統中所發生的第一系統事件以檢查所述第 一系統事件的第一事件發送對象集合中是否存在所述標識號的步驟(即,步驟502和步驟 503)之前,所述方法還包括:
[0072] 步驟701,操作指令獲取模塊401響應用戶關閉所述進程的操作獲取與關閉所述 進程相關的第一操作指令。
[0073] 步驟702,記錄模塊402根據所述第一操作指令記錄所述進程的狀態。針對步驟 501,標識號獲取模塊201獲取所述標識號這一步驟可以在所述進程的狀態為所述進程是 由用戶的操作觸發關閉的情況下進行,此外,標識號獲取模塊201獲取所述標識號這一步 驟可以在所述進程關閉後進行,也可以在所述進程關閉的過程中進行,還可以在獲取到所 述第一操作指令後以及在關閉所述進程之前進行。
[0074] 在本實施例中,通過記錄模塊402響應用戶的操作來記錄所述進程的狀態,因此 可以在所述進程的狀態為所述進程是由用戶的操作觸發關閉的情況下才實施禁止所述進 程被非法觸發啟動的措施,也就是說,可以識別所述進程的關閉是否是由用戶實施的,如果 所述進程是由用戶關閉的,則在下一次用戶啟動所述進程之前,保持所述進程處於關閉狀 態(即,禁止所述進程被其它軟體或進程觸發啟動),如果所述進程是由其它軟體或進程關 閉的(此時用戶並沒有希望所述進程關閉),則允許所述進程被其它軟體或進程觸發啟動, 而不是禁止所述進程被其它系統事件觸發啟動,也就是說,僅在用戶關閉了所述進程的情 況下(用戶希望所述進程關閉)禁止所述進程被非法觸發啟動,而在所述進程是被其它軟體 關閉了的情況下(即,所述進程的關閉並不是由用戶實施的),允許(不禁止)所述進程再次 被其它系統事件觸發啟動(用戶沒有希望所述進程關閉)。
[0075] 參考圖8A和圖8B,為本發明的進程管理方法的第四實施例的流程圖。本實施例與 上述第一、第二、第三實施例中的任意一個實施例相似,不同之處在於:
[0076] 在本實施例中,在所述將所述標識號從所述第一事件發送對象集合中刪除的步驟 (即,步驟504)之後,所述方法還包括:
[0077] 步驟801,操作指令獲取模塊401響應用戶啟動所述進程的操作獲取與啟動所述 進程相關的第二操作指令。
[0078] 步驟802,記錄模塊402根據所述第二操作指令記錄所述進程的狀態。
[0079] 在本實施例中,通過記錄模塊402響應用戶的操作來記錄所述進程的狀態,因此 可以獲知所述進程被用戶主動啟動(用戶希望所述進程啟動),進而對進程被其它系統事件 觸發啟動這一操作解禁。
[0080] 參考圖9A和圖9B,為本發明的進程管理方法的第五實施例的流程圖。本實施例與 上述第一、第二、第三、第四實施例中的任意一個實施例相似,不同之處在於:
[0081] 在本實施例中,在所述響應用戶啟動所述進程的操作獲取與啟動所述進程相關的 第二操作指令的步驟(即,步驟801)之後,所述方法還包括:
[0082] 步驟901,標識號操作模塊203響應所述作業系統中所發生的第二系統事件將所 述標識號添加到所述第二系統事件的第二事件發送對象集合中。所述第二系統事件可以與 所述第一系統事件相同,所述第二事件發送對象集合可以與所述第一事件發送對象集合相 同。
[0083] 在本實施例中,通過標識號操作模塊203響應所述第二系統事件將所述標識號添 加到所述第二系統事件的第二事件發送對象集合中,有利於在允許所述進程被其它系統事 件觸發啟動的情況下允許上述進程被觸發啟動。
[0084] 綜上所述,雖然本發明已以優選實施例揭露如上,但上述優選實施例並非用以限 制本發明,本領域的普通技術人員,在不脫離本發明的精神和範圍內,均可作各種更動與潤 飾,因此本發明的保護範圍以權利要求界定的範圍為準。
【權利要求】
1. 一種進程管理方法,其特徵在於,所述方法包括: 獲取作業系統中的進程的標識號; 在所述進程關閉後,響應所述作業系統中所發生的第一系統事件以檢查所述第一系統 事件的第一事件發送對象集合中是否存在所述標識號,並生成檢查結果; 在所述檢查結果為所述第一事件發送對象集合中存在所述標識號的情況下,將所述標 識號從所述第一事件發送對象集合中刪除。
2. 根據權利要求1所述的進程管理方法,其特徵在於,所述響應所述作業系統中所發 生的第一系統事件以檢查所述第一系統事件的第一事件發送對象集合中是否存在所述標 識號,並生成檢查結果的步驟包括: 判斷所述第一系統事件是否能夠觸發所述進程啟動並生成判斷結果; 在所述判斷結果為所述第一系統事件能夠觸發所述進程啟動的情況下,檢查所述第一 事件發送對象集合中是否存在所述標識號並生成所述檢查結果。
3. 根據權利要求1或2所述的進程管理方法,其特徵在於,在所述響應所述作業系統中 所發生的第一系統事件以檢查所述第一系統事件的第一事件發送對象集合中是否存在所 述標識號的步驟之前,所述方法還包括: 響應用戶關閉所述進程的操作,獲取與關閉所述進程相關的第一操作指令; 根據所述第一操作指令記錄所述進程的狀態。
4. 根據權利要求1所述的進程管理方法,其特徵在於,在所述將所述標識號從所述第 一事件發送對象集合中刪除的步驟之後,所述方法還包括: 響應用戶啟動所述進程的操作,獲取與啟動所述進程相關的第二操作指令; 根據所述第二操作指令記錄所述進程的狀態。
5. 根據權利要求4所述的進程管理方法,其特徵在於,在所述響應用戶啟動所述進程 的操作獲取與啟動所述進程相關的第二操作指令的步驟之後,所述方法還包括: 響應所述作業系統中所發生的第二系統事件,將所述標識號添加到所述第二系統事件 的第二事件發送對象集合中。
6. -種進程管理裝置,其特徵在於,所述裝置包括: 標識號獲取模塊,用於獲取作業系統中的進程的標識號; 檢查模塊,用於在所述進程關閉後,響應所述作業系統中所發生的第一系統事件以檢 查所述第一系統事件的第一事件發送對象集合中是否存在所述標識號,並生成檢查結果; 標識號操作模塊,用於在所述檢查結果為所述第一事件發送對象集合中存在所述標識 號的情況下,將所述標識號從所述第一事件發送對象集合中刪除。
7. 根據權利要求6所述的進程管理裝置,其特徵在於,所述裝置還包括: 判斷模塊,用於判斷所述第一系統事件是否能夠觸發所述進程啟動並生成判斷結果; 所述檢查模塊用於在所述判斷結果為所述第一系統事件能夠觸發所述進程啟動的情 況下,檢查所述第一事件發送對象集合中是否存在所述標識號並生成所述檢查結果。
8. 根據權利要求6或7所述的進程管理裝置,其特徵在於,所述裝置還包括: 操作指令獲取模塊,用於響應用戶關閉所述進程的操作,獲取與關閉所述進程相關的 第一操作指令; 記錄模塊,用於根據所述第一操作指令記錄所述進程的狀態。
9. 根據權利要求6所述的進程管理裝置,其特徵在於,所述操作指令獲取模塊還用於 響應用戶啟動所述進程的操作,獲取與啟動所述進程相關的第二操作指令; 所述記錄模塊還用於根據所述第二操作指令記錄所述進程的狀態。
10. 根據權利要求9所述的進程管理裝置,其特徵在於,所述標識號操作模塊還用於響 應所述作業系統中所發生的第二系統事件,將所述標識號添加到所述第二系統事件的第二 事件發送對象集合中。將所述標識號添加到所述事件發送對象集合中。
【文檔編號】G06F11/00GK104063288SQ201310096287
【公開日】2014年9月24日 申請日期:2013年3月22日 優先權日:2013年3月22日
【發明者】梁家輝 申請人:騰訊科技(深圳)有限公司