本發(fā)明實施例涉及電子設備應用技術,尤其涉及一種自動切換默認Launcher的方法、裝置及終端。
背景技術:
安卓是一種基于Linux的開放源代碼的操作系統(tǒng),主要用于手機、平板電腦、電視或手表等智能終端。在安卓系統(tǒng)中,主要包括操作系統(tǒng)、中間件、用戶界面和應用程序。
其中,Launcher(桌面啟動器)應用程序,是安卓系統(tǒng)加載完畢后第一個啟動的應用程序,其負責處理和響應除應用本身操作外的所有操作,例如包括提供操作界面(即桌面)、響應于點擊桌面上的應用程序圖標而啟動應用程序和設置壁紙等等。在系統(tǒng)運行Launcher應用程序的安卓安裝包(AndroidPackage,APK)之后,完成系統(tǒng)開機。在實際應用中,開發(fā)者或用戶會根據(jù)自身需求定制Launcher,并將定制的Launcher應用程序設置為默認Launcher,從而在開機后自動啟動定制的Launcher。
然而,當定制Launcher應用程序出現(xiàn)持續(xù)崩潰后,用戶將反復看到Launcher應用崩潰的提示,如持續(xù)出現(xiàn)“進程com.android.launcher意外停止”的提示窗口,且用戶無法繼續(xù)使用該智能終端,降低用戶體驗。
技術實現(xiàn)要素:
本發(fā)明提供一種自動切換默認Launcher的方法、裝置及終端,以解決在默認Launcher出現(xiàn)持續(xù)崩潰后,用戶無法繼續(xù)使用該智能終端的問題,提高用戶體驗。
第一方面,本發(fā)明實施例提供了一種自動切換默認Launcher的方法,該方法包括:
在智能終端中內置至少兩個桌面啟動器Launcher,其中一個Launcher設置為所述智能終端開機啟動的默認Launcher;
確定所述默認Launcher運行過程中的異常次數(shù);
若所述異常次數(shù)超過預設閾值,則切換所述默認Launcher對應的Launcher。
第二方面,本發(fā)明實施例還提供了一種自動切換默認Launcher的裝置,該裝置包括:
Launcher內置模塊,用于在智能終端中內置至少兩個桌面啟動器Launcher,其中一個Launcher設置為所述智能終端開機啟動的默認Launcher;
次數(shù)確定模塊,用于確定所述默認Launcher運行過程中的異常次數(shù);
Launcher切換模塊,用于若所述異常次數(shù)超過預設閾值,則切換所述默認Launcher對應的Launcher。
第三方面,本發(fā)明實施例還提供了一種終端,包括第二方面所示的自動切換默認Launcher的裝置。
本發(fā)明通過在智能終端中內置至少兩個桌面啟動器Launcher,其中一個Launcher設置為智能終端開機啟動的默認Launcher;確定默認Launcher運行過程中的異常次數(shù);若異常次數(shù)超過預設閾值,則切換默認Launcher對應的Launcher。實現(xiàn)在智能終端中存在多個Launcher的情況下,當默認Launcher發(fā)生持續(xù)崩潰時,自動切換默認Launcher對應的Launcher,保證默認Launcher崩潰之后智能終端能夠繼續(xù)使用,提高用戶體驗。
附圖說明
圖1為本發(fā)明實施例一中的一種自動切換默認Launcher的方法的流程圖;
圖2是本發(fā)明實施例二中的一種自動切換默認Launcher的方法的流程圖;
圖3是本發(fā)明實施例三中的一種自動切換默認Launcher的方法的流程圖;
圖4是本發(fā)明實施例四中的一種自動切換默認Launcher的裝置的結構示意圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關的部分而非全部結構。
實施例一
圖1為本發(fā)明實施例一提供的一種自動切換默認Launcher的方法的流程圖,本實施例可適用于解決智能終端中默認Launcher發(fā)生持續(xù)崩潰情況,該方法可以由自動切換默認Launcher的裝置來執(zhí)行,該裝置可以采用軟件和/或硬件的方式實現(xiàn),并一般可集成在手機或平板電腦等智能終端中。參見圖1,本實施例提供的方法具體包括如下步驟:
步驟101、在智能終端中內置至少兩個桌面啟動器Launcher,其中一個Launcher設置為智能終端開機啟動的默認Launcher。
其中,在智能終端中內置至少兩個桌面啟動器Launcher的方式有很多,本發(fā)明對此不作限定。如為了滿足自身的需求,開發(fā)者或運營商會研發(fā)定制Launcher,并在智能終端出廠前將定制Launcher以及系統(tǒng)自帶Launcher安裝于智能終端內。又如,用戶還可根據(jù)自身需求,自行在智能終端中安裝Launcher。
在智能終端出廠前,會設置智能終端開機啟動的默認Launcher以在系統(tǒng)開機后啟動默認Launcher,使得用戶在默認Launcher中對智能終端進行操作。優(yōu)選將定制Launcher設置為智能終端開機啟動的默認Launcher,從而在系統(tǒng)開機啟動后,系統(tǒng)自行運行定制Launcher,為用戶展示定制Launcher。用戶還可在系統(tǒng)開機后,在設置界面自行設置智能終端開機啟動的默認Launcher,如用戶進入設置界面后,彈出列有內置的Launcher的列表,將用戶在列表中選擇的Launcher設置為智能終端開機啟動的默認Launcher。
步驟102、確定默認Launcher運行過程中的異常次數(shù)。
當默認Launcher運行過程中出現(xiàn)異常后,智能終端界面會彈出運行崩潰的提示窗口,并需重新啟動默認Launcher。然而當默認Launcher運行過程中出現(xiàn)持續(xù)崩潰時,重新啟動默認Launcher,無法解決持續(xù)崩潰問題,用戶將反復看到彈出的運行崩潰的提示窗口。由于Launcher為系統(tǒng)開機后運行的第一個程序,是其它應用程序的入口,因此在默認Launcher出現(xiàn)持續(xù)崩潰后,用戶將無法繼續(xù)對該智能終端進行操作。
本發(fā)明在系統(tǒng)開機后,通過統(tǒng)計系統(tǒng)開機后默認Launcher運行過程中的異常次數(shù)以檢測默認Launcher是否出現(xiàn)持續(xù)崩潰。
步驟103、若異常次數(shù)超過預設閾值,則切換默認Launcher對應的Launcher。
如果確定默認Launcher運行過程中的異常次數(shù)超過預設閾值,則確定默認Launcher出現(xiàn)持續(xù)崩潰,切換默認Launcher對應的Launcher,啟動切換后的默認Launcher對應的Launcher,則用戶可在切換后的默認Launcher對應的Launcher中對智能終端中的其它應用程序進行操作,保證默認Launcher崩潰之后智能終端能夠繼續(xù)使用。
示例性的,可在每隔一定時間間隔后,若異常次數(shù)未超過預設閾值則將異常次數(shù)清零,以防在系統(tǒng)開機后,對默認Launcher的異常次數(shù)持續(xù)累加導致誤檢測默認Launcher出現(xiàn)持續(xù)崩潰。
本實施例的技術方案,通過在智能終端中內置至少兩個桌面啟動器Launcher,其中一個Launcher設置為智能終端開機啟動的默認Launcher;確定默認Launcher運行過程中的異常次數(shù);若異常次數(shù)超過預設閾值,則切換默認Launcher對應的Launcher。實現(xiàn)在智能終端中存在多個Launcher的情況下,當默認Launcher發(fā)生持續(xù)崩潰時,自動切換默認Launcher對應的Launcher,保證默認Launcher崩潰之后智能終端能夠繼續(xù)使用,提高用戶體驗。
實施例二
圖2為本發(fā)明實施例二提供的一種自動切換默認Launcher的方法的流程圖,本實施例為對上述實施例的進一步優(yōu)化。參見圖2,本實施提供的方法具體包括:
步驟201、在智能終端中內置至少兩個桌面啟動器Launcher,其中一個Launcher設置為所述智能終端開機啟動的默認Launcher;
步驟202、獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本;
在安卓系統(tǒng)中,每個應用程序運行異常時,都會拋出異常,并可打印異常信息到日志文件中,從而可通過查看日志文件中保存的日志信息,確定異常出現(xiàn)的位置和異常的問題。
本發(fā)明在系統(tǒng)啟動后,自動獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本。
優(yōu)選的,按照預設時間間隔,依次獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本。示例性的,第一預設長度為50行,預設時間間隔為1000毫秒。則在系統(tǒng)啟動后,首先獲取日志文件中1-50行的日志信息,得到日志信息取樣標本,并記錄此次日志信息取樣標本中日志信息的最后一行在日志文件中的行數(shù),即50,在相隔預設時間間隔1000毫秒后,從記錄的下一行開始,獲取日志文件中51-100行的日志信息,再次得到日志信息取樣標本。
步驟203、判斷日志信息取樣標本中是否包括當前的默認Launcher的異常信息,若是,執(zhí)行步驟204,否則,執(zhí)行步驟202。
在獲得日志信息取樣標本后,檢測日志信息取樣標本中的日志信息是否包括當前的默認Launcher的異常信息,從而確定默認Launcher是否運行異常。如果日志信息取樣標本中包括當前的默認Launcher的異常信息,則確定默認Launcher運行異常,否則,按照預設時間間隔定時獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本,統(tǒng)計默認Launcher運行過程中的異常次數(shù),持續(xù)檢測默認Launcher是否發(fā)生持續(xù)崩潰。
步驟204、根據(jù)默認Launcher的異常信息對默認Launcher運行過程中的異常次數(shù)累加。
如果日志信息取樣標本中包括默認Launcher的異常信息,則確定默認Launcher運行異常,根據(jù)得到的默認Launcher的異常信息對默認Launcher的異常次數(shù)累加,統(tǒng)計默認Launcher運行過程中的異常次數(shù)。
205、判斷異常次數(shù)是否超過預設閾值,若是,執(zhí)行步驟206,否則,執(zhí)行步驟202。
如果異常次數(shù)超過預設閾值,則確定默認Launcher處于持續(xù)崩潰狀態(tài),切換默認Launcher對應的Launcher;如果異常次數(shù)未超過預設閾值,則按照預設時間間隔定時獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本,持續(xù)檢測默認Launcher是否發(fā)生持續(xù)崩潰。
步驟206、切換默認Launcher對應的Launcher。
本實施例的技術方案通過獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本,判斷日志信息取樣標本中是否包括默認Launcher的異常信息,若包括默認Launcher的異常信息,根據(jù)默認Launcher的異常信息對默認Launcher運行過程中的異常次數(shù)累加。實現(xiàn)根據(jù)日志文件中的日志信息實時統(tǒng)計默認Launcher運行過程中的異常次數(shù),從而持續(xù)檢測默認Launcher是否處于持續(xù)崩潰狀態(tài)。
實施例三
圖3為本發(fā)明實施例三提供的一種自動切換默認Launcher的方法的流程圖,本實施例為對上述實施例的進一步優(yōu)化。參見圖3,本實施提供的方法具體包括:
步驟301、在智能終端中內置至少兩個桌面啟動器Launcher,其中一個Launcher設置為所述智能終端開機啟動的默認Launcher。
步驟302、獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本。
步驟303、判斷日志信息取樣標本中是否包括Exception字段,若是,執(zhí)行步驟304,否則,執(zhí)行步驟302。
若應用程序運行異常,打印的異常信息均會包括Exception字段,因此,可通過檢測日志信息取樣標本中是否包括Exception字段,確定日志信息取樣標本中的日志信息是否包括異常信息。
如由于日志信息為String類型數(shù)據(jù),因此可調用安卓軟件開發(fā)工具包(Android Software Development Kit,Android SDK)中的String類的對比接口public Boolean contains(String input),輸入?yún)?shù)Exception,若返回值為true,則確定日志信息取樣標本中的日志信息包括異常信息。
步驟304、判斷日志信息取樣標本中包括Exception字段的第二預設長度的日志信息是否包括當前的默認Launcher的包名,若是,執(zhí)行步驟305,否則,執(zhí)行步驟302。
在檢測到日志信息取樣標本中的日志信息包括Exception字段,確定日志信息取樣標本中的日志信息包括異常信息后,可通過檢測日志信息取樣標本中包括Exception字段的第二預設長度的日志信息是否包括當前的默認Launcher的包名來確定日志信息取樣標本中包括的異常信息是否為默認Launcher的異常信息。如檢測到日志信息取樣標本中包括2個Exception字段,則分別獲取日志信息取樣標本中2個Exception字段所在行及所在行的上10行和下10行的日志信息,并檢測獲取的Exception字段所在行及所在行的上10行和下10行的日志信息是否包括當前的默認Launcher的包名(Package Name),若包括當前默認Launcher的包名,則說明該Exception為默認Launcher拋出的異常,若不包括當前默認Launcher的包名,則說明該Exception不是默認Launcher拋出的異常,則繼續(xù)獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本,持續(xù)檢測默認Launcher是否發(fā)生持續(xù)崩潰。
步驟305、將日志信息取樣標本中包括默認Launcher的包名的Exception字段的第三預設長度的日志信息緩存。
優(yōu)選的,若日志信息取樣標本中包括Exception字段的第二預設長度的日志信息中包括當前默認Launcher的包名,說明該Exception為默認Launcher拋出的異常,則將該Exception字段的第三預設長度的日志信息緩存,從而保存默認Launcher的異常信息。如若確認獲取的Exception所在行及所在行的上10行和下10行的日志信息包括當前默認Launcher的包名,則將該Exception所在行及所在行的上20行和下20行的日志信息緩存。
步驟306、將默認Launcher運行過程中的異常次數(shù)累加默認Launcher的包名的個數(shù)。
優(yōu)選的,在確認包括當前默認Launcher的包名后,統(tǒng)計該日志信息取樣標本中包括的當前默認Launcher的包名的個數(shù)。如若日志信息取樣標本中有2個包括Exception字段的第二預設長度的日志信息中包括當前默認Launcher的包名,則該日志信息取樣標本中默認Launcher的包名的個數(shù)為2,并將默認Launcher運行過程中的異常次數(shù)累加默認Launcher的包名的個數(shù),統(tǒng)計默認Launcher運行過程中的異常次數(shù)。
步驟307、判斷異常次數(shù)是否超過預設閾值,若是,執(zhí)行步驟308,否則,執(zhí)行步驟302。
步驟308、獲取包括內置的Launcher的包名信息的Launcher列表;
示例性的,可通過PackageMessager類獲取智能終端中的所有Launcher的信息,并保存在一個列表中,從而獲取內置的Launcher的包名信息的Launcher列表。如通過下列程序實現(xiàn):
步驟309、去除Launcher列表中與當前的默認Launcher包名相同的Launcher,得到第一Launcher列表。
通過去除Launcher列表中與當前的默認Launcher包名相同的Launcher,將當前默認Launcher對應的Launcher從Launcher列表中去除以防止再次將當前默認Launcher對應的Launcher切換為默認Launcher對應的Launcher。
步驟310、將第一Launcher列表中任一Launcher確認為目標Launcher,并將默認Launcher對應的Launcher切換為目標Launcher。
在得到第一Launcher列表后,從第一Launcher列表自動選取任一Launcher為目標Launcher,如可選取列表中的第一個Launcher為目標Launcher。并將默認Launcher對應的Launcher切換為目標Launcher,從而啟動目標Launcher,用戶在目標Launcher中,對其它應用程序進行操作,保證默認Launcher崩潰之后智能終端能夠繼續(xù)使用。
步驟311、獲取日志文件中未被獲取的日志信息。
將默認Launcher對應的Launcher切換為目標Launcher后,獲取日志文件中未被獲取的所有日志信息,以獲取日志文件中未被獲取的異常信息。
步驟312、獲取未被獲取的日志信息中包括切換前默認Launcher的包名的Exception字段的第三預設長度的日志信息并緩存。
示例性的,在獲取的未被獲取的日志信息中,檢測是否包括Exception字段,并檢測包括Exception字段的第二預設長度的日志信息中是否包括切換前默認Launcher對應的Launcher的包名,若包括,則緩存包括該Exception字段的第三預設長度的日志信息,從而保存未被獲取的切換前默認Launcher對應的Launcher的異常信息。
步驟313、將所有緩存的日志信息輸出至目標目錄中。
優(yōu)選的,將各緩存的日志信息按照緩存的時間先后順序保存在同一文件中,再將該文件輸出到指定的目標目錄中,從而開發(fā)維護人員可在目標目錄中查看并分析發(fā)生持續(xù)崩潰的Launcher的異常信息,便于開發(fā)維護人員進行維護。
本實施例的技術方案,通過判斷日志信息取樣標本中包括Exception字段的第二預設長度的日志信息是否包括當前的默認Launcher的包名,若包括默認Launcher的包名,將默認Launcher運行過程中的異常次數(shù)累加默認Launcher的包名的個數(shù)。從而實現(xiàn)方便快捷地對默認Launcher運行過程中的異常次數(shù)進行統(tǒng)計,檢測默認Launcher是否發(fā)生持續(xù)崩潰。通過獲取包括內置的Launcher的包名信息的Launcher列表,去除Launcher列表中與當前的默認Launcher包名相同的Launcher,得到第一Launcher列表,將第一Launcher列表中任一Launcher確認為目標Launcher,并將默認Launcher對應的Launcher切換為目標Launcher。從而獲取智能終端中內置的所有Launcher的信息,并將發(fā)生持續(xù)崩潰的Launcher去除,自動將除持續(xù)崩潰的Launcher之外的任一Launcher確認為目標Launcher,并將默認Launcher對應的Launcher切換為目標Launcher,進而啟動目標Launcher,使得用戶在目標Launcher中對智能終端中的其它應用程序進行操作,保證默認Launcher崩潰之后智能終端能夠繼續(xù)使用。通過緩存出現(xiàn)持續(xù)崩潰的Launcher的異常信息并輸出至目標目錄,便于開發(fā)維護人員在目標目錄中查看并分析發(fā)生持續(xù)崩潰的Launcher的異常信息,為開發(fā)維護人員提供便利。
實施例四
圖4為本發(fā)明實施例四提供的一種自動切換默認Launcher的裝置的結構示意圖,上述裝置用于實現(xiàn)上述實施例提供的自動切換默認Launcher的方法,該裝置包括:
Launcher內置模塊401,用于在智能終端中內置至少兩個桌面啟動器Launcher,其中一個Launcher設置為所述智能終端開機啟動的默認Launcher;
次數(shù)確定模塊402,用于確定所述默認Launcher運行過程中的異常次數(shù);
Launcher切換模塊403,用于若所述異常次數(shù)超過預設閾值,則切換所述默認Launcher對應的Launcher。
上述方案中,可選的是,所述次數(shù)確定模塊包括:
標本取樣單元,用于獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本;
異常信息判斷單元,用于判斷所述日志信息取樣標本中是否包括當前的所述默認Launcher的異常信息;
異常次數(shù)累加單元,用于若包括所述默認Launcher的異常信息,根據(jù)所述默認Launcher的異常信息對所述默認Launcher運行過程中的異常次數(shù)累加。
上述方案中,可選的是,所述異常信息判斷單元具體用于:
判斷所述日志信息取樣標本中是否包括Exception字段;
若是,判斷所述日志信息取樣標本中包括所述Exception字段的第二預設長度的日志信息是否包括當前的所述默認Launcher的包名;
相應的,所述異常次數(shù)累加單元具體用于:
若包括所述默認Launcher的包名,將所述默認Launcher運行過程中的異常次數(shù)累加所述默認Launcher的包名的個數(shù)。
上述方案中,可選的是,Launcher切換模塊具體用于:
獲取包括內置的所述Launcher的包名信息的Launcher列表;
去除所述Launcher列表中與當前的所述默認Launcher包名相同的Launcher,得到第一Launcher列表;
將所述第一Launcher列表中任一Launcher確認為目標Launcher,并將所述默認Launcher對應的Launcher切換為所述目標Launcher。
上述方案中,可選的是,所述異常次數(shù)累加單元還用于:若包括當前的所述默認Launcher的包名,將所述日志信息取樣標本中包括所述默認Launcher的包名的Exception字段的第三預設長度的日志信息緩存。
上述方案中,優(yōu)選的是,還包括信息緩存模塊,具體用于:
獲取所述日志文件中未被獲取的日志信息;
獲取所述未被獲取的日志信息中包括切換前默認Launcher的包名的Exception字段的第三預設長度的日志信息并緩存;
將所有緩存的日志信息輸出至目標目錄中。
上述方案中,優(yōu)選的是,標本取樣單元具體用于:
按照預設時間間隔,依次獲取日志文件中第一預設長度的日志信息,得到日志信息取樣標本。
上述方案中,優(yōu)選的是,所述默認Launcher對應的Launcher初始設置為定制Launcher。
實施例五
本發(fā)明實施例五提供了一種終端,該終端集成了本發(fā)明實施例四所示的自動切換默認Launcher的裝置,可通過執(zhí)行自動切換默認Launcher的方法來進行自動切換默認Launcher。
示例性的,本實施例中的終端具體可為手機、平板電腦及電視等智能終端。
在用戶使用本實施例中的終端過程中,在終端中存在多個Launcher的情況下,持續(xù)檢測默認Launcher是否發(fā)生持續(xù)崩潰,當默認Launcher發(fā)生持續(xù)崩潰時,自動切換默認Launcher對應的Launcher,保證默認Launcher崩潰之后智能終端能夠繼續(xù)使用,提高用戶體驗。
上述裝置可執(zhí)行本發(fā)明任意實施例所提供的方法,具備執(zhí)行上述方法相應的功能模塊和有益效果。未在本實施例中詳盡描述的技術細節(jié),可參見本發(fā)明任意實施例所提供的方法。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發(fā)明的保護范圍。因此,雖然通過以上實施例對本發(fā)明進行了較為詳細的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權利要求范圍決定。