一種基于運行信息的移動應用界面智能搜索方法及其裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種基于運行信息的移動應用界面智能搜索方法及其裝置,該方法包括:獲取Android應用的描述信息,并獲取Android應用的運行時刻信息;根據(jù)所述Android應用的描述信息和運行時刻信息生成索引;根據(jù)所述索引進行所需Android應用的搜索,獲得搜索結果。在本發(fā)明實施例中,實現(xiàn)了批量化遍歷Android應用,獲取了Android應用在運行時的信息,通過考慮字體與文本重要性的關系來建立反向索引,提高界面搜索的準確性。另外,通過結合運行時的信息,并且通過自動化的方法來實現(xiàn),降低了提供界面搜索的成本,提高了開發(fā)人員和設計人員的效率。
【專利說明】一種基于運行信息的移動應用界面智能搜索方法及其裝置
【技術領域】
[0001]本發(fā)明涉及移動應用【技術領域】,尤其涉一種基于運行信息的移動應用界面智能搜索方法及其裝置。
【背景技術】
[0002]隨著Android系統(tǒng)的流行,Android應用的數(shù)量變得越來越多且功能越來越豐富,Android手機用戶可以在應用商店中通過搜索找到自己需要的應用。但是對于剛剛接觸移動應用開發(fā)的開發(fā)人員,在根據(jù)需求設計界面時,往往需要參考已有的相關應用界面。開發(fā)人員首先通過已有的經(jīng)驗猜測可能存在類似界面的移動應用,然后到應用商店查找和下載應用,并在移動設備或者移動應用的模擬平臺上安裝和運行應用,在使用移動應用的過程中尋找可能的參考頁面。根據(jù)一個特定的應用設計需求,設計人員往往需要獲得多個參考界面,這個過程對于新手編程人員,往往是非常耗時的。
[0003]如今,也有部分網(wǎng)站提供界面搜索的功能。這些網(wǎng)站的工作人員通過手動運行應用然后進行截圖,接著進行人工整理和總結并上傳到網(wǎng)站中,用戶可以通過關鍵詞搜索某一功能或者界面模式的界面,以此得到參考。但此技術方案需要手動獲取界面,并且進行人工整理,工作量大,并且應用的覆蓋有限。這些網(wǎng)站更偏重于界面模式的總結,為設計人員提供界面設計模式的參考,具有較大的主觀性。另一方面,并沒有考慮應用在運行時刻的信息,而是通過人工去判斷,效率比較低。
[0004]另外,需要運行每個Android的應用,因此,需要用到Android測試的相關技術。在Android應用測試領域,測試人員根據(jù)每個應用的功能特點,編寫出測試的腳本去測試Android應用,使得Android應用按照設定的路徑運行,以檢查是否有bug產(chǎn)生。此方案需要根據(jù)每個Android應用的情況在程序中設定測試的路徑,靈活性較差,不便于大量的Android應用的遍歷。
[0005]各大Android應用的市場也有提供了 Android應用搜索的功能,用戶通過輸入關鍵字,搜索需要的應用。先對應用的名稱和應用的描述信息生成反向索引,而對用戶輸入的關鍵詞進行分詞并查詢索引,最終給用戶提供搜索的應用結果。此方案關注的力度在于應用,而不是應用的界面,并且搜索的時候沒有考慮到運行時刻的信息。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于克服現(xiàn)有技術的不足,本發(fā)明提供了一種基于運行信息的移動應用界面智能搜索方法及其裝置,使開發(fā)者和設計人員能夠極大地提高工作效率,方便開發(fā)者和設計人員做出更加優(yōu)秀的產(chǎn)品。
[0007]為了解決上述問題,本發(fā)明提出了一種基于運行信息的移動應用界面智能搜索方法,所述方法包括:
[0008]獲取Android應用的描述信息,并獲取Android應用的運行時刻信息;
[0009]根據(jù)所述Android應用的描述信息和運行時刻信息生成索引;
[0010]根據(jù)所述索引進行所需Android應用的搜索,獲得搜索結果。
[0011]優(yōu)選地,所述Android應用的描述信息包括應用的分類、下載次數(shù)、文字描述。
[0012]優(yōu)選地,所述收集Android應用的描述信息的步驟包括:
[0013]從任務隊列中獲取一個任務;
[0014]從Android應用市場獲取Android應用的描述信息,并下載APK安裝包;
[0015]將描述信息和安裝包存儲到數(shù)據(jù)庫中。
[0016]優(yōu)選地,所述運行時刻信息為實際運行Android應用時,在界面上展現(xiàn)的信息。
[0017]優(yōu)選地,所述獲取Andro i d應用的運行時刻信息的步驟包括:通過Andro i d虛擬機(Android Virtual Device,AVD)運行Android應用,獲取Android應用的運行時刻的信息。
[0018]優(yōu)選地,所述通過Android虛擬機AVD運行Android應用,獲取Android應用的運行時刻的信息的步驟包括:
[0019]從MongoDB服務器獲取應用信息并下載APK安裝包;
[0020]分析APK安裝包;
[0021]安裝APK安裝包;
[0022]獲取應用顯示狀態(tài),所述應用顯示狀態(tài)包括當前顯示的應用信息和界面的控件信息;
[0023]對應用顯示狀態(tài)進行分析;
[0024]發(fā)送指令,如果未滿足終止條件,循環(huán)安裝APK安裝包及獲取應用顯示狀態(tài)步驟;
[0025]把獲取到的應用的運行狀態(tài)信息上傳到服務器。
[0026]優(yōu)選地,所述對應用顯示狀態(tài)進行分析的步驟包括:
[0027]從獲取到的信息中提取出每個控件的詳細信息,包括控件的位置信息和大小信息、界面的控件樹;
[0028]生成該界面的一個事件集,事件集包括可點擊的控件和物理按鍵。
[0029]相應地,本發(fā)明還提供一種基于運行信息的移動應用界面智能搜索裝置,所述裝置包括:
[0030]獲取模塊,用于獲取Android應用的描述信息,并獲取Android應用的運行時刻信息;
[0031]生成模塊,用于根據(jù)所述獲取模塊所獲取到的Android應用的描述信息和運行時刻信息生成索引;
[0032]搜索引擎模塊,用于,用于根據(jù)所述生成模塊所生成的索引進行所需Android應用的搜索,獲得搜索結果。
[0033]優(yōu)選地,所述Android應用的描述信息包括應用的分類、下載次數(shù)、文字描述。
[0034]優(yōu)選地,所述生成模塊還用于從任務隊列中獲取一個任務,從Android應用市場獲取Android應用的描述信息,并下載APK安裝包;將描述信息和安裝包存儲到數(shù)據(jù)庫中。
[0035]在本發(fā)明實施例中,實現(xiàn)了批量化遍歷Andro i d應用,獲取了 Andro i d應用在運行時的信息,通過考慮字體與文本重要性的關系來建立反向索引,提高界面搜索的準確性。另夕卜,通過結合運行時的信息,并且通過自動化的方法來實現(xiàn),降低了提供界面搜索的成本,提高了開發(fā)人員和設計人員的效率。
【專利附圖】
【附圖說明】
[0036]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0037]圖1是本發(fā)明實施例的基于運行信息的移動應用界面智能搜索方法的流程示意圖;
[0038]圖2是本發(fā)明實施例中Android應用描述信息爬蟲架構示意圖;
[0039]圖3是本發(fā)明實施例中Monitor工具的結構示意圖;
[0040]圖4是本發(fā)明實施例的基于運行信息的移動應用界面智能搜索裝置的結構組成示意圖。
【具體實施方式】
[0041]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0042]圖1是本發(fā)明實施例的基于運行信息的移動應用界面智能搜索方法的流程示意圖,如圖1所示,該方法包括:
[0043]S101,獲取Android應用的描述信息,并獲取Android應用的運行時刻信息;
[0044]S102,根據(jù)Android應用的描述信息和運行時刻信息生成索引;
[0045]S103,根據(jù)索引進行所需Android應用的搜索,獲得搜索結果。
[0046]在Android應用市場中,每個Android應用都有一段關于該應用的描述信息,該信息描述了該應用主要的功能和特色。因此,如圖2所示,本發(fā)明采用一個網(wǎng)絡的爬蟲去獲取Android應用市場上的應用的描述信息,包括:應用的分類、下載次數(shù)、文字描述等,并且下載應用的APK安裝文件。
[0047]圖2所示的Android應用的描述信息的爬蟲架構主要采用python語言實現(xiàn),由于應用的數(shù)量較大,APK文件的下載需要較長時間,采用一個任務隊列,并采用分布式處理的方法。
[0048]具體實施中,收集Android應用的描述信息的步驟包括:
[0049]從任務隊列中獲取一個任務;
[0050]從Android應用市場獲取Android應用的描述信息,并下載APK安裝包;
[0051]將描述信息和安裝包存儲到數(shù)據(jù)庫中,該數(shù)據(jù)庫采用MongoDB。
[0052]運行時刻信息為實際運行Android應用時,在界面上展現(xiàn)的信息;具體實施中,通過AVD運行Android應用,獲取Android應用的運行時刻的信息。
[0053]在本發(fā)明實施例中,如圖3所示,使用Monitor工具獲取Android應用運行狀態(tài)下的用戶界面(User Interface, UI)信息,獲取運行狀態(tài)下的UI信息,需要實際地去運行Android應用,這是一個很耗時的過程,而由于計算機配置的限制,需要在多臺機器上運行多個模擬器,因此使用了分布式控制的方式去實現(xiàn)對多臺機器的控制。對于每一個新加入的AVD,中心控制器都新開一個線程單獨對該AVD進行管理,以使用該AVD運行Android應用,獲取Android應用的運行狀態(tài)下的信息。
[0054]通過Android虛擬機AVD運行Android應用,獲取Android應用的運行時刻的信息的步驟包括:
[0055]步驟1,從MongoDB服務器獲取應用信息并下載APK安裝包。
[0056]步驟2,分析APK安裝包;Androidmanifest.xml中存放著每個APP的權限、SDK版本、應用程序和組件等信息,使用AXMLPrinter2工具對APK文件中的配置文件Androidmanifest.xml進行反編譯,獲取出一個APP的組件列表、啟動類名和包名等信息。
[0057]步驟3,安裝 APK 安裝包;ADB (Android Debug Bridge)是 android sdk 里的一個工具,用這個工具可以直接操作管理Android模擬器(虛擬機)或者真實的Andr1d設備,這里通過ADB來實現(xiàn)安裝APK的功能。
[0058]步驟4,獲取應用顯示狀態(tài),該應用顯示狀態(tài)包括當前顯示的應用信息和界面的控件信息;每個AVD都提供了一個viewserver,開放了 socket端口,用于獲取當前的窗口信息和控件信息,向這個端口發(fā)送獲取信息的指令,以此來獲取到窗口信息和控件信息,同樣,使用ADB獲取到當前窗口的截圖。
[0059]步驟5,對應用顯示狀態(tài)進行分析;具體實施中,從viewserver的socket端口中獲取到的信息中提取出每個控件的詳細信息包括控件的位置信息和大小信息,界面的控件樹;生成該界面的一個事件集,事件集包括可點擊的控件和物理按鍵等。
[0060]步驟6,發(fā)送指令,如果未滿足終止條件,循環(huán)步驟4、5、6;從生成的事件集中取出一個進行執(zhí)行,實際操作中,使用了 monkey這個Android的測試工具事件的執(zhí)行,通過步驟5已經(jīng)得到了每個控件的位置信息,于是通過點擊屏幕上的位置來對需要點擊的控件進行點擊。
[0061]步驟7,把獲取到的應用的運行狀態(tài)信息上傳到服務器。
[0062]另外,在實施步驟102中,考慮了兩個層次的數(shù)據(jù):應用層次的描述信息和界面層次的描述信息。應用層次的描述信息從宏觀的角度描述了一個界面所在的應用的功能和主要特征等,而界面層次的描述信息則更具體地展示一個人機界面的主要功能信息。
[0063]在獲取了大量的人機界面信息之后,為了達到搜索的結果,需要從這些信息里挑選出有用的文本信息用于索引,可以根據(jù)用戶輸入的關鍵字匹配出搜索結果。一個Android的人機界面中,文本信息是對一個界面最重要的描述信息,能對用戶更好的展現(xiàn)該界面的主要功能等,而界面上包含文本信息的控件包括TextView、Button、EditView等,本發(fā)明采用這些控件里的文本信息,加上應用的描述信息,進行下一步的處理。
[0064]在選擇了文本數(shù)據(jù)之后,需要根據(jù)這些文本來生成索引。直接利用應用的描述信息和界面的控件文本信息來生成索引,會有以下幾個問題:1、應用的描述信息遠多于界面中的文本信息,會造成界面中的文本信息在總的文本中占的權重太小;2、界面上的文本的重要程度不同。
[0065]界面上比較重要的字眼,相對字體會更大,因此在生成索引的過程中考慮了字體的因素,對文本信息根據(jù)字體大小,賦予不同的權重。根據(jù)字體大小,將文本分成三檔:小、中、大。例如,當字體的分布是18、19、20、21、22、23時,將18、19歸類為小,20、21歸類為中,22,23歸類為大,按照文本大小將將文本劃分到這三個檔次中進行索引,這三個檔次的文本權重分別為1、2、3。
[0066]在S103中,采用了開源的搜索引擎solr來搭建搜索界面。
[0067]相應地,本發(fā)明實施例還提供一種基于運行信息的移動應用界面智能搜索裝置,如圖4所示,該裝置包括:
[0068]獲取模塊40,用于獲取Android應用的描述信息,并獲取Android應用的運行時刻信息;
[0069]生成模塊41,用于根據(jù)獲取模塊41所獲取到的Andro i d應用的描述信息和運行時刻信息生成索引;
[0070]搜索引擎模塊42,用于,用于根據(jù)生成模塊41所生成的索引進行所需Android應用的搜索,獲得搜索結果。
[0071]上述Android應用的描述信息包括應用的分類、下載次數(shù)、文字描述。
[0072]生成模塊41還用于從任務隊列中獲取一個任務,從Android應用市場獲取Android應用的描述信息,并下載APK安裝包;將描述信息和安裝包存儲到數(shù)據(jù)庫中。
[0073]上述運行時刻信息為實際運行Android應用時,在界面上展現(xiàn)的信息。
[0074]具體實施中,搜索引擎模塊42采用了開源的搜索引擎so Ir來搭建本發(fā)明的界面。
[0075]本發(fā)明裝置的各功能模塊的功能實現(xiàn)可參見方法實施例的實現(xiàn)過程及原理,這里不再贅述。
[0076]在本發(fā)明實施例中,實現(xiàn)了批量化遍歷An droid應用,獲取了 Android應用在運行時的信息,通過考慮字體與文本重要性的關系來建立反向索引,提高界面搜索的準確性。另夕卜,通過結合運行時的信息,并且通過自動化的方法來實現(xiàn),降低了提供界面搜索的成本,提高了開發(fā)人員和設計人員的效率。
[0077]本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(ROM,Read Only Memory)、隨機存取存儲器(RAM,RandomAccess Memory)、磁盤或光盤等。
[0078]另外,以上對本發(fā)明實施例所提供的基于運行信息的移動應用界面智能搜索方法及其裝置進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。
【權利要求】
1.一種基于運行信息的移動應用界面智能搜索方法,其特征在于,所述方法包括: 獲取Android應用的描述信息,并獲取Android應用的運行時刻信息; 根據(jù)所述Android應用的描述信息和運行時刻信息生成索引; 根據(jù)所述索引進行所需Android應用的搜索,獲得搜索結果。
2.如權利要求1所述的基于運行信息的移動應用界面智能搜索方法,其特征在于,所述Android應用的描述信息包括應用的分類、下載次數(shù)、文字描述。
3.如權利要求2所述的基于運行信息的移動應用界面智能搜索方法,其特征在于,所述收集Android應用的描述信息的步驟包括: 從任務隊列中獲取一個任務; 從Android應用市場獲取Android應用的描述信息,并下載APK安裝包; 將描述信息和安裝包存儲到數(shù)據(jù)庫中。
4.如權利要求1所述的基于運行信息的移動應用界面智能搜索方法,其特征在于,所述運行時刻信息為實際運行Android應用時,在界面上展現(xiàn)的信息。
5.如權利要求1所述的基于運行信息的移動應用界面智能搜索方法,其特征在于,所述獲取Android應用的運行時刻信息的步驟包括:通過Android虛擬機AVD運行Android應用,獲取Android應用的運行時刻的信息。
6.如權利要求5所述的基于運行信息的移動應用界面智能搜索方法,其特征在于,所述通過Android虛擬機AVD運行Android應用,獲取Android應用的運行時刻的信息的步驟包括: 從MongoDB服務器獲取應用信息并下載APK安裝包; 分析APK安裝包; 安裝APK安裝包; 獲取應用顯示狀態(tài),所述應用顯示狀態(tài)包括當前顯示的應用信息和界面的控件信息; 對應用顯示狀態(tài)進行分析; 發(fā)送指令,如果未滿足終止條件,循環(huán)安裝APK安裝包及獲取應用顯示狀態(tài)步驟; 把獲取到的應用的運行狀態(tài)信息上傳到服務器。
7.如權利要求6所述的基于運行信息的移動應用界面智能搜索方法,其特征在于,所述對應用顯示狀態(tài)進行分析的步驟包括: 從獲取到的信息中提取出每個控件的詳細信息,包括控件的位置信息和大小信息、界面的控件樹; 生成該界面的一個事件集,事件集包括可點擊的控件和物理按鍵。
8.一種基于運行信息的移動應用界面智能搜索裝置,其特征在于,所述裝置包括: 獲取模塊,用于獲取Android應用的描述信息,并獲取Android應用的運行時刻信息;生成模塊,用于根據(jù)所述獲取模塊所獲取到的Android應用的描述信息和運行時刻信息生成索引; 搜索引擎模塊,用于,用于根據(jù)所述生成模塊所生成的索引進行所需Android應用的搜索,獲得搜索結果。
9.如權利要求8所述的基于運行信息的移動應用界面智能搜索裝置,其特征在于,所述Android應用的描述信息包括應用的分類、下載次數(shù)、文字描述。
10.如權利要求9所述的基于運行信息的移動應用界面智能搜索裝置,其特征在于,所述生成模塊還用于從任務隊列中獲取一個任務,從Android應用市場獲取Android應用的描述信息,并下載APK安裝包;將描述信息和安裝包存儲到數(shù)據(jù)庫中。
【文檔編號】G06F17/30GK104462356SQ201410741303
【公開日】2015年3月25日 申請日期:2014年12月8日 優(yōu)先權日:2014年12月8日
【發(fā)明者】陳湘萍, 周凡, 林格, 韓冠亞 申請人:中山大學