Xamarin始创于2011年,旨在使移动开发变得难以置信地迅捷和简单。Xamarin的产品简化了针对多种平台的应用开发,包括iOSAndroidWindows PhoneMac App。Xamarin由许多著名的开源社区开发者创立和参与,而且也是Mono项目的主导者——C#与·NET框架的开源、跨平台实现。

特点

作为一个跨平台开发框架,Xamarin.Mobile有很多优点。在这一框架内,开发iOS、Android、Windows
Phone和Mac App应用可以不用转到Eclipse 或者额外购买Mac并使用Xcode,而继续在Visual Studio之中使用C#与.NET Framework进行。
Xamarin是mono项目的一个分支,但这里面最大的区别Xamarin是商业项目.mono做为跨平台的框架已得到越来越多的商业项目的肯定,令外界担心的版权问题\可靠性\稳定性也得到证实,使用mono最大的好处是可以使用其它平台众多的项目解决方案,而不必被限制在windows平台下贫乏而又昂贵的各种解决方案.
 
 

工具包

Xamarin现在已经形成了一个完整的体系,目前有Xamarin Studio、Xamarin.Forms、Xamarin for Visual Studio(作为插件集成)、Xamarin Test Cloud,以及包含前面四个工具的Xamarin Platform。它的目标是 用C#开发iOS、Android和Windows Phone原生应用程序,一次开发,多平台交付。
Xamarin架构
 
 

开发

Xamarin Studio是一个用C#语言开发跨平台应用的集成开发环境,它和iOS以及Android SDK紧密整合。Xamarin Studio提供了很多现代开发所需功能,包括代码完成、调试器、打包和发布应用(支持通过TestFlight发布应用程序)。对于Android,Xamarin还包含了自己的UI生成器(对于iOS,则使用苹果Xcode的UI生成器),此外还集成了Git和Subversion。开发者可以使用Xamarin Studio在模拟器和真机上对移动应用进行测试和bug调试。Xamarin Studio能够完美支持Windows和Mac。Visual Studio
Xamarin还提供了for vs2010 vs2012的插件,这个是比较吸引人的地方。该插件可以很好地与微软的生态系统集成,可以在Mac OS机器的仿真器上进行远程调试和测试。在Mac OS上,因为iOS的现有限制,面向iOS的C#代码会通过AOT编译技术直接编译为ARM汇编代码。而在Android上,应用程序会转换为IL,启动时再进行JIT编译。
但插件里面只有Android\iOS类型的项目,更多其它平台上的项目都没有。iOS的项目的编译和调试需要Xcode支持,则说明还需要一台Mac的系统以及Xcode环境,以及一个装在Mac上的辅助软件Xamarin.iOS,Xamarin.iOS是运行在Mac上的软件,用来负责编译和调试软件,并且把结果通过socket通信反应到IDE上。但官方并没有提供这个软件的下载或试用,是购买授权用户的特权。
市面上已经出现了很多基于Xamarin Studio的第三方工具。
Xamarin Studio
 
 
 
 
 
Xamarin Component Store
 
Xamarin 2.0 特别引入了全新Xamarin Component Store,内含丰富的UI部件、图片、图表、主题、云服务等素材供下载或购买。Xamarin Component Store中的插件能够和Xamarin Studio以及Visual Studio无缝整合,开发者能够更方便地将这些部件和功能加入到自己的App中去。Xamarin.Mobile是该商店中的组件之一,提供了访问iOS、Android和Windows Phone等平台公共特性(如通讯录和相机等)的API。根据Xamarin提供的信息,如果设计合理,应用程序的代码量最多可以减少90%。
 
 
 
各版本信息和授权费用,
ps:Xamarin目前已经被微软收入囊肿,并且正在局部开源;mono早已被微软收购。

Xamarin跨平台移动开发解决方案的更多相关文章

  1. Flutter与Xamarin跨平台移动开发相比

    在过去十年中,移动行业经历了巨大的增长,特别是在应用程序开发方面.据Statista报告称,全球智能手机用户超过20亿,预计到2022年底这一数字将增加到50亿以上.在这些智能手机中,近100%在三个 ...

  2. 微软收购跨平台移动开发公司Xamarin

    摘要:北京时间2月25日早间消息,微软周三宣布收购创业公司Xamarin,这也是该公司为了吸引更多软件工程师为其云计算服务编写程序而采取的最新举措.古斯里表示,总部位于旧金山的Xamarin创立于20 ...

  3. 【转贴】-- 基于QT的跨平台应用开发

    原帖地址:http://www.cnblogs.com/R0b1n/p/4106613.html 1 Qt简介 Qt是1991年奇趣科技开发的一个跨平台的C++图形用户界面应用程序框架.它提供给应用程 ...

  4. 跨平台app开发(引擎)工具的选择【转】

    跨平台app开发(引擎)工具的选择 1.html5执行速度慢,用户体验不好 2.原生应用开发,即ios和安卓分别开发,需要两种技术人员,后期代码维护困难,很难达到统一. 3.xamarin是一款c#的 ...

  5. Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具

    开发Xamarin.Forms应用程序需要的工具 Xamarin.Forms教程开发Xamarin.Forms应用程序需要的工具,2014年5月8日在发布的Xamrin 3中引进了Xamarin.Fo ...

  6. 基于Qt5 跨平台应用开发

    1.Qt简介 2.Qt 编程关键技术 2.1 信号与槽 2.2 Qt事件处理 3.Qt开发与实例分析 3.1 开发环境 3.2 系统实现基本框架 3.3 数据库管理 3.5 对Excel进行操作 4. ...

  7. 跨平台移动开发UI语言 -XAML

    Xamarin.Forms 把XAML (Extensible Application Markup Language, XAML) 带进了ios,android的界面开发,也就使得使用Xamarin ...

  8. 全球首个全流程跨平台界面开发套件,PowerUI分析

    一.       首个全流程跨平台界面开发套件,PowerUI正式发布 UIPower在DirectUI的基础上,自主研发全球首个全流程跨平台界面开发套件PowerUI(PUI)正式发布,PowerU ...

  9. 【Xamarin 跨平台机制原理剖析】

    原文:[Xamarin 跨平台机制原理剖析] [看了请推荐,推荐满100后,将发补丁地址] Xamarin项目从喊口号到现在,好几个年头了,在内地没有火起来,原因无非有三,1.授权费贵 2.贵 3.原 ...

随机推荐

  1. Java 项目优化实战

    https://blog.coding.net/blog/java-coding-performance 1 Visual VM 2 优化一 2.1 背景 2.2 原实现 2.3 剖析 2.4 方案 ...

  2. POJ 1149PIGS 网络流 最大流

    PIGS Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 20421   Accepted: 9320 Description ...

  3. android杂记

    1.ArrayAdapter requires the resource ID to be a TextView问题 listView.setAdapter(new ArrayAdapter<S ...

  4. Thinkphp去掉index.php

    1.httpd.conf配置文件中 #LoadModule rewrite_module modules/mod_rewrite.so 把前面的警号去掉2.AllowOverride None 将No ...

  5. (Python)异常处理try...except、raise

    一.try...except 有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.例如,做除法时,除数为0,会引起一个ZeroDivisionError 例子: a=10 b=0 c=a/b ...

  6. map阶段动态获取CombineTextInputFormat各输入文件路径

    老mr程序中map中conf的map.input.file参数只能获取获取CombineTextInputFormat的第一个输入文件,而新版mr程序则连第一个输入文件也无法获取,这是因为create ...

  7. MD5编码

    public class MD5 { public static String getMD5(String content) { try { MessageDigest digest = Messag ...

  8. 【笔记】memorymanagement-whitepaper-150215

    3 GC概念 Gc的职责: 1)  分配内存 2)  保证被引用的对象驻留内存 3)  对象不可达后将其占用内存回收 被引用对象被称为 “存活对象”. 不再被引用的对象称为“垃圾对象”. 找到垃圾对象 ...

  9. HTML页面跳转的5种方法

    下面列了五个例子来详细说明,这几个例子的主要功能是:在5秒后,自动跳转到同目录下的hello.html(根据自己需要自行修改)文件.1) html的实现 <head> <!-- 以下 ...

  10. How to copy remote computer files quickly to local computer

    if we want copy file from VM(Remote VM) to local computer. Always can not easy copy file so easy. no ...