CN104462356A - 一种基于运行信息的移动应用界面智能搜索方法及其装置 - Google Patents

一种基于运行信息的移动应用界面智能搜索方法及其装置 Download PDF

Info

Publication number
CN104462356A
CN104462356A CN201410741303.9A CN201410741303A CN104462356A CN 104462356 A CN104462356 A CN 104462356A CN 201410741303 A CN201410741303 A CN 201410741303A CN 104462356 A CN104462356 A CN 104462356A
Authority
CN
China
Prior art keywords
information
application
android application
android
descriptor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410741303.9A
Other languages
English (en)
Inventor
陈湘萍
周凡
林格
韩冠亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN201410741303.9A priority Critical patent/CN104462356A/zh
Publication of CN104462356A publication Critical patent/CN104462356A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种基于运行信息的移动应用界面智能搜索方法及其装置,该方法包括:获取Android应用的描述信息,并获取Android应用的运行时刻信息;根据所述Android应用的描述信息和运行时刻信息生成索引;根据所述索引进行所需Android应用的搜索,获得搜索结果。在本发明实施例中,实现了批量化遍历Android应用,获取了Android应用在运行时的信息,通过考虑字体与文本重要性的关系来建立反向索引,提高界面搜索的准确性。另外,通过结合运行时的信息,并且通过自动化的方法来实现,降低了提供界面搜索的成本,提高了开发人员和设计人员的效率。

Description

一种基于运行信息的移动应用界面智能搜索方法及其装置
技术领域
本发明涉及移动应用技术领域,尤其涉一种基于运行信息的移动应用界面智能搜索方法及其装置。
背景技术
随着Android系统的流行,Android应用的数量变得越来越多且功能越来越丰富,Android手机用户可以在应用商店中通过搜索找到自己需要的应用。但是对于刚刚接触移动应用开发的开发人员,在根据需求设计界面时,往往需要参考已有的相关应用界面。开发人员首先通过已有的经验猜测可能存在类似界面的移动应用,然后到应用商店查找和下载应用,并在移动设备或者移动应用的模拟平台上安装和运行应用,在使用移动应用的过程中寻找可能的参考页面。根据一个特定的应用设计需求,设计人员往往需要获得多个参考界面,这个过程对于新手编程人员,往往是非常耗时的。
如今,也有部分网站提供界面搜索的功能。这些网站的工作人员通过手动运行应用然后进行截图,接着进行人工整理和总结并上传到网站中,用户可以通过关键词搜索某一功能或者界面模式的界面,以此得到参考。但此技术方案需要手动获取界面,并且进行人工整理,工作量大,并且应用的覆盖有限。这些网站更偏重于界面模式的总结,为设计人员提供界面设计模式的参考,具有较大的主观性。另一方面,并没有考虑应用在运行时刻的信息,而是通过人工去判断,效率比较低。
另外,需要运行每个Android的应用,因此,需要用到Android测试的相关技术。在Android应用测试领域,测试人员根据每个应用的功能特点,编写出测试的脚本去测试Android应用,使得Android应用按照设定的路径运行,以检查是否有bug产生。此方案需要根据每个Android应用的情况在程序中设定测试的路径,灵活性较差,不便于大量的Android应用的遍历。
各大Android应用的市场也有提供了Android应用搜索的功能,用户通过输入关键字,搜索需要的应用。先对应用的名称和应用的描述信息生成反向索引,而对用户输入的关键词进行分词并查询索引,最终给用户提供搜索的应用结果。此方案关注的力度在于应用,而不是应用的界面,并且搜索的时候没有考虑到运行时刻的信息。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种基于运行信息的移动应用界面智能搜索方法及其装置,使开发者和设计人员能够极大地提高工作效率,方便开发者和设计人员做出更加优秀的产品。
为了解决上述问题,本发明提出了一种基于运行信息的移动应用界面智能搜索方法,所述方法包括:
获取Android应用的描述信息,并获取Android应用的运行时刻信息;
根据所述Android应用的描述信息和运行时刻信息生成索引;
根据所述索引进行所需Android应用的搜索,获得搜索结果。
优选地,所述Android应用的描述信息包括应用的分类、下载次数、文字描述。
优选地,所述收集Android应用的描述信息的步骤包括:
从任务队列中获取一个任务;
从Android应用市场获取Android应用的描述信息,并下载APK安装包;
将描述信息和安装包存储到数据库中。
优选地,所述运行时刻信息为实际运行Android应用时,在界面上展现的信息。
优选地,所述获取Android应用的运行时刻信息的步骤包括:通过Android虚拟机(Android Virtual Device,AVD)运行Android应用,获取Android应用的运行时刻的信息。
优选地,所述通过Android虚拟机AVD运行Android应用,获取Android应用的运行时刻的信息的步骤包括:
从MongoDB服务器获取应用信息并下载APK安装包;
分析APK安装包;
安装APK安装包;
获取应用显示状态,所述应用显示状态包括当前显示的应用信息和界面的控件信息;
对应用显示状态进行分析;
发送指令,如果未满足终止条件,循环安装APK安装包及获取应用显示状态步骤;
把获取到的应用的运行状态信息上传到服务器。
优选地,所述对应用显示状态进行分析的步骤包括:
从获取到的信息中提取出每个控件的详细信息,包括控件的位置信息和大小信息、界面的控件树;
生成该界面的一个事件集,事件集包括可点击的控件和物理按键。
相应地,本发明还提供一种基于运行信息的移动应用界面智能搜索装置,所述装置包括:
获取模块,用于获取Android应用的描述信息,并获取Android应用的运行时刻信息;
生成模块,用于根据所述获取模块所获取到的Android应用的描述信息和运行时刻信息生成索引;
搜索引擎模块,用于,用于根据所述生成模块所生成的索引进行所需Android应用的搜索,获得搜索结果。
优选地,所述Android应用的描述信息包括应用的分类、下载次数、文字描述。
优选地,所述生成模块还用于从任务队列中获取一个任务,从Android应用市场获取Android应用的描述信息,并下载APK安装包;将描述信息和安装包存储到数据库中。
在本发明实施例中,实现了批量化遍历Android应用,获取了Android应用在运行时的信息,通过考虑字体与文本重要性的关系来建立反向索引,提高界面搜索的准确性。另外,通过结合运行时的信息,并且通过自动化的方法来实现,降低了提供界面搜索的成本,提高了开发人员和设计人员的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的基于运行信息的移动应用界面智能搜索方法的流程示意图;
图2是本发明实施例中Android应用描述信息爬虫架构示意图;
图3是本发明实施例中Monitor工具的结构示意图;
图4是本发明实施例的基于运行信息的移动应用界面智能搜索装置的结构组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例的基于运行信息的移动应用界面智能搜索方法的流程示意图,如图1所示,该方法包括:
S101,获取Android应用的描述信息,并获取Android应用的运行时刻信息;
S102,根据Android应用的描述信息和运行时刻信息生成索引;
S103,根据索引进行所需Android应用的搜索,获得搜索结果。
在Android应用市场中,每个Android应用都有一段关于该应用的描述信息,该信息描述了该应用主要的功能和特色。因此,如图2所示,本发明采用一个网络的爬虫去获取Android应用市场上的应用的描述信息,包括:应用的分类、下载次数、文字描述等,并且下载应用的APK安装文件。
图2所示的Android应用的描述信息的爬虫架构主要采用python语言实现,由于应用的数量较大,APK文件的下载需要较长时间,采用一个任务队列,并采用分布式处理的方法。
具体实施中,收集Android应用的描述信息的步骤包括:
从任务队列中获取一个任务;
从Android应用市场获取Android应用的描述信息,并下载APK安装包;
将描述信息和安装包存储到数据库中,该数据库采用MongoDB。
运行时刻信息为实际运行Android应用时,在界面上展现的信息;具体实施中,通过AVD运行Android应用,获取Android应用的运行时刻的信息。
在本发明实施例中,如图3所示,使用Monitor工具获取Android应用运行状态下的用户界面(User Interface,UI)信息,获取运行状态下的UI信息,需要实际地去运行Android应用,这是一个很耗时的过程,而由于计算机配置的限制,需要在多台机器上运行多个模拟器,因此使用了分布式控制的方式去实现对多台机器的控制。对于每一个新加入的AVD,中心控制器都新开一个线程单独对该AVD进行管理,以使用该AVD运行Android应用,获取Android应用的运行状态下的信息。
通过Android虚拟机AVD运行Android应用,获取Android应用的运行时刻的信息的步骤包括:
步骤1,从MongoDB服务器获取应用信息并下载APK安装包。
步骤2,分析APK安装包;Androidmanifest.xml中存放着每个APP的权限、SDK版本、应用程序和组件等信息,使用AXMLPrinter2工具对APK文件中的配置文件Androidmanifest.xml进行反编译,获取出一个APP的组件列表、启动类名和包名等信息。
步骤3,安装APK安装包;ADB(Android Debug Bridge)是android sdk里的一个工具,用这个工具可以直接操作管理Android模拟器(虚拟机)或者真实的Andriod设备,这里通过ADB来实现安装APK的功能。
步骤4,获取应用显示状态,该应用显示状态包括当前显示的应用信息和界面的控件信息;每个AVD都提供了一个viewserver,开放了socket端口,用于获取当前的窗口信息和控件信息,向这个端口发送获取信息的指令,以此来获取到窗口信息和控件信息,同样,使用ADB获取到当前窗口的截图。
步骤5,对应用显示状态进行分析;具体实施中,从viewserver的socket端口中获取到的信息中提取出每个控件的详细信息包括控件的位置信息和大小信息,界面的控件树;生成该界面的一个事件集,事件集包括可点击的控件和物理按键等。
步骤6,发送指令,如果未满足终止条件,循环步骤4、5、6;从生成的事件集中取出一个进行执行,实际操作中,使用了monkey这个Android的测试工具事件的执行,通过步骤5已经得到了每个控件的位置信息,于是通过点击屏幕上的位置来对需要点击的控件进行点击。
步骤7,把获取到的应用的运行状态信息上传到服务器。
另外,在实施步骤102中,考虑了两个层次的数据:应用层次的描述信息和界面层次的描述信息。应用层次的描述信息从宏观的角度描述了一个界面所在的应用的功能和主要特征等,而界面层次的描述信息则更具体地展示一个人机界面的主要功能信息。
在获取了大量的人机界面信息之后,为了达到搜索的结果,需要从这些信息里挑选出有用的文本信息用于索引,可以根据用户输入的关键字匹配出搜索结果。一个Android的人机界面中,文本信息是对一个界面最重要的描述信息,能对用户更好的展现该界面的主要功能等,而界面上包含文本信息的控件包括TextView、Button、EditView等,本发明采用这些控件里的文本信息,加上应用的描述信息,进行下一步的处理。
在选择了文本数据之后,需要根据这些文本来生成索引。直接利用应用的描述信息和界面的控件文本信息来生成索引,会有以下几个问题:1、应用的描述信息远多于界面中的文本信息,会造成界面中的文本信息在总的文本中占的权重太小;2、界面上的文本的重要程度不同。
界面上比较重要的字眼,相对字体会更大,因此在生成索引的过程中考虑了字体的因素,对文本信息根据字体大小,赋予不同的权重。根据字体大小,将文本分成三档:小、中、大。例如,当字体的分布是18、19、20、21、22、23时,将18、19归类为小,20、21归类为中,22、23归类为大,按照文本大小将将文本划分到这三个档次中进行索引,这三个档次的文本权重分别为1、2、3。
在S103中,采用了开源的搜索引擎solr来搭建搜索界面。
相应地,本发明实施例还提供一种基于运行信息的移动应用界面智能搜索装置,如图4所示,该装置包括:
获取模块40,用于获取Android应用的描述信息,并获取Android应用的运行时刻信息;
生成模块41,用于根据获取模块41所获取到的Android应用的描述信息和运行时刻信息生成索引;
搜索引擎模块42,用于,用于根据生成模块41所生成的索引进行所需Android应用的搜索,获得搜索结果。
上述Android应用的描述信息包括应用的分类、下载次数、文字描述。
生成模块41还用于从任务队列中获取一个任务,从Android应用市场获取Android应用的描述信息,并下载APK安装包;将描述信息和安装包存储到数据库中。
上述运行时刻信息为实际运行Android应用时,在界面上展现的信息。
具体实施中,搜索引擎模块42采用了开源的搜索引擎solr来搭建本发明的界面。
本发明装置的各功能模块的功能实现可参见方法实施例的实现过程及原理,这里不再赘述。
在本发明实施例中,实现了批量化遍历Android应用,获取了Android应用在运行时的信息,通过考虑字体与文本重要性的关系来建立反向索引,提高界面搜索的准确性。另外,通过结合运行时的信息,并且通过自动化的方法来实现,降低了提供界面搜索的成本,提高了开发人员和设计人员的效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
另外,以上对本发明实施例所提供的基于运行信息的移动应用界面智能搜索方法及其装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于运行信息的移动应用界面智能搜索方法,其特征在于,所述方法包括:
获取Android应用的描述信息,并获取Android应用的运行时刻信息;
根据所述Android应用的描述信息和运行时刻信息生成索引;
根据所述索引进行所需Android应用的搜索,获得搜索结果。
2.如权利要求1所述的基于运行信息的移动应用界面智能搜索方法,其特征在于,所述Android应用的描述信息包括应用的分类、下载次数、文字描述。
3.如权利要求2所述的基于运行信息的移动应用界面智能搜索方法,其特征在于,所述收集Android应用的描述信息的步骤包括:
从任务队列中获取一个任务;
从Android应用市场获取Android应用的描述信息,并下载APK安装包;
将描述信息和安装包存储到数据库中。
4.如权利要求1所述的基于运行信息的移动应用界面智能搜索方法,其特征在于,所述运行时刻信息为实际运行Android应用时,在界面上展现的信息。
5.如权利要求1所述的基于运行信息的移动应用界面智能搜索方法,其特征在于,所述获取Android应用的运行时刻信息的步骤包括:通过Android虚拟机AVD运行Android应用,获取Android应用的运行时刻的信息。
6.如权利要求5所述的基于运行信息的移动应用界面智能搜索方法,其特征在于,所述通过Android虚拟机AVD运行Android应用,获取Android应用的运行时刻的信息的步骤包括:
从MongoDB服务器获取应用信息并下载APK安装包;
分析APK安装包;
安装APK安装包;
获取应用显示状态,所述应用显示状态包括当前显示的应用信息和界面的控件信息;
对应用显示状态进行分析;
发送指令,如果未满足终止条件,循环安装APK安装包及获取应用显示状态步骤;
把获取到的应用的运行状态信息上传到服务器。
7.如权利要求6所述的基于运行信息的移动应用界面智能搜索方法,其特征在于,所述对应用显示状态进行分析的步骤包括:
从获取到的信息中提取出每个控件的详细信息,包括控件的位置信息和大小信息、界面的控件树;
生成该界面的一个事件集,事件集包括可点击的控件和物理按键。
8.一种基于运行信息的移动应用界面智能搜索装置,其特征在于,所述装置包括:
获取模块,用于获取Android应用的描述信息,并获取Android应用的运行时刻信息;
生成模块,用于根据所述获取模块所获取到的Android应用的描述信息和运行时刻信息生成索引;
搜索引擎模块,用于,用于根据所述生成模块所生成的索引进行所需Android应用的搜索,获得搜索结果。
9.如权利要求8所述的基于运行信息的移动应用界面智能搜索装置,其特征在于,所述Android应用的描述信息包括应用的分类、下载次数、文字描述。
10.如权利要求9所述的基于运行信息的移动应用界面智能搜索装置,其特征在于,所述生成模块还用于从任务队列中获取一个任务,从Android应用市场获取Android应用的描述信息,并下载APK安装包;将描述信息和安装包存储到数据库中。
CN201410741303.9A 2014-12-08 2014-12-08 一种基于运行信息的移动应用界面智能搜索方法及其装置 Pending CN104462356A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410741303.9A CN104462356A (zh) 2014-12-08 2014-12-08 一种基于运行信息的移动应用界面智能搜索方法及其装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410741303.9A CN104462356A (zh) 2014-12-08 2014-12-08 一种基于运行信息的移动应用界面智能搜索方法及其装置

Publications (1)

Publication Number Publication Date
CN104462356A true CN104462356A (zh) 2015-03-25

Family

ID=52908391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410741303.9A Pending CN104462356A (zh) 2014-12-08 2014-12-08 一种基于运行信息的移动应用界面智能搜索方法及其装置

Country Status (1)

Country Link
CN (1) CN104462356A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021260A (zh) * 2015-03-26 2016-10-12 国际商业机器公司 在多个运行时产物中搜索至少一个关系模式的方法和系统
CN112099802A (zh) * 2020-09-18 2020-12-18 腾讯科技(深圳)有限公司 应用程序的组件识别方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833574A (zh) * 2010-04-15 2010-09-15 西安酷派软件科技有限公司 一种应用程序的定位方法、系统及移动终端
CN103365880A (zh) * 2012-03-29 2013-10-23 百度在线网络技术(北京)有限公司 移动终端中应用程序搜索方法及搜索系统以及移动终端
CN103425704A (zh) * 2012-05-24 2013-12-04 阿里巴巴集团控股有限公司 应用界面提供方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833574A (zh) * 2010-04-15 2010-09-15 西安酷派软件科技有限公司 一种应用程序的定位方法、系统及移动终端
CN103365880A (zh) * 2012-03-29 2013-10-23 百度在线网络技术(北京)有限公司 移动终端中应用程序搜索方法及搜索系统以及移动终端
CN103425704A (zh) * 2012-05-24 2013-12-04 阿里巴巴集团控股有限公司 应用界面提供方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KAIYUAN LI 等: "A Platform for Searching UI Component of Android Application", 《2014 5TH INTERNATIONAL CONFERENCE ON DIGITAL HOME (ICDH)》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021260A (zh) * 2015-03-26 2016-10-12 国际商业机器公司 在多个运行时产物中搜索至少一个关系模式的方法和系统
CN106021260B (zh) * 2015-03-26 2019-03-19 国际商业机器公司 在多个运行时产物中搜索至少一个关系模式的方法和系统
US10572494B2 (en) 2015-03-26 2020-02-25 International Business Machines Corporation Bootstrapping the data lake and glossaries with ‘dataset joins’ metadata from existing application patterns
CN112099802A (zh) * 2020-09-18 2020-12-18 腾讯科技(深圳)有限公司 应用程序的组件识别方法及装置

Similar Documents

Publication Publication Date Title
US11977859B2 (en) Automatically generating machine learning models for software tools that operate on source code
De Bayser et al. ResearchOps: The case for DevOps in scientific applications
Moghadam et al. Code-Imp: A tool for automated search-based refactoring
Barker et al. Academic cloud computing research: Five pitfalls and five opportunities
US20140013304A1 (en) Source code analytics platform using program analysis and information retrieval
CN103942099A (zh) 基于Hive的并行执行任务方法及装置
Verma Mvc architecture: A comparative study between ruby on rails and laravel
CN103123605A (zh) 一种Android平台自动化集成测试方法和装置
Peveler et al. Comparing jailed sandboxes vs containers within an autograding system
CN109828750A (zh) 自动配置数据埋点的方法、装置、电子设备及存储介质
Amparore A new GreatSPN GUI for GSPN editing and CSL TA model checking
Xue Automated mobile apps testing from visual perspective
CN104462356A (zh) 一种基于运行信息的移动应用界面智能搜索方法及其装置
JP2017522639A5 (zh)
Minelli Software analytics for mobile applications
WO2023143746A1 (en) System and method for managing artifacts related to apps
CN117242457A (zh) 定位神经网络性能热点
Li et al. A platform for searching UI component of android application
Wang et al. BOAT: an experimental platform for researchers to comparatively and reproducibly evaluate bug localization techniques
CN111008140A (zh) 一种跨平台的ui自动化测试方法及装置
Shi et al. Automatic recommendation of user interface examples for mobile app development
CN106155895A (zh) 脚本数据处理方法及装置
Fajar et al. R2FM Method for Requirement Analysis in Software Product Line for E-Government Applications
da Silva Filho et al. Tools to support SMEs to migrate to the cloud: opportunities and challenges
Schulte Investigating topic modeling techniques for historical feature location.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150325