控制應用自啟動的方法及裝置與流程
2023-04-22 18:49:31
本公開涉及計算機技術領域,特別涉及一種控制應用自啟動的方法及裝置。
背景技術:
目前,諸如手機、平板電腦之類的終端設備中可安裝各類應用(application,APP),以擴充終端設備的功能。
技術實現要素:
本公開實施例提供了一種控制應用自啟動的方法及裝置。所述技術方案如下:
根據本公開實施例的第一方面,提供了一種控制應用自啟動的方法,所述方法包括:
獲取觸發啟動目標服務的觸發操作;
在獲取到所述觸發操作之後,檢測註冊所述目標服務的目標應用是否具備自啟動權限;其中,所述自啟動權限是指自動啟動運行的權限;
若所述目標應用不具備所述自啟動權限,則禁止所述目標應用採用綁定服務方式在啟動所述目標服務的過程中自啟動。
可選地,所述檢測註冊所述目標服務的目標應用是否具備自啟動權限,包括:
調用權限檢測方法,向所述權限檢測方法發送權限檢測請求;其中,所述權限檢測請求中攜帶所述目標應用的標識,所述權限檢測方法用於獲取所述目標應用是否具備所述自啟動權限;
獲取所述權限檢測方法返回的權限檢測結果;其中,所述權限檢測結果為:所述目標應用具備所述自啟動權限,或者,所述目標應用不具備所述自啟動權限。
可選地,所述方法還包括:
在獲取到所述觸發操作之後,檢測所述目標應用的進程中所述目標服務所屬的進程是否已啟動;
若所述目標服務所屬的進程未啟動,則從所述檢測註冊所述目標服務的目標應用是否具備自啟動權限的步驟開始執行。
可選地,所述檢測所述目標應用的進程中所述目標服務所屬的進程是否已啟動,包括:
調用進程檢測方法,向所述進程檢測方法發送進程檢測請求;其中,所述進程檢測請求中攜帶所述目標服務所屬的進程的標識,所述進程檢測方法用於獲取所述目標服務所屬的進程是否已啟動;
獲取所述進程檢測方法返回的進程檢測結果;其中,所述進程檢測結果為:所述目標服務所屬的進程已啟動,或者,所述目標服務所屬的進程未啟動。
可選地,所述獲取觸發啟動目標服務的觸發操作,包括:
獲取觸發啟動拼寫檢查服務的觸發操作;
其中,所述拼寫檢查服務是具有拼寫檢查功能的系統服務。
可選地,所述方法還包括:
接收雲端伺服器發送的所述目標應用的所述自啟動權限的推薦開關設置,所述推薦開關設置由所述雲端伺服器根據為所述目標應用開啟所述自啟動權限的用戶數量和為所述目標應用關閉所述自啟動權限的用戶數量確定;
根據所述推薦開關設置為所述目標應用開啟或關閉所述自啟動權限。
根據本公開實施例的第二方面,提供了一種控制應用自啟動的裝置,所述裝置包括:
獲取模塊,被配置為獲取觸發啟動目標服務的觸發操作;
第一檢測模塊,被配置為在獲取到所述觸發操作之後,檢測註冊所述目標服務的目標應用是否具備自啟動權限;其中,所述自啟動權限是指自動啟動運行的權限;
禁止模塊,被配置為若所述目標應用不具備所述自啟動權限,則禁止所述目標應用採用綁定服務方式在啟動所述目標服務的過程中自啟動。
可選地,所述第一檢測模塊,包括:
第一發送子模塊,被配置為調用權限檢測方法,向所述權限檢測方法發送權限檢測請求;其中,所述權限檢測請求中攜帶所述目標應用的標識,所述權限檢測方法用於獲取所述目標應用是否具備所述自啟動權限;
第一獲取子模塊,被配置為獲取所述權限檢測方法返回的權限檢測結果;其中,所述權限檢測結果為:所述目標應用具備所述自啟動權限,或者,所述目標應用不具備所述自啟動權限。
可選地,所述裝置還包括:
第二檢測模塊,被配置為在獲取到所述觸發操作之後,檢測所述目標應用的進程中所述目標服務所屬的進程是否已啟動;
所述第一檢測模塊,還被配置為當所述目標服務所屬的進程未啟動時,從所述檢測註冊所述目標服務的目標應用是否具備自啟動權限的步驟開始執行。
可選地,所述第二檢測模塊,包括:
第二發送子模塊,被配置為調用進程檢測方法,向所述進程檢測方法發送進程檢測請求;其中,所述進程檢測請求中攜帶所述目標服務所屬的進程的標識,所述進程檢測方法用於獲取所述目標服務所屬的進程是否已啟動;
第二獲取子模塊,被配置為獲取所述進程檢測方法返回的進程檢測結果;其中,所述進程檢測結果為:所述目標服務所屬的進程已啟動,或者,所述目標服務所屬的進程未啟動。
可選地,所述獲取模塊,被配置為獲取觸發啟動拼寫檢查服務的觸發操作;
其中,所述拼寫檢查服務是具有拼寫檢查功能的系統服務。
可選地,所述裝置還包括:
接收模塊,被配置為接收雲端伺服器發送的所述目標應用的所述自啟動權限的推薦開關設置,所述推薦開關設置由所述雲端伺服器根據為所述目標應用開啟所述自啟動權限的用戶數量和為所述目標應用關閉所述自啟動權限的用戶數量確定;
開關模塊,被配置為根據所述推薦開關設置為所述目標應用開啟或關閉所述自啟動權限。
根據本公開實施例的第三方面,提供了一種控制應用自啟動的裝置,所述裝置包括:
處理器;
用於存儲所述處理器的可執行指令的存儲器;
其中,所述處理器被配置為:
獲取觸發啟動目標服務的觸發操作;
在獲取到所述觸發操作之後,檢測註冊所述目標服務的目標應用是否具備自啟動權限;其中,所述自啟動權限是指自動啟動運行的權限;
當所述目標應用不具備所述自啟動權限時,禁止所述目標應用採用綁定服務方式在啟動所述目標服務的過程中自啟動。
本公開實施例提供的技術方案可以包括以下有益效果:
通過在獲取到觸發啟動目標服務的觸發操作之後,檢測註冊目標服務的目標應用是否具備自啟動權限,在檢測結果為目標應用不具備自啟動權限時,禁止目標應用採用綁定服務方式在啟動目標服務的過程中自啟動;解決了相關技術中由於應用可通過服務(如拼寫檢查服務)實現自啟動,導致佔用系統內存及增加耗電量的問題;由於為應用設置自啟動權限,僅允許具備自啟動權限的應用通過服務實現自啟動,避免未經允許的應用通過服務實現自啟動,達到了節省系統內存及節省耗電量的技術效果。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本公開。
附圖說明
此處的附圖被併入說明書中並構成本說明書的一部分,示出了符合本公開的實施例,並與說明書一起用於解釋本公開的原理。
圖1是根據一示例性實施例示出的一種控制應用自啟動的方法的流程圖;
圖2是根據另一示例性實施例示出的一種控制應用自啟動的方法的流程圖;
圖3是根據一示例性實施例示出的一種控制應用自啟動的裝置的框圖;
圖4是根據另一示例性實施例示出的一種控制應用自啟動的裝置的框圖;
圖5是根據一示例性實施例示出的一種裝置的框圖。
具體實施方式
這裡將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
發明人在對控制應用自啟動方面進行研究的過程中發現,應用可通過拼寫檢查服務實現自啟動,也即應用通過拼寫檢查服務實現自動啟動運行。拼寫檢查服務是具有拼寫檢查功能的系統服務。應用註冊拼寫檢查服務之後,應用可通過綁定服務(bind service)方式在終端設備啟動拼寫檢查服務的過程中自啟動。由於應用可通過服務(如拼寫檢查服務)實現自啟動,導致佔用系統內存及增加耗電量。其中,服務即為service,服務在終端設備的後臺運行,主要用於處理某些耗時的邏輯或者執行需要長期運行的任務。基於此,本公開實施例提供了一種控制應用自啟動的方法,和基於這個方法的裝置,以解決上述相關技術中存在的問題。本公開實施例提供的技術方案,核心思想是為應用設置自啟動權限,實現對應用的自啟動進行控制。其中,自啟動權限是指自動啟動運行的權限。通過對終端設備中安裝的各個應用是否具備自啟動權限進行管理,僅允許具備自啟動權限的應用通過服務實現自啟動,避免未經允許的應用通過服務實現自啟動。
本公開實施例提供的方法,各步驟的執行主體可以是終端設備,如手機、平板電腦、電子書閱讀器、多媒體播放設備、PDA(Personal Digital Assistant,個人數字助理)、可穿戴設備等。在本公開實施例中,對終端設備的作業系統的類型不作限定,如Android(安卓)作業系統、iOS作業系統、Windows Phone作業系統等。
圖1是根據一示例性實施例示出的一種控制應用自啟動的方法的流程圖。該方法可以包括如下幾個步驟:
在步驟101中,獲取觸發啟動目標服務的觸發操作。
終端設備獲取觸發啟動目標服務的觸發操作。該觸發操作通常是由用戶執行的操作,該觸發操作能夠觸發作業系統啟動目標服務。
其中,目標服務是應用註冊該目標服務之後,應用通過綁定服務方式在啟動目標服務的過程中能夠實現自啟動的服務。可選地,目標服務為系統服務,系統服務主要用於執行指定的系統功能。在一個示例中,目標服務為拼寫檢查服務。拼寫檢查服務也稱為拼寫檢查工具,是具有拼寫檢查功能的系統服務。拼寫檢查功能是指檢查在輸入框中輸入字詞時的拼寫錯誤的功能。例如,通過獲取輸入框內當前輸入的字詞,將其與內置詞典中的字詞進行比對,如果內置詞典中沒有當前輸入的字詞,則該當前輸入的字詞將被視為存在拼寫錯誤的字詞。應用註冊拼寫檢查服務之後,能夠通過綁定服務方式在系統啟動拼寫檢查服務的過程中實現自啟動。在一個示例中,終端設備獲取觸發啟動拼寫檢查服務的觸發操作。例如,該觸發操作為用戶在輸入框中輸入字詞的操作。
另外,應用可通過在其信息描述文件中申明註冊目標服務。信息描述文件是應用的基礎配置文件。以Android應用為例,信息描述文件為AndroidManifest.xml文件。在信息描述文件中,開發者可以說明應用的基礎信息,比如應用入口頁面、應用所需要的權限信息、應用的版本信息等。示例性地,應用可通過在其信息描述文件中申明註冊拼寫檢查服務。
在步驟102中,在獲取到觸發操作之後,檢測註冊目標服務的目標應用是否具備自啟動權限。
終端設備在獲取到觸發操作之後,檢測註冊目標服務的目標應用是否具備自啟動權限。其中,自啟動權限是指自動啟動運行的權限。在本公開實施例中,通過添加自啟動權限,使得系統能夠對應用通過服務實現自啟動進行控制。示例性地,自啟動權限的名稱為OP_AutoStart。可選地,為自啟動權限設置對應的標識(也稱為值),用於唯一標識該權限,不同的權限所對應的標識也不同。
另外,若終端設備中僅存在一個應用註冊目標服務,則目標應用即為該應用,終端設備檢測該應用是否具備自啟動權限。若終端設備中存在多個應用註冊目標服務,則目標應用為該多個應用中的一個默認應用,終端設備檢測該默認應用是否具備自啟動權限。默認應用可以由系統或用戶自定義選定。
可選地,本步驟包括如下幾個子步驟:
1,調用權限檢測方法,向權限檢測方法發送權限檢測請求;
其中,權限檢測請求中攜帶目標應用的標識,應用的標識用於唯一標識一個應用。可選地,目標應用的標識包括目標應用的包名(packagename)。
權限檢測方法用於獲取目標應用是否具備自啟動權限。示例性地,假設權限檢測方法為AutoStartManagerService.isAllowStartService方法,作業系統調用AutoStartManagerService.isAllowStartService方法,並向該方法發送攜帶有目標應用的標識的權限檢測請求。
2,獲取權限檢測方法返回的權限檢測結果;
其中,權限檢測結果為:目標應用具備自啟動權限,或者,目標應用不具備自啟動權限。
示例性地,AutoStartManagerService.isAllowStartService方法被調用之後,根據目標應用的標識,查詢獲取目標應用是否具備自啟動權限。若目標應用具備自啟動權限,則AutoStartManagerService.isAllowStartService方法向作業系統返回用於指示具備自啟動權限的第一指示信息,例如第一指示信息為true;若目標應用不具備自啟動權限,則AutoStartManagerService.isAllowStartService方法向作業系統返回用於指示不具備自啟動權限的第二指示信息,例如第二指示信息為false。
在一個示例中,以目標服務為拼寫檢查服務為例,在用於實現採用綁定服務方式實現自啟動的代碼中插入用於實現檢測應用是否具備自啟動權限的代碼,該代碼示例可以如下:
在步驟103中,若目標應用不具備自啟動權限,則禁止目標應用採用綁定服務方式在啟動目標服務的過程中自啟動。
若目標應用不具備自啟動權限,則終端設備禁止目標應用採用綁定服務方式在啟動目標服務的過程中自啟動。綁定服務方式是常見的應用啟動方式之一,應用通過綁定服務方式能夠在其綁定的服務被調用啟動的過程中啟動運行。若目標應用不具備自啟動權限,則終端設備在啟動目標服務的過程中不執行綁定服務的流程,以使得目標應用無法啟動運行。
另外,若目標應用具備自啟動權限,則終端設備允許目標應用採用綁定服務方式在啟動目標服務的過程中自啟動,也即終端設備在啟動目標服務的過程中執行綁定服務的流程,以使得目標應用啟動運行。
綜上所述,本實施例提供的方法,通過在獲取到觸發啟動目標服務的觸發操作之後,檢測註冊目標服務的目標應用是否具備自啟動權限,在檢測結果為目標應用不具備自啟動權限時,禁止目標應用採用綁定服務方式在啟動目標服務的過程中自啟動;解決了相關技術中由於應用可通過服務(如拼寫檢查服務)實現自啟動,導致佔用系統內存及增加耗電量的問題;由於為應用設置自啟動權限,僅允許具備自啟動權限的應用通過服務實現自啟動,避免未經允許的應用通過服務實現自啟動,達到了節省系統內存及節省耗電量的技術效果。
在基於圖1所示實施例提供的另一可選實施例中,如圖2所示,該控制應用自啟動的方法可以包括如下幾個步驟:
在步驟201中,獲取觸發啟動目標服務的觸發操作。
有關步驟201可參見上文針對步驟101的介紹和說明,本實施例對此不再贅述。
在步驟202中,在獲取到觸發操作之後,檢測目標應用的進程中目標服務所屬的進程是否已啟動。若是,則結束流程;若否,則執行下述步驟203。
終端設備在獲取到觸發操作之後,檢測目標應用的進程中目標服務所屬的進程是否已啟動。如果目標服務所屬的進程未啟動,則執行下述權限檢測步驟;如果目標服務所屬的進程已啟動,則直接跳過下述權限檢測步驟,執行綁定服務的流程。通過上述方式,能夠避免執行不必要的權限檢測步驟,節省系統處理開銷。
可選地,本步驟包括如下幾個子步驟:
1,調用進程檢測方法,向進程檢測方法發送進程檢測請求;
其中,進程檢測請求中攜帶目標服務所屬的進程的標識,如進程名(process name)。進程檢測方法用於獲取目標服務所屬的進程是否已啟動。
示例性地,假設進程檢測方法為ApiActivityManagerService.getProcessRecordLocked方法,作業系統調用ApiActivityManagerService.getProcessRecordLocked方法,並向該方法發送攜帶目標服務所屬的進程的標識的進程檢測請求。
2,獲取進程檢測方法返回的進程檢測結果;
其中,進程檢測結果為:目標服務所屬的進程已啟動,或者,目標服務所屬的進程未啟動。
示例性地,ApiActivityManagerService.getProcessRecordLocked方法被調用之後,根據目標服務所屬的進程的標識,查詢獲取目標服務所屬的進程是否已啟動。若目標服務所屬的進程已啟動,則ApiActivityManagerService.getProcessRecordLocked方法向作業系統返回用於指示進程已啟動的第三指示信息,例如第三指示信息不為null;若目標服務所屬的進程未啟動,則ApiActivityManagerService.getProcessRecordLocked方法向作業系統返回用於指示進程未啟動的第四指示信息,例如第四指示信息為null。
在步驟203中,檢測註冊目標服務的目標應用是否具備自啟動權限。若是,則執行下述步驟204;若否,則執行下述步驟205。
在步驟204中,允許目標應用採用綁定服務方式在啟動目標服務的過程中自啟動。
在步驟205中,禁止目標應用採用綁定服務方式在啟動目標服務的過程中自啟動。
有關步驟203-205可參見上文針對步驟102-103的介紹和說明,本實施例對此不再贅述。
本實施例提供的方法,還通過在獲取到觸發啟動目標服務的觸發操作之後,檢測目標應用的進程中目標服務所屬的進程是否已啟動,在檢測結果為目標服務所屬的進程未啟動的情況下執行後續的權限檢測步驟,而在檢測結果為目標服務所屬的進程已啟動的情況下即可直接結束流程,不執行後續的權限檢測步驟,避免執行不必要的權限檢測步驟,節省系統處理開銷。
需要補充說明的是,應用是否具備自啟動權限,可以由系統默認設置,也可由用戶自定義設置。
可選地,作業系統所對應的雲端伺服器中可分別統計為各個應用開啟/關閉自啟動權限的用戶數量。對於某一應用來說,雲端伺服器統計為該應用開啟自啟動權限的用戶數量和為該應用關閉自啟動權限的用戶數量,根據上述統計結果確定該應用的自啟動權限的推薦開關設置。示例性地,以目標應用為例,雲端伺服器根據為目標應用開啟自啟動權限的用戶數量和關閉自啟動權限的用戶數量的比例,確定目標應用的自啟動權限的推薦開關設置。在終端設備安裝目標應用之後,雲端伺服器可將目標應用的自啟動權限的推薦開關設置發送給終端設備;相應地,終端設備接收雲端伺服器發送的目標應用的自啟動權限的推薦開關設置。推薦開關設置是指推薦開啟或關閉自啟動權限。終端設備根據推薦開關設置為目標應用開啟或關閉自啟動權限。在一個示例中,終端設備根據該推薦開關設置自動設置為目標應用開啟或關閉自啟動權限。例如,若推薦開關設置為開啟,則終端設備為目標應用開啟自啟動權限;若推薦開關設置為關閉,則終端設備為目標應用關閉自啟動權限。在另一示例中,終端設備將該推薦開關設置進行顯示,由用戶結合該推薦開關設置和自身實際需求設置為目標應用開啟或關閉自啟動權限,終端設備獲取用戶設置的權限設置指示,根據用戶設置的權限設置指示為目標應用開啟或關閉自啟動權限。另外,雲端伺服器可在終端設備安裝目標應用之後,向終端設備發送目標應用的自啟動權限的推薦開關設置;雲端伺服器也可每隔預定時間間隔向終端設備發送目標應用的自啟動權限的推薦開關設置。
在一個示例中,對於某一應用來說,若為該應用開啟自啟動權限的用戶數量大於為該應用關閉自啟動權限的用戶數量,則雲端伺服器確定該應用的自啟動權限的推薦開關設置為開啟;若為該應用開啟自啟動權限的用戶數量小於為該應用關閉自啟動權限的用戶數量,則雲端伺服器確定該應用的自啟動權限的推薦開關設置為關閉。
在另一示例中,對於某一應用來說,若為該應用開啟自啟動權限的用戶數量佔用戶總數的比例大於第一閾值,則雲端伺服器確定該應用的自啟動權限的推薦開關設置為開啟;若為該應用開啟自啟動權限的用戶數量佔用戶總數的比例小於第二閾值,則雲端伺服器確定該應用的自啟動權限的推薦開關設置為關閉。其中,第一閾值等於第二閾值,或者,第一閾值大於第二閾值。用戶總數是指為該應用開啟自啟動權限的用戶數量與為該應用關閉自啟動權限的用戶數量的總和。
下述為本公開裝置實施例,可以用於執行本公開方法實施例。對於本公開裝置實施例中未披露的細節,請參照本公開方法實施例。
圖3是根據一示例性實施例示出的一種控制應用自啟動的裝置的框圖。該裝置具有實現上述方法示例的功能,所述功能可以由硬體實現,也可以由硬體執行相應的軟體實現。該裝置可以包括:獲取模塊301、第一檢測模塊302和禁止模塊303。
獲取模塊301,被配置為獲取觸發啟動目標服務的觸發操作。
第一檢測模塊302,被配置為在獲取到所述觸發操作之後,檢測註冊所述目標服務的目標應用是否具備自啟動權限;其中,所述自啟動權限是指自動啟動運行的權限。
禁止模塊303,被配置為當所述目標應用不具備所述自啟動權限時,禁止所述目標應用採用綁定服務方式在啟動所述目標服務的過程中自啟動。
綜上所述,本實施例提供的裝置,通過在獲取到觸發啟動目標服務的觸發操作之後,檢測註冊目標服務的目標應用是否具備自啟動權限,在檢測結果為目標應用不具備自啟動權限時,禁止目標應用採用綁定服務方式在啟動目標服務的過程中自啟動;解決了相關技術中由於應用可通過服務(如拼寫檢查服務)實現自啟動,導致佔用系統內存及增加耗電量的問題;由於為應用設置自啟動權限,僅允許具備自啟動權限的應用通過服務實現自啟動,避免未經允許的應用通過服務實現自啟動,達到了節省系統內存及節省耗電量的技術效果。
在基於圖3所示實施例提供的一個可選實施例中,如圖4所示,所述第一檢測模塊302,包括:第一發送子模塊302a和第一獲取子模塊302b。
第一發送子模塊302a,被配置為調用權限檢測方法,向所述權限檢測方法發送權限檢測請求;其中,所述權限檢測請求中攜帶所述目標應用的標識,所述權限檢測方法用於獲取所述目標應用是否具備所述自啟動權限。
第一獲取子模塊302b,被配置為獲取所述權限檢測方法返回的權限檢測結果;其中,所述權限檢測結果為:所述目標應用具備所述自啟動權限,或者,所述目標應用不具備所述自啟動權限。
在基於圖3所示實施例提供的另一可選實施例中,如圖4所示,所述裝置還包括:第二檢測模塊304。
第二檢測模塊304,被配置為在獲取到所述觸發操作之後,檢測所述目標應用的進程中所述目標服務所屬的進程是否已啟動。
所述第一檢測模塊302,還被配置為當所述目標服務所屬的進程未啟動時,檢測註冊所述目標服務的目標應用是否具備所述自啟動權限。
可選地,所述第二檢測模塊304,包括:第二發送子模塊304a和第二獲取子模塊304b。
第二發送子模塊304a,被配置為調用進程檢測方法,向所述進程檢測方法發送進程檢測請求;其中,所述進程檢測請求中攜帶所述目標服務所屬的進程的標識,所述進程檢測方法用於獲取所述目標服務所屬的進程是否已啟動。
第二獲取子模塊304b,被配置為獲取所述進程檢測方法返回的進程檢測結果;其中,所述進程檢測結果為:所述目標服務所屬的進程已啟動,或者,所述目標服務所屬的進程未啟動。
在基於圖3所示實施例提供的另一可選實施例中,所述獲取模塊301,被配置為獲取觸發啟動拼寫檢查服務的觸發操作。其中,所述拼寫檢查服務是具有拼寫檢查功能的系統服務。
在基於圖3所示實施例提供的另一可選實施例中,所述裝置還包括:接收模塊和開關模塊。
接收模塊,被配置為接收雲端伺服器發送的所述目標應用的所述自啟動權限的推薦開關設置,所述推薦開關設置由所述雲端伺服器根據為所述目標應用開啟所述自啟動權限的用戶數量和為所述目標應用關閉所述自啟動權限的用戶數量確定。
開關模塊,被配置為根據所述推薦開關設置為所述目標應用開啟或關閉所述自啟動權限。
需要說明的一點是,上述實施例提供的裝置在實現其功能時,僅以上述各個功能模塊的劃分進行舉例說明,實際應用中,可以根據實際需要而將上述功能分配由不同的功能模塊完成,即將設備的內容結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。
關於上述實施例中的裝置,其中各個模塊執行操作的具體方式已經在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本公開一示例性實施例還提供了一種控制應用自啟動的裝置,能夠實現本公開提供的方法。該裝置包括:處理器,以及用於存儲處理器的可執行指令的存儲器。其中,處理器被配置為:
獲取觸發啟動目標服務的觸發操作;
在獲取到觸發操作之後,檢測註冊目標服務的目標應用是否具備自啟動權限;其中,自啟動權限是指自動啟動運行的權限;
當目標應用不具備自啟動權限時,禁止目標應用採用綁定服務方式在啟動目標服務的過程中自啟動。
可選地,該處理器被配置為:
調用權限檢測方法,向權限檢測方法發送權限檢測請求;其中,權限檢測請求中攜帶目標應用的標識,權限檢測方法用於獲取目標應用是否具備自啟動權限;
獲取權限檢測方法返回的權限檢測結果;其中,權限檢測結果為:目標應用具備自啟動權限,或者,目標應用不具備自啟動權限。
可選地,該處理器還被配置為:
在獲取到觸發操作之後,檢測目標應用的進程中目標服務所屬的進程是否已啟動;
當目標服務所屬的進程未啟動時,從檢測註冊目標服務的目標應用是否具備自啟動權限的步驟開始執行。
可選地,該處理器被配置為:
調用進程檢測方法,向進程檢測方法發送進程檢測請求;其中,進程檢測請求中攜帶目標服務所屬的進程的標識,進程檢測方法用於獲取目標服務所屬的進程是否已啟動;
獲取進程檢測方法返回的進程檢測結果;其中,進程檢測結果為:目標服務所屬的進程已啟動,或者,目標服務所屬的進程未啟動。
可選地,該處理器被配置為:
獲取觸發啟動拼寫檢查服務的觸發操作;
其中,拼寫檢查服務是具有拼寫檢查功能的系統服務。
可選地,該處理器還被配置為:
接收雲端伺服器發送的目標應用的自啟動權限的推薦開關設置,推薦開關設置由雲端伺服器根據為目標應用開啟自啟動權限的用戶數量和為目標應用關閉自啟動權限的用戶數量確定;
根據推薦開關設置為目標應用開啟或關閉自啟動權限。
圖5是根據一示例性實施例示出的一種裝置500的框圖。例如,裝置500可以是行動電話,計算機,數字廣播終端,消息收發設備,遊戲控制臺,平板設備,醫療設備,健身設備,個人數字助理等。
參照圖5,裝置500可以包括以下一個或多個組件:處理組件502,存儲器505,電源組件506,多媒體組件508,音頻組件510,輸入/輸出(I/O)接口512,傳感器組件514,以及通信組件516。
處理組件502通常控制裝置500的整體操作,諸如與顯示,電話呼叫,數據通信,相機操作和記錄操作相關聯的操作。處理組件502可以包括一個或多個處理器520來執行指令,以完成上述的方法的全部或部分步驟。此外,處理組件502可以包括一個或多個模塊,便於處理組件502和其他組件之間的交互。例如,處理組件502可以包括多媒體模塊,以方便多媒體組件508和處理組件502之間的交互。
存儲器505被配置為存儲各種類型的數據以支持在裝置500的操作。這些數據的示例包括用於在裝置500上操作的任何應用程式或方法的指令,聯繫人數據,電話簿數據,消息,圖片,視頻等。存儲器505可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現,如靜態隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃記憶體,磁碟或光碟。
電源組件506為裝置500的各種組件提供電力。電源組件506可以包括電源管理系統,一個或多個電源,及其他與為裝置500生成、管理和分配電力相關聯的組件。
多媒體組件508包括在所述裝置500和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現為觸控螢幕,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關的持續時間和壓力。在一些實施例中,多媒體組件508包括一個前置攝像頭和/或後置攝像頭。當裝置500處於操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或後置攝像頭可以接收外部的多媒體數據。每個前置攝像頭和後置攝像頭可以是一個固定的光學透鏡系統或具有焦距和光學變焦能力。
音頻組件510被配置為輸出和/或輸入音頻信號。例如,音頻組件510包括一個麥克風(MIC),當裝置500處於操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器505或經由通信組件516發送。在一些實施例中,音頻組件510還包括一個揚聲器,用於輸出音頻信號。
I/O接口512為處理組件502和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限於:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
傳感器組件514包括一個或多個傳感器,用於為裝置500提供各個方面的狀態評估。例如,傳感器組件514可以檢測到裝置500的打開/關閉狀態,組件的相對定位,例如所述組件為裝置500的顯示器和小鍵盤,傳感器組件515還可以檢測裝置500或裝置500一個組件的位置改變,用戶與裝置500接觸的存在或不存在,裝置500方位或加速/減速和裝置500的溫度變化。傳感器組件514可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件514還可以包括光傳感器,如CMOS或CCD圖像傳感器,用於在成像應用中使用。在一些實施例中,該傳感器組件515還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通信組件516被配置為便於裝置500和其他設備之間有線或無線方式的通信。裝置500可以接入基於通信標準的無線網絡,如Wi-Fi,2G或3G,或它們的組合。在一個示例性實施例中,通信組件516經由廣播信道接收來自外部廣播管理系統的廣播信號或廣播相關信息。在一個示例性實施例中,所述通信組件516還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基於射頻識別(RFID)技術,紅外數據協會(IrDA)技術,超寬帶(UWB)技術,藍牙(BT)技術和其他技術來實現。
在示例性實施例中,裝置500可以被一個或多個應用專用集成電路(ASIC)、數位訊號處理器(DSP)、數位訊號處理設備(DSPD)、可編程邏輯器件(PLD)、現場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現,用於執行上述方法。
在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質,例如包括指令的存儲器505,上述指令可由裝置500的處理器520執行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質可以是ROM、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光數據存儲設備等。
一種非臨時性計算機可讀存儲介質,當所述存儲介質中的指令由裝置500的處理器執行時,使得裝置500能夠執行上述方法。
應當理解的是,在本文中提及的「多個」是指兩個或兩個以上。「和/或」,描述關聯對象的關聯關係,表示可以存在三種關係,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。字符「/」一般表示前後關聯對象是一種「或」的關係。
本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理並包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正範圍和精神由下面的權利要求指出。
應當理解的是,本公開並不局限於上面已經描述並在附圖中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本公開的範圍僅由所附的權利要求來限制。