本發明實施例涉及系統廣播技術,尤其涉及一種調整廣播消息隊列的方法、裝置及終端。
背景技術:
安卓(Android)系統是目前應用較為廣泛的一種手機等終端的操作系統。Android系統中,有很多不同的應用程序,為了在不同的應用程序中快速的進行信息傳遞,Android系統利用廣播機制來實現,有消息要通知不同的應用程序時,就通過廣播將這個消息發送給不同的應用程序。
在Android系統中,廣播發送者發送的廣播消息沒有限制,從而一個廣播發送者可以隨意發送任意數量的廣播,或非常頻繁的發送廣播,會導致廣播消息隊列中待處理的廣播消息非常的多,使得處理速度變慢,導致廣播消息阻塞,影響系統的正常運行。
技術實現要素:
本發明實施例提供一種調整廣播消息隊列的方法、裝置及終端,可以避免廣播消息阻塞,減少廣播對系統性能的影響。
第一方面,本發明實施例提供了一種調整廣播消息隊列的方法,所述方法包括:
根據廣播消息隊列中廣播消息,確定目標廣播發送者;
統計所述目標廣播發送者發送相同的廣播消息的頻率信息;
當所述相同的廣播消息的頻率信息超過預設閾值時,對所述廣播消息隊列中所述相同的廣播消息進行刪減調整。
第二方面,本發明實施例還提供了一種調整廣播消息隊列的裝置,所述裝置包括:
發送者確定模塊,用于根據廣播消息隊列中廣播消息,確定目標廣播發送者;
頻率信息統計模塊,用于統計所述目標廣播發送者發送相同的廣播消息的頻率信息;
消息調整模塊,用于根據所述相同的廣播消息的頻率信息超過預設閾值時,對所述廣播消息隊列中所述相同的廣播消息進行刪減調整。
第三方面,本發明實施例還提供了一種終端,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現以下步驟:
根據廣播消息隊列中廣播消息,確定目標廣播發送者;
統計所述目標廣播發送者發送相同的廣播消息的頻率信息;
當所述相同的廣播消息的頻率信息超過預設閾值時,對所述廣播消息隊列中所述相同的廣播消息進行刪減調整。
本發明實施例提供的調整廣播消息隊列的方法,通過統計相同廣播發送者發送的相同廣播消息的頻率信息,判斷廣播消息是否超頻發送,并對相同廣播消息進行刪減調整,有效地避免了廣播堵塞現象和由高頻發送廣播消息造成的系統卡頓現象,減少了廣播對系統性能的影響。
附圖說明
圖1是本發明實施例提供的一種調整廣播消息隊列的方法的流程圖;
圖2是本發明一個實施例提供的一種調整廣播消息隊列的方法的流程圖;
圖3是本發明一個實施例提供的一種調整廣播消息隊列的方法的流程圖;
圖4是本發明實施例提供的一種調整廣播消息隊列的裝置的結構框圖;
圖5為本發明實施例提供的一種終端的結構示意圖。
具體實施方式
下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部內容。
在更加詳細地討論示例性實施例之前應當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各步驟描述成順序的處理,但是其中的許多步驟可以被并行地、并發地或者同時實施。此外,各步驟的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應于方法、函數、規程、子例程、子程序等等。
圖1是本發明實施例提供的一種調整廣播消息隊列的方法的流程圖,本實施例可適用于對廣播消息發送隊列進行調整的情況,該方法可以由調整廣播消息隊列的裝置來執行,其中該裝置可由軟件和/或硬件實現,該裝置可集成于終端中,終端可以是智能手機、平板電腦等,該方法包括:
步驟101,根據廣播消息隊列中廣播消息,確定目標廣播發送者。
其中,廣播機制本質上是在終端的操作系統中一種組件間的通訊方式,是一種廣泛運用在應用程序之間傳輸消息的機制。例如在終端的安卓系統下,有一些操作完成以后,會發送廣播消息。廣播消息可以是操作系統中產生的各種各樣的事件消息數據。比如說發出一條短信或打出一個電話,都會發送廣播,當某個應用程序接收了這個廣播時,就可以做出相應的處理。廣播機制包括三個基本要素:廣播、廣播接收器以及意圖內容,其中,廣播用于發送廣播,廣播接收器用于接收廣播,廣播接收者可以通過調用函數告訴系統對什么類型的廣播感興趣,并且向系統注冊廣播接收器,便具備接收該類型的廣播消息的權限。意圖內容用于保存廣播相關信息的媒介。由于跟傳統意義中的電臺廣播有一些相似之處,之所以稱之為廣播,是因為發送方只負責發送,并不關心接收方是否接到消息數據,也不關心接收方是如何處理消息數據的。另外,廣播既可以被不止一個應用程序接收,也可能不被任何應用程序所接收。
在Android系統中,ActivityManagerService是Android系統的廣播機制中的廣播中心,負責系統中所有廣播的注冊和發布操作,其中,廣播的注冊是指應用程序把廣播接收器注冊到ActivityManagerService的過程。廣播的發布包括廣播發送者將廣播發送到ActivityManagerService,ActivityManagerService接收到這個廣播以后在自己的注冊中心查看有哪些廣播接收器訂閱了該廣播,然后把這個廣播逐一發送到這些廣播接收器中。
本發明實施例中,廣播消息隊列是指廣播消息按照廣播時間的先后順序依次入隊,形成的隊列的形式。廣播消息隊列可以是默認廣播隊列,也可以是第三方應用廣播隊列。示例性地,廣播消息隊列可以是包括亮屏廣播、息屏廣播、解鎖廣播、網絡狀態變化廣播、藍牙狀態變化廣播、切換語言廣播、切換主題廣播等系統廣播構成的隊列,也可以是由第三方應用軟件發出的廣播構成的隊列。可根據廣播消息隊列中的每個廣播消息確定信息來源,即確定每個廣播消息對應的目標廣播發送者。例如可以通過獲取廣播消息的相關標識或相關配置參數的方式確定目標廣播發送者。
步驟102,統計所述目標廣播發送者發送相同的廣播消息的頻率信息。
其中,可以在建立廣播消息時對廣播消息進行命名,相同的廣播消息可以是名稱相同的廣播消息。示例性地,名稱均為“亮屏廣播”的多個廣播消息可以稱為相同的廣播消息。在一段時間內,同一個廣播發送者可能會發送多個廣播消息,這些廣播消息中有一部分是相同的。統計同一個目標廣播發送者發送的相同的廣播消息的頻率信息可判斷出該廣播發送者是否頻繁發送相同的廣播消息。頻率信息可以是當前時刻之前一段時間內的頻率信息,也可以是當前時刻之后一段時間內的頻率信息。頻率信息的統計方式可以利用目標廣播發送者發送相同的廣播消息數量與時間長度之間的比值進行計算。示例性地,以應用A作為目標廣播發送者為例,假設統計5秒鐘內的亮屏廣播的頻率消息,5秒鐘內應用A陸續發送了30次亮屏廣播,則頻率信息可以是每秒鐘6次。
優選的,所述頻率信息是當前時刻之前預設時間周期內的頻率信息。
其中,采用當前時刻之前的預設時間進行頻率信息的確定,可以對當前時刻之前已排隊的廣播信息進行及時地調整,避免出現廣播的阻塞,影響之后的廣播消息的發送。
步驟103,當所述相同的廣播消息的頻率信息超過預設閾值時,對所述廣播消息隊列中所述相同的廣播消息進行刪減調整。
其中,預設閾值可根據終端的響應速度等進行設定,用于表征廣播消息超頻的衡量標準。可以將統計得到的相同的廣播消息的頻率信息與預設閾值進行比較,判斷同一廣播發送者是否頻繁發送相同的廣播消息。例如可以是當該頻率信息大于預設閾值時,確定該廣播發送者頻繁發送該廣播消息。進而可以對頻繁發送的廣播消息進行刪減調整處理,以便避免該廣播過多而造成廣播的阻塞,影響其他廣播消息的發送。而對非頻繁發送的廣播可以不進行處理。
本發明實施例提供的調整廣播消息隊列的方法,通過統計相同廣播發送者發送的相同廣播消息的頻率信息,判斷廣播消息是否超頻發送,并對相同的廣播消息進行刪減調整,有效地避免了廣播堵塞現象和由高頻發送廣播消息造成的系統卡頓現象,減少了廣播對系統性能的影響。
圖2是本發明一個實施例提供的一種調整廣播消息隊列的方法的流程圖,本實施例的方法包括:
步驟201,根據廣播消息隊列中廣播消息,確定目標廣播發送者。
步驟202,統計所述目標廣播發送者發送相同的廣播消息的頻率信息。
步驟203,當所述相同的廣播消息的頻率信息超過預設閾值時,則在廣播消息隊列中按照入隊的順序保留所述相同的廣播消息中后入隊的預設數量的廣播消息,并移除所述預設數量的廣播消息之前的廣播消息。
其中,根據相同的廣播消息的頻率信息判斷該廣播發送者的該廣播消息是否超頻發送。對于超頻發送的廣播消息,以起初入隊的順序為參照,僅保留后入隊的預設數量的廣播消息,以降低此類廣播消息的頻率。示例性地,預設閾值設定為2,統計應用A發送的相同的廣播消息的頻率信息為4,超過了預設閾值,假設設定預設數量為3,則在廣播消息隊列中按照入隊順序,保留相同的廣播消息中后入隊的3個廣播消息,將其余所有廣播消息均移除。
優選的,所述預設數量是根據所述廣播消息隊列的長度確定的。
其中,預設數量可以是能夠避免出現廣播消息阻塞問題的數量值,可以參照廣播消息隊列的長度進行確定,可以隨時根據當前廣播消息隊列中所有排隊的廣播消息的數量進行調整,這樣既可以保證避免系統出現卡頓現象,又可以最大限度地保障發送廣播消息的數量,適當減少廣播消息的丟失。
本發明實施例提供的調整廣播消息隊列的方法,通過統計目標廣播發送者發送的相同廣播消息的頻率信息,判斷廣播消息是否超頻發送,并在超頻發送時,針對目標廣播發送者發送的相同的廣播消息,采用僅保留廣播消息隊列中后入隊的預設數量的廣播消息這一調整方法對廣播消息進行刪減調整,該調整方法較為簡便,可操作性強,可以降低廣播消息發送的數量,有效地避免了廣播堵塞現象和由高頻發送廣播消息造成的系統卡頓現象,減少了廣播對系統性能的影響。同時保證后入隊的廣播消息順利分發,保留了相同廣播消息中的最新的廣播消息,避免了新廣播消息的丟失。
圖3是本發明一個實施例提供的一種調整廣播消息隊列的方法的流程圖,本實施例的方法包括:
步驟301,根據廣播消息隊列中廣播消息,確定目標廣播發送者。
步驟302,統計所述目標廣播發送者發送相同的廣播消息的頻率信息。
步驟303,當所述相同的廣播消息的頻率信息超過預設閾值時,對所述廣播消息隊列中所述相同的廣播消息進行刪減調整。
步驟304,按照調整后的廣播消息隊列中的廣播消息的排隊順序,識別當前的廣播消息的廣播接收者。
步驟305,將所述當前的廣播消息分發給所述廣播接收者。
其中,對廣播消息隊列中所述相同廣播消息進行調整后形成新的排隊順序,可參照新隊列的入隊先后順序依次識別當前的廣播消息的廣播接收者。例如可以通過查找已注冊所述廣播消息對應的廣播接收器的接收者列表來確定廣播接收者。依次將廣播消息分發給各廣播接收者。示例性地,調整后的隊列依次為A1、A4、B1和C,當前待分發的廣播消息為A1,識別該廣播消息的廣播接收者為應用D、應用E和應用F,則分別將A1分發給應用D、應用E和應用F,便完成了廣播消息A1的分發過程,之后分發A4。
本發明實施例提供的調整廣播消息隊列的方法,通過統計相同廣播發送者發送的相同廣播消息的頻率,判斷廣播消息是否超頻發送,并對相同廣播消息進行調整,有效地避免廣播堵塞現象和由高頻發送廣播消息造成的系統卡頓現象,減少廣播對系統性能的影響。在識別當前待分發的廣播消息的廣播接收者之后,同時將調整后的廣播消息隊列中的廣播消息按照排隊順序依次進行分發,保證了廣播消息分發的有序進行。可以保證廣播接收者對廣播消息的及時響應,可避免出現重要廣播消息無人響應的現象。
圖4是本發明實施例提供的一種調整廣播消息隊列的裝置的結構框圖,該裝置可由軟件和/或硬件實現,一般可集成在終端中,可通過執行調整廣播消息隊列的方法來對終端中的廣播消息進行控制。如圖4所示,該裝置包括發送者確定模塊401、頻率信息統計模塊402和消息調整模塊403。
發送者確定模塊,用于根據廣播消息隊列中廣播消息,確定目標廣播發送者;
頻率信息統計模塊,用于統計所述目標廣播發送者發送相同的廣播消息的頻率信息;
消息調整模塊,用于根據所述相同的廣播消息的頻率信息超過預設閾值時,對所述廣播消息隊列中所述相同的廣播消息進行刪減調整。
本發明實施例提供的調整廣播消息隊列的裝置,通過統計相同廣播發送者發送的相同廣播消息的頻率信息,判斷廣播消息是否超頻發送,并對相同廣播消息進行刪減調整,有效地避免了廣播堵塞現象造成的系統卡頓現象,減少了廣播對系統性能的影響。
可選的,所述消息調整模塊403具體用于:
在廣播消息隊列中按照入隊的順序保留所述相同的廣播消息中后入隊的預設數量的廣播消息,并移除所述預設數量的廣播消息之前的廣播消息。
可選的,所述預設數量是根據所述廣播消息隊列的長度確定的。
可選的,還包括:
廣播接收者識別模塊,用于在對所述廣播消息隊列中所述相同的廣播消息進行調整之后,按照調整后的廣播消息隊列中的廣播消息的排隊順序,識別當前的廣播消息的廣播接收者;
廣播消息分發模塊,用于將所述當前的廣播消息分發給所述廣播接收者。
優選的,所述頻率信息是當前時刻之前預設時間周期內的頻率信息。
上述調整廣播消息隊列的裝置可執行本發明任意實施例所提供調整廣播消息隊列的方法,具備執行調整廣播消息隊列方法相應的功能模塊和有益效果。未在本實施例中詳盡描述的技術細節,可參見本發明任意實施例提供的方法。
本發明實施例還提供了一種終端,該終端可以包括本發明任意實施例提供的調整廣播消息隊列的裝置。圖5為本發明實施例提供的一種終端的結構示意圖,如圖5所示,該終端可以包括:殼體(圖中未示出)、存儲器501、中央處理器(Central Processing Unit,CPU)502(又稱處理器,以下簡稱CPU)、存儲在存儲器501上并可在處理器502上運行的計算機程序、電路板(圖中未示出)和電源電路(圖中未示出)。所述電路板安置在所述殼體圍成的空間內部;所述CPU502和所述存儲器501設置在所述電路板上;所述電源電路,用于為所述終端的各個電路或器件供電;所述存儲器501,用于存儲可在處理器上運行的計算機程序;所述CPU502通過讀取并執行所述存儲器501中存儲的計算機程序。
該終端還包括:外設接口503、RF(Radio Frequency,射頻)電路505、音頻電路506、揚聲器511、電源管理芯片508、輸入/輸出(I/O)子系統509、觸摸屏512、其他輸入/控制設備510以及外部端口504,這些部件通過一個或多個通信總線或信號線507來通信。
應該理解的是,圖示終端500僅僅是終端的一個范例,并且終端500可以具有比圖中所示出的更多的或者更少的部件,可以組合兩個或更多的部件,或者可以具有不同的部件配置。圖中所示出的各種部件可以在包括一個或多個信號處理和/或專用集成電路在內的硬件、軟件、或硬件和軟件的組合中實現。
下面就本實施例提供的用于調整廣播消息隊列的終端進行詳細的描述,該終端以手機為例。
存儲器501,所述存儲器501可以被CPU502、外設接口503等訪問,所述存儲器501可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如一個或多個磁盤存儲器件、閃存器件、或其他易失性固態存儲器件。
外設接口503,所述外設接口503可以將設備的輸入和輸出外設連接到CPU502和存儲器501。
I/O子系統509,所述I/O子系統509可以將設備上的輸入輸出外設,例如觸摸屏512和其他輸入/控制設備510,連接到外設接口503。I/O子系統509可以包括顯示控制器5091和用于控制其他輸入/控制設備510的一個或多個輸入控制器5092。其中,一個或多個輸入控制器5092從其他輸入/控制設備510接收電信號或者向其他輸入/控制設備510發送電信號,其他輸入/控制設備510可以包括物理按鈕(按壓按鈕、搖臂按鈕等)、撥號盤、滑動開關、操縱桿、點擊滾輪。值得說明的是,輸入控制器5092可以與以下任一個連接:鍵盤、紅外端口、USB接口以及諸如鼠標的指示設備。
觸摸屏512,所述觸摸屏512是用戶終端與用戶之間的輸入接口和輸出接口,將可視輸出顯示給用戶,可視輸出可以包括圖形、文本、圖標、視頻等。
I/O子系統509中的顯示控制器5091從觸摸屏512接收電信號或者向觸摸屏512發送電信號。觸摸屏512檢測觸摸屏上的接觸,顯示控制器5091將檢測到的接觸轉換為與顯示在觸摸屏512上的用戶界面對象的交互,即實現人機交互,顯示在觸摸屏512上的用戶界面對象可以是運行游戲的圖標、聯網到相應網絡的圖標等。值得說明的是,設備還可以包括光鼠,光鼠是不顯示可視輸出的觸摸敏感表面,或者是由觸摸屏形成的觸摸敏感表面的延伸。
RF電路505,主要用于建立手機與無線網絡(即網絡側)的通信,實現手機與無線網絡的數據接收和發送。例如收發短信息、電子郵件等。具體地,RF電路505接收并發送RF信號,RF信號也稱為電磁信號,RF電路505將電信號轉換為電磁信號或將電磁信號轉換為電信號,并且通過該電磁信號與通信網絡以及其他設備進行通信。RF電路505可以包括用于執行這些功能的已知電路,其包括但不限于天線系統、RF收發機、一個或多個放大器、調諧器、一個或多個振蕩器、數字信號處理器、CODEC(COder-DECoder,編譯碼器)芯片組、用戶標識模塊(Subscriber Identity Module,SIM)等等。
音頻電路506,主要用于從外設接口503接收音頻數據,將該音頻數據轉換為電信號,并且將該電信號發送給揚聲器511。
揚聲器511,用于將手機通過RF電路505從無線網絡接收的語音信號,還原為聲音并向用戶播放該聲音。
電源管理芯片508,用于為CPU502、I/O子系統及外設接口所連接的硬件進行供電及電源管理。
本發明實施例提供的CPU502在執行所述存儲器501中存儲的計算機程序時實現以下步驟:
根據廣播消息隊列中廣播消息,確定目標廣播發送者;
統計所述目標廣播發送者發送相同的廣播消息的頻率信息;
當所述相同的廣播消息的頻率信息超過預設閾值時,對所述廣播消息隊列中所述相同的廣播消息進行刪減調整。
上述終端可執行本發明任意實施例所提供的方法,具備執行方法相應的功能模塊和有益效果。
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。