简介
Xamarin.iOS:原名MonoTouch,用于开发iOS应用程序,并且可以发布到app store上。
Xamarin.Mac:用于开发mac os x应用程序,类似于windows 桌面应用。
Xamarin.Android:原名MonoDroid/Mono for Android,用于开发Android应用程序。
Xamarin for Visual Studio:Visual Studio的插件,包括iOS和Android,不过目前只支持vs2010/vs2012。
Xamarin Test Cloud:测试云,可以把你的应用程序发布到Xamarin的云上面测试,它可以自动帮你在数百种设备上测试你的应用程序。
Component Store:组件商店,上面有各种收费/免费的控件提供下载。
话说还有windows phone不知道跑哪去了…
界面设计器
Android应用程序会被编译为IL代码,启动时再进行JIT编译(动态编译),发布程序的时候会包含一个mono runtime。
而iOS则是直接通过AOT编译(静态编译)为ARM汇编代码。
API文档
Xamarin提供了API文档:
Framework 4.0和GTK# for 2.12.22,安装好两个依赖之后可以直接安装Xamarin Studio即可。
android依赖JDK6以及android SDK,所以需要先下载:
安装好JDK及androidSDK之后,再安装Xamarin.Android,会让你选择是否安装Visual Studio插件。
安装好Visual Studio插件之后,在菜单Tools->Options->Xamarin->Android Settings设置好Android SDK和NDK的路径。
由于android SDK提供的模拟器是在是巨慢无比,太差劲了,所以不得不找一个替代品。
基于Virtual Box的GenyMotion绝对是最佳选择,运行速度非常流畅,不过目前只支持Android4.1.1、4.2.2。
安装完成之后:
通过”Settings”按钮:设置好Android
SDK路径,并勾选”When a virtual devices starts, connect it automatically to
ADB”,”ADB from Android Developer Tools successfully found”。
通过“Add”按钮
添加设备,然后需要登录
如果所选的设备镜像没有下载,则需要在线下载某个设备的vbox镜像,一般镜像大小为200M。
通过向导提示添加虚拟机,输入名称如“lwme Nexus S - 4.2.2 - with Google Apps - API 17 - 480x800”,再等待虚拟机创建好
通过“Play”按钮运行虚拟机
虚拟机启动之后,VS的Xamarin.Android工具栏会列出设备的名称,选择这个设备就可以在GenyMotion模拟器上调试Android应用程序了。
在mac os x要使用Xamarin Studio必须先安装XCode。假设已经安装好Xamarin Studio,那么也一样直接安装Xamarin.iOS即可,然后就可以直接通过Xamarin Studio直接开发调试iOS应用程序了。
windows下的Xamarin.iOS直接安装即可,由于没有windows下的模拟器,所以需要连接到mac的模拟器进行调试。
在mac下安装并激活Xamarin Studio及Xamarin.iOS
在Network->Proxies启用Web Proxy(HTTP)
关闭防火墙
做好以上操作之后:
在Visual Studio的Tools->Options->Xamarin->iOS Settings->Mac build host->Configure->Configure Host Manually
输入mac的ip地址,等待mac设备显示Ready
再点Connect按钮连接设备
连接成功
连接成功之后可能会提示SDK更新,选择更新即可,否则会提示版本不匹配无法连上mac
更新成功需要重新开启vs
Xamarin.iOS的Visual Studio插件调试有两种模式:
真机(iPhone):默认,需要把iPhone真机通过usb连到mac上
模拟器(iPhoneSimulator):模拟器调试
默认情况下是iPhone,可以在Build->Configuration Manager的Platform进行更改,否则没有连接iPhone会显示”No Devices Attached”。
然后就可以调试了,某些情况可能mtouch没有运行权限,还需要通过chmod +x /Developer/MonoTouch/usr/bin/mtouch来赋予运行权限。