Компания Xamarin, занимающаяся развитием проекта Mono, представила проект XobotOS, в рамках которого создан порт платформы Android 4, в котором все Java-компоненты переписаны на языке C#. Преобразование Java в C# выполнено с использованием полуавтоматических методов трансляции. Как и платформа Android, код XobotOS распространяется под лицензией Apache.

По заявлению разработчиков, использование виртуальной машины Mono позволило добиться значительного повышения производительности и уменьшения потребления памяти, по сравнению с выполнением Java-кода под управлением виртуальной машины Dalvik. Для автоматической трансляции исходных текстов на Java в C# был задействован улучшенный инструментарий Sharpen. Вручную был переписан код, связанный с обеспечением интеграции с базовой операционной системой и код Java JNI, используемый для вызова функций на языке Си.

Для обеспечения машинной трансляции инструментарий Sharpen пришлось значительно доработать, добавив поддержку расширенных Java-конструкций, используемых в коде Android. В частности, добавлена поддержка Java generics, обеспечен процесс трансляции на основе XML-правил, обеспечено преобразование типов Java в типы C#, добавлена поддержка трансляции кода, взаимодействующего с низкоуровнемыми нативными функциями, добавлена поддержка атрибутов и улучшен процесс инкрементальной компиляции.

Разработка рассматривается как исследовательский проект, не претендующий на развитие в виде нового продукта. Тем не менее, некоторые подготовленные в процессе создания XobotOS разработки будут использованы в версии Mono для платформы Android. Например, при работе с графикой вместо ранее используемой Java-прослойки в Mono планируется задействовать прямое обращение к библиотеке Skia. Проект уже достаточно функционален, пригоден для запуска и может быть использован для проведения экспериментов. Для MonoDevelop написан специальный плагин, позволяющий создавать для XobotOS приложения изначально написанные на C#, а не на Java.

Источник: http://www.opennet.ru/opennews/art.shtml?num=33747