System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請屬于軟件代碼處理領域,特別是涉及一種調用鏈路變更分析方法、裝置、設備及介質。
技術介紹
1、隨著計算機技術的快速發展,項目迭代越來越快,計算機代碼也要根據項目需求不斷進行迭代和優化。例如,通過調用鏈分析技術監控微服務架構中的服務,有利于獲取當前運行情況,定位問題并解決分布式網絡下服務交互追蹤的問題。
2、特別是在android調用鏈分析技術中,通過字節碼解析工具soot接收java或android字節碼并輸出轉換后的字節碼、中間代碼jimple或控制流圖(cfg)等。然而,使用soot將字節碼和源碼先轉換為中間代碼,再進行分析、優化和標記等,一方面,追蹤方法之間的調用關系較為復雜繁瑣;另一方面,無法識別出同一應用在不同版本間方法調用鏈的變更,因此,亟須一種調用鏈路變更分析方案來解決上述技術問題。
技術實現思路
1、鑒于以上所述現有技術的缺點,本申請的目的在于提供一種調用鏈路變更分析方法、裝置、設備及介質,用于解決現有技術調用鏈路變更分析時,無法識別不同版本之間調用鏈路差異的問題。
2、為實現上述目的及其他相關目的,本申請的第一方面提供一種調用鏈路變更分析方法,包括:獲取至少兩個版本應用程序所對應的方法調用關系與方法定義信息;對不同版本所對應的方法調用關系進行差集操作,確定增減方法集合;對不同版本所對應的源碼進行差異比較,確定代碼變更信息,其中,所述應用程序攜帶有所述源碼;基于所述代碼變更信息在最新版本對應的所述方法定義信息中進行檢索,確定變更方法集合,
3、在第一方面的一些實施例中,獲取至少兩個版本應用程序所對應的方法調用關系與方法定義信息,包括:獲取應用程序的安裝包文件,并對所述安裝包文件進行靜態代碼分析,獲得所述應用程序的方法調用關系和方法首指令碼行號;對所述源碼進行詞法分析,獲得初始的方法定義信息;根據所述方法首指令碼行號對所述初始的方法定義信息進行校正,確定最終的方法定義信息,以得到至少兩個版本所對應的方法調用關系與方法定義信息。
4、在第一方面的一些實施例中,所述方法首指令碼行號包括預設格式的方法名與首指令碼行號;所述初始的方法定義信息包括非預設格式的方法名、開始行與結束行;根據所述方法首指令碼行號對所述初始的方法定義信息進行校正,確定最終的方法定義信息,包括:根據所述初始的方法定義信息中的所述開始行與所述結束行確定起始行號區間;結合所述預設格式的方法名、所述首指令碼行號與所述起始行號區間對所述非預設格式的方法名進行校正,確定最終的方法定義信息。
5、在第一方面的一些實施例中,獲取應用程序的安裝包文件,并對所述安裝包文件進行靜態代碼分析,獲得所述應用程序的方法調用關系和方法首指令碼行號,包括:若所述應用程序為安卓應用,將所述安卓應用的安裝包文件轉換成jar格式的壓縮文件;對所述壓縮文件進行靜態代碼分析,提取調用鏈,獲得所述應用程序的方法調用關系,以及提取所述源碼與字節碼的映射關系,獲得所述應用程序的方法首指令碼行號。
6、在第一方面的一些實施例中,對所述源碼進行詞法分析,獲得初始的方法定義信息,包括:若所述應用程序為安卓應用,獲取所述安卓應用對應為java格式的第一源碼與對應為kotlin格式的第二源碼;創建詞法分析器來分析所述第一源碼與所述第二源碼,確定單詞集合;依次對所述單詞集合進行語法分析、語義分析,獲得初始的方法定義信息。
7、在第一方面的一些實施例中,對不同版本所對應的方法調用關系進行差集操作,確定增減方法集合,包括:將至少一個版本作為歷史版本,通過所述歷史版本所對應的方法調用關系與所述最新版本所對應的方法調用關系進行差集操作;若所述差集包括所述歷史版本所對應的方法調用關系相對于所述最新版本所對應的方法調用關系多,則確定所述最新版本所對應的方法調用關系減少;若所述差集包括所述歷史版本所對應的方法調用關系相對于所述最新版本所對應的方法調用關系少,則確定所述最新版本所對應的方法調用關系增加;若所述差集包括所述歷史版本所對應的方法調用關系相對于所述最新版本所對應的方法調用關系變更,則確定所述最新版本所對應的方法調用關系修改;根據所述最新版本所對應的方法調用關系減少、增加或修改中的至少之一,確定增減方法集合。
8、在第一方面的一些實施例中,對不同版本所對應的源碼進行差異比較,確定代碼變更信息,包括:將至少一個版本作為歷史版本,通過所述歷史版本所對應的源碼與所述最新版本所對應的源碼進行差異比較;若比較結果包括所述歷史版本所對應的源碼相對于所述最新版本所對應的源碼多,則確定所述最新版本所對應的源碼減少;若比較結果包括所述歷史版本所對應的源碼相對于所述最新版本所對應的源碼少,則確定所述最新版本所對應的源碼增加;若比較結果包括所述歷史版本所對應的源碼相對于所述最新版本所對應的源碼變更,則確定所述最新版本所對應的源碼修改;根據所述最新版本所對應的源碼減少、增加或修改中至少之一,確定代碼變更信息。
9、在第一方面的一些實施例中,基于所述代碼變更信息在最新版本對應的所述方法定義信息中進行檢索,確定變更方法集合,包括:基于所述代碼變更信息,確定所述代碼變更信息在所述方法定義信息中源文件對應的變更行號,并確定所述變更行號所屬的變更方法,通過匯聚各個所屬的變更方法,確定變更方法集合。
10、在第一方面的一些實施例中,根據所述增減方法集合和所述變更方法集合標識最新版本對應的所述方法調用關系中的變更,確定調用鏈路變更集合,包括:通過所述方法調用關系的所述增減方法集合對最新版本對應的所述方法調用關系中的變更部分進行標識;同時,通過所述源碼的所述變更方法集合對最新版本對應的所述方法調用關系中的變更部分進行標識;通過組裝已標識最新版本對應的所述方法調用關系,確定調用鏈路變更集合。
11、本申請的第二方面提供一種調用鏈路變更分析裝置,包括:獲取模塊,用于獲取至少兩個版本應用程序所對應的方法調用關系與方法定義信息;差集操作模塊,用于對不同版本所對應的方法調用關系進行差集操作,確定增減方法集合;差異比較模塊,用于對不同版本所對應的源碼進行差異比較,確定代碼變更信息,其中,所述應用程序攜帶有所述源碼;代碼變更確定模塊,基于所述代碼變更信息在最新版本對應的所述方法定義信息中進行檢索,確定變更方法集合,其中,至少兩個所述版本中版本號最新的為最新版本;鏈路變更確定模塊,用于根據所述增減方法集合和所述變更方法集合標識最新版本對應的所述方法調用關系中的變更,確定調用鏈路變更集合。
12、本申請的第三方面提供一種調用鏈路變更分析設備,包括:一個或多個處理裝置;存儲器,用于存儲一個或多個程序;當所述一個或多個程序被所述一個或多個處理裝置執行,使得所述一個或多個處理裝置實現上述的調用鏈路變更分析方法。
13、本申請的第四方面提供一種計算機可讀本文檔來自技高網...
【技術保護點】
1.一種調用鏈路變更分析方法,其特征在于,包括:
2.根據權利要求1所述的調用鏈路變更分析方法,其特征在于,獲取至少兩個版本應用程序所對應的方法調用關系與方法定義信息,包括:
3.根據權利要求2所述的調用鏈路變更分析方法,其特征在于,所述方法首指令碼行號包括預設格式的方法名與首指令碼行號;所述初始的方法定義信息包括非預設格式的方法名、開始行與結束行;
4.根據權利要求2所述的調用鏈路變更分析方法,其特征在于,獲取應用程序的安裝包文件,并對所述安裝包文件進行靜態代碼分析,獲得所述應用程序的方法調用關系和方法首指令碼行號,包括:
5.根據權利要求2所述的調用鏈路變更分析方法,其特征在于,對所述源碼進行詞法分析,獲得初始的方法定義信息,包括:
6.根據權利要求1所述的調用鏈路變更分析方法,其特征在于,對不同版本所對應的方法調用關系進行差集操作,確定增減方法集合,包括:
7.根據權利要求1所述的調用鏈路變更分析方法,其特征在于,對不同版本所對應的源碼進行差異比較,確定代碼變更信息,包括:
8.根據權利要求
9.根據權利要求1所述的調用鏈路變更分析方法,其特征在于,根據所述增減方法集合和所述變更方法集合標識最新版本對應的所述方法調用關系中的變更,確定調用鏈路變更集合,包括:
10.一種調用鏈路變更分析裝置,其特征在于,包括:
11.一種電子設備,其特征在于,包括:一個或多個處理裝置;存儲器,用于存儲一個或多個程序;當所述一個或多個程序被所述一個或多個處理裝置執行,使得所述一個或多個處理裝置實現權利要求1至9中任一所述的調用鏈路變更分析方法。
12.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序用于使計算機執行權利要求1至9任一所述的調用鏈路變更分析方法。
...【技術特征摘要】
1.一種調用鏈路變更分析方法,其特征在于,包括:
2.根據權利要求1所述的調用鏈路變更分析方法,其特征在于,獲取至少兩個版本應用程序所對應的方法調用關系與方法定義信息,包括:
3.根據權利要求2所述的調用鏈路變更分析方法,其特征在于,所述方法首指令碼行號包括預設格式的方法名與首指令碼行號;所述初始的方法定義信息包括非預設格式的方法名、開始行與結束行;
4.根據權利要求2所述的調用鏈路變更分析方法,其特征在于,獲取應用程序的安裝包文件,并對所述安裝包文件進行靜態代碼分析,獲得所述應用程序的方法調用關系和方法首指令碼行號,包括:
5.根據權利要求2所述的調用鏈路變更分析方法,其特征在于,對所述源碼進行詞法分析,獲得初始的方法定義信息,包括:
6.根據權利要求1所述的調用鏈路變更分析方法,其特征在于,對不同版本所對應的方法調用關系進行差集操作,確定增減方法集合,包括:
7.根據權利要求1所述的調用鏈路...
【專利技術屬性】
技術研發人員:徐卓毅,
申請(專利權)人:深圳依時貨拉拉科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。