BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Xamarin发布支持64位的iOS/Mac统一API

| 作者 Matt McComb 关注 0 他的粉丝 ,译者 丛一 关注 2 他的粉丝 发布于 2015年1月30日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

Xamarin上周公布了其iOS SDK(Xamarin.iO) 8.6版本,这是包含了该公司iOS和Mac统一API(Unified API)的第一个非Beta版本。统一API替代了原有的32位MonoTouch和MonoMac API,让跨平台的代码重用成为可能并且增加了64位支持。这一版本的发布比苹果要求的新应用提交必须兼容64位的最后期限(2月1日)只早了两周。

Xamarin的移动开发平台让使用C#开发可以跨平台的原生移动应用成为可能。该公司已经利用开源的Mono工具链创建了能够同时兼容iOS和安卓的运行时环境。在iOS平台上,预编译器(Ahead-of-Time Compiler)将C#代码编译成原生的ARM汇编代码。在安卓平台上,C#代码则被编译成为一种中间代码,之后会在设备上完成即时(Just-in-Time)编译。这样,开发者就可以只编写一次应用,然后可以同时在iOS,安卓和Windows Phone上执行。

新的统一API与经典的MonoTouch API并非差异很大,不过Xamarin做出了两个重大的改变以帮助跨平台的代码重用和64位兼容性。

  1. 被移除的命名空间 - iOS和Mac特有的命名空间已经被移除并折叠成为一个命名空间。例如,Foundation之前在iOS上位于MonoTouch.Foundation命名空间,在Mac上位于MonoMac.Foundation命名空间,现在在两个平台上都可以在Foundation命名空间中找到。
  2. 新的原生类型 - 在经典的MonoTouch和MonoMac API中,与架构无关的类型,如NSInteger(在32位平台被解析成为int类型,在64位平台被解析成为long类型)总是被映射成为它们相对应的32位.NET类型。为了修正这一限制,Xamarin引入了三种原生类型——System.nint,System.nuint和System.nfloat,这三种类型会被隐式的映射到当前设备架构相应的支持类型。统一API支持用这些新的原生类型替代.NET的原始类型。

为了使用统一API而想要更新应用的开发者可以手动完成这项工作,也可以利用Xamarin的迁移工具。作为其中一部分与Xamarin Studio 5.7一同分发的迁移工具可以自动更新所需要的项目设置和API引用。或者开发者也可以选择根据更新已有iOS应用指南中的步骤手动迁移应用。在上周早些时候的一个网络研讨会上,针对两种方法Xamarin都提供了额外的信息,在Xamarin的博客上可以找到这次研讨会的录音

InfoQ在2014年12月曾经报道过,Xamarin已经分发了若干个统一API的Beta版本给第三方库和组件的开发者,鼓励他们更新项目。不过,并不是所有的第三方组件都将会被更新。为了应对这一问题,开发者也许不得不将这些组件的代码作为其项目构建的一部分迁移并编译。

使用新的统一API,开发者将首次实现64位兼容的iOS和Mac应用的编译。这对于正在进行新的iOS应用开发的开发者来说相当有意义,根据苹果在10月份的公告,在2015年2月1日,所有新的iOS应用必须要做到64位兼容。对于已经发布到应用商店的应用开发者来说,时间会更加宽松一些,只要在2015年6月1日之前完成更新兼容64位即可。

查看英文原文:Xamarin Releases Unified iOS/Mac API with 64-Bit Support

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

收费的吧 by Tan Junhe

Xamarin 这货好像还没有免费吧?

收费的吧 by Tan Junhe

Xamarin 这货好像还没有免费吧?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT