[發明專利]一種APK自動觸發工具有效
| 申請號: | 201711220729.X | 申請日: | 2017-11-28 |
| 公開(公告)號: | CN108090355B | 公開(公告)日: | 2020-10-27 |
| 發明(設計)人: | 陶敬;趙琪琪;王平輝;韓婷;曹鵬飛;王錚;張巖;柳哲;孫立遠 | 申請(專利權)人: | 西安交通大學 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56 |
| 代理公司: | 西安智大知識產權代理事務所 61215 | 代理人: | 段俊濤 |
| 地址: | 710049 陜*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 apk 自動 觸發 工具 | ||
1.一種APK自動觸發工具,包括:
APK分析預處理模塊,負責啟動模擬器,以及分析AndroidManifest.xml文件得到APK的相關信息;
APK自動安裝與啟動模塊,負責將目標APK自動安裝到模擬器上,并在模擬器中自動啟動該APK;所述APK自動安裝與啟動模塊分為安裝子模塊和啟動子模塊,獲取需要測試的APK的位置后,通過adb install命令將目標APK安裝到模擬器中,然后根據PackageName和MainActivity信息,使用adb shell am start命令來啟動這個APK;所述APK自動安裝與啟動模塊自動安裝啟動指定的APK,如果APK啟動時出現故障,自動重新啟動;
APK自動化交互模塊,按照深度優先遍歷的原則,實現模擬用戶對UI界面中所獲得的組件進行自動觸發的功能,包括根據相關需求,自動生成字符串輸入到需要輸入文本內容的組件中,對需要進行點擊操作的組件進行自動點擊操作,以及根據組件觸發順序到達不同的UI界面;
其特征在于,所述APK自動化交互模塊對每個UI界面,根據界面中所有組件的類型、大小、坐標信息和所在的Activity的類名,用Hash算法都生成唯一的指紋值,從而對不同的UI界面進行區分,所述UI界面指紋值的構建方法如下:
先構建組成UI界面的不同組件的指紋信息,一個組件的指紋信息由以下內容構成:
(1)組件的類型;
(2)組件的坐標信息;
(3)組件的大小;
(4)組件所在的Activity的類名;
利用以上信息按照先后順序進行字符串拼接,最后利用Hash算法得到固定長度的指紋值,UI界面的指紋信息由上述得到的各個組件的指紋值拼接后,再使用一次Hash算法得到;
根據UI界面的指紋值是否相同,判斷出UI界面是否相同,具體判斷方法為:
步驟1、如果兩個UI界面的Activity類名不同,則為不同的UI界面,否則進入下一步;
步驟2、如果兩個UI界面里的組件數目不一樣,則為不同的UI界面,否則進入下一步;
步驟3、如果兩個UI界面的指紋信息不一致,則為不同的UI界面,否則為相同的UI界面;
采用分層次的方式,對每層中的所有組件,進行全面的交互,且已經觸發過的組件在之后的運行過程中不會被再次觸發,避免重復;
對應用程序的結構進行劃分將每個出現的UI界面定義為一個層,每個UI界面必然屬于且只屬于某一層,一個Activity由于其中的組件的狀態不同會形成不同的UI界面,屬于不同的層,基于層來遍歷所有的組件;
根據文本輸入框的text屬性的內容,對需要輸入的內容進行區分,生成符合需要的格式的字符串。
2.根據權利要求1所述APK自動觸發工具,其特征在于,所述APK分析預處理模塊由啟動模擬器和分析AndroidManifest.xml兩個部分組成,啟動模擬器為工具使用提供運行環境,使工具能有效運行,模擬用戶自動觸發APK;分析AndroidManifest.xml文件以獲得待測APK啟動時的包名PackageName和啟動時的MainActivity,為下一步啟動APK做準備;同時,在分析AndroidManifest.xml文件時還獲得待測APK的所有有效的Activity的名字,為之后交互過程中判斷出現的Activity是否為待測APK的Activity提供參考信息;所述APK分析預處理模塊獲取的APK的相關信息至少包括APK啟動時的MainActivity的類名、包名PackageName以及APK中所有的Activity的類名的集合。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安交通大學,未經西安交通大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711220729.X/1.html,轉載請聲明來源鉆瓜專利網。





