本發(fā)明涉及應用處理技術(shù)領(lǐng)域,特別是涉及一種應用程序自啟動的處理方法、裝置及移動終端。
背景技術(shù):
隨著智能終端的不斷發(fā)展,用戶在智能終端中安裝的應用程序也不斷增多,通常情況下,很多應用程序開發(fā)者為了方便用戶使用會在安裝平臺開機時自啟動應用程序。目前,終端內(nèi)各個應用程序自啟動的方式為通過檢查后臺服務Service的運行狀態(tài),來根據(jù)后臺服務的運行狀態(tài)來調(diào)用指定系統(tǒng)功能的應用程序。
應說明的是,通過上述方式自啟動的應用程序有時并非系統(tǒng)或其他應用程序運行時所必須的條件,或者終端內(nèi)某些應用程序的啟動并非用戶所期望啟動的,因此,對于某些應用程序以及用戶來說無用的應用程序,自啟動過多會占用終端過多的資源,降低系統(tǒng)運行速度。
針對上述問題,現(xiàn)有的禁止應用程序自啟動的實現(xiàn)方式為:當應用程序接收到后臺服務的調(diào)用后,判斷該應用程序是否允許自啟動,如果允許則不進行處理,如果不允許則將已經(jīng)啟動的應用程序的應用進程結(jié)束。然而,現(xiàn)有的禁止應用程序自啟動的技術(shù)是在系統(tǒng)應用層實現(xiàn)的,如果廣播接收器監(jiān)聽的廣播過多,就會頻繁的觸發(fā)應用程序自啟動,通過將已經(jīng)自啟動的應用程序結(jié)束無法從底層徹底攔截應用程序,對于已經(jīng)成功自啟動的應用程序如果沒有及時結(jié)束進程,還可能帶來隱私以及安全方面的風險。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種應用程序自啟動的處理方法、裝置及移動終端,能夠從底層徹底有效的管理已經(jīng)自啟動的應用程序。
依據(jù)本發(fā)明一個方面,提供了一種應用程序自啟動的處理方法,包括:
接收應用程序的自啟動請求,獲取應用程序?qū)淖詥幽J剑?/p>
當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與所述服務啟動模式對應的應用處理策略;
根據(jù)所述應用處理策略對所述應用程序的自啟動請求進行處理。
依據(jù)本發(fā)明一個方面,提供了一種應用程序自啟動的處理裝置,包括:
獲取單元,用于接收應用程序的自啟動請求,獲取應用程序?qū)淖詥幽J剑?/p>
配置單元,用于當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與所述服務啟動模式對應的應用處理策略;
處理單元,用于根據(jù)所述應用處理策略對所述應用程序的自啟動請求進行處理。
依據(jù)本發(fā)明一個方面,提供了一種移動終端,包括處理器和存儲器:
所述存儲器用于存儲執(zhí)行上述應用程序自啟動的處理方法的程序;
所述處理器被配置為用于執(zhí)行所述存儲器中存儲的程序。
借由上述技術(shù)方案,本發(fā)明實施例提供的技術(shù)方案至少具有下列優(yōu)點:
本發(fā)明提供的一種應用程序自啟動的處理方法、裝置及移動終端,與現(xiàn)有的禁止應用程序自啟動的技術(shù)是在系統(tǒng)應用層實現(xiàn)的,無法從底層徹底攔截應用程序相比,本發(fā)明通過獲取所述應用程序?qū)淖詥幽J剑缓螽攽贸绦驅(qū)淖詥幽J綖榉諉幽J綍r,配置與服務啟動程序相應的應用處理策略,在不影響用戶正常使用的基礎(chǔ)上,對于用戶允許自啟動的應用程序可以啟動,對于用戶不允許自啟動的應用程序,根據(jù)應用處理策略對應用程序的自啟動請求進行處理,能夠從底層有效的處理應用程序的自啟動,對應用程序進行有效的攔截,從而降低了在應用程序自啟動處理不及時給用戶帶來的隱私以及安全方面的風險。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。
附圖說明
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
圖1示出了本發(fā)明實施例提供的一種應用程序自啟動的處理方法流程示意圖;
圖2示出了本發(fā)明實施例提供的另一種應用程序自啟動的處理方法流程示意圖;
圖3示出了本發(fā)明實施例提供的另一種應用程序自啟動的處理方法流程示意圖
圖4示出了本發(fā)明實施例提供的一種應用程序自啟動的處理裝置結(jié)構(gòu)示意圖;
圖5示出了本發(fā)明實施例提供的另一種應用程序自啟動的處理裝置結(jié)構(gòu)示意圖;
圖6示出了本發(fā)明實施例提供的另一種應用程序自啟動的處理裝置結(jié)構(gòu)示意圖;
圖7示出了本發(fā)明實施例提供的一種移動終端的結(jié)構(gòu)示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
本發(fā)明實施例提供了一種應用程序自啟動的處理方法,如圖1所示,所述方法包括:
101、接收應用程序的自啟動請求,獲取所述應用程序?qū)淖詥幽J健?/p>
其中,所述應用程序的自啟動請求為當安卓手機程序后臺接收到某些事件,如網(wǎng)絡連接變化、開屏解鎖、開機啟動等事件而觸發(fā)的自動啟動行為,即使清理了內(nèi)存,軟件進程當時被殺掉了,但是如果遇到如解鎖、鎖屏等觸發(fā)事件,應用程序就會向系統(tǒng)發(fā)送自動的啟動后臺進程的自啟動請求。
在安卓系統(tǒng)中,觸發(fā)應用程序自啟動的方式有很多種,例如,用戶通過手機屏幕中點擊應用程序圖標的場景,或者應用之間進行數(shù)據(jù)共享的場景,或者執(zhí)行系統(tǒng)本地服務的場景,不同的應用場景對應不同的應用程序自啟動模式,因此當接收到應用程序的自啟動請求時,有必要根據(jù)不同觸發(fā)應用程序的應用場景獲取應用程序?qū)淖詥幽J?,例如,用戶通過手機屏幕中點擊應用程序圖標的場景對應的自啟動模式為界面啟動模式,應用之間進行數(shù)據(jù)共享的場景對應的啟動模式為接口啟動模式,執(zhí)行系統(tǒng)本地服務的場景對應的自啟動模式為服務啟動模式。
需要說明的是,上述的界面啟動模式為用戶操作而展示的可視化用戶界面,比如,通過界面展示一個菜單項列表供用戶選擇,或者顯示一些包含說明的照片等,本發(fā)明實施例不做限定。
對于某些影響到系統(tǒng)運行的核心進程默認是在界面不顯示的,系統(tǒng)默認配置好自啟動的能力,例如有些系統(tǒng)進程無需自啟動,就不在界面進行顯示,以免用戶手動開啟影響功耗和性能,而有些需要自啟動能力的系統(tǒng)進程,也默認不在界面進行顯示,以免影響系統(tǒng)的正常運行;對于某些非系統(tǒng)核心進程,如部分系統(tǒng)應用程序以及第三份應用程序,通常情況需要用戶手動參與設(shè)置自啟動情況,例如,對于微信應用程序、QQ等需要實時接收消息的應用程序,默認設(shè)置自啟動功能,對于游戲等占用較大內(nèi)存和功耗的應用程序通常設(shè)置禁止自啟動功能。
然而,在實際進行設(shè)置應用程序自啟動的過程中,某些應用程序雖然被設(shè)置禁止自啟動功能,而當終端中家族應用過多,就會頻繁的后臺自啟動,造成了功能和性能方面的影響,如果不及時結(jié)束進程可能帶來隱私等安全方面的風險。
102、當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與所述服務啟動模式對應的應用處理策略。
這里的服務啟動模式可以通過安卓系統(tǒng)中的后臺服務Service組件實現(xiàn),當安卓系統(tǒng)開機后,通過利用安卓系統(tǒng)每分鐘發(fā)送的系統(tǒng)廣播,觸發(fā)自己的程序檢查Service組件的運行狀態(tài),進而根據(jù)后臺服務的運行狀態(tài)來調(diào)用指定系統(tǒng)功能的應用程序,如當前終端電量低,則后臺服務會調(diào)用節(jié)能模式來節(jié)省終端電量的消耗。
對于本發(fā)明實施例,根據(jù)應用程序?qū)淖詥幽J脚渲门c應用程序相應的應用處理策略,當應用程序?qū)膯幽J綖榉諉幽J綍r,通過配置與服務啟動模式對應的應用處理策略來控制應用程序的啟動和禁止,自動配置好默認值,無需用戶手動參與設(shè)置,也能夠保證系統(tǒng)的正常運行。
需要說明的是,應用處理策略為在安卓系統(tǒng)在接收到廣播消息后調(diào)用應用程序之前判斷是否調(diào)用各應用程序的策略,具體可以通過在啟動流程中增加處理模塊,其主要代碼在AmInjector.java文件中,首先通過調(diào)用服務接口判斷應用程序是否有自啟權(quán)限,如果是則不進行攔截,否則獲取廣播啟動模式的消息傳遞機制,進一步判斷消息傳遞機制是否符合預設(shè)匹配條件,這里的預設(shè)匹配條件分別為行為匹配條件、類匹配條件以及行為前綴匹配條件,如果符合則不進行攔截,否則判斷應用程序的調(diào)用者是否為核心進程,如果是則不進行攔截,否則判斷應用程序是否處于運行狀態(tài),如果是則說明應用程序當前已經(jīng)被后臺開啟,不進行攔截,否則判斷應用程序是否為核心應用程序,如果是則不進行攔截,否則禁止啟動應用程序。
103、根據(jù)所述應用處理策略對所述應用程序的自啟動請求進行處理。
本步驟中,根據(jù)應用處理策略對通過服務啟動模式啟動的應用程序進行處理,這里通過服務啟動模式啟動的應用程序?qū)膹V播通常會在安卓系統(tǒng)的應用配置文件中進行注冊,當廣播接收器接收到注冊過的應用程序的廣播消息時,會對該應用程序進行判斷,如對于某些用戶不期望自啟動的應用程序,可以通過在底層進行設(shè)置禁止啟動,對于某些系統(tǒng)運行所必須的應用程序,如桌面、電話等系統(tǒng)應用程序,可以通過在底層進行設(shè)置可以進行啟動,本法實施例通過配置的應用處理策略對通過服務啟動模式啟動的應用程序進行處理,對于用戶不允許啟動的應用程序能進行有效的攔截。
本發(fā)明提供的一種應用程序自啟動的處理方法,與現(xiàn)有的禁止應用程序自啟動的技術(shù)是在系統(tǒng)應用層實現(xiàn)的,無法從底層徹底攔截應用程序相比,本發(fā)明通過獲取所述應用程序?qū)淖詥幽J?,然后當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與服務啟動模式相應的應用處理策略,在不影響用戶正常使用的基礎(chǔ)上,對于用戶允許自啟動的應用程序可以啟動,對于用戶不允許自啟動的應用程序,根據(jù)應用處理策略對應用程序的自啟動請求進行處理,能夠從底層有效的處理應用程序的自啟動,對應用程序進行有效的攔截,從而降低了在應用程序自啟動處理不及時給用戶帶來的隱私以及安全方面的風險。
本發(fā)明實施例提供了另一種應用程序自啟動的處理方法,如圖2所示,所述方法包括:
201、接收應用程序的自啟動請求,判斷所述應用程序的啟動方式是否為界面啟動方式,若是則執(zhí)行202a,若否則執(zhí)行202b。
通常情況應用程序的自啟動可以為分開機啟動與后臺啟動,開機啟動是伴隨終端開機時候就自動開啟,用戶可以通過自啟動選項進行設(shè)置,后臺啟動是通過終端環(huán)節(jié)變化啟動程序的行為,例如當用戶打開微博應用程序時會觸發(fā)其他應用程序的啟動。
其中,界面啟動方式為通過Activity組件啟動應用程序,每個界面都是一個Activity組件,通過Activity組件提供的可視化界面可以實現(xiàn)與用戶的交互,例如,用戶通過界面的提示信息可以選擇是否授權(quán)應用程序,通過點擊界面提供的圖片能夠?qū)崿F(xiàn)圖片的旋轉(zhuǎn)等動作。
202a、若所述應用程序的啟動方式是界面啟動模式,根據(jù)用戶操作的行為數(shù)據(jù)啟動所述應用程序。
由于界面啟動方式的應用程序為按照與用戶交互產(chǎn)生的操作數(shù)據(jù)進行啟動的方式,因此,若所述應用程序的啟動方式是界面啟動模式,則說明該啟動方式符合用戶意愿,不必進行啟動攔截,進一步根據(jù)用戶操作的行為數(shù)據(jù)啟動應用程序,如用戶選擇授權(quán)的行為數(shù)據(jù)或者用戶點擊照片的行為數(shù)據(jù),本發(fā)明實施例中不做限定。
相應的,與步驟202a對應的有步驟202b、若所述應用程序的啟動方式不是界面啟動方式,通過在framework層調(diào)用檢測函數(shù)來獲取所述應用程序?qū)淖詥幽J健?/p>
需要說明的是,若應用程序的啟動方式不是界面啟動方式,則說明并非是用戶操作啟動的應用程序,而是通過后臺啟動的應用程序,為了不影響用戶的正常操作,本發(fā)明實施例通過在framework層調(diào)用檢測函數(shù)來獲取應用程序?qū)淖詥幽J?,從而基于不同的自啟動模式判斷是否允許該應用程序的自啟動。
其中,framework層為安卓系統(tǒng)開發(fā)人員提供服務和交互接口,通過調(diào)用framework層的檢測函數(shù)能夠獲取應用程序的自啟動模式,目前常用改的啟動模式有廣播Broadcast Receiver啟動模式、服務Srvice啟動模式、接口Content Provider啟動模式等,本發(fā)明實施例對應用程序的自啟動模式不進行限定。
203b、當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與所述服務啟動模式對應的應用處理策略。
對于本發(fā)明實施例,當應用程序?qū)淖詥幽J綖榉諉幽J綍r,根據(jù)應用程序?qū)淖詥幽J脚渲门c應用程序相應的應用處理策略可以包括:首先通過調(diào)用服務接口判斷應用程序是否有自啟權(quán)限,如調(diào)用應用程序安裝包的包名,即ApsManagerService服務的接口isInBlackList來判斷應程序是否具有自啟權(quán)限,具體可以用于通過調(diào)用接口識別應用程序的標識信息來判斷應用程序是否具有自啟權(quán)限,這里的標識信息可以為應用程序的pid和應用程序的uid,如果是則不進行攔截,否則獲取廣播啟動模式的消息傳遞機制,進一步判斷消息傳遞機制是否符合預設(shè)匹配條件,這里的預設(shè)匹配條件分別為行為匹配條件、類名全匹配條件以及行為前綴匹配條件,如果符合則不進行攔截,否則判斷應用程序的調(diào)用者是否為核心進程,如UID=0、SYSTEM_UID、PHONE_UID、SHELL_UID,如果是則不進行攔截,否則判斷應用程序是否處于運行狀態(tài),如果是則說明應用程序當前已經(jīng)被后臺開啟,不進行攔截,否則判斷應用程序是否為核心應用程序,如果是則不進行攔截,否則禁止啟動應用程序。
需要說明的是,服務啟動模式通過安卓系統(tǒng)中Service組件來啟動應用程序,其本身運行不依賴用戶可視的UI界面,具有較長時間的運行特性。具體攔截邏輯代碼在ActiveServices.java文件的函數(shù)中retrieveServiceLocked函數(shù)中實現(xiàn),具體流程如圖3所示。
204b、根據(jù)所述應用處理策略對所述應用程序的自啟動請求進行處理。
本發(fā)明實施例當應用程序?qū)膯幽J綖榉諉幽J綍r,通過配置與服務啟動模式對應的應用處理策略,保證了一些非核心進程無需用戶手動參與設(shè)置便可啟動或者禁止,例如對應用戶經(jīng)常使用的應用程序設(shè)置為啟動,用戶不經(jīng)常那個使用或者占用系統(tǒng)內(nèi)存過大的應用程序設(shè)置為禁止啟動,提高了應用程序自啟動的靈活性。
205b、按照預設(shè)時間間隔統(tǒng)計所述應用程序自啟動的處理記錄,將所述處理記錄存放至緩存文件中。
其中,應用程序自啟動的處理記錄可以包括但不局限于應用程序自啟動情況,具體包括啟動的次數(shù),通過不同啟動模式實現(xiàn)自啟動的次數(shù),以及被其他應用程序喚醒啟動的次數(shù),還可以詳細的記錄被哪些應用程序喚醒啟動,以及喚醒啟動的次數(shù)、時間等。
需要說明的是,本發(fā)明實施例對上述預設(shè)時間間隔不進行限定,優(yōu)選為1天,通常情況以天為單位來展示應用程序每天的處理記錄,如每天喚醒應用程序的情況以及每天被其他應用程序喚醒的情況。
相應的,本發(fā)明實施例中的處理記錄還可以包括但不局限于應用程序攔截情況,具體包括攔截的次數(shù),通過不同啟動模式實現(xiàn)攔截的次數(shù),以及被其他應用程序喚醒攔截的次數(shù),還可以詳細的記錄被哪些應用程序喚醒攔截,以及喚醒攔截的次數(shù)、時間等。
本發(fā)明實施例通過按照預設(shè)時間間隔統(tǒng)計應用程序自啟動的處理記錄,將所述處理記錄存放至緩存文件中,從而使得應用程序的啟動情況以及家族應用程序的關(guān)系一目了然,以便用戶可以根據(jù)自己的實際需求來決定是否更改應用程序的啟動情況。
206b、當所述緩存文件中的處理記錄大于預設(shè)閾值時,將所述處理記錄更新至預置數(shù)據(jù)庫中。
由于緩存文件在系統(tǒng)運行過程中會占用系統(tǒng)內(nèi)存,本發(fā)明實施例在緩存文件中的處理記錄過多的時候為處理記錄設(shè)置一個預設(shè)預置,例如,當緩存文件中的處理記錄大于20條時,則將處理記錄進行更新,本發(fā)明實施例對該預設(shè)預置的大小在此不進行限定,可根據(jù)系統(tǒng)實際運行情況進行設(shè)置,為了不影響系統(tǒng)運行速率,進一步可以將處理記錄更新配置中心的數(shù)據(jù)庫中的表格里,保證了系統(tǒng)運行的穩(wěn)定性。
本發(fā)明提供的另一種應用程序自啟動的處理方法,對于安裝在手機中的應用程序,當應用程序?qū)膯幽J綖榉諉幽J綍r,通過配置與服務啟動模式對應的應用處理策略,能夠從底層有效的管理應用自啟動;通過統(tǒng)計應用程序的處理記錄,以便在不影響用戶正常使用的基礎(chǔ)上,使得用戶能夠根據(jù)處理記錄來設(shè)置應用程序自啟動,從而提高應用程序自啟動處理方式的靈活性。
進一步地,作為圖1所述方法的具體實現(xiàn),本發(fā)明實施例提供了一種應用程序自啟動的處理裝置,如圖4所示,所述裝置包括:獲取單元31、配置單元32、處理單元33。
獲取單元31,可以用于當接收到應用程序的自啟動請求時,獲取所述應用程序?qū)淖詥幽J?;獲取單元31為一種應用程序自啟動的處理裝置中用于獲取應用程序自啟動的主要功能模塊,具體可以根據(jù)應用程序不同的觸發(fā)模式進行獲取。
配置單元32,可以用于當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與所述服務啟動模式對應的應用處理策略;配置單元32為一種應用程序自啟動的處理裝置用于為服務啟動模式的應用程序配置對應的應用處理策略的主要功能模塊。
處理單元33,可以用于根據(jù)所述應用處理策略對所述應用程序的自啟動請求進行處理,處理單元33為一種應用程序自啟動的處理裝置中用于設(shè)置應用程序開啟或者攔截的主要功能模塊,對于用戶不期望啟動的應用程序設(shè)置為攔截啟動,對于用戶經(jīng)常使用的應用程序設(shè)置為自啟動。
本發(fā)明提供的一種應用程序自啟動的處理裝置,與現(xiàn)有的禁止應用程序自啟動的技術(shù)是在系統(tǒng)應用層實現(xiàn)的,無法從底層徹底攔截應用程序相比,本發(fā)明通過獲取所述應用程序?qū)淖詥幽J?,然后當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與服務啟動模式相應的應用處理策略,在不影響用戶正常使用的基礎(chǔ)上,對于用戶允許自啟動的應用程序可以啟動,對于用戶不允許自啟動的應用程序,根據(jù)應用處理策略對應用程序的自啟動請求進行處理,能夠從底層有效的處理應用程序的自啟動,對應用程序進行有效的攔截,從而降低了在應用程序自啟動處理不及時給用戶帶來的隱私以及安全方面的風險。
進一步地,作為圖2所述方法的具體實現(xiàn),本發(fā)明實施例提供了另一種應用程序自啟動的處理裝置,如圖5所示,所述裝置包括:判斷單元41、獲取單元42、配置單元43、處理單元44、統(tǒng)計單元45、更新單元46。
獲取單元42,可以用于接收應用程序的自啟動請求,獲取所述應用程序?qū)淖詥幽J?;獲取單元42為一種應用程序自啟動的處理裝置中用于獲取應用程序自啟動的主要功能模塊,具體可以根據(jù)應用程序不同的觸發(fā)模式進行獲?。?/p>
配置單元43,可以用于當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與所述服務啟動模式對應的應用處理策略;配置單元43為一種應用程序自啟動的處理裝置用于為服務啟動模式的應用程序配置對應的應用處理策略的主要功能模塊;
處理單元44,可以用于根據(jù)所述應用處理策略對所述應用程序進行處理,處理單元44為一種應用程序自啟動的處理裝置中用于設(shè)置應用程序開啟或者攔截的主要功能模塊,對于用戶不期望啟動的應用程序設(shè)置為攔截啟動,對于用戶經(jīng)常使用的應用程序設(shè)置為自啟動。
進一步地,為了方便用戶可以根據(jù)自己的實際需求來決定是否更改應用程序的啟動情況,所述裝置還包括:
判斷單元41,可以用于判斷所述應用程序的啟動方式是否為界面啟動方式,判斷單元41為一種應用程序自啟動的處理裝置中用于判斷應用程序是否通過用戶界面的方式啟動的主要功能模塊,其中,界面啟動方式為通過Activity組件啟動應用程序;
所述判斷單元41,具體可以用于若所述應用程序的啟動方式是界面啟動方式,則根據(jù)用戶操作的行為數(shù)據(jù)啟動所述應用程序,其中,用戶操作的行為數(shù)據(jù)可以包括但不局限于用戶選擇授權(quán)的行為數(shù)據(jù)或者用戶點擊照片的行為數(shù)據(jù);
所述判斷單元41,具體還可以用于若所述應用程序的啟動方式不是界面啟動方式,獲取所述應用程序?qū)淖詥幽J健?/p>
具體地,為了獲取不同應用程序的自啟動模式,所述獲取單元42具體可以用于通過在framework層調(diào)用檢測函數(shù)來獲取所述應用程序?qū)淖詥幽J健?/p>
當所述應用程序?qū)淖詥幽J綖榉諉幽J綍r,如圖6所示,所述配置單元43包括:
第一判斷模塊431,可以用于通過調(diào)用服務接口判斷所述應用程序是否有自啟權(quán)限;
所述第一判斷模塊431,具體可以用于若通過調(diào)用服務接口判斷所述應用程序有自啟權(quán)限,則啟動所述應用程序;
獲取模塊432,可以用于若通過調(diào)用服務接口判斷所述應用程序沒有自啟權(quán)限,獲取廣播啟動模式的消息傳遞機制;
第二判斷模塊433,可以用于判斷所述消息傳遞機制是否符合預設(shè)匹配條件;
所述第二判斷模塊433,具體可以用于若所述消息傳遞機制符合預設(shè)匹配條件,則啟動所述應用程序;
第三判斷模塊434,可以用于若所述消息傳遞機制不符合預設(shè)匹配條件,判斷所述應用程序的調(diào)用者是否為核心進程;
所述第三判斷模塊434,具體可以用于若所述應用程序的調(diào)用者是核心進程,則啟動所述應用程序;
第四判斷模塊435,可以用于若所述應用程序的調(diào)用者不是核心進程,判斷所述應用程序是否處于運行狀態(tài);
所述第四判斷模塊435,具體可以用于若所述應用程序處于運行狀態(tài),則啟動所述應用程序;
第五判斷模塊436,可以用于若所述應用程序不處于運行狀態(tài),判斷所述應用程序是否為核心應用;
所述第五判斷模塊436,具體可以用于若所述應用程序是核心應用,則啟動所述應用程序;
所述第五判斷模塊436,具體還可以用于若所述應用程序不是核心應用,則禁止啟動所述應用程序。
進一步地,所述第一判斷模塊431,具體可以用于通過調(diào)用接口識別所述應用程序的標識信息來判斷所述應用程序是否具有自啟權(quán)限,這里的標識信息可以為應用程序的pid和應用程序的uid。
進一步地,為了方便用戶可以根據(jù)自己的實際需求來決定是否更改應用程序的啟動情況,所述裝置還包括:
統(tǒng)計單元45,用于按照預設(shè)時間間隔統(tǒng)計所述應用程序自啟動的處理記錄,將所述處理記錄存放至緩存文件中,統(tǒng)計單元45為一種應用程序自啟動的處理裝置中用于記錄應用程序自啟動處理記錄的主要功能模塊,其中,應用程序自啟動的處理記錄可以包括但不局限于應用程序自啟動情況,具體包括啟動的次數(shù),通過不同啟動模式實現(xiàn)自啟動的次數(shù),以及被其他應用程序喚醒啟動的次數(shù),還可以詳細的記錄被哪些應用程序喚醒啟動,以及喚醒啟動的次數(shù)、時間等。
進一步地,由于緩存文件在系統(tǒng)運行過程中會占用系統(tǒng)內(nèi)存,為了不影響系統(tǒng)運行速率,所述裝置還包括:
更新單元46,可以用于當所述緩存文件中的處理記錄大于預設(shè)閾值時,將所述處理記錄更新至預置數(shù)據(jù)庫中,更新單元46為一種應用程序自啟動的處理裝置中用于更新應用程序自啟動處理記錄的主要功能模塊。
本發(fā)明提供的另一種應用程序自啟動的處理裝置,對于安裝在手機中的應用程序,當應用程序?qū)膯幽J綖榉諉幽J綍r,通過配置與服務啟動模式對應的應用處理策略,能夠從底層有效的管理應用自啟動;通過統(tǒng)計應用程序的處理記錄,以便在不影響用戶正常使用的基礎(chǔ)上,使得用戶能夠根據(jù)處理記錄來設(shè)置應用程序自啟動,從而提高應用程序自啟動處理方式的靈活性。
本發(fā)明實施例提供了一種移動終端,如圖7所示,包括一個或多個處理器(processor)51、通信接口(Communications Interface)52、存儲器(memory)53和總線54,其中,處理器51、通信接口52、存儲器53通過總線54完成相互間的通信。通信接口52可以用于獲取模塊、擴展模塊與訪問模塊之間的信息傳輸。處理器51可以調(diào)用存儲器53中的邏輯指令,使得所述裝置能夠執(zhí)行上述任意實施例中的圖像顯示方法。
此外,上述的存儲器53中的邏輯指令可以通過軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務器,或者網(wǎng)絡設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本發(fā)明提供的一種移動終端,與現(xiàn)有的禁止應用程序自啟動的技術(shù)是在系統(tǒng)應用層實現(xiàn)的,無法從底層徹底攔截應用程序相比,本發(fā)明通過獲取所述應用程序?qū)淖詥幽J?,然后當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與服務啟動程序相應的應用處理策略,在不影響用戶正常使用的基礎(chǔ)上,對于用戶允許自啟動的應用程序可以啟動,對于用戶不允許自啟動的應用程序,根據(jù)應用處理策略對應用程序的自啟動請求進行處理,能夠從底層有效的處理應用程序的自啟動,對應用程序進行有效的攔截,從而降低了在應用程序自啟動處理不及時給用戶帶來的隱私以及安全方面的風險。
本發(fā)明公開了A1、一種應用程序自啟動的處理方法,包括:
接收應用程序的自啟動請求,獲取應用程序?qū)淖詥幽J剑?/p>
當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與所述服務啟動模式對應的應用處理策略;
根據(jù)所述應用處理策略對所述應用程序的自啟動請求進行處理。
A2、如A1所述的方法,所述配置與所述服務啟動模式對應的應用處理策略包括:
通過調(diào)用服務接口判斷所述應用程序是否有自啟權(quán)限;
若是,則啟動所述應用程序,否則,獲取廣播啟動模式的消息傳遞機制;
判斷所述消息傳遞機制是否符合預設(shè)匹配條件;
若是,則啟動所述應用程序,否則,判斷所述應用程序的調(diào)用者是否為核心進程;
若是,則啟動所述應用程序,否則,判斷所述應用程序是否處于運行狀態(tài);
若是,則啟動所述應用程序,否則,判斷所述應用程序是否為核心應用;
若是,則啟動所述應用程序,否則,禁止啟動所述應用程序。
A3、如A2所述的方法,所述通過調(diào)用服務接口判斷所述應用程序是否有自啟權(quán)限包括:
通過調(diào)用接口識別所述應用程序的標識信息來判斷所述應用程序是否具有自啟權(quán)限。
A4、如A2所述的方法,所述預設(shè)匹配條件包括行為匹配條件、類名全匹配條件以及行為前綴匹配條件。
A5、如A1-A4中任一項所述的方法,所述獲取應用程序?qū)淖詥幽J桨ǎ?/p>
通過在framework層調(diào)用檢測函數(shù)來獲取所述應用程序?qū)淖詥幽J健?/p>
A6、如A5所述的方法,在所述通過在framework層調(diào)用檢測函數(shù)來獲取所述應用程序?qū)淖詥幽J街?,所述方法還包括:
判斷所述應用程序的啟動方式是否為界面啟動方式;
若是,則根據(jù)用戶操作的行為數(shù)據(jù)啟動所述應用程序,否則獲取所述應用程序?qū)淖詥幽J健?/p>
A7、如A6所述的方法,所述方法還包括:
按照預設(shè)時間間隔統(tǒng)計所述應用程序自啟動的處理記錄,將所述處理記錄存放至緩存文件中。
A8、如A7所述的方法,所述方法還包括:
當所述緩存文件中的處理記錄大于預設(shè)閾值時,將所述處理記錄更新至預置數(shù)據(jù)庫中。
B9、一種應用程序自啟動的處理裝置,包括:
獲取單元,用于接收應用程序的自啟動請求,獲取應用程序?qū)淖詥幽J剑?/p>
配置單元,用于當應用程序?qū)淖詥幽J綖榉諉幽J綍r,配置與所述服務啟動模式對應的應用處理策略;
處理單元,用于根據(jù)所述應用處理策略對所述應用程序的自啟動請求進行處理。
B10、如B9所述的裝置,所述配置單元包括:
第一判斷模塊,用于通過調(diào)用服務接口判斷所述應用程序是否有自啟權(quán)限;
所述第一判斷模塊,具體用于若通過調(diào)用服務接口判斷所述應用程序有自啟權(quán)限,則啟動所述應用程序;
獲取模塊,用于若通過調(diào)用服務接口判斷所述應用程序沒有自啟權(quán)限,獲取廣播啟動模式的消息傳遞機制;
第二判斷模塊,用于判斷所述消息傳遞機制是否符合預設(shè)匹配條件;
所述第二判斷模塊,具體用于若所述消息傳遞機制符合預設(shè)匹配條件,則啟動所述應用程序;
第三判斷模塊,用于若所述消息傳遞機制不符合預設(shè)匹配條件,判斷所述應用程序的調(diào)用者是否為核心進程;
所述第三判斷模塊,具體用于若所述應用程序的調(diào)用者是核心進程,則啟動所述應用程序;
第四判斷模塊,用于若所述應用程序的調(diào)用者不是核心進程,判斷所述應用程序是否處于運行狀態(tài);
所述第四判斷模塊,具體用于若所述應用程序處于運行狀態(tài),則啟動所述應用程序;
第五判斷模塊,用于若所述應用程序不處于運行狀態(tài),判斷所述應用程序是否為核心應用;
所述第五判斷模塊,具體用于若所述應用程序是核心應用,則啟動所述應用程序;
所述第五判斷模塊,具體還用于若所述應用程序不是核心應用,則禁止啟動所述應用程序。
B11、如B10所述的裝置,
所述第一判斷模塊,具體用于通過調(diào)用接口識別所述應用程序的標識信息來判斷所述應用程序是否具有自啟權(quán)限。
B12、如B10所述的裝置,所述預設(shè)匹配條件包括行為匹配條件、類名全匹配條件以及行為前綴匹配條件。
B13、如B9-B12中任一項所述的裝置,
所述獲取單元,具體用于通過在framework層調(diào)用檢測函數(shù)來獲取所述應用程序?qū)淖詥幽J健?/p>
B14、如B13所述的裝置,所述裝置還包括:
判斷單元,用于判斷所述應用程序的啟動方式是否為界面啟動方式;
所述判斷單元,具體用于若所述應用程序的啟動方式是界面啟動方式,則根據(jù)用戶操作的行為數(shù)據(jù)啟動所述應用程序;
所述判斷單元,具體還用于若所述應用程序的啟動方式不是界面啟動方式,獲取所述應用程序?qū)淖詥幽J健?/p>
B15、如B14所述的裝置,所述裝置還包括:
統(tǒng)計單元,用于按照預設(shè)時間間隔統(tǒng)計所述應用程序自啟動的處理記錄,將所述處理記錄存放至緩存文件中。
B16、如B15所述的裝置,所述裝置還包括:
更新單元,用于當所述緩存文件中的處理記錄大于預設(shè)閾值時,將所述處理記錄更新至預置數(shù)據(jù)庫中。
C17、一種移動終端,包括處理器和存儲器:
所述存儲器用于存儲執(zhí)行A1至A8中任一項所述方法的程序;
所述處理器被配置為用于執(zhí)行所述存儲器中存儲的程序。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
可以理解的是,上述方法及裝置中的相關(guān)特征可以相互參考。另外,上述實施例中的“第一”、“第二”等是用于區(qū)分各實施例,而并不代表各實施例的優(yōu)劣。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的定位系統(tǒng)性能的優(yōu)化方法及裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。
應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。