Xamarin 移动开发的未来

2017-11-18 7:06:36 来源: 知乎,xamarin.csdn.net 发布人:


Xamarin免费了,Xamarin免费了,Xamarin免费了。来自:https://www.zhihu.com/question/36914471?sort=created

以下内容来自:http://xamarin.csdn.net/module/btc/xamarin/index

Xamarin 是移动开发的未来——移动应用跨平台开发的唯一解决方案。开发人员透过Xamarin开发工具与程序语言,即可开发出iOS、Android 与Windows 等平台的原生(Native) App 应用程序,不须个别使用各平台的开发工具与程序语言,不只是「write-once, run everywhere」的跨平台解决方案,更可达到 「write your code once, and present native UIs on each platform.」之跨平台开发能力。由于Xamarin可直接产生各平台之原生App应用程序,相较于其他跨平台方案,藉由Xamarin所开发出来的App应用程序,更能发挥出各行动平台的功能与特性,且具有最佳的执行效能。

Xamarin 是由早期的Mono项目演变而来,原本是在Linux上执行C#程序的一个开放原始码项目。后来陆续发表支持iOS的Mono Touch framework以及Mono For Android Framework。因此它在市场上并不是一个新的产品。2011年,原本在Novell的Mono项目团队独立成立一家公司,正式将名称改为Xamarin。

Xamarin.iOS—创建原生iOS应用程序的最佳方式

在App Store上发布原生应用程序。透过 Ahead-of-Time (AOT) 编译程序,直接将Xamarin.iOS程序编译为ARM的执行档。编译封装完成的应用程序被直接编译为原生的二进制执行文件。

支持访问任何iOS API。Xamarin将100%的苹果 iOS SDK转换为C# 函数库,使用更强大的类型和.NET命名转换来提高Objective-C API的可用性。

使用C# 调用现有Objective-C程序代码。通过Xamarin的自动绑定生成器 (binding generator) 继续使用现有的Objective-C代码、框架和自定义控件。

开发WatchKit App。透过Xamarin Studio或Visual Studio进行Watch App的应用开发,在iOS Designer里编辑 Watch 的用户界面,以及在iOS模拟器里调试Watch App。

确保与苹果同步更新。Xamarin在iOS 5,iOS 6,iOS 7,iOS 8,都与苹果在同一天发表对应的版本,让使用者在第一时间利用iOS最新功能。

Xamarin.Android—创建原生安卓应用程序的最佳方式

发布原生安卓应用程序。透过 Just-in-Time (JIT) 即时编译程序,直接将Xamarin.Android程序编译并进行封装。

支持访问任何安卓API。Xamarin将100%的Google安卓API转换为C# 函数库,通过异步支持和.NET命名转换来提高Java API的可用性。

使用C# 呼叫现有Java程序代码。通过Xamarin的自动绑定生成器(binding generator)继续使用现有的Java代码,框架和自定义控件。

开发Android Wear App。拥有100% Android Wear所有设备接口的完全访问权限,让您开发优质的Android Wear 应用程序。

确保与安卓同步更新。Xamarin对于Google最新的API版本确保第一时间更新,让使用者在第一时间利用最新功能。

Xamarin实现高性能原生应用程序

原生用户界面(UI)Xamarin应用程序使用标准的用户界面,符合每一个移动平台的设计规则,满足终端用户需求。

原生API接口Xamarin应用程序搭配装置硬件并拥有和每个平台上所有设备接口的完全访问权限,包括iBeacons和Android Fragments。

原生性能Xamarin应用程序能够完整存取装置硬件上的功能,通过Xamarin编译程序进行各平台的编译,以得到最佳效能。

Xamarin将原生(Native)的 IOS及Android API转换为C# 函式库供使用者使用,开发人员可使用C#撰写程序,并呼叫原生平台(IOS, Android)的API,且透过良好的设计,可以在不同平台共享部份程序代码。开发人员可透过Xamarin编译程序,直接将程序编译为ARM的执行档,并进行各平台的封装。编译封装完成的App由于不经过中间转译,直接编译为原生的二进制执行文件,因此具有好的运作效能。

四大模块

Xamarin 开发平台主要包含以下4大部分 :
开发程序语言:Xamarin 以C# 作为开发程序语言,开发人员直接撰写C# 即可进行开发。整合开发工具:Xamarin 提供整合开发工具 (IDE) Xamarin Studio,开发人员可直接于此工具上进行开发、除错、测试与仿真 等作业。Xamarin也针对Microsoft Visual Studio提供附挂套件 (Plug-In)。跨平台开发框架: (Mono .Net Framework)Xamarin 提供开发框架,支持跨平台的功能实作 (cross-platform implementation)。编译程序: Xamarin 具有各平台的编译程序,可直接编译为 iOS 与 Android 平台的机器码。

五大特色

快速建立原生(Native)的行动装置应用程序:
透过 C#亲和且功能齐全的语言特性,搭配.NET Framework 的 Base Class Library(BCL)的便利性,让开发人员能以最高的生产力开发行动装置应用程序。目前 Mono 支持 C# 5.0 的语言规范,开发人员可以用Lambda Expression、LINQ 甚至是 Async/Await 的异步处理。

程序代码共享:
现行由 Objective-C 所开发的 iOS 应用程序以及由 Java 所开发的 Android 应用程序,无法达到程序代码共享。Xamarin 则是采用C#撰写,因此透过良好的设计,可以在不同平台间共享商业逻辑以及数据存取等程序,毋需重新撰写。除了省下重新撰写的时间成本外,对于版本维护及一致性也有相当大的帮助。

与 Visual Studio 整合:
Xamarin 提供了 Visual Studio 2010/2012 的 plug-in,让原本就熟悉 Visual Studio 的开发者不用再熟悉其他的开发工具。在建立项目时,可以直接建立 iOS 及 Android 的项目模板。开发团队也可以将 iOS 及Android 的程序代码纳入到 ALM,使用 Team Foundation Server 进行版本及建置的管理。

确保第一时间更新:
Xamarin 对于 iOS 及 Android 的版本更新不遗余力,在 iOS SDK 5.0, 6.0 以 6.1, 都与 Apple 在同一天发表对应的 Framework 版本。7.0 也承诺会在同一天发表。而 Android 方面, Xamarin 甚至将 Android 的原始码, 从原本的 Java 改由 C#重新撰写,而且效能也得到大幅的提升。

原生的应用程序效能
Xamarin 针对iOS及Android平台开发编译程序。将C#程序代码直接编译成ARM CPU的机器码。因此效能将与原生模式开发的应用程序相比,没有不同。而在Android 系统上,由于Xamarin 不使用Android的Dalvik 虚拟机,改为采用CLR,经测试其效能更甚于原生的应用程序。

六大功能

  • 全平台开发 Xamarin可以使用熟悉的C#来撰写iOS, Android, Mac及Windows 应用程序。

  • 智能输入 开发应用程序时, 开发工具会侦测您输入的部份字母, 寻找对应的API并自动完成您的输入。

  • 与Visual Studio 整合 在Visual Studio中建立, 建置, 除错以及部署。 还可以使用您喜爱的plug-in, 例如ReSharper. 以及与TFS整合。

  • 原生的用户接口及效能 Xamarin 带给您高效能的体验并完整对应各个平台的Native API。因此透过Xamarin, 您所建立的应用程序可以完全发挥装置特有的性能。

  • UI设计 目前在Visual Studio 中已整合Android的UI设计功能, iOS的UI编辑目前仍需仰赖Xcode。 但开发团队已经着手进行开发. 一起期待吧 !

其他解决方案

下表为目前在行动平台上开发App应用程序的方法比较:

 Mobile WebHybridInterpreted AppCross CompilingNative App
代表性产品HTML5/JQuery MobilePhoneGapTitaniumXamarinObjective-C/Java
跨平台能力
使用者经验
离线能力
整合性与功能
学习门槛

上表的开发方法中,可跨平台运作的为Mobile Web、Hybrid、Interpreted App与Cross Compiling等4种,Xamarin 是采用Cross Compiling方法。

Mobile Web方法:
为纯浏览器解决方案,无法有效发挥各行动装置与平台的功能与特性,非真正行动App应用程序开发。

Hybrid方法 :
不是采用原生的用户界面,降低用户体验,Hybrid方法使用多个平台最小共享的控件(Lowest Common Denominator)。安全疑虑 : 由于Hybrid 方法是以前端技术为基础,因此以往会受到攻击的弱点,在转换平台至app后,仍然存在。Hybrid 方法无法针对内存及相关系统资源做管理。各装置的browser engine对HTML5与CSS3的支持程度不一,应用程要调整至符合大部份主流平台会有隐藏风险与成本。

Interpreted 方法 :
不是采用原生的用户界面,降低用户体验,Interpreted方法只能使用多个平台最小共享的控件(Lowest Common Denominator)。安全疑虑 : 由于Interpreted方法是以前端技术为基础,因此以往会受到攻击的弱点,在转换平台至app后,仍然存在。Interpreted方法无法针对内存及相关系统资源做管理。Javacode engine在各装置的支持程度不一。JTitanium需要经过直译及编译2道程序,而非直接编译。

开发方法概述

  • 以Xamarin开发App应用程序的方法概述如下 : 开发人员在单一开发环境中即能管理、撰写程序与测试各行动平台的App应用程序,可以在同一个方案中统合所有平台的项目,包括iOS、Android、Windows Phone与Windows 8 Store App。

  • Xamarin支持MVC设计模式,开发人员可以设计哪些是与用户接口相关的部份,并将与平台无关的商业逻辑、服务存取、数据存取以及数据层从接口抽离出来,依此为依据将应用程序区分为两部份, 分别为core以及user interface,有效达到程序代码共享,让设计架构更严谨。

  • 针对上述项目统合开发与程序代码共享,如下图左半边所示,开发人员可将抽离出来的共享程序代码独立成一个项目 (Shared Code),并只加入常用的组件(如Base Class Library),若有部份程序代码使用到与平台相关的组件或技术,可在程序代码中加入条件式编译的指示词,供各平台直接使用,不需要进行修改。

  • 在各平台的项目中, 开发人员可以透过功能套件 (Project Linker),以档案连结的方式, 将共享程序代码的部份连结到各平台项目。在开发平台项目时,只要针对用户接口以及针对控件的操作撰写程序即可。对于商业逻辑或数据存取的部份,则可以在各平台共享,这是使用原生的开发方式(Objective-C、Java)所无法达到的。 开发完成后,即可透过Xamarin的编译程序进行编译。Xamarin 为不同的平台提供编译程序。在iOS平台,Xamarin 使用AOT编译,在Android平台,则使用JIT编译,将C#程序代码直接编译为ARM CPU的机器码,以得到最佳效能。


阅读次数: 1980

下一篇: C++模板
上一篇: 使用Visual Studio进行C++ Android开发的十大理由

尚无评论!

返回上一页面