本技術涉及終端,尤其涉及一種消息處理方法及裝置。
背景技術:
1、消息推送服務是指移動應用服務商通過服務器向終端設備發(fā)送消息的服務。消息推送過程通常包括:移動應用服務商使用云服務器通過移動網絡向終端設備推送消息事件;終端設備上可接收消息事件的應用程序一般包括消息接收服務和主進程,消息接收服務在接收消息事件之后通知主進程,主進程根據(jù)該消息事件向云服務器請求消息事件對應的消息內容,并通過終端設備顯示該消息內容。
2、然而當前應用生態(tài)中,終端設備中可接收消息事件的應用程序較多,每個應用在終端設備中常駐一個消息接收服務,消息接收服務在收到消息事件后,如果終端設備為了節(jié)能將該應用從終端設備的應用后臺凍結或移除,導致該應用的主進程被凍結或移除,則消息接收服務自動喚醒該主進程。隨著終端設備接收到的消息事件的增加,被自動啟動的主進程的數(shù)量也隨之增加,提高了終端設備的功耗。
技術實現(xiàn)思路
1、本技術實施例提供一種消息處理方法及裝置,用于在接收到消息事件的情況下,節(jié)省終端設備的功耗。
2、第一方面,本技術實施例提出了一種消息處理方法,所述方法應用于終端設備。終端設備的系統(tǒng)資源包括內存和cpu(central?processing?unit,中央處理器)資源。終端設備上安裝有基礎應用(或稱系統(tǒng)應用,比如預安裝的且用戶無法卸載的應用)和/或第三方應用。通常在終端設備的系統(tǒng)資源占用率較高的情況下,應用的主進程會被凍結或被移除,使得應用的主進程不占用終端設備的內存和cpu資源,從而降低終端功耗。為實現(xiàn)上述目的,一種可能的實現(xiàn)方式中,該終端設備的應用程序框架層包括感知模塊、攔截模塊和顯示模塊。所述方法包括:終端設備接收消息事件,所述消息事件用于通知所述消息事件對應的應用獲取消息內容;感知模塊在感知到接收消息事件之后,確定消息事件對應的應用的主進程被移除或被凍結,且確定所述應用被設置為禁止自動啟動主進程,通過攔截模塊保持所述應用的主進程被移除或被凍結;顯示模塊根據(jù)所述消息事件進行消息接收提示。
3、消息事件是由服務器針對某一應用推送至終端設備的,用于通知該應用從服務器獲取消息內容。感知模塊在確定該應用的主進程被移除或被凍結,且該應用被設置為禁止自動啟動主進程時,通知攔截模塊,使攔截模塊保持應用的主進程被移除或被凍結,防止該應用的主進程自動啟動,從而降低應用的主進程對系統(tǒng)資源的占用,進而節(jié)省終端設備的功耗。通過顯示模塊對消息事件進行消息接收提示,可以通知用戶接收到新的消息,進而可以由用戶根據(jù)需要決定是否查看消息內容,相較于只要終端設備接收到消息事件就啟動主進程獲取消息內容,本技術的上述實現(xiàn)方式可以在滿足用戶需求的同時,節(jié)省終端設備的功耗。
4、在一些實施例中,該終端設備的應用程序框架層還包括配置模塊,所述確定所述應用被設置為禁止自動啟動主進程,包括:所述感知模塊若感知所述應用設置有配置信息或所述應用存在于應用列表中,則確定所述應用被設置為禁止自動啟動主進程;其中,所述應用列表和所述配置信息是預先存儲的,所述感知模塊通過向配置模塊發(fā)送查詢指令,由該配置模塊可以查詢出設置有配置信息或存在于應用列表中的應用,所述應用列表中包括被設置為禁止自動啟動主進程的應用的標識信息,所述配置信息用于指示禁止自動啟動主進程。
5、基于上述方案,通過應用列表和配置信息預先定義禁止自動啟動的應用,提高限制應用對系統(tǒng)資源占用的靈活性。
6、在一些實施例中,所述應用的配置信息是由系統(tǒng)設置的,或者是基于用戶操作設置的。
7、在一些實施例中,所述應用列表是由系統(tǒng)設置的;或者,所述應用列表是基于用戶操作生成的;或者,所述應用列表中的部分應用是系統(tǒng)設置的,另外部分應用是基于用戶操作設置的。
8、基于上述方案,禁止自動啟動的應用可以是由系統(tǒng)設置的,也可是基于用戶操作設置的,以此保證對應用進行資源限制的靈活性。
9、在一些實施例中,根據(jù)所述消息事件進行消息接收提示,包括:顯示模塊更新顯示所述終端設備的界面上所述應用對應的標識,所述標識用于指示接收到的消息事件的數(shù)量。
10、基于上述方案,應用的主進程被移除或被凍結時,無法從服務器獲取消息事件對應的消息內容,通過顯示該應用在被移除或被凍結的時間段內接收到的消息事件的數(shù)量,保證用戶感知到該應用接收到新的消息事件,進而可以由用戶決定是否查看該消息事件對應的消息內容,滿足用戶需求。
11、在一些實施例中,所述確定所述應用的主進程被移除或被凍結,且所述應用被設置為禁止自動啟動主進程之后,還包括:所述攔截模塊緩存所述應用的消息事件;所述根據(jù)所述消息事件進行消息接收提示之后,還包括:所述感知模塊根據(jù)用戶操作啟動所述應用的主進程;通知攔截模塊將緩存的所述應用的消息事件發(fā)送至所述應用的主進程;顯示模塊顯示消息內容,所述消息內容是所述應用的主進程根據(jù)所述消息事件從服務器獲取的。
12、基于上述方案,用戶感知到應用的消息事件之后,用戶通過對終端設備進行操作觸發(fā)喚醒指令,感知模塊根據(jù)喚醒指令啟動該應用的主進程,并向攔截模塊發(fā)送解除指令。攔截模塊在接收到解除指令之后,將自身存儲的該應用的消息事件發(fā)送至該應用的主進程,進而使該應用的主進程根據(jù)消息事件從服務器中獲取對應的消息內容,然后將消息內容發(fā)送至顯示模塊,由顯示模塊顯示該消息內容,以此保證在啟動應用之后,實時獲取到消息事件對應的消息內容,保證實現(xiàn)消息推送服務的實時性和準確性。
13、在一些實施例中,根據(jù)用戶操作啟動所述應用的主進程之后,還包括:感知模塊建立所述應用的消息接收服務與所述主進程之間的通信通道。
14、基于上述方案,感知模塊根據(jù)用戶操作啟動所述應用的主進程之后,感知模塊通過系統(tǒng)的預設驅動(如binder驅動)建立該應用的消息接收服務與所述主進程之間的binder通道,以使后續(xù)消息接收服務接收到消息事件后,通過binder通道將消息事件發(fā)送至主進程,保證應用的主進程啟動之后,實現(xiàn)消息推送服務的實時性和準確性。
15、在一些實施例中,終端設備所述接收消息事件之前,還包括:在所述終端設備滿足資源占用條件時,感知模塊將處于運行狀態(tài)的所述應用的主進程移除或凍結。
16、基于上述方案,資源占用條件包括但不限于系統(tǒng)功耗過大、該應用的后臺占用時間過長等,當終端設備滿足資源占用條件時,感知模塊若通過配置模塊確定該應用設置有配置信息或應用存在于應用列表中,且該應用的主進程處于運行狀態(tài),則通知攔截模塊,由攔截模塊移除或凍結該應用的主進程,以此釋放系統(tǒng)資源,減少該應用對系統(tǒng)資源的占用,提高系統(tǒng)資源的利用率。
17、第二方面,本技術實施例提出了一種消息處理裝置,包括接收單元和處理單元;
18、所述接收單元,用于接收消息事件,所述消息事件用于通知所述消息事件對應的應用獲取消息內容;所述處理單元,用于確定所述應用的主進程被移除或被凍結,且確定所述應用被設置為禁止自動啟動主進程,保持所述應用的主進程被移除或被凍結;并根據(jù)所述消息事件進行消息接收提示。
19、在一些實施例中,所述處理單元具體用于:若所述應用設置有配置信息或所述應用存在于應用列表中,則確定所述應用被設置為禁止自動啟動主進程;其中,所述應用列表中包括被設置為禁止自動啟動主進程的應用的標識信息,所述配置信息用于指示禁止自動啟動主進程。
20、在一些實施例中,所述應用的配置信息是由系統(tǒng)設置的,或者是基于用戶操作設置的。
21、在一些實施例中,所述應用列表是由系統(tǒng)設置的;或者,所述應用列表是基于用戶操作生成的;或者,所述應用列表中的部分應用是系統(tǒng)設置的,另外部分應用是基于用戶操作設置的。
22、在一些實施例中,所述處理單元具體用于:更新顯示所述終端設備的界面上所述應用對應的標識,所述標識用于指示接收到的消息事件的數(shù)量。
23、在一些實施例中,所述處理單元還用于:所述確定所述應用的主進程被移除或被凍結,且所述應用被設置為禁止自動啟動主進程之后,緩存所述應用的消息事件;所述根據(jù)所述消息事件進行消息接收提示之后,根據(jù)用戶操作啟動所述應用的主進程;將緩存的所述應用的消息事件發(fā)送至所述應用的主進程;顯示消息內容,所述消息內容是所述應用的主進程根據(jù)所述消息事件從服務器獲取的。
24、在一些實施例中,所述處理單元還用于:根據(jù)用戶操作啟動所述應用的主進程之后,建立所述應用的消息接收服務與所述主進程之間的通信通道。
25、在一些實施例中,所述處理單元還用于:所述接收消息事件之前,在所述終端設備滿足資源占用條件時,將處于運行狀態(tài)的所述應用的主進程移除或凍結。
26、第三方面,本技術實施例提供了一種可讀存儲介質,所述可讀存儲介質存儲包括程序,當所述程序代碼在設備上運行時,使得所述設備執(zhí)行上述第一方面所述的方法。
27、第四方面,本技術實施例提供了一種裝置,包括:一個或多個處理器;其中,當一個或多個計算機程序的指令被所述一個或多個處理器執(zhí)行時,使得所述裝置執(zhí)行如上第一方面所述的方法。
28、第五方面,本技術實施例提供了一種芯片系統(tǒng),包括至少一個芯片和存儲器,所述至少一個芯片與所述存儲器耦合,用于讀取并執(zhí)行所述存儲器中存儲的程序指令,以實現(xiàn)上述第一方面所述的方法。
29、第六方面,本技術實施例提供了一種計算機程序產品,當所述計算機程序產品在計算機上運行時,使得所述計算機執(zhí)行上述第一方面所述的方法。
30、本技術實施例在上述各方面提供的實現(xiàn)的基礎上,還可以進行進一步組合以提供更多實現(xiàn)。
31、上述第二方面至第六方面中任一方面中可以達到的技術效果,可以相應參照上述第一方面中可以達到的技術效果描述,重復之處不予論述。