Xamarin是Mono创始人Miguel de Icaza创建的公司,旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发。

简介

Xamarin是基于Mono的平台,目前主要有以下产品(更具体请见:http://xamarin.com/products):

  • Xamarin Studio:IDE,是从原来的MonoDevelop改名而来。现在从MonoDevelop官方网站下载的其实也是Xamarin Studio:http://monodevelop.com/。 (话说MonoDevelop也是SharpDevelop的一个分支发展而来)
  • 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,不管是Xamarin Studio还是Xamarin for Visual Studio,都有提供一个设计器,方便直接对界面进行设计,具体见:http://docs.xamarin.com/guides/android/user_interface/designer_overview/。

而iOS则没有这么好运了,Xamarin for Visual Studio没有设计器。而Xamarin Studio虽然有设计器提供,不过目前也只提供在iOS上的Xamarin Studio alpha版本,估计目前稳定性还不够,具体见:http://docs.xamarin.com/guides/ios/user_interface/designer/,只好期待未来能够提供。

已经安装了Xamarin Studio或者Visual Studio的可以直接通过切换通道来更新:http://docs.xamarin.com/recipes/cross-platform/ide/change_updates_channel/,目前主要有Stable稳定版、Beta测试版、以及alpha版。

工作方式

Android应用程序会被编译为IL代码,启动时再进行JIT编译(动态编译),发布程序的时候会包含一个mono runtime。

而iOS则是直接通过AOT编译(静态编译)为ARM汇编代码。

具体见:http://xamarin.com/how-it-works

API文档

Xamarin提供了API文档:

  • Android:http://androidapi.xamarin.com/?link=root%3a%2fMonoAndroid-lib
  • iOS:http://iosapi.xamarin.com/?link=root%3a%2fMonoTouch-lib

安装

Xamarin Studio

Xamarin Studio可以直接从http://monodevelop.com/Download下载,目前最新的稳定版为4.0.13。

  • Windows版依赖于.NET Framework 4.0和GTK# for .NET 2.12.22,安装好两个依赖之后可以直接安装Xamarin Studio即可。
  • Mac OSX版依赖于Mono + GTK#,需要先从http://www.go-mono.com/mono-downloads/download.html下载MRE(Mono Runtime)或者MDK(Mono DevelopmentKit)安装。MRE和MDK都包含GTK#和MONO。

Android

android依赖JDK6以及android SDK,所以需要先下载:

  • JDK6:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html
  • android SDK及NDK:http://developer.android.com/sdk,其中NDK不是必须的。
  • Xamarin.Android:http://xamarin.com/download

安装好JDK及androidSDK之后,再安装Xamarin.Android,会让你选择是否安装Visual Studio插件。

安装好Visual Studio插件之后,在菜单Tools->Options->Xamarin->Android Settings设置好Android SDK和NDK的路径。

额外说一句,eclipse实在是太差劲,跟intellij IDEA没法比,如果用java开发的话Android Studio是最佳选择,ADT就不用考虑了。

Android模拟器及调试

由于android SDK提供的模拟器是在是巨慢无比,太差劲了,所以不得不找一个替代品。

基于Virtual Box的GenyMotion绝对是最佳选择,运行速度非常流畅,不过目前只支持Android4.1.1、4.2.2。

在官网:http://www.genymotion.com/注册好账号,并下载安装GenyMotion,目前最新版本为1.3.0。

安装之前需要你的电脑上已经安装Virtual Box(目前最新版为4.3.2),不过我发现我安装了Virtual Box 4.3.2的情况下GenyMotion无法启动,所以后来又换成官方推荐的4.2.12,从https://www.virtualbox.org/wiki/Download_Old_Builds_4_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应用程序了。

iOS on mac

在mac os x要使用Xamarin Studio必须先安装XCode。假设已经安装好Xamarin Studio,那么也一样直接安装Xamarin.iOS即可,然后就可以直接通过Xamarin Studio直接开发调试iOS应用程序了。

iOS on windows

windows下的Xamarin.iOS直接安装即可,由于没有windows下的模拟器,所以需要连接到mac的模拟器进行调试。

前提条件是(具体见:http://docs.xamarin.com/guides/ios/getting_started/installation/mac/):

  • 在mac下安装并激活Xamarin Studio及Xamarin.iOS
  • 在Network->Proxies启用Web Proxy(HTTP)
  • 关闭防火墙

还有一个最重要的前提是,你必须有有个iPhone Developer Program(IDP)证书,否则没办法调试,没有的话需要到:https://developer.apple.com/programs/ios/申请(个人开发者$99每年)。

做好以上操作之后:

  • 在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”。

具体的配置请见:http://docs.xamarin.com/guides/ios/getting_started/introduction_to_Xamarin_iOS_for_visual_studio/。

然后就可以调试了,某些情况可能mtouch没有运行权限,还需要通过chmod +x /Developer/MonoTouch/usr/bin/mtouch来赋予运行权限。

Visual Studio 2013

Xamarin的Visual Studio插件目前还不支持VS 2013,所以需要在安装Xamarin的VS插件时把2010和2012全选上 (由于我的电脑里只剩2013,而安装VS2013的时候还会安装部分VS2010的Shell,所以VS插件会被安装到VS2010的目录下)。

接下来需要手动复制一些文件(假如VS2013安装在C盘的话):

  • 把C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/Extensions/Xamarin 复制到 C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/Extensions/Xamarin
  • 把C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/ProjectTemplates/CSharp目录下的Android目录和iOS目录复制到C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/ProjectTemplates/CSharp
  • 把C:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/ItemTemplates/CSharp目录下的Xamarin.Android目录和iOS墓道复制到C:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/ItemTemplates/CSharp
  • 运行"c:/Program Files (x86)/Microsoft Visual Studio 12.0/Common7/IDE/devenv.exe" /setup /nosetupvstemplates生成项目及文件模板缓存

上面的方法来自:http://blog.fire-development.com/2013/07/01/install-xamarin-in-vs-2013-preview-1/,再由囧月改造。

现在就可以在VS2013上开发Android及iOS应用了。

附:软件下载地址:

Android Components:
1. JDK 1.6: http://download.xamarin.com/Installer/MonoForAndroid/jdk-6u39-windows-i586.exe
2. Android SDK: http://dl.google.com/android/installer_r21-windows.exe
3. GTK#: http://download.xamarin.com/Installer/gtk-sharp-2.12.20.msi
4. Xamarin Studio: http://download.xamarin.com/studio/Windows/XamarinStudio-4.0.1.msi
5. Xamarin.Android for Visual Studio and Xamarin Studio: http://download.xamarin.com/MonoforAndroid/Windows/mono-android-4.6.00049.msi

本地离线版安装说明:

1、下载并解压吾乐吧提供的“Mono for Android 离线包”,然后依次“手动”运行安装以下几个软件:
1)jdk-6u45-windows-i586.exe (就算你是64位系统,也要安装i586版)
2)installer_r22.0.1-windows.exe (例如安装到 D:\Program Files\Android\android-sdk)

2、下载并解压吾乐吧提供的“Android SDK 本地离线完整版”,把压缩包里的 android-sdk 解压到上面那个安装路径(路径不要含有中文):
D:\Program Files\Android\android-sdk

3、设置系统环境变量:右键我的电脑——属性——高级系统设置——高级——环境变量——系统变量里,找到 Path,双击进行修改,在最前面增加:
D:\Program Files\Android\android-sdk\platform-tools;
(注意末尾必须有 ; 英文分号)

4、依次“手动”运行安装以下几个软件:
1)gtk-sharp-2.12.21.msi //这个是用xamarinstudio时需要安装
2)XamarinStudio-4.0.8.msi //使用vs201不用安装
3)mono-android-4.6.07004.msi
4)mtvs-1.0.897.0.msi  //(如果不开发iOS,这个不需要安装,这个需要用 MFx Patcher.exe 破解)

5、安装mono-aundroid的破解补丁

破解补丁在http://down.51cto.com/data/514411地址将 压缩包/mandroid文件夹里面的mandroid.exe 放到C:\Program Files\MSBuild\Xamarin\Android目录覆盖源文件即可。

【Android C#开发】Xamarin环境搭建相关推荐

  1. 折腾Weex+Android App开发运行环境搭建手记

    搞了几个月的Vuejs,也是时候开始搞搞基于Vuejs语法的Weex App了. 这里做个广告,最近用vuejs开发了一个小系统(前后端分离),架构有参考Oracle EBS,功能/职责随便配置.有兴 ...

  2. Android jni开发--NDK环境搭建

    谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK.而在NDKr7开始,Google的Windows版的NDK提供 ...

  3. JNI开发笔记(一)--Android Studio安装与环境搭建

    Android Studio安装与环境搭建 1. 前言 1.1 什么是JNI 1.2 JNI从零开发流程 2. Java环境配置 3. Android Studio安装 参考链接 1. 前言 工作中需 ...

  4. 【安卓开发系列 -- 开发环境】Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具)

    [安卓开发系列 -- 开发环境]Unbuntu 下 Android 持续集成打包环境搭建 -- Jenkins 构建工具安装(gradle + git + android 工具) [1]Unbuntu ...

  5. Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具)

    Android资源总结(开发工具/环境搭建/教程/论坛/博客/反编译工具) 在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一 ...

  6. BI报表开发之环境搭建(二)

    上一篇<BI报表开发之环境搭建(一)>中详细描述了SQL SERVER R2 的安装步骤,本篇将继续描述BI报表开发的环境搭建部分-- Orale数据库安装. <1>下载ora ...

  7. auto.js id为参数滑动_【Autojs教程】02Autojs PC端开发调试环境搭建

    [Autojs教程]02-Autojs PC端开发调试环境搭建 写在前面 本篇教程算是保姆级教程了,希望以此能吸引更多感兴趣的同学学习Autojs,也希望大家能因此碰撞出更多的奇思妙想 关注微信公众号 ...

  8. 小程序开发及环境搭建及发布

    一.小程序开发及环境搭建 1.下载Hbuild X https://www.dcloud.io/hbuilderx.html 2.下载腾讯开发工具 https://q.qq.com/wiki/tool ...

  9. 超级便宜的鸿蒙开发板环境搭建-编译-烧录

    超级便宜的鸿蒙开发板环境搭建-编译-烧录 1.下载代码.编译工具和烧写工具 打开https://gitee.com/hihopeorg/Neptune-HarmonyOS-IOT下载代码 打开http ...

  10. 利用 Windows 子系统 Linux(WSL)开发 Python 环境搭建

    利用 Windows 子系统 Linux(WSL)开发 Python 一.启用适用于 Linux 的 Windows 子系统 二.安装 Linux 分发版 三.安装并配置 Visual Studio ...

最新文章

  1. 64 岁的 Python 之父:我不退休了,我要去微软!
  2. MySQL 8.0 CentOS 7安装手册
  3. java set 接口_【Java提高十七】Set接口集合详解
  4. 【程序设计】流程图的规范和绘制
  5. aPaaS将如何改变软件行业?
  6. 如何通过Geth、Node.js和UNIX/PHP访问以太坊节点 1
  7. Aspose.Cell 导出和导入Excel
  8. Struts框架下定时任务
  9. python爬取网页美文网文章内容
  10. SG90舵机的电路连接和驱动(树莓派)
  11. phpMyAdmin下载
  12. 如何提升AD的采样频率
  13. php属相对应年份博客,十二生肖对应年份表
  14. 想转行做数据产品经理?这份书单赶紧收藏起来
  15. C语言,指针变量的*p,p以及p的区别
  16. 智能渠道商分销系统开发方案:打通协作壁垒,实现渠道商数字管理
  17. 金一文化推出“B站2233 x中央芭蕾舞团”限量手办
  18. 部署apollo-client到maven私服上时遇到的问题及排查过程
  19. 数据库设计中的命名规范
  20. G-dis - Mac上的Redis客户端

热门文章

  1. 计算机运行慢 卡是什么原因是什么原因,电脑反应慢是什么原因(电脑卡顿是为什么怎么解决)...
  2. pycharm xp_pycharm winxp版软件下载-pycharm winxp最新版v2020.2.1 电脑版 - 极光下载站
  3. 眼镜计算机检查,电脑验光机
  4. Scratch之召开趣味运动会
  5. htb-bastion
  6. ArcGIS for Desktop入门教程_第三章_Desktop软件安装 - ArcGIS知乎-新一代ArcGIS问答社区...
  7. 蓝桥杯 第39级台阶 递推动态规划
  8. 大学计算机基础电子板报实验,大学计算机基础实验.doc
  9. iOS-82-自己APP地图内检测是否安装了其他地图(百度地图、高德地图、苹果地图),以及跳转
  10. iOS 百度地图 定位后蓝色圆圈(精度圈)去除