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