Android虚拟设备创建指南

译文
移动开发 Android
在创建Android应用程序的过程中,最基本的步骤当然少不了运行和测试啦。在实机上测试代码的功能运作以及应用程序的实际效果非常重要,不过也别忘了在模拟环境下跑上一跑——后者虽然无法让我们完全了解成果的方方面面,但却具备方便、安全且成本低廉等显著优势。相信大家不可能在手头上准备Android阵营的所有机型,这时模拟环境就成了小试牛刀的不二选择。下面就请大家同我一道,在这篇指导文章中一同学习如何创建Android虚拟设备(简称AVD)。
教程说明
  • 技术工具: Android
  • 操作难度: 入门级
  • 执行时间: 30到40分钟

准备开始

【51CTO独家译文】本篇文章的基本读者定位是针对刚刚开始学习Android系统开发的Java技术人员,大家应该熟悉Eclipse,并安装了Eclipse环境下的Android软件开发包以及Android开发者插件,这些都是构建模拟环境的先决条件。如果大家还没有做好上述准备,不妨先阅读几篇前续指南(网址为:http://mobile.tutsplus.com/articles/news/learn-android-sdk-development-from-scratch/)。

第一部分:创建一套简单的AVD

教程的第一步从创建一套简单、常见的AVD环境开始,这套环境代表着最普通的标准Android设备。标准化AVD的意义在于普遍性,我们能够凭借这套配置进行最具代表性的测试及调整工作。

第一步: 启动AVD管理器

我们先来介绍Android虚拟设备管理器最简单的启动步骤:点击Eclipse内Android工具栏上的“小电话”按钮。点击完成,该工具将会开始启动,并显示如下界面——其中的内容代表我们已经创建出的所有AVD配置方案。

第二步: 启动新的AVD向导

现在点击如上图所示Android虚拟设备管理器中的“New…”按钮。这时大家会看到如下对话框,请在空白栏中填写新AVD的各详细配置信息:

第三步: 描述我们的AVD

创建一套基本AVD并不需要填写太多信息。首先,为我们的新AVD填写一条描述性名称(例如‘AVD-API16’),然后再为其选择目标开发平台(例如‘Android 4.1-API Level 16’)。CPU/ABI设置会由管理器自动搞定,但我们至少要下载一份列表中包含的系统镜像。接下来选择SD卡容量。对于最基本的测试用AVD而言,我们一般会选择64MB的 SD卡容量,不过请大家注意,开发设备自身会占用其中的一部分空间。因此如果各位打算创建多套AVD,那么一定要保证预留出足够的存储容量。其它选项就不 用管啦,交给管理器进行默认设置即可。

第四步: 工作完成

下面点击“Create AVD”(创建AVD)按钮。整个AVD创建过程大约耗时数分钟,完成后管理器会自动返回AVD列表界面,这时我们会在其中看到自己刚刚新建的虚拟方案。

#p#

第二部分:启动模拟器与AVD

AVD的基本定义在于通知Android模拟器如何配置细节选项,因此启动AVD与启动模拟器的作用完全相同。AVD的启动方式不只有一种,在Eclipse环境下,我们可以通过选项设定系统在启动模拟器时自动载入特定的AVD方案——具体启动方式包括启用调试功能、在调试过程中手动启用以及直接运行Android虚拟设备管理器。这里我们建议大家先通过Android虚拟设备管理器启动AVD,然后再进行编译及实际代码调试工作。在这种方式当中,我们的模拟器以及AVD会在调试工作开始前就处于启用状态,同时也是最基本、最常用的执行流程。

备注: 如果大家在阅读本教程之前已经具备一定的Android开发经验,那么可以直接从下面的内容开始操作,之前只是为零基础用户提供的纯入门指导。

第一步: 打开AVD管理器

如果大家还没有进入AVD管理器界面,那么先进行启动操作。一般来说我们会在Eclipse界面中的Android工具栏上找到一个小小的电话形按钮,点击即可完成启动(操作同第一部分第一步中的内容)。

第二步: 打开启动选项对话框

现在选择我们想要启动的AVD方案并点击“Start…”按钮。系统将弹出如下所示的对话框。

现在让我们从下往上(同时也是从易到难)解释各选项的含义。首先我们看到的是两个快照选项,Save to snapshot(保存为快照)的意思是当我们退出模拟器时,模拟器的当前状态会自动得到保存。整个保存过程会花费一段时间,具体耗时要看我们为模拟器分配了多少内存容量。Launching from snapshot(从快照启动)的意思是模拟器会根据先前保存的快照自然恢复工作状态。这种读取快照内容的启动方式会比一般的冷启动快得多。

再往上的选项用于清除用户数据。通过这项功能,我们可以轻松将AVD恢复成初始状态,这跟很多设备上的“恢复出厂设置”作用差不多。在许多测试工作中,我们会希望自己能拥有一套完全未受任何残留数据影响的环境,这时候该选项就该派上用场了。当然,我还得提醒大家,这种初始环境下的测试只能作为参考结果之一。毕竟我们的成品最终会在可能已经安装了数百款应用的终端设备上运行,因此用户数据的影响绝对不能完全忽略。

再进一步,上方的选项是将模拟器的显示效果调整为物理屏幕的实际尺寸。也就是说只要我们输入正确的分辨率数据,显示器上的模拟器屏幕将会与移动设备的实际大小完全一致。不过二者(指计算机显示器与设备屏幕)在像素密度上存在着很大差异,因此显示器上的实际像素使用数量与设备也有所不同(一般来说显示器使用的像素数量更少,除非大家使用的是特殊的高像素密度显示器或者模拟的是低像素密度设备)。点击上图中的“?”按钮会激活另一个对话框,内容是向我们提供一些常见屏幕分辨率及显示器尺寸范例,并能够自动根据选择填写细节信息。平时多见的分辨率方案大多能在这里找到,但肯定没有涵盖所有情况。

下图显示的是一套配置范例。根据我们的设定,管理器需要在一台24英寸的1080p显示器上以4英寸的模拟屏幕(即模拟器对角线长度)构建WVGA800显示方案。由于我的台式机连接了多台显示器(各自尺寸也不尽相同),因此可以随心所欲地将模拟器界面拖拽至不同的显示器上。

根据实际屏幕尺寸缩放之后,模拟器界面在横向及纵向像素数量上缩减了40%。当然,我们不需要在模拟环境下过分在意像素级别的细微差异,只要宏观体验最终成果的实际显示效果即可。简单来说,我们可以用手在显示器上比划比划,看看自己设定的按钮尺寸会不会太小、点选起来有没有困难。

如果不勾选此项目,那么模拟器屏幕将与显示器上的像素点一一对应,我们一般在开发过程中都会以这种方式进行。除了进一步调整用户界面及用户体验之外,大多数工作都会在点对点显示的条件下进行。

第三步: 启动模拟器

现在让我们点击“Launch”(启动)按钮,这样模拟器就会开始运行。在目前的设置下,模拟器会加载各选项,这使得首次启动变得耗时较长。大家不用担心。以后启动时速度就会快得多。另外,某些工具或者附加组件能够大大提高某些方案在模拟环境下的启动速度。下图为在24英寸1920x1080分辨率显示器上模拟4英寸手机屏幕的实际效果。

#p#

第三部分:创建一套能够模拟真实设备的AVD

AVD方案中拥有多种选项,允许我们控制屏幕尺寸、内存大小、输入方式等各种Android物理设备上常见的特性。由于这些内容在之前的几篇文章中已经提过、而且执行难度也不高,这里就不再一一赘述了。在本文中,我们将共同讨论如何利用由设备制造商提供的插件模拟出各款当下流行的特定Android设备。

第一步: 选择一台设备

相信大家已经学会了如何通过Android SDK管理器下载插件。首先选择一台设备,然后下载其对应插件。这里我们选择摩托罗拉公司推出的ICS_R2来进行说明——别看这名字听起来挺玄乎,其实就是一款专为ATRIX HD手机提供的模拟插件。

第二步: 创建新的AVD

打开Android虚拟设备管理器,重复前文提到的步骤,创建一套新的AVD。在“Target”(目标设备)列表中选择“ICS_R2(Motorola Mobility,LLC.)-API Level 15”选项。选中之后,其细节信息会自动被填写到设置栏当中,包括许多硬件参数及桌面主题等。接下来点击Create AVD(创建AVD)按钮。

不过需要注意的是,整套自动设定是不包括屏幕尺寸参数的。如果大家已经知道自己要模拟的设备尺寸,可以手动填写硬件的物理尺寸并设置开发用显示器的DPI,这些内容我们之前也已经提到过。

第三步: 启动新AVD

从前面提到的几种方式中选择其一,启动AVD。通过下图,大家会马上发现模拟效果的区别所在。

但千万别以为有了这些差异,咱们的模拟环境就与实机情况完全一致了。其实区别还是很大的。模拟器永远无法彻底取代实机测试过程。话虽如此,但如果是要对常用应用程序以及第三方API进行测试,那么最高效、最廉价的方式就是利用好经过准确配置的模拟环境。大多数插件以及设备制造商提供的更新内容都会存在于最新版本的系统镜像当中,而 实机中的早期系统版本恐怕根本无法胜任测试工作。不过也请注意其中的猫腻——很多设备厂商都会在系统镜像中禁用对谷歌应用的支持,但实际上这些应用能够在 实机环境下顺利运行。

#p#

总结

到这里,相信大家已经学会了如何为各种类型的Android设备创建AVD方案,并掌握了怎样启动模拟器并使用这些AVD方案。如果大家能够像我一样保持良好的开发习惯,那么不妨立即着手清理自己的AVD列表,因此其中大多数创建出来的方案都从来不会用到。一旦面临清理问题,平时积累下来的良好习惯就会发挥作用了——请务必为自己的每套AVD方案起一个清晰、准确的描述性名称,这样我们才能在列表中轻松找出哪些方案还会用到、而哪些方案应该被摆在列表顶端。

希望大家能够按自己的想象自由进行Android开发工作。各位接下来打算开发什么样的应用程序?请在评论栏中留下您的意见,我们也会根据结果选择一些热门话题展开讨论。

【51CTO译稿,非经授权谢绝转载,合作媒体转载请注明原文出处、作者及51CTO译者!】

责任编辑:佚名 来源: 51CTO.com
相关推荐

2010-01-27 09:48:48

Android虚拟设备

2011-08-29 09:49:31

拟设备软件评估虚拟化

2011-06-30 09:43:53

虚拟设备虚拟网络

2012-05-25 09:14:31

虚拟化虚拟设备桌面虚拟化

2020-11-02 11:39:11

虚拟设备安全网络安全漏洞

2013-12-10 15:20:31

Radware云端虚拟Alteon

2011-12-09 10:07:24

虚拟化vmwareUntangle 8.

2015-09-30 11:12:44

AWS 虚拟设备亚马逊

2009-05-18 17:50:10

桌面虚拟化软件

2009-08-27 11:29:13

Hyper-V的部署SQL Server虚

2011-12-12 17:31:02

虚拟设备isyVmon v2.VMware

2010-09-26 09:35:58

2009-02-02 15:34:36

Arkeia备份虚拟备份

2013-12-26 14:52:52

Android SDK物理设备

2020-07-06 07:37:58

Linux虚拟

2009-05-07 20:10:56

2009-08-04 13:02:00

2013-08-05 10:12:23

2009-05-26 16:09:04

惠普存储虚拟化

2011-09-01 09:40:47

SoftAX虚拟设备数据中心
点赞
收藏

51CTO技术栈公众号