MonoDroid 架起.NET 与 Android 之间的桥梁

  • Abel Avram
  • 赵劼

2011 年 1 月 9 日

话题:.NET移动Android语言 & 开发架构

MonoDroid 将完整的 Mono 虚拟机带到了 Android 上,让.NET 开发人员可以为 Google 的移动操作系统编写应用程序。开发人员现在可以同时面向 iOS,Android 和 Windows Phone 7 编写应用程序了。

MonoDroid是一个类似MonoTouch的框架,让开发人员可以使用 C# 语言和Mono 虚拟机为 Android 移动操作系统编写应用程序。MonoDroid API包含 Silverlight 所有的核心类库,但 UI 接口除外,取而代之的是一套针对原生 Android Java API 的绑定,用于访问设备相关的功能,例如各种感应器,摄像头,蓝牙等等。

在 Windows 上进行 Andorid 开发最好使用 Visual Studio 专业版(或更高)配合 SDK 和开发用插件,而 SDK 会引用 Android SDK 以便使用 Java SDK。在 Mac OS X 上使用MonoDevelop(基于 Mono 的跨平台 IDE)进行开发要等到Preview 10。此外也有计划提供基于 MonoDevelop 的 Linux 开发环境。

MonoDroid 为.NET 开发人员打开了 Android 世界。人们可以使用.NET 和 Mono 同时开发 Windows Phone 7,iPhone OS 以及 Android 应用程序。不过事情也并非开发人员所希望那般直接:不同的平台有不同的设备及 UI API,所以各个地方不可能同时运行相同的代码。开发人员需要清晰地分割业务逻辑以及 UI 逻辑,后者需要为不同的移动操作系统编写有针对性地代码。这是.NET 开发人员尽可能打开市场的重要一步。

MonoDroid 的路线图并没有提及正式版的发布时间,不过 Miguel de Icaza 提到他们“正在尽可能快地完成 Andorid 上的 Mono”。MonoDroid 1.0 将会使用 Mono 2.8,并支持 C# 3.0,.NET 3.5,垃圾回收,多线程以及其他标准特性,如 LINQ。OpenGL 也会通过 OpenTK API 得到支持,这是个 OpenGL 的面向对象封装类库。OpenTK 同样包含在 MonoTouch 中,因此 OpenGL 代码可以在 Android 和 iOS 之间共享。

据 Icaza 称DeltaEngine使用了 MonoDroid,这是一个跨平台的游戏开发引擎,可以在 iPhone,Android,Windows Phone 7 和 Xbox 360 上运行游戏。此外,在 CES 2011 上NVidia 演示了一个游戏Soul Craft,它运行在LG Optimus 2X,这是一个基于 NVidia 的 Tegra 2 双核芯片的 Android 手机。这个游戏运行在 MonoDroid 上。

MonoDroid 将会是个商业产品,定价还未发布。作为参考,MonoTouch 的价格从 99 美元的学生版开始,到 399 美元的专业版,还有 3999 美元的 5 个企业授权套装。

.NET移动Android语言 & 开发架构