專利名稱:IOS平臺上app視圖切換的監測方法和裝置的制作方法
技術領域:
本發明涉及通信領域,具體而言,涉及一種IOS平臺上app視圖切換的監測方法和
>J-U ρ α裝直。
背景技術:
在通信領域中,監測app (application,第三方應用程序)的視圖切換,對于分析用戶行為很重要,可以根據監測到的數據分析出用戶的使習慣,興趣趨向等,進而幫助開發者有目的性的改進app。
現有的IOS平臺的app進行視圖切換時,僅僅通知視圖的具體實現類,即app開發者可以接收到視圖切換事件通知,但其他類對象無法得知這一消息,因此進行app視圖切換行為監測的通常做法是app開發者接收到視圖切換的通知后調用相關檢測api(Application Programming Interface,應用程序編程接口),記錄視圖切換。然而這種方法存在如下缺席由于視圖較多,為了監測app的所有視圖切換,開發者要而加入大量重復的代碼,工作量大,容易遺漏,容易出錯,稍稍有一點遺漏或出錯,都將嚴重影響監測質量。針對相關技術中監測app視圖切換時開發者要而加入大量重復的代碼而導致的工作量大、容易遺漏的問題,目前尚未提出有效的解決方案。
發明內容
本發明提供了一種IOS平臺上app視圖切換的監測方法和裝置,以解決相關技術中監測app視圖切換時開發者要而加入大量重復的代碼而導致的工作量大、容易遺漏的問題。根據本發明的一個方面,提供了一種IOS平臺上app視圖切換的監測方法,該方法包括獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體,其中,第一方法體包括如下邏輯調用視圖進入的api自身和記錄視圖進入時間;獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體,其中,第二方法體包括如下邏輯調用視圖離開的api自身和記錄視圖離開時間;執行獲取到的第一方法體和第二方法體。進一步地,獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,方法包括為視圖進入的api所在的類創建第一分類;在創建的第一分類中創建第一方法,其中,第一方法包含如下邏輯遞歸調用自身和記錄視圖進入時間;將第一方法的方法體和視圖進入的api的方法體進行交換。進一步地,在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,方法包括為視圖離開的api所在的類創建第二分類;在創建的第二分類中創建第二方法,其中,第二方法包含如下邏輯遞歸調用自身和記錄視圖離開時間;將第二方法的方法體和視圖離開的api的方法體進行交換。進一步地,在為視圖進入的api所在的類創建第一分類之前,方法還包括在IOS系統的api文檔中查找到視圖進入的api和視圖離開的api所對應的信息;根據查找到的信息確定視圖進入的api的名稱和該視圖進入的api所在的類以及視圖離開的api的名稱和該視圖離開的api所在的類。進一步地,將第一方法的方法體和視圖進入的api的方法體進行交換的步驟包括確定用于指向第一方法的第一指針;確定用于指向視圖進入的api的第二指針;將確定的第一指針地址和確定的第二指針交換。進一步地,將第二方法的方法體和視圖離開的api的方法體進行交換的步驟包括確定用于指向第二方法的第三指針;確定用于指向視圖離開的api的第四指針;將確定的第三指針地址和確定的第四指針交換。根據本發明的另一方面,提供了一種IOS平臺上app視圖切換的監測裝置,該裝置包括第一獲取單元,用于獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體,其中,第一方法體包括如下邏輯調用視圖進入的api自身和記錄視圖進入時間;第二獲取單元,用于獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二 方法體,其中,第二方法體包括如下邏輯調用視圖離開的api自身和記錄視圖離開時間;執行單元,用于執行獲取到的第一方法體和第二方法體。進一步地,上述裝置還包括第一創建單元,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,為視圖進入的api所在的類創建第一分類;第二創建單元,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,在創建的第一分類中創建第一方法,其中,第一方法包含如下邏輯遞歸調用自身和記錄視圖進入時間;第一交換單元,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,將第一方法的方法體和視圖進入的api的方法體進行交換。進一步地,上述裝置還包括第三創建單元,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,為視圖離開的api所在的類創建第二分類;第四創建單元,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,在創建的第二分類中創建第二方法,其中,第二方法包含如下邏輯遞歸調用自身和記錄視圖離開時間;第二交換單元,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,將第二方法的方法體和視圖離開的api的方法體進行交換。進一步地,第一交換單元包括第一確定模塊,用于確定指向第一方法的第一指針;第二確定模塊,用于確定指向視圖進入的api的第二指針;第一交換模塊,用于將確定的第一指針地址和確定的第二指針交換。進一步地,第二交換單元包括第三確定模塊,用于確定指向第二方法的第三指針;第四確定模塊,用于確定指向視圖離開的api的第四指針;第二交換模塊,用于將確定的第三指針地址和確定的第四指針交換。通過本發明,將所需監控的視圖切換過程中視圖進入的api的指針和視圖離開的api的指針設置為指向自定義的方法,其中,自定義的方法包含有如下邏輯調用該視圖切換的api自身的邏輯和記錄視圖切換的過程信息,當系統方法api被調用時,由于該api的指針指向自定義的方法,則執行自定義的方法中的邏輯,調用該api自身的邏輯并記錄視圖切換的過程信息,在執行視圖切換的同時,實現對視圖切換的監測,這種視圖切換的監測方法無需重寫目標方法,解決了相關技術中IOS平臺上監測視圖切換時因加入量代碼而導致的工作量大、容易出錯的問題,減小捕獲系統消息的工作量,進一步地,提高了準確性。
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中圖I是根據本發明實施例的IOS平臺上app視圖切換的監測方法的一種優選的流程圖;圖2是根據本發明實施例的IOS平臺上app視圖切換的監測裝置的一種優選的結構框圖;圖3是根據本發明實施例的IOS平臺上app視圖切換的監測裝置的另一種優選的 結構框圖;圖4是根據本發明實施例的IOS平臺上app視圖切換的監測裝置的又一種優選的結構框圖;圖5是根據本發明實施例的IOS平臺上app視圖切換的監測裝置的又一種優選的結構框圖;以及圖6是根據本發明實施例的IOS平臺上app視圖切換的監測裝置的又一種優選的結構框圖。
具體實施例方式下文中將參考附圖并結合實施例來詳細說明本發明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。實施例I在本發明優選的實施例中提供了一種IOS平臺上app視圖切換的監測方法,圖I為上述方法的一種優選的流程圖,如圖I所示,該方法包括如下步驟S102,獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體,其中,第一方法體包括如下邏輯調用視圖進入的api自身和記錄視圖進入時間;S104,獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體,其中,第二方法體包括如下邏輯調用視圖離開的api自身和記錄視圖離開時間;S106,執行獲取到的第一方法體和第二方法體。具體來說,當上述視圖切換的api方法被調用時,由于該api的指針指向自定義的方法,則執行自定義的方法,即調用該api自身的邏輯,并記錄視圖切換的過程信息。優選的,記錄的過程信息包括但不限于視圖進入時間點,視圖離開時間點和視圖停留時間,通過記錄視圖切換過程中進入視圖的時間和離開視圖的時間計算出出視圖的停留時間。在上述優選的實施方式中,將所需監控的視圖切換過程中視圖進入的api的指針和視圖離開的api的指針設置為指向自定義的方法,其中,自定義的方法包含有如下邏輯調用該視圖切換的api自身的邏輯和記錄視圖切換的過程信息,當系統方法api被調用時,由于該api的指針指向自定義的方法,則執行自定義的方法中的邏輯,調用該api自身的邏輯并記錄視圖切換的過程信息,在執行視圖切換的同時,實現對視圖切換的監測,這種視圖切換的監測方法無需重寫目標方法,解決了相關技術中IOS平臺上監測視圖切換時因加入量代碼而導致的工作量大、容易出錯的問題,減小捕獲系統消息的工作量,進一步地,提高了準確性。在本發明的一個優選的實施方式中,還對上述方法進行了進一步地優化,具體地,在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,該方法包括為視圖進入的api所在的類創建第一分類;在創建的第一分類中創建第一方法,其中,第一方法包含如下邏輯遞歸調用自身和記錄視圖進入時間;將第一方法的方法體和視圖進入的api的方法體進行交換。在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,該方法包括為視圖離開的api所在的類創建第二分類;在創建的第二分類中創建第二方法,其中,第二方法包含如下邏輯遞歸調用自身和記錄視圖離開時間;將第二方法的方法體和視圖離開的api的方法體進行交換。上述優選的技術方案的實施,通過交換自定義方法的方法體和視圖切換的api中的方法體,實現在視圖切換的api被調用時,執行調用該api自身并視圖切換的過程信息,進一步地,完成對視圖切換的監控。
在本發明的一個優選的實施方式中,還對上述方法進行了優化,具體來說,在為視圖進入的api所在的類創建第一分類之前,方法還包括在IOS系統的api文檔中查找到視圖進入的api和視圖離開的api所對應的信息;根據查找到的信息確定視圖進入的api的名稱和該視圖進入的api所在的類以及視圖離開的api的名稱和該視圖離開的api所在的類。此外,本發明還提供一種將第一方法的方法體和視圖進入的api的方法體進行交換的方法和將第二方法的方法體和視圖離開的api的方法體進行交換的方法,具體地,將第一方法的方法體和視圖進入的api的方法體進行交換的步驟包括確定用于指向第一方法的第一指針;確定用于指向視圖進入的api的第二指針;將確定的第一指針地址和確定的第二指針交換。將第二方法的方法體和視圖離開的api的方法體進行交換的步驟包括確定用于指向第二方法的第三指針;確定用于指向視圖離開的api的第四指針;將確定的第三指針地址和確定的第四指針交換。通過交換指針,即可達到交換自定義方法的方法體和視圖切換過程中api的方法體,操作簡單。實施例2基于實施例I中的IOS平臺上app視圖切換的監測方法,本實施例中提供了一種IOS平臺上app視圖切換的監測裝置,圖2為該裝置的一種優選的結構框圖,如圖2所示,該裝置包括第一獲取單元202,用于獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體,其中,第一方法體包括如下邏輯調用視圖進入的api自身和記錄視圖進入時間;第二獲取單元204,用于獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體,其中,第二方法體包括如下邏輯調用視圖離開的api自身和記錄視圖離開時間;執行單元206,與第一獲取單元202和第二獲取單元204連接,用于執行獲取到的第一方法體和第二方法體。具體來說,當上述視圖切換的api方法被調用時,由于該api的指針指向自定義的方法,則執行自定義的方法,即調用該api自身的邏輯,并記錄視圖切換的過程信息。優選的,記錄的過程信息包括但不限于視圖進入時間點,視圖離開時間點和視圖停留時間,通過記錄視圖切換過程中進入視圖的時間和離開視圖的時間計算出出視圖的停留時間。在本發明的一個實施方式中,還對上述裝置進行了優化,具體地,如圖3所示,該裝置還包括第一創建單元302,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,為視圖進入的api所在的類創建第一分類;第二創建單元304,與第一創建單元302連接,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,在創建的第一分類中創建第一方法,其中,第一方法包含如下邏輯遞歸調用自身和記錄視圖進入時間;第一交換單元306,與第二創建單元304連接,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,將第一方法的方法體和視圖進入的api的方法體進行交換。在本發明的一個實施方式中,還對上述裝置進行了優化,具體地,如圖4所示,該裝置還包括第三創建單元402,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,為視圖進入的api所在的類創建第二分類;第四創建單元404, 與第三創建單元402連接,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,在創建的第二分類中創建第二方法,其中,第二方法包含如下邏輯 遞歸調用自身和記錄視圖離開時間;第二交換單元406,與第四創建單元404連接,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,將第二方法的方法體和視圖離開的api的方法體進行交換。優選的,上述裝置還包括查找單元,用于在為視圖進入的api所在的類創建第一分類之前,在IOS系統的api文檔中查找到視圖進入的api和視圖離開的api所對應的信息;確定單元,用于根據查找到的信息確定視圖進入的api的名稱和該視圖進入的api所在的類以及視圖離開的api的名稱和該視圖離開的api所在的類。此外,本發明還提供一種將第一方法的方法體和視圖進入的api的方法體進行交換的方法具體地,如圖5所不,第一交換單兀306包括第一確定模塊502,用于確定指向第一方法的第一指針;第二確定模塊504,用于確定指向視圖進入的api的第二指針;第一交換模塊506,分別與第一確定模塊502和第二確定模塊504連接,用于將確定的第一指針地址和確定的第二指針交換。本發明還提供一種將第二方法的方法體和視圖離開的api的方法體進行交換的方法,具體地,如圖6所示,第二交換單元406包括第三確定模塊602,用于確定指向第二方法的第三指針;第四確定模塊604,用于確定指向視圖離開的api的第四指針;第二交換模塊,與第三確定模塊602和第四確定模塊604連接,用于將確定的第三指針地址和確定的第四指針交換。上述優選的實施方式中,通過交換指針,即可達到交換自定義方法的方法體和視圖切換過程中api的方法體,操作簡單。從以上的描述中,可以看出,本發明的實施例將所需監控的視圖切換過程中視圖進入的api的指針和視圖離開的api的指針設置為指向自定義的方法,其中,自定義的方法包含有如下邏輯調用該視圖切換的api自身的邏輯和記錄視圖切換的過程信息,當系統方法api被調用時,由于該api的指針指向自定義的方法,則執行自定義的方法中的邏輯,調用該api自身的邏輯并記錄視圖切換的過程信息,在執行視圖切換的同時,實現對視圖切換的監測,這種視圖切換的監測方法無需重寫目標方法,解決了相關技術中IOS平臺上監測視圖切換時因加入量代碼而導致的工作量大、容易出錯的問題,減小捕獲系統消息的工作量,進一步地,提高了準確性。顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,并且在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發明不限制于任何特定的硬件和軟件結合。以上僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。·
權利要求
1.一種IOS平臺上app視圖切換的監測方法,其特征在于,包括 獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體,其中,所述第一方法體包括如下邏輯調用所述視圖進入的api自身和記錄所述視圖進入時間; 獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體,其中,所述第二方法體包括如下邏輯調用所述視圖離開的api自身和記錄所述視圖離開時間; 執行獲取到的所述第一方法體和所述第二方法體。
2.根據權利要求I所述的方法,其特征在于,在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,所述方法包括 為所述視圖進入的api所在的類創建第一分類; 在創建的所述第一分類中創建第一方法,其中,所述第一方法包含如下邏輯遞歸調用自身和記錄所述視圖進入時間; 將所述第一方法的方法體和所述視圖進入的api的方法體進行交換。
3.根據權利要求2所述的方法,其特征在于,在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,所述方法包括 為所述視圖離開的api所在的類創建第二分類; 在創建的所述第二分類中創建第二方法,其中,所述第二方法包含如下邏輯遞歸調用自身和記錄所述視圖離開時間; 將所述第二方法的方法體和所述視圖離開的api的方法體進行交換。
4.根據權利要求3所述的方法,其特征在于,在為所述視圖進入的api所在的類創建第一分類之前,所述方法還包括 在IOS系統的api文檔中查找到所述視圖進入的api和所述視圖離開的api所對應的信息; 根據查找到的信息確定所述視圖進入的api的名稱和該視圖進入的api所在的類以及視圖離開的api的名稱和該視圖離開的api所在的類。
5.根據權利要求2至4任一項所述的方法,其特征在于,將所述第一方法的方法體和所述視圖進入的api的方法體進行交換的步驟包括 確定用于指向所述第一方法的第一指針; 確定用于指向所述視圖進入的api的第二指針; 將確定的所述第一指針地址和確定的所述第二指針交換。
6.根據權利要求3或4所述的方法,其特征在于,將所述第二方法的方法體和所述視圖離開的api的方法體進行交換的步驟包括 確定用于指向所述第二方法的第三指針; 確定用于指向所述視圖離開的api的第四指針; 將確定的所述第三指針地址和確定的所述第四指針交換。
7.—種IOS平臺上app視圖切換的監測裝置,其特征在于,包括 第一獲取單元,用于獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體,其中,所述第一方法體包括如下邏輯調用所述視圖進入的api自身和記錄所述視圖進入時間; 第二獲取單元,用于獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體,其中,所述第二方法體包括如下邏輯調用所述視圖離開的api自身和記錄所述視圖離開時間; 執行單元,用于執行獲取到的所述第一方法體和所述第二方法體。
8.根據權利要求7所述的裝置,其特征在于,還包括 第一創建單元,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,為所述視圖進入的api所在的類創建第一分類; 第二創建單元,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,在創建的所述第一分類中創建第一方法,其中,所述第一方法包含如下邏輯遞歸調用自身和記錄所述視圖進入時間; 第一交換單元,用于在獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體之前,將所述第一方法的方法體和所述視圖進入的api的方法體進行交換。
9.根據權利要求8所述的裝置,其特征在于,還包括 第三創建單元,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,為所述視圖離開的api所在的類創建第二分類; 第四創建單元,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,在創建的所述第二分類中創建第二方法,其中,所述第二方法包含如下邏輯遞歸調用自身和記錄所述視圖離開時間; 第二交換單元,用于在獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體之前,將所述第二方法的方法體和所述視圖離開的api的方法體進行交換。
10.根據權利要求8或9所述的裝置,其特征在于,所述第一交換單元包括 第一確定模塊,用于確定指向所述第一方法的第一指針; 第二確定模塊,用于確定指向所述視圖進入的api的第二指針; 第一交換模塊,用于將確定的所述第一指針地址和確定的所述第二指針交換。
11.根據權利要求9所述的裝置,其特征在于,所述第二交換單元包括 第三確定模塊,用于確定指向所述第二方法的第三指針; 第四確定模塊,用于確定指向所述視圖離開的api的第四指針; 第二交換模塊,用于將確定的所述第三指針地址和確定的所述第四指針交換。
全文摘要
本發明公開了一種IOS平臺上app視圖切換的監測方法和裝置,其中,該方法包括獲取當前所需執行的視圖切換過程中視圖進入的api指向的第一方法體,其中,第一方法體包括如下邏輯調用視圖進入的api自身和記錄視圖進入時間;獲取當前所需執行的視圖切換過程中視圖離開的api指向的第二方法體,其中,第二方法體包括如下邏輯調用視圖離開的api自身和記錄視圖離開時間;執行獲取到的第一方法體和第二方法體。本發明解決了相關技術中IOS平臺上監測視圖切換時因加入量代碼而導致的工作量大、容易出錯的問題,減小捕獲系統消息的工作量,進一步地,提高了準確性。
文檔編號G06F9/48GK102902584SQ20121036729
公開日2013年1月30日 申請日期2012年9月27日 優先權日2012年9月27日
發明者王海 申請人:北京國雙科技有限公司