Mac.apk запускает Android-приложения на Mac без эмулятора
Публичная альфа Mac.apk позволяет запускать Android-приложения на Mac с Apple Silicon через слой совместимости без виртуальной машины и Linux.
Разработчик Калеб Симпсон выпустил публичную альфа-версию Mac.apk — инструмента для запуска Android-приложений на компьютерах Mac с чипами Apple Silicon. Утилита работает без эмулятора, виртуальной машины и ядра Linux, воссоздавая необходимое для приложений окружение непосредственно в macOS.
После установки APK-файл преобразуется в отдельный пакет .app и появляется в папке «Программы». Приложение запускается в собственном окне, а взаимодействие с интерфейсом адаптировано под Mac: щелчки мыши заменяют касания экрана, ориентацию можно менять сочетанием клавиш ⌘ + R. Также поддерживаются физическая клавиатура и геймпады.
Как устроен слой совместимости
Mac.apk преобразует код Java и Kotlin из формата DEX в стандартный байт-код Java, который затем выполняется во встроенной среде на базе OpenJDK. Окна, звук, буфер обмена и другие системные функции Android связываются с соответствующими службами macOS.
Нативные библиотеки ARM64 запускаются напрямую на процессоре Apple Silicon, без перевода инструкций. Старый 32-битный ARM-код предварительно перекомпилируется в 64-битный формат и кэшируется. Для графики Mac.apk использует ANGLE при работе с OpenGL ES и MoltenVK для Vulkan; в обоих случаях основой служит графический API Metal.
Совместимость пока остаётся ограниченной
Часть приложений уже работает без заметных проблем. В их числе Telegram, Signal, Organic Maps, VLC, Wikipedia, Minecraft, Among Us и Subway Surfers. Однако для некоторых программ альфа-версия пока не обеспечивает полноценную работу.
Например, в Rocket League Sideswipe мяч отображается в виде розовой фигуры, а в Duolingo не удаётся войти в аккаунт. Это указывает на ограничения текущей реализации отдельных графических, системных или сетевых компонентов.
Основная часть Mac.apk остаётся закрытой. При этом Симпсон опубликовал исходный код dex2jvm — конвертера, который переводит Java- и Kotlin-код из DEX в стандартный байт-код Java. Проект находится на ранней стадии, поэтому перечень совместимых приложений и стабильность их работы могут меняться по мере развития инструмента.
Сообщить о проблеме в публикации
Обращение принято Обращение будет рассмотрено. По результатам проверки публикация может быть исправлена, дополнена, временно скрыта или удалена.
Читайте новые материалы журнала — свежие сюжеты каждый день.
На главную