Xamarin体验:使用C#开发iOS/Android应用

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

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文档:

 

安装

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,所以需要先下载:

安装好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)
  • 关闭防火墙

做好以上操作之后:

  • 在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生成项目及文件模板缓存

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

 

更多的资料请看官方Developer Center:http://docs.xamarin.com/

更多中文资料:
http://www.microsoft.com/taiwan/vstudio/Xamarin/
Terry's IT Note:http://www.dotblogs.com.tw/taihon64/Tags/Xamarin/default.aspx
James's Tech Blog:http://www.dotblogs.com.tw/jamestsai/category/9345.aspx
Donma 當麻許:http://www.dotblogs.com.tw/junegoat/Tags/Xamarin/default.aspx
浩呆的技術研究網站:http://www.dotblogs.com.tw/toysboy21/category/9451.aspx

 

最后,顺便推荐两本书:

--EOF--

目录
相关文章
|
8月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1402 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1013 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1110 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
385 0
|
iOS开发
(11)Xamarin.iOS - 新增iPhone storyboard
原文 Xamarin.iOS - 新增iPhone storyboard 1. 开启Xamarin Studio 并建立新项目 专案类型为 iOS=>iPhone Storyboard => Single view Application 2. 双击专案中的MainStoryBoard.storyboard开启Xcode 3. 拖拉一个Navigation Controller到MainStoryBoard画面中 完成拖拉后,结果如下。
984 0
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
iOS开发 开发者
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
966 67
uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
507 66
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
611 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
1852 11