В течение последних нескольких лет на многих устройствах Chromebook можно было установить магазин Google Play и запускать приложения для Android. Это дало Chrome OS возможность стать чем-то большим, нежели просто не очень популярной операционной системой, основанной на популярном браузере. Но теперь Google решила внести с свою десктопную ОС некоторые существенные изменения, касающиеся ее поддержки Android-приложений, что, наконец, может позволить использовать одну давно запрашиваемую пользователями функцию.
История Android на Chrome OS
Около четырех лет назад Google разработала способ для запуска в браузере Chrome Android-приложений под названием Android Runtime for Chrome (ARC). Изначально технология создавалась с оглядкой на Chrome OS, но позже разработчики выяснили, что ее можно использовать для запуска Android-приложений в браузере Chrome на любой настольной платформе.
Хотя ARC первого поколения и работала достаточно хорошо, Google хотела создать что-то более полезное и больше заточенное под Chrome OS. Таким образом, компания начала разработку ARC следующего поколения, которая получила название ARC++. Новая версия ARC еще глубже интегрировала Android Runtime с Chrome OS, позволив поставить в систему такие вещи, как Google Play. Именно поэтому сегодня Android-приложения работают на устройствах Chromebook.
Создание ARC++ стало возможным отчасти потому, что Chrome OS, как и Android, основана на ядре Linux. Для обеспечения высокого уровня безопасности, ARC++ фактически работает в так называемом «контейнере», который является способом изоляции фрагментов Android от остальной части Chrome OS. Хотя ARC++ в данном виде и работает, команда разработчиков Chrome признала, что им есть куда расти и развивать свою технологию.
Прибегая к различным методам мы пытаемся немного изолировать нашу разработку от основной системы, но, в конце концов, ARC имеет прямой доступ ко многим системным функциям и интерфейсам, поэтому случайная ошибка, которая возникнет в коде ARC, может сильно повлиять на всю систему в целом.
Если вы хотите узнать немного больше об ARC++, есть отличное наглядное объяснение процесса ее подключения к Chrome OS от Дэвида Ривемана, который когда-то был членом команды Chrome и с тех пор перешел в подразделение Fuchsia.
Linux на Chrome OS — не та же самая Linux
В прошлом году Google заявила, что собирается предпринять большие усилия для того, чтобы сделать приложения Linux доступными для установки и использования на Chrome OS (что является проектом Crostini), но, естественно, это было намного легче сказать, чем сделать. Если вы подумали о том, что Chrome OS основана на Linux, а это означает, что на ней должно быть относительно просто запускать приложения для Linux, то не спешите с выводами, так как все сильно сложнее.
Чтобы запускать программы для Linux на Chrome OS, команда Chrome решила создать виртуальную машину (или VM) для запуска Debian (дистрибутива Linux) и интегрировать эту VM с Chrome OS. Да, они могли бы использовать уже существующую технологию виртуальных машин, подобную QEMU или VirtualBox, но подумали и решили, что лучше создавать такие специализированные инструменты с нуля. Создали, и назвали их «crosvm» и «Termina».
Причин для использования виртуальной машины было немало, но самой очевидной была безопасность. Прямой доступ к ядру Linux в Chrome OS создает больше возможностей для попадания в нее вредоносного кода или даже вирусов.
На Android Google контролирует экосистему приложений через Google Play, что обычно означает, что приложениям можно доверять. Но если вы хотите загружать приложения из сторонних источников, вам нужно перевести ваше устройство в режим разработчика, так как именно в нем позволено совершать с устройством подобные потенциально небезопасные вещи.
В Linux, где у Google нет такого уровня контроля, невозможно было ограничиться только доверенными приложениями. Использование виртуальной машины решает эту проблему, так как если вы установите вредоносное приложение, вы сможете просто выключить виртуальную машину, удалить ее и создать заново, не затрагивая при этом саму Chrome OS.
Создание виртуальной машины, интегрированной с Chrome OS, чтобы приложения Linux чувствовали себя на Chromebook как дома, тоже не обошлось без трудностей. Например, в последнее время команда разработчиков приложила много усилий, чтобы в Chrome OS можно было без проблем запускать более графически насыщенные Linux-программы и, возможно, даже игры.
Реализация ARCVM
Вообще, Google не планирует вносить какие-либо изменения в исходный код Android-приложений на Chrome OS. Тем не менее, как стало известно, команда Chromium прилагает все усилия к тому, чтобы поддержка Android-приложений в Chrome OS была больше похожа на поддержку приложений Linux.
Все эти усилия сводятся к технологии ARCVM (сокращение от ARC Virtual Machine), которая, исходя из имеющихся доказательств, использует наработки проекта Crostini, чтобы запускать Android через ту же виртуальную машину Termina. Перейдя на виртуальную машину, при запуске Android в Chrome OS сможет использовать те же функции для обеспечения безопасности, а также будет поддерживать возможность простого сброса, если что-то пойдет не так.
Надлежащая изоляция приложений Android от Chrome OS в целом создаст для Google возможность загружать Android-приложения без необходимости входа в режим разработчика. Возможность загрузки Android-приложений уже давно востребована пользователями Chrome OS, так как многие приложения, помеченные как «несовместимые» с Chromebook, на самом деле работают на ней просто отлично. Помимо прочего, это также позволило бы устанавливать на Chrome OS сторонние магазины приложений, такие как Aptoide.
Если Google сделают то, что задумали, разработчики приложений для Android смогут установить Android Studio на Chromebook, создать свое приложение и протестировать его на устройстве, не заходя при этом в режиме разработчика. Учитывая недавние шаги Google в сторону более «безопасной разработки» с помощью Chromebook, это кажется наиболее вероятным стимулом для развития ARCVM.
Однако, как и в случае с другими незавершенными проектами, обнаруженными в Chromium, существует вероятность того, что проект ARCVM может быть полностью свернут, как и Campfire в свое время. После создания рабочего прототипа команде разработчиков нужно будет взвесить все за и против, чтобы понять, перевешивает ли возросшая безопасность и возможность загрузки сторонних приложений влияние, которое они могут оказать на производительность более дешевых устройств семейства Chromebook.
Поскольку работа над ARCVM все еще продолжается, и это никоим образом не подтвержденный проект, невозможно сказать, когда, если вообще когда-нибудь, мы увидим его вживую на наших устройствах. Можно предположить, что анонс случится либо в конце этого года, либо во время запуска Android Q на Chrome OS.