Monkey Gamer:Android游戏的自动分析外文翻译资料

 2022-11-10 14:52:18

2014 6 th International Conference on Mobile Computing, Applications and Services (MobiCASE )

Monkey Gamer: Automatic Profiling of Android Games

Javier Marianacute; Santos, Simin Nadjm-Tehrani, Aruna Prem Bianzino

Department of Computer and Information Science, Linkopinguml; University, Sweden

Email: simin.nadjm-tehrani@liu.se

Abstract—Creation of smartphone applications has undergone a massive explosion in recent years and there is an urgent need for evaluation of their resource efficiency, trustworthiness and reliability. A large proportion of these apps are going to be within the gaming area. In this paper we classify game apps on the basis of their development process, their I/O process and their interaction level. We present Monkey Gamer, a software to automatically play a large class of Android games and collect execution traces, based on a state machine to partially describe the game structure and interactions. A significant similarity is shown when comparing the results obtained by the Monkey Gamer and by human players, for three of the most popular

Android games. We evaluate the performance of the Monkey Gamer by comparing the traces it generates with traces created when humans play the games, and find significant similarity in the trace sets.

I. INTRODUCTION

The introduction of the app-driven software deployment for mobile devices is redrawing the application software development map for a significant proportion of interactive software. Many players, including software developing companies and independent developers, are given the opportunity to enter the app market and to distribute them in the virtual shops for a widespread dissemination.

This new dynamics motivates a new look at the application development cycle and efficient investigations on a mass market scale. Heterogeneity in the range of available apps gives rise to the need for tools to easily and automatically test their efficiency, trustworthiness and reliability - either with a common denominator, a generic tool that can treat aspects of many apps, or with a tool that is tailormade to a significant subset of the apps appearing. Clearly, application profiling, creating logs of system status, system calls, user inputs, access to sensitive data, network usage, energy-consuming features, etc, can be of great help for creation of future system software and hardware producers, as well as for research.

Games represent a big share of the available apps. It has been estimated that 20% of the applications available in the iPhone app store are games, and about 80% of application downloads concern games [1]. Other more conservative estimations still claim that games are responsible for 36% of the downloads in iTunes and for 22% of the downloads in Play Store [2][1]. Game apps constitute a challenging case from a testing and profiling point of view, as games require a higher level of interaction with the user – potentially within a simultaneous group of users – compared to other apps. Games usually present a more complex structure including different screens and different activities.

In this paper, we take two important steps towards automatically profiling and analysing game bahaviours: (i) we introduce a game classification, which represents a basis for a better understanding of the game app population, and ( ii ) we develop Monkey Gamer, a software to automatically play Android games belonging to many of these classes, emulating their behaviour and producing play traces similar to humanplayer traces.

Key elements in automatically playing games are the identification of the interaction points in the screen and the kind of input that the game is taking. Our game classification highlights these aspects, in order to understand which population of games can be profiled using Monkey Gamer, and how to design the tool to be able to play these games. We estimate that Monkey Gamer is able to profile about 45% of the top 100 downloaded free games on the Google Play Store, as for the Swedish market [3].

The goal of Monkey Gamer is to support profiling of an Android game, without the use of expensive human players and human time consumption. Game profiling by Monkey Gamer results in a sequence of inputs and the corresponding execution traces, in terms of system status, system calls, access to sensitive data, network usage, and game state. The input sequence is not pre-generated, but constructed on-the-fly, on the basis of the current game and system state. The Monkey Gamer should behave as similarly as possible to a human player, in order to keep the obtained profiling meaningful.

We validate Monkey Gamer considering three popular games, accounting for millions of downloads. The selected games represent different levels of game complexity, different sets in the game classification, different underlying game development procedures, and different input types (tap and swipe). Monkey Gamer performance is validated in terms of similarity to real human player traces, showing high resemblance, and provides a deeper exploration of game states.

978-1-63190-024-2 copy; 2014 ICST

125 DOI 10.4108/icst.mobicase.2014.257771

Previous approaches to automatic profiling Android applications have been targeting just a specific game [8], or just a specific aspect of games, like the game energy states [7] , game network connections [11], game security [9] or privacy, i.e., access to user sensitive data by games [10]. A number of works test generic Android applications, without specifically targeting games, but they either relay on completely random input generation [14], application-specific input generation [15], a properly tuned mix of random input and input paths generated from a given application-specific seed [11], or a prior knowledge of all the inte

剩余内容已隐藏,支付完成后下载完整资料


Monkey Gamer:Android游戏的自动分析

Javier Marianacute; Santos, Simin Nadjm-Tehrani, Aruna Prem Bianzino

Department of Computer and Information Science, Linkopinguml; University, Sweden

Email: simin.nadjm-tehrani@liu.se

摘要:

近年来,智能手机应用程序的创建已经历了巨大的爆发,迫切需要评估其资源效率,可信度和可靠性。这些应用中的大部分将在游戏区域内。在本文中,我们基于他们的开发过程,他们的I / O过程和他们的交互水平分类游戏应用程序。我们提供的猴子游戏玩家,一个软件,自动播放大类的Android游戏和收集执行跟踪,基于状态机部分描述游戏结构和交互。当比较猴子游戏者和人类玩家获得的结果,三个最流行的Android游戏时,显示了显着的相似性。我们通过比较它生成的痕迹与人类玩游戏时创建的痕迹,并在痕迹集中发现显着的相似性来评估Monkey Gamer的性能。

针对移动设备的应用驱动软件部署的引入正在重新绘制大量交互式软件的应用软件开发图。许多玩家,包括软件开发公司和独立开发者,都有机会进入应用程序市场,并在虚拟商店中进行分发,广泛传播。

这种新的动态激发了对大规模市场规模的应用开发周期和高效调查的新视角。可用应用程序范围内的异质性导致需要工具来轻松自动测试其效率,可靠性和可靠性 - 无论是使用通用标准,可以处理许多应用程序的通用工具,还是使用定制工具到显示的应用程序的重要子集。显然,应用程序分析,创建系统状态日志,系统调用,用户输入,敏感数据访问,网络使用,能耗特征等对于创建未来的系统软件和硬件生产者以及用于研究。

游戏代表了可用应用程序的一大部分。据估计,iPhone应用商店中有20%的应用程序是游戏,约80%的应用程序下载涉及游戏[1]。其他更保守的估计仍然声称游戏负责在iTunes下载的36%和在Play Store [2] 1下载的22%。从测试和剖析的角度来看,游戏应用程序构成了一个具有挑战性的情况,因为与其他应用程序相比,游戏需要与用户进行更高级别的交互(可能在同时发生的用户组中)。游戏通常呈现更复杂的结构,包括不同的屏幕和不同的活动。

在本文中,我们采取两个重要的步骤,自动分析和分析游戏bahaviours:(i)我们介绍一个游戏分类,它代表一个更好地了解游戏应用程序人口的基础,(ii)我们开发Monkey Gamer软件自动播放属于这些类中的许多的Android游戏,模拟他们的行为,并产生类似人类播放器轨迹的播放轨迹。

自动演奏游戏的关键元素是屏幕中的交互点的识别和游戏正在进行的输入的种类。我们的游戏分类强调这些方面,以了解哪些人口的游戏可以使用Monkey Gamer进行分析,以及如何设计工具,以便能够玩这些游戏。我们估计,Monkey Gamer能够在Google Play商店上搜索前100大下载免费游戏中的45%,就像瑞典市场[3]。

Monkey Gamer的目标是支持Android游戏的分析,而不使用昂贵的人类玩家和人类的时间消耗。由Monkey Gamer进行的游戏分析在系统状态,系统调用,敏感数据访问,网络使用和游戏状态方面产生一系列输入和相应的执行轨迹。输入序列不是预先生成的,而是在当前游戏和系统状态的基础上构建的。Monkey Gamer应该尽可能地类似于人类玩家,以便保持获得的分析有意义。

我们验证Monkey Gamer考虑三个流行的游戏,数百万的下载。所选择的游戏代表不同级别的游戏复杂性,游戏分类中的不同集合,不同的底层游戏开发过程和不同的输入类型(点击和滑动)。猴子游戏玩家的表现是根据与真实的人类玩家轨迹的相似性验证,显示高resem-blance,并提供游戏状态的更深入的探索。

以前的方法来自动仿形Android应用程序已经瞄准只是一个特定的游戏[8] ,或游戏只是一个具体的方面,像游戏中的能量状态[7] ,游戏的网络连接[11] ,游戏安全[9]或隐私,即通过游戏访问用户敏感数据[10]。许多作品测试通用的Android应用程序,没有专门针对游戏,但他们或者继承完全随机输入生成[14],应用程序特定的输入生成[15],一个适当调整的混合随机输入和输入路径从给定应用程序特定种子[11],或在每个游戏状态[12]中存在的所有交互元素的先验知识。最后,有一种方法来测试通用Android应用程序从整体的角度,但使用人类播放器,而不是自动化输入[13]。我们的工作是第一次尝试将通用和复杂的分析技术应用于大型Android应用程序,这是市场上可用的游戏的一个主要子集。

本文的其余部分组织如下:第二部分介绍我们的Android游戏的分类。第三部分描述了猴子游戏,而第四部分验证它考虑真实和流行的游戏。最后,第五节总结本文,并提出未来的工作方向。

第二节。

Android游戏分类

Android游戏在玩游戏时所需的互动可能有很大的变化,无论从物理和技术的角度。对这种变化性的深刻理解是自动游戏分析的基本起点。一方面,它有助于了解哪些游戏可以自动剖析,哪些不能。另一方面,它描述了这种分析在游戏人口覆盖率方面的相关性。同时,这样的游戏分类可以有助于关于用户/应用交互和一般的应用简档的其他类型的研究。

在本节的剩余部分,我们讨论不同种类的用户/游戏交互,以及开发人员可用于定义游戏图形用户界面(GUI)的不同选择。

A.用户输入

一些游戏可以被描述为离散状态机,其中游戏进入状态并且在进入以下状态之前等待用户输入。这类游戏的一个熟悉的例子可能是棋游戏。我们将这类游戏称为“时间无关”。其他游戏以连续方式改变状态,部分独立于用户输入,并且根据瞬时状态响应特定输入。这类游戏的常见示例可以是任何赛车或平台游戏,其中即使当玩家不与游戏交互时游戏的状态也改变。我们将这类游戏称为“时间依赖”。

从游戏的自动剖析的观点来看,依赖于时间的游戏代表了巨大的挑战,因为时间相关游戏的状态空间是无限的,并且Monkey Gamer必须以连续的方式产生输入。为此,我们决定将范围缩小到与时间无关的游戏的分析。在瑞典市场的Google Play商店中,下载量最高的100种免费游戏中有49种是时间独立的游戏(在我们的抽样2时),使得这个子集很有趣。

在这项工作中,我们考虑通过触摸屏的用户/游戏交互。其他输入可以由用户通过其他传感器(诸如加速度计或麦克风)给出,但是当考虑与时间无关的游戏群体时,非常常见的输入生成模式是通过触摸屏界面。

图。1:

通过GUI实现技术分配游戏。

查看全部

B. GUI实现技术

用户通过触摸特定的交互对象通过触摸屏与游戏交互。游戏开发者可以使用不同的技术来实现GUI。GUI可以使用xml文件定义 - 这是nongame应用程序的通用做法。作为替代,游戏开发者可以使用特定的游戏引擎来定义游戏的GUI。游戏引擎为游戏开发商提供特定的开发工具来管理游戏图形,物理引擎,动画,人工智能等。这些框架使得游戏引擎的使用非常受欢迎。同时,根据开发者的需要,可以使用不同的游戏引擎。这个过程的结果是用于游戏的游戏开发工具的高度异质性。

图4中报告了GUI实现技术在采样的Google Play商店中的100个最下载的免费游戏之间的分布。1。该分析表明,由于开发技术的高度异质性,针对特定开发技术的自动剖析游戏的方法将比通用方法更不相关。

第三节。

猴子游戏玩家

Monkey Gamer是在控制真实(Android)设备的计算机上执行的程序。它在Android设备上播放游戏,生成自动输入和收集有关游戏状态,系统状态,系统调用和游戏生成的网络连接等的跟踪。

A.分析器的架构

包括猴子游戏者的主要块如图1所示。2

图。2:

作为功​​能块的猴游戏者的结构。

查看全部

主控制器模块作为输入的位置。apk文件的游戏进行分析,负责协调其他模块和收集执行跟踪。

画面收集器模块支配与游戏相关联的状态机和是猴玩家的关键模块。与游戏的迭代被顺序执行以便模拟玩游戏。每个交互对应于一系列操作:(i)等待屏幕稳定(屏幕切换可以包括动画,适当的切换时间t;被选择),(ii)拍摄屏幕截图并检查系统状态, )确定游戏状态,(iv)检索关于屏幕上的交互对象的信息,以及(v)产生以下输入。

反汇编块负责拆卸的。所分析的游戏apk文件,而安装块安装在物理Android设备的游戏干净的实例。

跟踪采集模块负责收集系统调用和网络流量。

特别地,特定模块,即屏幕分析器,负责上述步骤(iv)。屏幕分析仪返回当前游戏屏幕的交互式元素,即按钮,图像或文本字段。交互式元素可以是清楚可识别的,即,如果通过xml文件定义GUI,则屏幕上的每个对象在xml文件中唯一地标识,并且交互式对象由特定参数(例如,clickable = true)标识。另一方面,如果使用游戏引擎定义GUI,则不可能访问描述不同对象及其属性的文件,因为游戏引擎不是标准的。在后一种情况下,必须从屏幕截图本身识别交互式对象,并且该操作被降级到专用对象检测器模块。

最后,输入生成器模块负责生成游戏的后续输入。该步骤包括对要交互的对象的选择,交互的类型(键入文本,按下硬键,触摸或滑动)以及最终交互参数(例如,要输入的文本或滑动手势的方向)。每个屏幕与其包含的检测到的交互式对象的列表以及屏幕之前访问过的次数相关联。考虑每个交互对象和交互对象列表的每个可能的排列,在每个步骤选择要被交互的对象。例如,如果所考虑的屏幕包含三个不同的交互对象,则在屏幕的每次访问时与之交互的对象序列将是{I,2,3; 1,3,2; 2,1,3; 2,3,1; 3,1,2; 3,2,1},其中1,2和3是对象标识符。

图。3:

不同的屏幕的井字游戏,对应不同的游戏状态。

查看全部

B.游戏国

游戏分析强烈依赖于游戏状态的定义,因为游戏被建模为状态机,但没有商定的“游戏状态”的标准定义。游戏的状态被定义在一个非常粗略的规模[7],或者非常具体的游戏[8]。我们的方法需要依赖于游戏状态的定义,其通用性足以适用于所选择的类中的所有游戏,同时足够详细以将不同的游戏阶段区分为不同的游戏状态。因此,我们将游戏的状态定义为游戏内的点,其特征在于特定屏幕输出和一组特定的交互元素。图1中描绘了用于Tic Tac Toe Free游戏的对应于不同游戏状态的不同游戏屏幕截图的示例。3。每个状态的特征在于不同的屏幕布局和不同的交互元素集合。注意,类似的屏幕截图,仍然以相同的布局和相同的交互式元素集为特征,被映射到相同的游戏状态。图2中报告了针对“ 愤怒的小鸟”游戏映射到相同游戏状态的不同屏幕截图的示例。4。

从实现的角度来看,活动类被定义为移动应用程序作为任务容器,但是使用游戏引擎使得该类不是唯一地对应于我们的游戏状态的定义,因为不同的活动可以对应于不同的状态,而是单个活动也可以保持不同的状态。这证明了我们的选择,将游戏状态机中的状态映射到屏幕截图。在游戏分析的每个阶段,Monkey Gamer需要知道它是在访问游戏的新状态还是已知的。这既需要知道在游戏状态机中何处映射状态,也需要生成对游戏的下一输入。

图。4:

不同的截图的愤怒的小鸟游戏映射到相同的游戏状态。

查看全部

屏幕比较通过逐像素比较

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[137922],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。