Fuchsia Friday: Первые мысли о том, как может быть реализована совместимость с Android

На этой неделе в Fuchsia Friday мы рассмотрим одну из самых востребованных функций Fuchsia и то, как она может быть реализована.

Обновление от 26.04.18: Были обнаружены свидетельства того, что Google каким-то образом изменяет Android Runtime для поддержки Fuchsia. Само по себе это не подтверждает и не опровергает идеи, изложенные в этой статье.

Более пяти лет Android удерживает самую высокую долю рынка среди мобильных ОС. За 10 лет своего существования разработчики создали миллионы приложений — от «классических» игр, таких как Angry Birds, до современных приложений, таких как Astro Email с элементами искусственного интеллекта.

Реклама — прокрутите дальше, чтобы увидеть больше контента

Один из самых больших страхов, которые есть у людей (включая меня) относительно Fuchsia, заключается в том, что все эти приложения и опыт, полученный разработчиками за это время, будут потеряны. Новая платформа обычно означает необходимость создания новых приложений, а компании захотят быстро вывести свое приложение на рынок, чтобы пользователи могли вернуться к использованию их продукта. Эта спешка может привести к появлению более низкокачественных версий программ на Fuchsia по сравнению с Android.

Или может произойти обратное. Fuchsia может выйти с пустым выбором приложений. Кто захочет смартфон без приложений?

Очевидным решением является поддержание совместимости с приложениями Android, но на первый взгляд это кажется невозможным. Нельзя просто так перенести Android Runtime без титанических усилий.

В этой публикации я хотел бы предложить возможность. Теорию, в которую я хочу верить, и которая еще не подтверждена доказательствами. Если к другим публикациям Fuchsia Friday следует относиться с долей скептицизма, то к этой — с целой солонкой.

Уже около двух лет существует возможность запускать приложения Android на Chromebook. Когда это работает правильно, это почти волшебный опыт. Конечно, Google преуспел там, где Microsoft с Windows 8 не удалось объединить десктопный опыт с «приложениями», которые так любят пользователи на мобильных устройствах.

Приложения Android, работающие на Chromebook

Проект Chromium по запуску приложений из Play Store в Chrome OS называется ARC и работает путем запуска Android в Linux-контейнере. Это непростая задача, уверяю вас, но, вероятно, она была облегчена общим предком Chrome OS и Android в Linux. Но теперь, когда Google сделал это на Chrome OS, они, конечно, могли бы сделать это для любой ОС на базе Linux.

Но что это значит для нас? Ведь «Fuchsia — это не Linux», верно? Ну, есть небольшой намек, который может сделать это возможным. В Garnet, одном из «слоев» Fuchsia, есть проект под названием Machina, который позволяет запускать другие операционные системы в «виртуальной машине» (или VM). Если вы не знакомы с идеей VM, представьте себе второй компьютер, работающий внутри вашего компьютера. Фактически, первая «гостевая» операционная система, которую команда Fuchsia работает над тем, чтобы сделать возможной, — это Debian, полнофункциональный дистрибутив Linux.

Давайте зайдем немного дальше, хорошо? Дальше этого — чистая спекуляция.

Мне кажется несколько странным, что команда Fuchsia работает над виртуализацией так рано в разработке ОС. Возможно, Google мог бы создать упрощенный дистрибутив Linux, специально предназначенный для загрузки приложений Android. Когда вы решите открыть приложение Android, будет запускаться виртуальная машина, загружающая указанный APK.

Есть даже ранние признаки того, что более одной VM могут работать одновременно, что было бы хорошо для запуска более одного приложения за раз. Альтернативно, запуск более чем одной VM — это распространенная задача для серверной ОС, поэтому пока рано говорить, для чего именно это будет использоваться в дальнейшем.

Если обратная совместимость возможна, компаниям не придется суетиться, создавая нативные приложения Fuchsia. Совместимое приложение Android будет достаточным, пока разработчики будут тратить необходимое время на создание чистого, связанного опыта с функциями, специфичными для Fuchsia, такими как агенты и сущности.

Не забывайте, что Machina — не единственный инструмент, созданный для помощи в переходе разработчиков на Fuchsia. Flutter, новый набор инструментов Google для разработки мобильных приложений, сегодня поддерживает Android и iOS, и приложения, разработанные для этих платформ, могут сразу работать на Fuchsia, как мы уже демонстрировали.

В целом, у Google есть несколько козырей в рукаве, чтобы гарантировать, что Fuchsia запустится с отличной библиотекой приложений в первый же день. Излишне говорить, что я буду очень внимательно следить за возможностью обратной совместимости, наблюдая за развитием Machina и поддерживаемых им систем. Пока не будут обнаружены твердые доказательства, приятно мечтать, не так ли?