
吴俊伟 等:安卓应用用户界面交互模式抽取与检索
2199
据 Gartner 统计,基于安卓操作系统的移动设备出货量逐年剧增,且安卓操作系统更占据了 86.1% 的市场份
额
[1]
.安卓移动应用的普及,使得越来越多的从业者进入安卓开发领域.为了提高用户使用移动应用的粘性,安卓
开发者除了必须保证应用的功能正确性之外,还需要确保应用具有较高的可用性与易用性.
在安卓框架的四大组件中,活动(activity )是包含用户界面的组件,是与用户进行交互的直接渠道.用户从提
供可视化界面的 Activity 中获取信息,例如,资讯类 App(如今日头条)中的新闻页面即是一个 Activity 的实例,该
页面包含一个列表由上自下列举新闻的概要内容.页面中也包含一个搜索框,允许用户输入关键字从而检索相
关新闻.另一方面,Activity 也负责对用户的动作进行响应,完成数据刷新或页面跳转等功能.例如在上述示例的
App 中,用户可通过下拉列表的方式加载最新新闻.另外,用户也可通过点选列表中的某项新闻内容,从而使得
App 跳转至该新闻的详细内容页面.依据安卓编码规范,Activity 的开发涉及界面布局和交互逻辑这两个部分.
界面布局一般通过定义 layout 文件来指定该 Acti vity 包含的控件以及这些控件之间的位置关系.除此之外,也可
以通过编码方式在运行时动态添加控件.交互逻辑一般通过定义监听器的方式来响应用户在 Activity 上执行的
动作,例如按钮点击、从下拉框中选择项目等.事件响应一般具有两种效果:一种是影响所在 Activity 中的其他
控件(例如使列表重新刷新),另一种是跳转至新的 Activity.
Activity 的开发技术虽然简单,但其布局与交互逻辑的设计则需要大量的经验积累.在安卓应用可随处获取
的情况下,下载并使用各种类型的 Ap
p、学习当前流行的 Activity 设计方案能够为开发者带来启示.然而,这一
方式无法在短期内实现大量应用界面的学习.另外,对开发者,尤其是新手而言,总结出 Activity 界面的交互逻辑
也是较为困难的.
在数据驱动的软件开发中,代码推荐已经成为其中的关注热点.在此背景下,本文提出了一种安卓应用用户
界面交互模式抽取与检索方法,在数据驱动的环境中提供面向安卓应用的界面相关代码查询与推荐能力.该方
法聚焦于单个 Activity 的界面构成以及交互行为,从一组开源的安卓应用项目中抽取出每一个 Activity 的界面
交互模式,支持用户通过检索的方式获取与其需求相关的 Acti vity 设计方案,从而为用户的开发工作提供帮助.
具体而言,抽取处于预处理阶段,旨在通过自动化手段分析每一个安卓应用的每一个 Activity 的界面交互模式,
厘清界面元素的层次结构及其事件行为.检索是预处理完成后面向用户的阶段,依据用户的设计需求,从已抽取
的界面交互模式中查找出最为接近的 Activity 界面模式,并反馈其实现代码和资源.在实现方面,本文结合并扩
展了 GATOR 与 FlowDroid 工具组成一条工具链,为安卓项目 Activity 界面交互模式的抽取提供自动化手段.另
外,提供一套基于 JSON 的查询模板(PQT)支持用户对 Activity 设计需求的表述,并基于该需求实现相关界面交
互模式的检索与结果排序.最后,本文通过两个实例对本方法的准确性与有效性进行验证.
本文第 1 节介绍与本文方法相关的研究工作以及依赖的开源工具.第 2 节介绍方法框架以及每一阶段的方
法策略.第 3 节介绍工具链的设计方案.第 4 节列举应用案例.最后是本文工作的总结与未来工作的展望.
1 相关工作
开发者在开发过程中,通过检索获得实例结果的场景属于安卓代码推荐的范畴.在之前的工作中
[2]
,针对安
卓开发中的代码推荐机制进行了经验性研究,将其分为代码搜索、基本推荐以及高级推荐这 3 种类型.代码推
荐基于用户构造的查询语句,从各类资源库中查找相关实现,其搜索层次可覆盖 API 的使用模式
[3]
、示例代码
[4]
等.与这些已有工作相比,本文提出方法的搜索目标聚焦在 Acti vity 的界面交互模式上.
UI 分析是与本文方法较为相关的研究领域.Kumar等人提出了名为Webzeitgeist 的平台,支持大规模网页设
计的挖掘
[5]
.该平台使用知识发现的技术理解网页的 DOM 设计决策,并支持用户查找与其需求相关的网页实
例.在此工作的基础上,Deka 等人开发了 ERICA 系统对安卓应用进行交互挖掘
[6]
,捕获应用设计中的静态(UI 布
局、可视化细节)和动态(用户流程)决策,并在此挖掘基础上,将已有的应用交互分类为 23 种模式.本文方法受到
以上两个工作的启发,在安卓界面交互模式搜索方面进行了初始的研究.本文同样采用知识发现技术来挖掘安
卓应用的界面结构与交互行为,但将检索的目标局限于单个 Activity 之上.
安卓应用的界面交互模式是安卓设计中的重要环节,在该领域中,Nguyen等人提出的 REMAUI 方法能够分
评论