在Android和Qemu环境下捕获信息流_文献翻译中英对照.doc

在Android和Qemu环境下捕获信息流_文献翻译中英对照.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:400-050-0739。
在Android和Qemu环境下捕获信息流 原著:Marco Sironi, Francesco Tisato 摘要:智能手机市场已变得具有十分广泛的战略意义。今天,最常见的智能手机操作系统是谷歌的Android和苹果的iOS。前者是特别有趣的,由于它的开源本质,让每个人都可以深刻的检查一个环节的OS。Android源代码还捆绑了一个硬件仿真器,基于开放源代码的软件Qemu,允许用户运行Android操作系统时不需要对物理设备做要求。我们首先从一个程序的一个普通系统中提取信息流。然后,我们专注于Android的Qemu架构和它们对基础设施的记录。最后,我们详细介绍在Android设备内部发生的事情:在一个特定的情况下,系统的启动。 1.引言 众所周知,上网的人数不断增加,但特别有意思的是看看他们是如何做到这一点。根据ITU[1]数据,在2011年底全球17%的人通过移动设备访问Web,其中45%是通过3G移动网络访问的。根据StatCounter[2]的统计显示,2012年10月份12.3%的网页在移动设备上被访问过,而在去年这一比例一直在增加。根据NPD集团[3]的统计显示,智能手机总销售额在2012年第二季度相比上年同期增长9%。 这些数据清楚地表明在移动设备市场,尤其是智能手机的市场的不断壮大,使它具有更高的战略相关性。在这种情况下,下列人员检查内部机制设备的能力就变得至关重要:要编写高效的应用程序的开发人员,想要改善系统性能或删除错误的工程师等。出于这个原因,我们将展示一个程序,来获取移动设备内部的信息流。 实际上,智能手机市场主要有两种操作系统:苹果的iOS和谷歌的Android[4]。在本文中,由于Android的扩散性和开源性,我们把注意力集中在它身上。事实上,Android源代码的开源性,可以让每个人都深入检查它的内部并且在任何级别上都可以获取系统的详细信息。 智能手机不仅有一个软件平台,也有其底层的硬件平台。在某些情况下,它可以从该组件收集需要的信息,但是这将要求在其中插入某种探头。这种操作是精确的不是每个人都能完成的:要执行它必须有足够的仪器(探头、焊接机等)和技能(必须知道在哪里附加探头、怎么办、如何获取数据)。幸运的是,谷歌提供了一个硬件仿真器——基于开放源代码软件的Qemu。这意味着,我们可以很容易地直接用软件监测到它的源代码,在一个简单而廉价的软件上就可以获得硬件信息。因此,在本文中,我们将不仅展示如何捕获在移动设备上运行软件的信息流,还有怎样在仿真硬件中捕获。 本文的其余部分的结构如下:在第2节中,我们提出了一个一般的程序,以便于从一个普通的系统获取信息流;在第3节中,我们将介绍在Android环境下,提出的一般程序的结构和一组预构建的可以用来提取信息流的工具;在第4节中,我们介绍Qemu平台的架构和其内置的日志基础设施。在本节中,我们也将重点放在由谷歌自定义的标准版本的Qemu。在第5章中,我们研究一个特定的场景:运行Android设备的启动阶段,这可以在得心应手的情况下,我们运行一个软件探测系统启动。 2一个普通程序 我们可以从一个设备得到大量的各种数据。由于这个原因,首先,我们必须说明的是,我们为什么要捕捉信息的流动。根据我们的目标,我们需要不同种类的信息。例如,考虑一个应用程序崩溃,我们要在不同条件下进行一些调试。我们所关注的是细节的、确定性的单执行,如执行状态、参数、变量值等信息。现在考虑另一种情况——我们要优化一个应用程序。我们的目的是要了解最耗时的方式,这样我们就可以分析,并最终对其进行编辑使应用程序以更快的速度运行(此操作通常被称为“应用程序分析”)。我们要寻找一种完全不同的信息:我们想知道哪个应用程序的方法被声明,它被调用的频率和时间。在这种情况下,我们最感兴趣的是获得大量数据并处理得到统计信息。另一个重要方面,我们必须明白的是跟踪装置是为了了解我们需要检查的抽象层是什么。例如,我们必须明白,我们需要的是在应用程序的方法层的信息,还是在物理操作层的细节中的系统调用层的信息。一种设备,或者一个普通的系统,通常在细节上都是很复杂的,因此抽象层凸显系统中细节问题的相关性,而忽略了那些不相关因素。这是在理解抽象层次上来显示我们需要的信息,并集中在它们身上的根本原因。它往往是需要从不同的抽象层捕捉信息流,然后再确定它们之间的关系是什么。 一旦我们的目标明确,下一步就是说明我们怎样得到它。我们必须收集所有必要的信息,因为任何不必要的信息都可能会导致不必要的副作用。尤其可能出现两个问题:时间开销和信息泛滥。当捕捉信息需要大量时间时我们需要时间开销,并且探针会减慢要跟踪的应用程序或系统的速度。时间开销会影响到我们捕捉需要的数据时的准确时间。请注意,当我们插入任何一种探针到一个系统中时,都会产生时

文档评论(0)

嫣雨流纱
该用户很懒,什么也没介绍

相关文档

相关课程推荐