,一個Activity組件用于展示一個用戶界面,其背后是相應的各類函數。該用戶界面可以響應于用戶操作而產生事件行為,其函數在運行時執行諸如調用接口函數或者各類資源時,也可產生所述的事件行為。本領域技術人員對此原理應當能予以理解,恕不贅述。
[0092]如前所述,所述日志數據的產生需要預先設置打點功能。一種方式中,所述日志數據具體依據針對該軟件的不同功能頁面相對應的功能模塊的用戶操作事件行為進行打點產生。例如在上述的一個Activity組件的點擊事件函數中寫入實現日志數據打點的代碼,在運行時,便可響應于對該用戶界面的點擊事件而產生一個預設了相對應的日志數據。另一種方式中,上述用于實現打點的代碼預置于某些并非由系統定義的函數中,由技術人員靈活確定,使得所述日志數據具體依據針對該軟件的不同功能頁面相對應的功能模塊的運行過程事件行為進行打點產生。例如,在一個后臺功能模塊中,當運行到特點指令之后即執行一次打點,產生相應的日志數據,起到類似于軟件調試中的預設調試點的效果。
[0093]對所述問題類型的分類,可以依照一定的原則,由本領域技術人員靈活確定。例如,所述日志數據按照屬于其所屬的宿主模塊的事實屬性進行歸類,由此,用于實現同一應用功能的若干個組件可以預置相同的打點代碼,使得作用于該應用功能不同組件的操作事件可以產生相同的問題類型的日志數據,有利于通過多個相關組件確定某一應用功能是否存在某種問題,典型地如獲知該應用功能的使用頻度。又如,所述日志數據按照不同的事件行為進行歸類,在不同的組件的相同事件行為中植入所述的同一打點代碼,同理可以將問題類型與事件行為建立起對應性。本領域技術人員參照此處的揭示,足以知曉本步驟的具體實現。
[0094]步驟SI2,依據預設規則處理所述日志數據,使所述日志數據經數學統計獲得相應的結果數據。
[0095]所述的日志數據,在計算機存儲時,首先是以日志記錄的方式存在的,可以存儲于系統的日志數據庫中,也可以存儲于軟件自行預置的日志文件中。通過對相應的數據庫或文件的讀取,可以獲得包括問題類型與記錄條數之類的日志數據。
[0096]本發明主要采用統計學上公知的卡方檢驗法對所述的日志數據進行數學處理,可以采用至少兩種實施方式來實現本步驟,一種是通過遠程服務器來實現,另一種則可在終端本機上執行實現。兩種方式的原理相同,只是數據分布關系不同,也即視后述的用于進行統計決策的大數據特別是理論頻數是存在于本機中還是存在于遠程服務器而決定執行卡方檢測法所在的空間位置。
[0097]對于前述的第一種方式,終端本機可以先行確定各問題類型日志數據的實際頻數,利用這些信息打包成請求判定軟件問題的用戶請求,提交到遠程服務器做統計學分析。
[0098]為此而引入揭示本發明的一種軟件問題判定方法,以便實現所述的卡方檢驗法,具體對應于前述的第一種方式。如圖2所示,該方法包括如下步驟:
[0099]步驟S21,接收請求判定軟件問題的用戶請求,從中解析出針對特定軟件所產生日志數據而統計得出的若干問題類型日志數據的實際頻數。
[0100]所述的用戶請求被遠程服務器接收后,遠程服務器可以對應從中解析其中的實際頻數信息,這些信息是對應于終端的特定軟件的多個問題類型而統計得出的,因此具有針對性。對這些實際頻數加以卡方檢驗,得出的結果數據自然是對應于所述特定軟件的。
[0101]步驟S22,依據預設規則,從預設數據庫的數據中確定屬于該軟件的理論頻數,利用所述理論頻數和實際頻數,以卡方檢驗法計算得出該些問題類型的實際頻數對應的卡方值。
[0102]所述的預設規則,便是依照卡方檢驗法所靈活確定的算法。所述預設數據庫中,包括有依據所述軟件的若干歷史版本在運行時產生的日志數據以卡方檢驗法統計而得的所述理論頻數及相應的卡方值,以此作判定該軟件是否存在該些類型相對應的問題時的預定閾值的比較基準。所述預設數據庫中包括有不同卡方值范圍與軟件問題具體性質之間對應關系的數據記錄,其中的卡方值范圍限定所述的預定閾值,通過查找該些數據記錄確定相應的軟件問題。應當注意的是,軟件問題未必同于與日志數據相對應的所述問題類型,軟件問題可以是程序員預先歸類劃分的各種不同性質的內容,當然也可以與所述問題類型存在邏輯上的關聯性甚至具有相同的表述,但彼此不應混為一談,軟件問題表現在數據記錄上是獨立于所述的問題類型的。較佳的,所述軟件問題至少包括如下兩種定義任意之一:其一用于表征功能模塊的使用率降低;其二用于表征功能模塊的故障率提高。
[0103]所述諸多問題類型的實際頻數對應的卡方值的具體計算方式,在于依據該些實際頻數與所述理論頻數的差值平方與所述理論頻數之比的累計之和而確定。此一計算方式為卡方檢驗法的基本原理,實踐中,可以靈活變通,對其中所用的參數、變量進行靈活設置。由此可見,遠程服務器可以依據用戶請求所包含的實際頻數,結合采集和加工的大數據并以此確定的理論頻數,將所述的實際頻數轉換為卡方值。
[0104]步驟S23,在所述卡方值與預定閾值不符時,判定該軟件存在該些類型相對應的問題,并反饋相對應的結果數據。
[0105]如前所述,所述的預定閾值由所述預設數據庫的大數據,也即預先從各終端采集的數據,計算出其正常的卡方值來確定,可以是一個具體的數值,也可以是一個數值范圍,以此來框限依據實際頻數所計算得出的卡方值所對應的軟件問題。由此,利用依據實際頻數計算得出的卡方值,便可在該數據庫中查找出相對應的軟件問題,這些軟件問題對應于終端上產生的某些問題類型,遠程服務器將這個軟件問題的說明打包成結果數據,發送給終端,終端便可以據以進行后續處理。
[0106]以上的有關在遠程服務器中實現卡方檢驗法的第一種方式,充分揭示了卡方檢驗法在本發明中的結合實現方式。而對于主要在終端本機中實現的第二種方式,主要也同于第一種方式,其異同之處說明如下:
[0107]終端本機中實現所述預設規則,同理按照卡方檢驗法設置。如圖3所揭示,步驟S121,所述的大數據預存儲在終端本機中,同理也已利用這些大數據確定了卡方檢驗法所需的理論頻數,終端需要進行卡方檢驗時,即利用本機各類型日志數據確定相應的實際頻數;繼而,步驟S122,終端利用各類型實際頻數分別與理論頻數差值平方與理論頻數之比的累計之和,確定實際頻數對應的卡方值;最后,步驟S123,通過參照前述的第一種方式,查詢本機預置的軟件問題與卡方值之間的對應關系,當所述卡方值與預定閾值不符時,判定本機軟件存在該些類型對應的問題,由此便可確定相應的軟件問題,從而形成所述的結果數據。
[0108]由此可見,無論何種方式,終端均可獲得相應的結果數據,這個結果數據中包含已經判定的相應的軟件問題。
[0109]需要強調的是,與預定閾值不符,可以是依據實際頻數確定的卡方值大于某一閾值也可以是小于某一閾值,或者大于或小于一個閾值范圍。本領域技術人員應當知曉此一變通。
[0110]步驟S13,通過解析所述結果數據確定相應的軟件問題。
[0111]由于所述結果數據包含了已經判定的軟件問題,因此,可以進一步從所述結果數據中解析出該軟件問題,并由終端據此按照默認設置或者與用戶交互接收用戶指令后,做進一步的處理。例如下載軟件的升級包、顯示軟件類型的報告等。
[0112]進一步,可以為本發明的軟件維護方法提供進一步的解決方案,解決其依據軟件問題實現軟件自動升級的問題,完成軟件的智能維護。可以預見,這種方式適用于終端與遠端服務器互相配合,由遠端服務器完成卡方校驗的情況。請參閱圖4,具體體現在如下后續步驟:
[0113]步驟S14,向遠程服務器提交將下載與所確定的軟件問題相對應的升級包的請求。
[0114]客戶端確定軟件存在特定問題之后,便可以向遠程服務器提交將下載與所確定的軟件問題相對應的升級包的請求。需要注意的是,這里的遠程服務器,不僅可以是前述用于實現卡方校驗的遠程服務器,也可以是第三方遠程服務器,這里的服務器主要用于存儲軟件升級包并提供軟件升級包的下載服務。
[0115]需要指出的是,有兩種情況可以實現這種下載。其一是前述用于實現卡方校驗的遠程服務器在判定軟件存在特定問題時,可以從其數據庫預存的對應的軟件升級包鏈接記錄中,查找與該特定問題相對應的鏈接,并將該鏈接包含在所述反饋給終端的結果數據中,由終端接收該結果數據并解析出所述的鏈接,然后向升級包所在的遠程服務器發起此一下載請求。另一種方式是終端的所述軟件默認了存儲軟件升級包的遠程服務器的接口,據此,通過該接口提交此一請求,存儲軟件升級包的遠程服務器收到該請求后,即可據之確定軟件問題及其對應的升級包。無論采用何種方式,均是本領域技術人員所知曉的慣用手段,能夠實現依據一個下載請求而建立數據傳輸的方案。從而,存儲軟件升級包的遠程服務器便能向該終端推送相應的升級包。
[0116]步驟S15,接收該遠程服務器推送的關聯于該軟件問題的升級包。
[0117]繼而,終端開始接收存儲軟件升級包的遠程服務器推送的升級包數據,這一過程即公知技術中的下載的過程。需要指出的是,本發明中的軟件的安裝包適宜采用分包技術進行封裝,分包時,可以針對軟件的單個應用功能(功能模塊)而設計獨立的子包,使一個軟件包含多個這樣的子包,甚至可以將每個子包對