《Android应用开发攻略》——3.3 为应用测试设置Android虚拟设备(AVD)

简介: 本节书摘来自华章计算机《Android应用开发攻略》一书中的第3章,第3.3节,作者:(美)达尔文(Darwin, I. F.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3 为应用测试设置Android虚拟设备(AVD)

Daniel Fowler
3.3.1 问题
成功的应用程序必须运行于各种不同的Android设备及其版本上,所以必须在一系列设备上进行测试。
3.3.2 解决方案
使用Android SDK的设备模拟工具包配置设备和操作系统的组合,通过在各种组合上的测试能够减少与设备硬件差异相关的问题。
3.3.3 讨论
Android设备从廉价到“高规格/高价值”,覆盖了广泛市场,出现在市场上也已经有数年之久。因此,市面上使用的设备有着广泛的硬件选择和操作系统版本。成功的应用程序就应该能够在这么广泛的设备上运行,而应用开发人员只能针对很小范围内的实际设备运行程序。幸运的是,开发人员可以使用Android虚拟设备(AVD)来提高对应用程序的信心。
编译后的应用程序可以在物理设备或者虚拟设备上测试。AVD是Android平台在主机(通常是开发机器)上的模拟。
采用AVD对测试进行了简化,这基于如下原因:
可以创建多种AVD配置,在不同版本的Android上测试应用程序。
可以使用不同的(模拟)硬件配置,例如GPS或者无GPS。
在Eclipse中单击Run按钮时,可自动启动AVD并安装编译后的应用程序。
AVD具有比物理设备更多的Android版本和硬件版本组合,可在这种组合环境上测试应用。
在AVD上测试大大地减少了在物理上进行的测试。
AVD可以和物理设备一同使用。
不必为了导致错误情况而对物理设备进行限制——例如,如果你打算在没有安全数码卡(Secure Digital,SD)的设备上测试,只需建立一个没有SD卡的AVD就行了。
AVD可以模拟网络事件,而不需要花费使用物理设备的相关成本;例如,可以模拟电话呼叫或者在两个AVD之间发送SMS。
可以在不移动桌面的情况下,模拟来自不同物理位置的GPS数据。
当应用程序用户报告缺陷时,可以尝试用AVD模拟他们的硬件配置。
请注意,在旧的开发机器上以及模拟较大的Android设备时,AVD的性能将低于物理设备。
可以用SDK Manager程序配置AVD(直接从文件系统或者Eclipse中打开),也可以从命令行上创建AVD。
为了用SDK Manager创建AVD,必须首先加载该程序。从Eclipse中选择菜单栏上的Window(窗口),然后选择Android SDK and AVD Manager,如图3-1所示。

image


也可以从文件系统中直接启动程序。例如,在Windows中,打开C:Program FilesAndroidandroid-sdkSDK Manager.exe。如果直接从文件系统启动程序,SDK Manager将会检查SDK更新,这时选择Cancel(取消)进入主窗口,窗口标题为Android SDK and AVD Manager(见图3-2)。如果从Eclipse打开程序,主窗口将会显示,而不会检查SDK更新。

image


主窗口的左侧列出了“Virtual Devices”(虚拟设备)、“Installed packages”(已安装程序包)和“Available packages”(可用程序包)。“Virtual Devices”应该已经被选中;否则,选中它,可以在右边的表格中列出所有现有的AVD。刚刚安装Android SDK时不会列出任何AVD。
选择New按钮创建AVD,将加载“Create new Android Virtual Device (AVD)”(创建新的Android虚拟设备)窗口(见图3-3)。

image


如下字段用于定义AVD:
Name
为新的模拟Android设备取一个名称。使用描述性的名称,例如,如果你要模拟一个使用2.1版操作系统和中分辨率屏幕(HVGA)的设备,取名为Android-v2.1- HVGA要好于AndroidDevice。
Target
这是运行于模拟设备上的Android操作系统版本。对于运行版本2.1的设备,这个字段可以设置为“Android 2.1-update1 - API Level 7”。
SD Card
这个字段指定设备模拟的SD卡大小,或者选择现有的SD卡映像(可以在不同的AVD模拟之间共享SD卡数据)。输入以兆字节(MB)为单位的卡容量,指定新的SD卡。记住,输入的数字越大,在主计算机系统上创建的模拟SD卡的文件就越大。作为替代,可以选择File选项并浏览现有的SD卡映像(在Windows机器上,sdcard.img文件可以在登录用户文件夹中的.android目录下的avd子目录中找到)。
Snapshot
如果你希望模拟设备的运行时状态在会话之间持续保存,选中Enabled复选框,当你在执行长时间运行的一系列测试,而关闭AVD你又不希望从头开始测试时,这个选项很有用。这个选项还加速了AVD的启动。
Skin
选择设备的屏幕尺寸;显示一个常见屏幕尺寸的列表(例如HVGA、QVGA等)。该列表根据操作系统版本而有所不同。你也可以输入自定义的分辨率。
Hardware
Hardware(硬件)选项下的表格用于配置AVD具备或者不具备某些硬件特性。首先用New按钮将硬件特性添加到表格中(有几个硬件特性将添加到表格中,并根据Target选项的选择自动成为默认),这时将会打开一个对话框,用于选择硬件属性(见图3-4)。

image


例如,选择“GPS support”(GPS支持),然后选择“OK”。选择“GPS support in the table”旁边的“yes”,将其修改为“no”,这样AVD将不支持GPS(见图3-5)。
表3-1列出了AVD支持的属性。

image

image


定义了必要的字段之后,单击Create AVD按钮生成AVD。现在,AVD出现在Android SDK and AVD Manager窗口中(见图3-6)。

image


现在可以使用Start按钮启动这个AVD,也可以在项目配置中选择它,在开发中测试应用程序。选择Start按钮时,显示 Launch Options(启动选项)窗口(见图3-7)。
启动选项如下:

image


将显示缩放为实际尺寸(Scale the display to real size)
在较大的计算机显示器上,通常不需要修改AVD比例。Android屏幕的DPI值高于计算机显示器的DPI值,因此,AVD屏幕显得比物理设备大。如果有必要,可以降低比例以节约屏幕空间。使用这个选项可以使AVD在计算机显示器上以接近真实的屏幕显示。选项中的值必须设置,以免AVD屏幕和键盘尺寸过小而无法使用。
清除用户数据(Wipe user data)
当AVD启动时,用户数据文件被重置,前一次运行AVD时生成的用户数据将会丢失。
从快照启动(Launch from snapshot)
如果AVD启用了Snapshot选项,第一次启动之后,后续的启动将会更快。AVD从一个快照中加载,不需要再次启动Android操作系统。但是当AVD关闭时,因为必须将快照写到硬盘,关机过程将会较长。
保存到快照(Save to snapshot)
AVD关闭时,当前状态将被保存,以加快下一次的启动;但是因为快照要写回磁盘,关闭的时间较长。如果你已经有了快照,可以清除该选项的选择,这样关闭AVD时也同样很快,但是从上一个快照以来的修改将会丢失。
使用Launch按钮启动AVD。一旦加载,AVD就可以像其他Android设备一样使用,由主计算机的键盘和鼠标驱动,见图3-8。

image

在Windows上启动时的错误消息(Error message on Windows when launching)
试图从Windows安装中启动AVD时,可能出现一个以“invalid command-line parameter”(无效命令行参数)开始的错误(见图3-9)。

image


为了修复这个问题,将路径改为Android SDK目录,不包含任何空格。默认的SDK安装路径为C:Program FilesAndroid。Program Files中的空格必须删除。为了维护有效的目录名称,Program Files应该转换为Microsoft DOS格式(亦称8.3格式)。这通常是前6个字母大写加上~符号和数字1,即PROGRA~1。如果有其他目录名以Program(后面有空格)开始,数字需要递增。要查看Program Files的DOS格式,可以在你的机器上打开命令提示符界面(开始→所有程序→附件→命令提示符),转到根目录(即输入cd并按回车)并运行dir/x命令,则会看到DOS格式的目录名称将显示在其全名旁边(见图3-10)。

image


在Eclipse中,使用Windows(菜单)→Preferences(首选项)菜单并选择Android;在SDK Location字段中将Program Files改为DOS版本(见图3-11)。

image

相关文章
|
9月前
|
监控 安全 Shell
管道符在渗透测试与网络安全中的全面应用指南
管道符是渗透测试与网络安全中的关键工具,既可用于高效系统管理,也可能被攻击者利用实施命令注入、权限提升、数据外泄等攻击。本文全面解析管道符的基础原理、实战应用与防御策略,涵盖Windows与Linux系统差异、攻击技术示例及检测手段,帮助安全人员掌握其利用方式与防护措施,提升系统安全性。
383 6
|
12月前
|
Android开发 开发者
Android设置View是否可用
在Android开发中,有时需要将布局设置为不可点击状态(失去焦点)。常见的解决方法是使用`setOnClickListener(null)`,但本文介绍一种更通用的方式:通过封装`setViewEnabled`方法实现。该方法可递归设置View及其子View的启用状态,支持传入目标View和布尔值(`true`为可用,`false`为禁用)。例如,调用`setViewEnabled(edittext, false)`即可禁用EditText。文章附有源码及示例动图,帮助开发者快速理解与应用。
268 1
|
存储 人工智能 测试技术
HarmonyOS Next~HarmonyOS应用测试全流程解析:从一级类目上架到二级类目专项测试
本文深入解析HarmonyOS应用测试全流程,涵盖从一级类目通用测试到二级类目专项测试的技术方案。针对兼容性、性能、安全测试及分布式能力验证等关键环节,提供详细实践指导与代码示例。同时,结合典型案例分析常见问题及优化策略,帮助开发者满足华为严苛的质量标准,顺利上架应用。文章强调测试在开发中的核心地位,助力打造高品质HarmonyOS应用。
601 2
|
8月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
996 11
|
9月前
|
机器学习/深度学习 存储 分布式计算
Java 大视界 --Java 大数据机器学习模型在金融风险压力测试中的应用与验证(211)
本文探讨了Java大数据与机器学习模型在金融风险压力测试中的创新应用。通过多源数据采集、模型构建与优化,结合随机森林、LSTM等算法,实现信用风险动态评估、市场极端场景模拟与操作风险预警。案例分析展示了花旗银行与蚂蚁集团的智能风控实践,验证了技术在提升风险识别效率与降低金融风险损失方面的显著成效。
|
9月前
|
人工智能 IDE 测试技术
Browser-Use在UI自动化测试中的应用
Browser-Use是一款浏览器自动化工具,具备视觉与HTML解析、多标签管理、操作记录与复现、自定义操作、自我纠正及并行执行等功能,助力AI智能体高效完成网页任务。
1274 0
|
12月前
|
安全 测试技术 Linux
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
379 2
Flawnter 5.9.1 (macOS, Linux, Windows) - 应用程序安全测试软件
|
12月前
|
测试技术 数据库 Python
解释测试中setup和teardown函数的应用。
总结起来,`setup`和 `teardown`函数就像扔宴会的主人,他们保障了宴会的流畅进行。他们是准备环境和清理现场的重要工作人员,他们的工作直接影响着我们的测试效率和质量。我们可以把 `setup`和 `teardown`想象成隐藏在幕后,默默为我们服务的工作者,他们做着我们需要但是往往忽视的工作。所以,下次当你写测试的时候,别忘了给你的 `setup`和 `teardown`留出足够的位置,因为他们的作用可能是你成功的保证。
283 14
|
12月前
|
Android开发 开发者
Android中Dialog位置+样式的设置
本文介绍了在Android开发中如何设置Dialog的位置和样式。通过自定义`MyDialog`类,可以灵活调整Dialog的显示位置,例如将其固定在屏幕底部,并设置宽度匹配父布局。同时,文章还展示了如何模仿Android原生Dialog样式,通过定义`MyDialogStyle`去除标题栏、设置背景透明度、添加阴影效果以及配置点击外部关闭等功能,从而实现更加美观和符合需求的Dialog效果。代码示例详细,便于开发者快速上手实现。
662 2
|
12月前
|
存储 5G 测试技术
时钟同步测试校验仪的应用介绍
时间同步测试仪是一种高精度、高可靠性的设备,用于测量和评估时间同步系统的性能。它广泛应用于电力系统(如电网调度、继电保护)、通信网络(如5G基站、光传输网络)、铁路交通(如列车运行控制、信号系统)、工业自动化(如生产线、控制系统)以及科学研究(如天文观测、粒子物理实验)等领域。其功能包括高精度时间测量、多信号接口支持、自动测量与分析、数据存储导出及性能评估输出,确保各领域设备间的时间同步精度与稳定性,保障系统高效运行。