第一个VS2015 Xaramin Android项目
20170323新增:VS环境配置
打开VS,菜单栏选工具(Tools) 选项\
一般有2个地方需要修改
1
2
新建第一个项目,什么都没有修改的情况下(已经配置好环境变量)直接运行,会发现如下错误:
这是因为没有连上手机或没有开启虚拟设备,打开AVD创建设备并打开后回VS运行按钮会变成下图:
再点击运行即可将app部署到虚拟设备,但是我并不建议使用Google 的AVD Manager创建的设备,因为实在是卡成狗。我们可以尝试使用Xamarin Android Player 或VS2015自带的模拟器,我这里用的是VS自带的模拟器。
XAP下载地址:https://developer.xamarin.com/releases/android/android-player/(下载安装后安装相应的模拟器需要FQ。)
VS Android模拟器下载地址:https://www.visualstudio.com/zh-hans/vs/msft-android-emulator/
模拟器介绍:https://my.oschina.net/u/2317468/blog/509516?p=1
为什么模拟器XAP 或 VS_Enulator 比AVD要快?这是需要硬件支持的《Windows Phone 8 模拟器的系统要求》,否则vs_emulatorsetup.exe会安装失败(有提示错误原因)
在 BIOS 中,必须支持以下功能:
-
硬件辅助虚拟化。【我使用的是Intel CPU,可以使用securable查看是否支持】
-
二级地址转换 (SLAT)。【可以使用微软官方的工具Coreinfo 进行检测[command-> coreinfo.exe –v]】
-
基于硬件的数据执行保护 (DEP)。【参考:你的计算机开启了数据执行保护(DEP)吗? 我个人觉得应该是防止虚拟机内的病毒通过某些手段攻击主机?】
虚拟化 (详细请查看:虚拟化技术简介)
我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称为 Virtual Machine Monitor 或Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。
何为 SLAT 呢?(详细请查看:什么是SLAT,检查 CPU 是否支持二级地址转换 (SLAT))
在程序访问内存时都要经过从逻辑地址到物理地址的映射,虚拟环境下也不例外反而更加复杂,因为第一次映射出来的“物理地址”还是虚拟机下的虚拟地址,需要通过虚拟机把它再次映射成实际的物理地址,这样就限制了访问的速度。
而 SLAT 即“二级地址转换”,可以加速页表访问的速度!在 Intel 和 AMD 处理器上都提供了这一新技术,两个品牌针对 SLAT 这一技术有不同的技术名称:
Intel 的 SLAT 称为 EPT(Extended Page Table),Intel 的 Core i7,i5,i3,Pentium G6950 以及大部分的 Xeons 处理器都支持 SLAT,而 Core 2 系列以及更早的处理器则不支持!
AMD 的 SLAT 称为 RVI(Rapid Virtualzation Indexing),第三代皓龙处理器(代号:巴塞罗那)都支持这一技术。
BIOS 开启 虚拟技术(仅以我自己的主板为例)
开启Hyper
开启Hyper 后开始运行调试app又发现了需要开启Hyper 服务
在控制面板设置那里忘记勾选 Hyper-V服务了,除此之外可以勾选Hyper-V虚拟机监控程序。确定后需要重启计算机。
重启后打开VS,继续运行调试app发现又弹窗了:You have been added to the Hyper-V Administrators security group. Please sign out of your computer for the permissions to take effect.
英语好的可以看这:android enuemulator problem
这里有解决方案很简单,使用管理员身份打开VS
或者有一劳永逸的操作方式:右击vs,选属性,在弹窗后选快捷方式,选高级,勾选用管理员身份运行即可。
好了,做完上述步骤后继续打开VS,开启运行调试。模拟器总算可以运行了,但是却发现模拟器并没有成功安装app,前文已经说过解决方式,这里再说一次吧~
在注册表中"HKCU\Software\Microsoft\VisualStudioEmulator\Android"下添加一个名称为"AdbPath"的键,值就是Android SDK的platform-tools绝对路径(D:\Android\android-sdk\platform-tools)。
最后提示,刚进模拟器系统时打开 app,app有可能闪退,等一会app真正安装好后再打开就好了。
自此,第一个app终于可以运行!