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