首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

.NET 逆襲:用 Mono 玩轉 Dalvik,Xamarin 的 XobotOS 專案深度解析

     編輯:關於C語言

背景

Oracle 與 Google 因 Android 使用 Java 爆發專利戰。Xamarin 團隊將 C# (Mono) 定位為高性能、低功耗的 Java 替代方案,並展示跨平台程式碼共享 (iOS/Android/Windows Phone)。

關鍵里程碑

  • 2011 波士頓團隊聚會:討論 Dalvik 效能瓶頸,萌生「將 Android 原始碼翻譯為 C#」瘋狂想法。
  • 啟動 XobotOS 研究專案:機器翻譯 Java → C#,移除 Java 依賴,直接在 Mono 上運行 Android。

Xamarin 早期團隊

成果展示

已將 Android 大部分佈局與控件翻譯為 C#,Linux 工作站成功運行無任何 Java 成分的 XobotOS。

XobotOS 運行截圖

核心技術:Sharpen 翻譯工具

  • Android 逾百萬行 Java 碼,需自動化翻譯並追蹤上游更新 (2.x → 4.0)。
  • 基於 Sharpen (Frank Krueger 曾用於將 Java App 移植至獲獎 iPad App) 深度改造,打造高可用 Java→C# 翻譯器。
  • 新版 Sharpen 隨 XobotOS 開源,回饋社群。

性能優勢:C#/Mono vs Java/Dalvik

  • 值類型:結構體降低小物件記憶體開銷,虛函數 opt-in 設計簡化 VM。
  • 真泛型:運行時保留類型參數,避免 Java 類型擦除帶來的裝箱/轉型開銷。
  • 成熟運行時:Mono 經過十年打磨,即將釋出第 8 版,擁抱動態、非同步、迭代器、函數式、平行運算等現代特性。

基準測試 (二叉樹) 顯示結構體與泛型性能巨大差距:

性能基準測試圖表

後續技術落地

  1. 直通 Skia 圖形:繞過 Java 中介層,Mono P/Invoke 直連 Skia 原生渲染。
  2. Java2C# 工具鏈:Sharpen 開源化,支援更多遷移專案。
  3. 關鍵路徑 C# 重寫:將效能敏感 Java 區塊替換為 C# 實作,整合至 Xamarin 產品線。

啟示

瘋狂想法可能孕育關鍵技術突破。Xamarin 現正招募人才,共同引領行動開發浪潮。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved