热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《精通移动App测试实战:技术、工具和案例》一1.6创建模拟器

本节书摘来自异步社区《精通移动App测试实战:技术、工具和案例》一书中的第1章,第1.6节,作者于涌,王磊,曹向志,更多章节

本节书摘来自异步社区《精通移动App测试实战:技术、工具和案例》一书中的第1章,第1.6节,作者 于涌 , 王磊 , 曹向志,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.6 创建模拟器

在我们日常进行自动化测试脚本开发时,会经常调试测试脚本,既可以在实际的物理手机设备上进行调试,也可以通过创建一个或者多个手机设备模拟器来进行调试。

创建模拟器的方法有很多,既可以通过Eclipse的工具条按钮创建,也可以直接启动AVD Manager创建,还可以通过命令创建,这几种方式都可以。

如图1-32所示,单击Eclipse工具条的“手机”图标或者选中“Window >Android Virtual Device Manager”菜单项,也可以直接双击Android SDK目录下的“AVD Manager.exe”文件,都能启动“Android Virtual Device(AVD)Manager”应用,如图1-33所示。


68b8c01aef05eec1d2144ba9ffe6f45140744b92

单击“Create…”按钮,将弹出图1-34所示对话框。


f1480834327d9ddf8b016f313c93443eed6c7363

这里,我们要创建一个名称为“Galaxy_Nexus_4.4.2”的安卓虚拟设备,依次在对应的界面输入或者选择如下信息,如图1-35所示。


387c2e785716a3c724120539b1ae344bfeb73026

下面对图1-35所示的相关信息项进行讲解。“AVD Name”表示安卓虚拟设备名称,也就是我们的模拟器名称,这里我们给其命名为“Galaxy_Nexus_4.4.2”。大家在起名字的时候,最好使模拟器的名称有意义并和后续设备对得上,同时最好能够将模拟器应用的系统版本标示出来,这样看起来就一目了然了。“Device”表示设备,我们从其下拉列表框中选择“Galaxy Nexus (4.65'',720 x 1280:xhdpi)”,代表设备的型号是“Galaxy Nexus”,而括号内部的“(4.65'',720 x 1280:xhdpi)”,表示手机主屏幕大小为4.65英寸,主屏分辨率为720 x 1280像素。“Target”表示Android系统的版本信息和对应的API版本号,“Android 4.4.2 - API Level 19”中“-”前面的信息即为Android系统版本信息,而后面的是API的版本号。“CPU/ABI”表示应用处理器的型号信息,列表框提供了目前的两款主流处理器型号,即ARM (armeabi-v7a)和Intel Atom (x86)。“Keyboard”表示键盘,后面的复选框“hardware keyboard present”表示是否支持硬件键盘。“Skin”英文的原意是皮肤的意思,在这里表示模拟器外观和屏幕尺寸,其下拉列表框提供了一些不同屏幕分辨率,如HVGA、QVGA、WVGA等选项,这些术语都是指屏幕的分辨率。“Front Camera和Back Camera”表示前、后置摄像头,有的时候我们要模拟它。若要选择前置摄像头“Front Camera”,请在下拉框中选择“Webcam0”,其会调用电脑的摄像头;而后置摄像头则选择下拉框的任意一项即可。我们可以根据想要的效果来进行设置。“Memory Options”表示内存选项,“RAM:1024”表示其有1GB的内存,RAM(Random Access Memory,随机存取存储器,又称作“随机存储器”)是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中程序的临时数据存储媒介。Android系统是运行在Dalvik虚拟机上的,“VM Heap”就是指虚拟机最大占用内存,也就是单个应用的最大占用内存,这里其值为64,代表64MB。“Internal Storage”表示内部存储,即手机自带存储大小为200MB,内部存储就是将数据保存在设备的内部存储器中。“SD Card”表示SD卡的大小,其单位默认也是MB,当然如果我们需要选择其他存储单位,也可以从下拉列表中进行选择。单击“OK”按钮,对上述设置进行保存,则创建了一个名称为“Galaxy_Nexus_4.4.2”的模拟器,如图1-36所示。


4b058045a5d1f9059daac2cc511448a6a1cdbc85

我们可以根据自己的需要添加多个模拟器设备,关于如何使用模拟器设备这里想和大家一起来分享一下。

(1)模拟器在我们没有物理手机设备时,对调试测试脚本程序非常有帮助;

(2)模拟器的执行效率要比同配置的真实手机设备低;

(3)模拟器因为其相关的参数可配置,所以可以模拟操作系统版本的升级情况;

(4)模拟器因为其相关的参数可配置,所以建议大家执行测试脚本用例时可以在低版本的系统测试其兼容性问题;

(5)模拟器和真实的物理设备还是有差别的,所以强烈建议大家在做实际的自动化测试时还是要用真实的物理设备。

前面我们建立了一个模拟器,下面将给大家讲解,如何来启动这个模拟器。

首先,在“Android VirtualDevices”列表中,选择我们刚才建立的“Galaxy_Nexus_4.4.2”模拟器,然后单击“Start…”按钮,如图1-37所示。


2e1fa0ceeaaff3b2199fbee47282708896ec1933

在弹出的图1-38所示界面中,单击“Launch”按钮。


c9d7b99d6c4ff8be6f163b31757c53e95814a7a2

随后弹出图1-39所示对话框,我们不需要对该对话框进行任何操作,接下来耐心等待。

C:UsersADMINI~1.USEAppDataLocalTempSNAGHTML1d0d800.PNG

图1-39 “Launch Options”对话框信息

由于计算机配置的不同,模拟器启动所耗费的时间也不尽相同,通常来说其启动时间要大于两分钟,所以需要大家有一定的耐心,这也是我们提倡使用真实物理设备的一个原因,当模拟器启动后,将显示图1-40所示界面信息。


f879f30c55afd17349634e709245d8e73262b54f

从图1-40中,我们不难看出其界面和手机显示屏幕没有差异,可以通过鼠标单击“锁”图标,按住鼠标向右划动对模拟器进行解锁,解锁后的界面如图1-41所示。


dfda027d34a7d20fe9d1b71b9b73ab1c44910189

模拟器同样具备Home键、Back键、最近启用的应用程序键等,它和我们平时应用的手机设备的功能无差别,Home键能够使我们在任何时候都可以回到桌面,Back键则返回到上一个界面,最近启动的应用程序键可以展示最近启用过的应用程序列表供选择,当然在操作的过程中可能会涉及一些输入操作,这时我们笔记本上的键盘就成为了输入设备。



推荐阅读
  • POJ 2482 星空中的星星:利用线段树与扫描线算法解决
    在《POJ 2482 星空中的星星》问题中,通过运用线段树和扫描线算法,可以高效地解决星星在窗口内的计数问题。该方法不仅能够快速处理大规模数据,还能确保时间复杂度的最优性,适用于各种复杂的星空模拟场景。 ... [详细]
  • 本文介绍了如何使用开源工具ChkBugReport来解析和分析Android设备的Bugreport。ChkBugReport能够将复杂的Bugreport转换为易于阅读的HTML报告,并提供详细的图表和分析结论。 ... [详细]
  • 申请地址:https://developer.apple.com/appstore/contact/?topic=expedite 常见申请理由:1. 我们即将发布新产品,这是一个媒体活动,我们无法承担任何风险,因此在多个方面努力提升应用质量。 ... [详细]
  • PBO(PixelBufferObject),将像素数据存储在显存中。优点:1、快速的像素数据传递,它采用了一种叫DMA(DirectM ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 动态壁纸 LiveWallPaper:让您的桌面栩栩如生(第二篇)
    在本文中,我们将继续探讨如何开发动态壁纸 LiveWallPaper,使您的桌面更加生动有趣。作为 2010 年 Google 暑期大学生博客分享大赛 Android 篇的一部分,我们将详细介绍 Ed Burnette 的《Hello, Android》第三版中的相关内容,并分享一些实用的开发技巧和经验。通过本篇文章,您将了解到如何利用 Android SDK 创建引人入胜的动态壁纸,提升用户体验。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 在处理大图片时,PHP 常常会遇到内存溢出的问题。为了避免这种情况,建议避免使用 `setImageBitmap`、`setImageResource` 或 `BitmapFactory.decodeResource` 等方法直接加载大图。这些函数在处理大图片时会消耗大量内存,导致应用崩溃。推荐采用分块处理、图像压缩和缓存机制等策略,以优化内存使用并提高处理效率。此外,可以考虑使用第三方库如 ImageMagick 或 GD 库来处理大图片,这些库提供了更高效的内存管理和图像处理功能。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有