微软发布了Visual Studio 2015预览这一周和你现在有选择为Android开发:c++,科尔多瓦,c# Xamarin的。 选择其中一个Android开发选项时,Visual Studio还将安装全新的Visual Studio Android模拟器调试应用程序的目标。你也可以 在这个视频在行动之中。
帮助我们优先考虑增强模拟器,请 填写我们的调查。
在我走之前你通过使用这个新的模拟器,让我们来谈谈为什么我们正在建设一个Android模拟器——随意跳过下一节去有趣的部分:-)
Android模拟器的必要性
我们知道,模拟器可以发挥关键部分编辑-编译-调试周期(比设备更大的一部分),我们相信你需要一个模拟器就像我们今天发布。
有一个伟大的模拟器对并不意味着你不需要调试的设备,和拥有一个设备调试并不意味着你不会受益于良好的模拟器。 他们是互补的。
你肯定需要测试 一个设备 以下场景,适合任何模拟器:
- 测量 性能特征 你的代码。 虽然模拟器与正确性问题可以帮助你,它永远不会完全效仿你的代码的性能特征的实际设备上运行你想测试。 你想测量性能用户看到它。
- 测试 特定于硬件 问题。 如果你想测试你的touch-responsiveness游戏,或扬声器质量为您的媒体应用程序,您需要在目标设备上进行这种类型的测试。 同样如果你试图解决一个OEM-specific bug。
- 纯粹的评估实际的 用户 体验在真实的情况下 ,如你的交互设计工作对用户使用你的应用程序一个走路递给只有大拇指呢?
对于所有其他测试,作为编辑-编译-调试周期的一部分通常需要至少80%的时间,你想使用一个模拟器(除非其他阻塞问题或限制你的模拟器的选择)。 使用一个模拟器,原因如下:
- 你大部份的测试正确性问题(而不是性能),大部分的代码可能不是处理硬件的具体问题。 所以使用模拟器!
- 你不想花一堆钱买一堆设备(这样做,保持每一次新的设备上市),只是为了测试诸如屏幕分辨率,DPI设置不同的屏幕尺寸,不同的API级别/平台版本,您可以配置,在软件(在模拟器)。
- 你不想与你的设备采取物理测试一些传感器,如应对运动或位置变化或模拟网络/电池变化。 而不是你想轻松快速地模拟传感器的值在一个模拟器,如模拟去另一个城市同时应用程序响应位置的变化。
- 还有便利的元素。 连接到一个设备(通常是处理电缆),连接和它的生命周期管理,使用一个USB端口,不能简单地认为启动模拟器和治疗它像其他桌面应用程序在开发机器上运行。
所以模拟器是伟大的,可以编辑-编译-调试周期中的一个关键部分,我们要确保我们的模拟器是一流。 你告诉我们什么 几个难点与现有模拟器 我们开始地址与我们发布:
- 慢 。 这是一号投诉我们听到从Android开发者。 “模拟器是缓慢,这很伤我的心我的生产力,我将使用一个设备。 “慢是不可接受的。 如果有的话,应该比使用模拟器使用设备,所以您可以更快地测试您的场景(记住,你不使用模拟器来测试我们的代码的性能,你只需要他们尽快为自己的使用)。
- 与hyper - v Windows上的冲突 。 许多模拟器需要禁用hyper - v或不与hyper - v,因为他们没有工作。 使用hyper - v是许多开发人员开发设置的一部分活动,所以问你重启你的机器(一天)多次切换hyper - v是不能接受的。
- o这方面的一个专门的变体是使用Windows Phone模拟器(这本身就是基于hyper - v)。 这是一个真正的痛苦不得不做出改变,每次你想重新启动交换机从Android模拟器Windows Phone模拟器来测试您的跨平台的代码。
- 额外的采购和安装步骤 。 如果你的主要开发环境是Visual Studio,你不想单独收购模拟器并遵循一个单独的安装过程。
- 单独的费用 。 有一个伟大的模拟器,可以花费你一样最主要开发环境不是一个选择。 Visual Studio Android模拟器VS没有额外的费用。
简而言之,我们将处理所有这些痛点与Visual Studio Android模拟器。 现在,让我们回顾Visual Studio调试的故事为Android以及如何选择与Android模拟器。
对Visual Studio Android模拟器调试
与Visual Studio 2015预览你可以针对Android编程模型和编辑-编译-调试不管你的选择: JavaScript和科尔多瓦(或打印稿), c++,或与Xamarin的c#。
与所有三个选择,当你开始调试,您必须先选择一个目标。 目标可以是一个设备或模拟器之一,你可能已经在你的机器上运行。 让我们看看如何选择一个调试目标科尔多瓦和c++在Visual Studio 2015中预览,以及Xamarin在Visual Studio 2015中。
与c++项目,调试目标菜单如下:
科尔多瓦的项目你想要选择的最后两项调试目标菜单按以下截图:
(绝对避免选择选项“Android模拟器”,是缓慢的SDK附带)
Xamarin的项目,选项如下:
Xamarin的项目的,等待最好的结果, 禁用/取消“使用快速部署” 在Android选项下Xamarin的项目属性。
注意:如果您想要使用的与从不同的IDE,Android模拟器作为临时解决方法你可以从Visual Studio 2015启动我们的模拟器使用上面的选项之一,然后关闭该项目,把模拟器运行和其他IDE可以目标(ADB)。
一旦你选择了你的调试目标和按F5,将应用程序部署到模拟器,按照常规VS调试流断点在您的代码中,可以看到调用堆栈,检查变量,等。现在,你知道如何使用仿真器进行调试,让我们继续探索它的冷却特性!
传感器模拟和其他功能的Visual Studio Android模拟器
使用模拟器作为部署目标之外,您还可以利用传感器仿真和其他功能——让我们看看几人,排名不分先后。
变焦
你可以改变大小的模拟器当你看到它在开发计算机(主机)。 的每英寸点数(DPI)模拟器是基于主机监控DPI,无论放大值。 这允许您扩展仿真器,以防把太多的空间在你的桌面。
改变大小,使用模拟器的垂直工具栏上的“缩放”按钮。
您还可以使用“适合屏幕”按钮上方的“缩放”按钮以适应模拟器在你的屏幕上。
如果你需要截图的模拟器中运行的应用程序(例如 剪去的工具)最好的结果记得设置缩放级别最高的100%,或者更好的是,使用我们的内置屏幕截图工具支持,我下面描述。
取向/旋转
除非你的应用程序只支持一个固定的方向,你应该测试你的应用程序如何响应方向变化,和它看起来像在肖像,left-landscape,right-landscape取向。 简单的模拟器向左或向右旋转两个垂直工具栏上的相应按钮:“旋转”和“向右旋转”。 模拟器的大小保持不变,当你旋转。
网络信息
模拟器重用主机的网络连接,所以没有为您配置。
你也可以检查模拟器目前的网络设置。 在垂直工具栏单击“工具”按钮显示“附加工具”飞出面板,然后单击“网络”选项卡。
位置(GPS)
如果你的应用程序做任何事和导航、geofencing步行/骑自行车/开车,那么你会喜欢的位置和驾驶仿真模拟器在“位置”选项卡下当你打开“额外的工具”。
通过拖拽,可以导航地图缩放/进出,甚至通过搜索位置。 您可以将和删除图钉在地图上,从而创造 地图上点 。 这些列表中显示为经度纬度坐标在左下角。 从顶部的工具栏你甚至可以拯救那些点映射到一个XML文件,后来从文件加载它们。
而不是每个地图点立即改变仿真器的GPS定位( “生活”模式 ),你也有其他的选择! 您可能想要将一些映射点,然后模拟之间的过渡点。 为此,在顶部的工具栏从“生活”模式 “销”模式 。 你可以按下播放按钮在工具栏小地图之间的过渡点。 您甚至可以输入一个过渡时间间隔(以秒为单位)。
最后,您可以选择第三种模式,类似于“销”,这被称为 “路线”模式 。 在这种模式下也可以模拟之间的转换分但一些额外的扭转。 模拟器将计算一个实际点,产生无形的点之间的路径点之间的间隔1秒。 总体速度将这些点是由第二个设置和选项:“行走”(5公里每小时),“骑自行车”(25公里/小时),“限速”(变量依赖于地图点),和“快速”。
加速度计
如果你的应用程序跟踪和对运动的电话,你可以使用“加速器”标签测试当你打开“额外的工具”。
简单的点击并按住中间的红点,并将其拖动到你想要的方向来模拟,在3 d飞机。 当你这样做你的应用程序会接收运动事件如果它已经注册。
您还可以看到X,Y,Z值位于左下角。 在这些值可以“重置”到开始位置,并选择从这些价值观取向:开始肖像站,景观站、平坦的画像,景观持平。
最后你可以模拟手机震动通过单击“播放”按钮在右下角。 唯一的目测,摇头是发生的值X,Y,Z,当他们停止快速变化你就知道动摇了。
电源/电池模拟(和电源按钮)
如果你写你的应用对电池充电的变化,那么你会喜欢模拟器模拟的能力,通过切换到“电池”选项卡当你打开“额外的工具”。
有一个滑块,允许您设置电池的电荷值。 注意当你滑下来/电池图标右上角的变化如何反映这一变化。 你的应用程序也可以相应的回应。
如果你改变电池充电状态不是“充电”,然后仿真器的屏幕超时时间后将一片空白。 您可以配置超时虽然内置的定期“设置”程序(寻找“睡眠”选项下的“显示”)。 如果模拟器由于这种睡觉,那么你可以叫醒它通过垂直工具栏上的“电源”按钮。
截图
截图你的应用程序,打开“额外的工具”,切换到“截屏”选项。 然后点击“捕获”按钮,将截图,让你即时预览。 如果你想保持截图点击“保存…”按钮。 如果你不喜欢你的屏幕截图,忽视它或再次点击“获取”。
截图工具总是截图在100%(该决议在左下角),无论缩放设置。 他们也总是画像,无论旋转选择。
安装的apk通过拖拽
你安装在Android应用程序通过一个应用程序称为APK包文件。 如果你有一个的APK,你想安装在Visual Studio Android模拟器,刚从Windows资源管理器将它拖到模拟器。 在模拟器中您将看到一条消息,指示进步“文件传输进度…”紧随其后的是一个消息框“文件foo成功安装在Android”。 记住,以确保你的apk代码为x86建造!
您也可以拖拽其他模拟器(non-APK)文件,他们将被放置到SD卡,我们下一个话题。
SD卡
如果你的应用需要读写SD卡的目标模拟器模拟,通过提供一个文件夹代表一个SD卡。
注意,Android的图像使用一个单独的VHD SD卡的支持。 所以,如果你想从SD卡/传输文件在您的开发机器上,您可以挂载VHD Windows:关闭模拟器(关闭虚拟机),然后导航到VHD位置在Windows资源管理器,并双击VHD山。 默认路径下的VHD位于:
C:\Users\ %用户名% \ AppData \当地\微软\ XDE \ \ vsemu.sdcard.vhd Android
此时,VHD安装作为额外开窗户,你可以使用它很像任何其他驱动器。 在重新启动模拟器必须卸载VHD之前,你可以通过右键点击驱动器并选择弹射出来。
在SD卡支持图像中还允许其他内置Android应用程序功能,如浏览器下载和相机应用程序——这让我到下一个功能。
相机
通常你会使用相机从你的应用程序(使用一个适当的API),,我们支持。 你也可以直接使用内置摄像头应用程序。 当你在模拟器启动摄像头,你会看到一个固定的动画图像,你可以采取的快照,模拟拍一张照片。
音频播放、键盘文本输入…
还有其他功能,仿真器提供认为这是理所当然的,尽管它们需要“工作”从产品团队:-)。 我不会这里全部列出来但是他们两个是:
- 你可以使用你的电脑键盘输入文本的模拟器
- 任何音频来自模拟器可以通过计算机的扬声器听到
配置
这个预览版你可以选择两个开箱即用的配置:
- 典型的Android手机:5”屏幕,295 PPI、720 x1280,1024 MB
- 典型的Android平板电脑:7英寸屏幕,315 PPI、1080 x1920,2048 MB
与预览部分如果你想改变数量的内存,你可以改变启动RAM从hyper - v管理器设置对话框中。 注意,你也可以改变内核的数量分配给每个配置预览(默认是2芯)。 警告:我们没有测试所有可能的配置,你可以选择!
我们是刚刚起步,有很多在后续的版本中,你可以帮助我们优先考虑采取新的传感器仿真和其他功能 我们的调查。
一看
如果你有兴趣我们如何建造了Visual Studio Android模拟器,简短的回答是,我们重用其他人的工作。 从概念上讲,一个模拟器由4部分组成:
- 一个 虚拟机(表示为vhd)目标你的模仿,在这种情况下Android。 我们开始与源 Android的开放源码项目(AOSP)进化,并配置一个x86虚拟映像 快 Visual Studio调试。
- 小壳/铬作为用户你看到和交互,它加载虚拟映像和项目通过渲染控制。 认为这是远程桌面:你本质上是rdp的形象。 我们开始与桌面应用程序的shell /铬Windows Phone模拟器(内部称为 XDE),这已经是丰富的功能。 然后我们修改了针对android的需要。
- 虚拟化技术,XDE需要加载图像RDP之前。 窗户有一个伟大的虚拟化技术 hyper - v这就是我们使用。
- 之间的连接管道和XDE和调试引擎和虚拟映像。 这里我们重用的部分之间存在什么XDE和Visual Studio,和也 Android调试桥(ADB)通道。
现在让我们看看我们今天的一些限制,并希望你可以给我们输入哪些我们首先需要解决。
当前的限制
今天我们与你分享早期预览版,问题/缺陷,我们期待你的报告给我们。 我们也有 已知的限制 ——请告诉我们哪些是对你最重要所以我们可以优先考虑这些待办事项列表:
- 如果你的应用程序直接或间接利用 OpenGL 2或更高,没有呈现在我们的模拟器。 这种支持是很快,看着早期只面向内部建设,我有它让形象更加流畅!
- 有 市场上许多不同版本的Android。 你有这个版本的Visual Studio Android模拟器是KitKat API 19(android-4.4.4_r1版)。 更多的 版本 来了以后…
- 如果应用程序利用谷歌的服务层,它将不会在我们的模拟器的工作。 这是因为在构建我们的Android图片我们不包括 GMS包 (需要额外的许可,我们没有还)。
- 你需要为x86编译你的代码。 如果你有部分只能被编译的代码 手臂 ,或者你依靠3 理查德·道金斯 方库,你没有x86版本,您的代码将不会运行在我们的模拟器。
- 你只能安装Visual Studio模拟器为Android操作系统上 hyper - v 支持。 不支持在hyper - v的例子包括Windows 7,非Windows机器上,在另一个虚拟机。
如果任何这些限制你正在开发一个应用程序的问题,那么解决方案是使用一个设备(或找到另一个仿真器,可能没有限制)。 我们将使当前的限制列表缩短每一次释放,我们扑灭,如此 请调查帮助我们优先考虑。