Windows Phone 8初学者开发—第9部分:Windows Phone 8模拟器概述
原文 Windows Phone 8初学者开发—第9部分:Windows Phone 8模拟器概述
第9部分:Windows Phone 8模拟器概述
原文地址:
源代码: http://aka.ms/absbeginnerdevwp8
PDF版本: http://aka.ms/absbeginnerdevwp8pdf
我们已经在本系列中使用过Windows Phone模拟器。它是开发Windows Phone平台应用程序的关键组件,所以我想花些时间进一步熟悉它并为获取更多信息指明方向。
本课的计划是:
- 我们将了解Winows Phone模拟器究竟是什么,以及它如何为不同部署场景提供不同的版本。
- 我们将了解模拟器的功能,包括模拟设备按钮的键盘快捷键。
- 我们将了解如何在虚拟设备上调整大小,旋转和模拟物理设备的行为,就像虚拟设备也支持加速计,GPS等功能一样。
1. Windows Phone模拟器是什么?
简而言之,Windows Phone模拟器是一个模拟Windows Phone设备的桌面应用程序,并且提供了类似物理Windows Phone设备的性能。它提供了一个虚拟化的环境使您可以在没有物理设备的情况下调试并测试Windows Phone应用程序。其实就像我在一开始安装Windows Phone 8时所说的,它运行微软的Hyper-V。为获取Windows 8上有关Hyper-V的更多介绍,您可以参考这篇来自Windows 8团队的博客
将Hyper-V带给Winows 8(Bringing Hyper-V to "Windows 8" )
http://blogs.msdn.com/b/b8/archive/2011/09/07/bringing-hyper-v-to-windows-8.aspx
虽然模拟器对于开发和迅速调试非常有效,但是在您将应用程序发布到Windows
Phone应用商店前,微软建议您在一部真正的手机上测试您的应用。
2. 选择用于调试的不同版本模拟器
到目前为止,当我们在Visual
Studio的工具栏上单击运行/调试按钮时,我们在默认配置下运行模拟器,即所谓的WVGA
512M。
WVGA和512MB意味着什么?
512M表明我们运行在内存受限的环境中,Visual Studio中默认的模拟器映像是WVGA
512M模拟器,它模拟一个内存受限的Windows Phone 8手机。例如Lumia 610是一部廉价的入门级Windows Phone
8设备,它仅支持256MB内存。相反Lumia
920有1GB内存。在低内存的设备上,当有多个应用程序同时运行或创建一个内存密集型的应用程序,可能会导致性能问题。所以为了确保应用程序在低内存设
备上运行良好,您可以使用这个实际一点的模拟器映像来测试您的应用程序。
在MSDN上有很多关于内存使用的好文章,您可从以下文章开始以了解更多内容:
Windows Phone应用程序性能注意事项(App performance considerations for Windows Phone)
http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff967560(v=vs.105).aspx
低成本设备的应用程序优化(Optimizing Apps for Lower Cost Devices)
“WVGA”和其他缩写代表什么?
模拟器允许您对每个Windows Phone支持的屏幕分辨率在一个唯一的模拟器映像上测试您的应用程序。默认的选择鼓励您将您的Windows Phone 8应用程序目标定位于最大的市场。
- WVGA (800 × 480)
- WXGA (1280 × 768)
- 720p (1280 × 720)
如果您运行在默认状态下,那么转到设置应用程序,点击关于,您将看到(译者注:注意此时的屏幕分辨率为480×800):
这如何转换成市场上实际的手机?
Lumia 920
显示尺寸: 4.5英寸
显示分辨率: WXGA
(1280 x 768)
Lumia 820
显示尺寸e: 4.3英寸
显示分辨率: WVGA
(800 x 480)
Lumia 610
显示尺寸: 3.7英寸
显示分辨率: WVGA
(800 x 480)
我意识到当您观看本部分内容时可能会有新的手机型号出现。要点是您应该意识到您需要支持不同的屏幕分辨率和内存限制。像我在使用XAML布局那课谈
到的,您需要清除布局中对特定像素的使用(除了边距以外)。通过选择不同的模拟器尺寸,您可以确保您能够支持不同分辨率的屏幕。
3. 使用手机模拟器的特殊功能
我不会花很多时间在手机的基本导航上。如果您还没有一部物理手机,通过使用模拟器,您可以掌握很多导航的方法。通过模拟器上的开始按钮和应用程序页面,搜索,web浏览,时钟和电池等功能,实际上您将获得和物理手机几乎一样的体验。
模拟器的底部与Windows Phone的底部具有相同的硬件按钮:
请注意模拟器没有手机侧面的按钮。例如我的Lumia 920在侧面有三个按钮—一个音量调节按钮,一个电源按钮和一个相机按钮。在模拟器中,这些可以通过键盘功能键来访问。
这里有一个键盘映射列表:
- F6 –按下一半相机按钮
- F7 – 相机按钮
- F9 - F10 增加和减少音量
- F11 – 播放/暂停声音。它模拟一个在线耳机按钮以暂停音乐并应答来电。如果您双击这个按钮,它将跳至您播放列表或专辑的下一首。
- F12 – 电源按钮/ 锁屏
- F1 – 后退按钮
- F2 – Windows键
- F3 – 搜索按钮
让我们使用模拟器键盘上的F3键进行搜索:
手机键盘将会出现。我可以使用鼠标模拟点击按键。如果这样做,开发的大部分时间都很痛苦。我宁愿使用计算机的键盘。
下一页(PAGE DOWN)按钮- 当文本框是当前的输入目标,下一页键将禁用虚拟的“硬件”键盘,这样您就可以使用物理键盘进行输入。
上一页(PAGE UP)按钮- 当文本框是当前的输入目标,上一页按钮将启用虚拟的“硬件”键盘。
暂停(PAUSE/BREAK)按钮-切换键盘,您可以随时使用它。
正如您所看到的,我输入搜索短语"selfridge chicago",寻找关于芝加哥最著名人物Harry Selfridge的文章或维基百科文章,他创建了零售商店Selfridges of London,并且是BBC一部热门电视剧的主角。
当我单击键盘上的“转到”:
模拟器中的必应搜索与物理设备上的必应搜索一样,请求允许使用您的位置以防止影响搜索结果。例如,如果我在伦敦,必应将会显示我附近的Selfridges的一张地图。然而,因为我在美国所以必应将提供不同的结果。我待会儿将展示模拟器如何确定它的位置:
除了屏幕上的“虚拟”手机,右侧还有一个悬浮的菜单。简单试用前六个按钮就会知道它们的功能:
- 关闭模拟器
- 最小化模拟器
- 逆时针旋转模拟器90度
- 顺时针旋转模拟器90度
- 将模拟器扩展到适合您计算机屏幕的最大尺寸
- 显示缩放对话框
打开其他工具对话框。在其他工具对话框中共有四个选项卡。第一个是加速计,它可以被用于测试使用加速计传感器的应用程序:
- 您可以通过单击并拖拽圆圈中的橙色点来更改手机的中心点以更改其在3D空间中的位置。
- 您可以更改方向为预设之一。
- 您可以播放记录的数据,例如“摇”这个动作。
如需有关Windows Phone SDK中模拟器和加速计传感器的更多信息,可以访问以下文章:
如何测试使用Windows Phone加速计的应用程序(How to test apps that use the accelerometer for Windows Phone)
http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202936(v=vs.105).aspx
下一个选项卡是位置选项卡,它允许您设置手机的当前位置。因此,即使我坐在德克萨斯州的达拉斯,我也可以像在芝加哥或世界上任何位置一样测试我的手机。
- 执行特定位置的搜索,例如“伊利诺斯州芝加哥(Chicago, IL)”。
- 右键单击地图以创建一个代表位置的针脚。
- 我将核实列表中被维度和经度标记的针脚的确切位置。
现在我可以转到Windows Phone模拟器的地图应用程序查看缩放到该位置的地图。当我们创建AroundMe应用程序时,将依靠这项技术。
第三个选项卡用于创建屏幕截图,它可以帮助您创建文档或缺陷报告:
最后的选项卡是网络选项卡。除了查看手机网络上的IP地址您不能用它做更多的工作。
除了模拟器本身,Visual Studio还有一些工具可以影响到XAML设计器如何显示显示手机(方向,主题和颜色,镶边等):
还有模拟仪表板,它允许您在不同的现实条件下验证您的Windows Phone应用程序。
模拟面板向您提供模拟不同的网络条件,触发提醒和检查您的应用程序在锁定的屏幕下如何执行的能力:
在开发期间您具有这么多的方式来测试和监视您的应用程序,所以当您在应用商店分发您的应用程序时,您将对它的表现抱有信心。
回顾
最后一个有关模拟器的技巧是开发期间让模拟器自己管理启动和运行是没有问题的。没有必要关闭它。当您在Visual
Studio的调试模式下启动或重新启动您的应用程序时,这个过程的一部分内容就是将您应用程序的最新版本部署到手机。每次都重新启动模拟器的话会很耗
时,并且如果需要,Visual Studio会连接到当前的模拟器。
综上所述,模拟器是一个很棒的工具,它允许您在开发过程中快速部署应用程序到虚拟的Windows
Phone。我们学习了如何测试不同设备的屏幕大小和内存限制,如何操纵模拟器以测试旋转和动作,如何让手机位于地理上特定的位置以及更多内容。我们将会
在本系列中大量使用这些技能。
Windows Phone 8初学者开发—第9部分:Windows Phone 8模拟器概述的更多相关文章
- Windows Phone 8初学者开发—第14部分:在运行时绑定到真实的数据
原文 Windows Phone 8初学者开发—第14部分:在运行时绑定到真实的数据 第14部分:在运行时绑定到真实的数据 原文地址: http://channel9.msdn.com/Series/ ...
- Windows Phone 8初学者开发—第13部分:设置LongListSelector中磁贴的样式
原文 Windows Phone 8初学者开发—第13部分:设置LongListSelector中磁贴的样式 第13部分:设置LongListSelector中磁贴的样式 原文地址: http://c ...
- Windows Phone 8初学者开发—第12部分:改进视图模型和示例数据
原文 Windows Phone 8初学者开发—第12部分:改进视图模型和示例数据 第12部分:改进视图模型和示例数据 原文地址:http://channel9.msdn.com/Series/Win ...
- Windows Phone 8初学者开发—第11部分:设置SounBoard应用程序
原文 Windows Phone 8初学者开发—第11部分:设置SounBoard应用程序 原文地址: http://channel9.msdn.com/Series/Windows-Phone-8- ...
- Windows Phone 8初学者开发—第10部分:数据绑定应用程序和透视应用程序项目模板简介
原文 Windows Phone 8初学者开发—第10部分:数据绑定应用程序和透视应用程序项目模板简介 原文地址: http://channel9.msdn.com/Series/Windows-Ph ...
- Windows Phone 8初学者开发—第8部分:理解编译和部署
原文 Windows Phone 8初学者开发—第8部分:理解编译和部署 第8部分:理解编译和部署 原文地址: http://channel9.msdn.com/Series/Windows-Phon ...
- Windows Phone 8初学者开发—第7部分:本地化应用程序
原文 Windows Phone 8初学者开发—第7部分:本地化应用程序 第7部分:本地化应用程序 原文地址: http://channel9.msdn.com/Series/Windows-Phon ...
- Windows Phone 8初学者开发—第6部分:设置应用程序的样式
原文 Windows Phone 8初学者开发—第6部分:设置应用程序的样式 Source Code: http://aka.ms/absbeginnerdevwp8 PDF Version: ht ...
- Windows Phone 8初学者开发—第5部分:布局和事件基础
原文 Windows Phone 8初学者开发—第5部分:布局和事件基础 原文地址: http://channel9.msdn.com/Series/Windows-Phone-8-Developme ...
随机推荐
- BC第二场
GT and sequence Accepts: 385 Submissions: 1467 Time Limit: 2000/1000 MS (Java/Others) Memory Lim ...
- C++ signal的使用
1.头文件 #include <signal.h> 2.功能 设置某一信号的对应动作 3.函数原型 typdef void (*sighandler_t )(int); sighan ...
- 关于给javascript对象添加、删除、修改对象的属性
以下是自己总结的几种方法 利用动态特性 function Person(){}; var person = new Person(); person.name = 'yy'; person.gende ...
- C++ : 类型的别名和对象的别名
#include <iostream>using namespace std; class human{public: void Talk(); ~human(){cout&l ...
- [cocos2d-x] 让精灵响应触摸 并把方向旋转到相对应的角度
在cocos2d-x里面 想要把一个精灵从原位置移动到用户所触摸到的点 , 并且把精灵的方向旋转相对应的弧度,可以参考一下我的做法 我这里的精灵是用一条鱼, 用户触摸后鱼就移动到所触摸的点, 并且移 ...
- Nmon的安装及使用
1.安装软件 1) 用root用户登录系统,建立目录:#mkdir /nmon 2) 通过FTP将下载的nmon工具上传至服务器 192.168.40.212目录/nmon下. 3) 修改tar包权 ...
- C#读取网页
public bool getweb(string strURL,out string buf) { buf=""; try { //Uri url=new Uri(strURL, ...
- C-重定向
说实话,第一次接触重定向这一个概念,感觉是那么的神奇简洁不可思议…………………… freopen() 本来应该是打开的是文件指针,但是分配了指针,使她(亲切)指向了标准输入.输出.错误流. 用 法: ...
- RFID介绍及电子标签成本预估
What is RFID • RadioFrequencyIdentification, (無線射頻識別系統)• 通常是由感測器(Reader)和RFID標籤(Tag)所組成的系統 RFID分類 • ...
- Delphi函数指针的两种定义(对象方法存在一个隐藏参数self,所以不能相互赋值)
delphi中经常见到以下两种定义 Type TMouseProc = procedure (X,Y:integer); TMouseEvent = procedure (X,Y:integer) o ...