Android 11 интеграция с windows

Как протестировать приложения Android на любой сборке Windows 11

20 октября 2021 года компания Microsoft представила долгожданную Подсистему Windows для Android в Windows 11. Компания также опубликовала документацию, посвященную интеграции с Amazon Appstore и разработкой приложений Android в Windows c использованием нативной подсистемы Android.

Интересно, что каналу Dev Channel программы Windows Insider, который обычно получает передовые функции, пока не разрешен доступ к предварительному просмотру приложений Android. Чтобы официально получить предварительную версию функции поддержки приложений Android в Windows 11, вы не только должны быть подключены к каналу Beta программы предварительной оценки Windows, но и должны использовать на своем компьютере регион «Соединенные Штаты». Помимо этих «мягких» ограничений, вы можете запускать только небольшой набор приложений для Android, опубликованных в Amazon Appstore, которые на данный момент одобрены Microsoft и Amazon.

Если вы используете каналы Stable или Dev в Windows 11 и не хотите менять канал обновления только ради запуска приложений Android, то вам будет приятно узнать, что текущую версию Подсистемы Windows для Android можно установить на неподдерживаемых сборках и устаревших платформах без каких-либо модификаций. Также можно загружать неопубликованные приложения Android с помощью ADB, что означает, что вы можете не ограничиваться предложениями Amazon Appstore.

Примечание: прежде чем перейти к процессу ручной установки подсистемы Windows для Android, важно понимать, что текущая версия еще далека от стабильного релиза. Microsoft установила ограничения, помня о параметрах производительности, поэтому вы можете столкнуться со случайными сбоями на неподдерживаемых платформах. Всегда рекомендуется создавать полный образ диска вашей текущей установки Windows 11, чтобы вы могли быстро восстановить рабочее состояние системы.

Как запустить приложения Android на любом компьютере Windows 11

Шаг 1. Включение Платформы виртуальной машины

Прежде всего на устройстве должна быть включена виртуализация в настройках BIOS / UEFI. Если виртуализация включена, то перейдите к следующему этапу – включению платформы виртуальной машины.

Чтобы включить платформу виртуальной машины в Windows 11, выполните следующие действия:

  • Откройте меню Пуск и выполните поиск по запросу «Включение или отключение компонентов Windows». Откройте появившееся приложение.
  • Включите опцию «Платформа виртуальной машины» и нажмите на кнопку OK.

Шаг 2: Скачайте установочный пакет Подсистемы Windows для Android

Как и Подсистема Windows для Linux (WSL), подсистема Windows для Android распространяется на устройствах Windows 11 через Microsoft Store. Microsoft не предлагает официального способа получить прямую ссылку для загрузки пакета подсистемы Windows для Android с Microsoft Store, но мы можем прибегнуть к помощи сторонних ресурсов.

  • Перейдите по ссылке, чтобы открыть сервис генератора ссылок из Microsoft Store от @rgadguard.
  • Идентификатор продукта (Product ID) для подсистемы Windows для Android следующий: 9P3395VX91NR. Выберите в левом выпадающем меню ProductId и вставьте идентификатор в текстовое поле.
  • В качестве альтернативы можно выбрать способ URL(link) и указать прямую ссылку:
  • В правом выпадающем меню выберите канал Slow. Нажмите кнопку с галочкой.
  • Затем выберите самый крупный файл в списке. Это должен быть пакетный файл MSIX Bundle (с расширением .msixbundle), размером более 1 гигабайта. Это основной установочный файл для Подсистемы Windows для Android. Кликните по названию файла для его загрузки.
    • На момент написания этой статьи, актуальная версия пакета подсистемы Windows для Android: 1.7.32815.0. Мы также разместили установочный файл на наших серверах, чтобы упростить скачивания. Хэш SHA-1 для проверки: 0c4b3430bcd37be562f54322c79fb14f11ce1348.

Шаг 3: Установите подсистему Windows для Android

MSIX Bundle — это формат упаковки, который включает несколько пакетов MSIX, каждый из которых может поддерживать определенную архитектуру системы. Вот почему вы можете установить пакет как на традиционные компьютеры x64, так и на совместимые устройства ARM64.

  • Откройте Терминал Windows от имени администратора и запустите экземпляр PowerShell. Для этого щелкните правой кнопкой мыши по меню «Пуск» и выберите опцию Терминал Windows (администратор). По умолчанию должен открываться интерфейс PowerShell, но если этого не происходит, откройте новую вкладку с PowerShell.
  • Выполните следующую команду, чтобы установить загруженный пакет MSIX:
  • Если все пойдет корректно, пакет будет развернут, и вы увидите новый значок в меню «Пуск».
Читайте также:  Шаблоны для android studio как установить

Шаг 4. Загрузка приложений в Подсистему Windows для Android

Теперь, когда Подсистема Windows для Android установлена, можно настроить загрузку неопубликованных приложений. Чтобы выполнить эту задачу, воспользуйтесь отдельной инструкцией Как запустить любое приложение Android в Windows 11.

Конечный результат должен быть примерно таким:

Мы запустили в Windows 11 популярный почтовый клиент Spark, который доступен только для Android, iOS и macOS, взяв apk-файл на сайте Apkmirror.

Скриншоты были сделаны на экземпляре Windows 11 Build 22000.282, то есть на втором обновлении после общедоступной версии. На тестовом устройств Comss.one используется процессор Intel Core i5-8250U. Портал Xda-developers, инструкцию которого мы взяли за основу, для проверки использовал устройство с процессором Intel Core i5-6500T, который официально не поддерживается ни Подсистемой Windows для Android, ни Windows 11. При этом никаких серьезных сбоев зафиксировано не было.

Также доступен относительно простой способ для обхода региональных ограничений для использования Amazon Appstore. При этом вам не нужно будет использовать VPN-сервис или изменять настройки региона в Windows 11. Вы можете еще больше «прокачать» подсистему Windows для Android, загрузив альтернативный клиент Google Play Store под названием Aurora Store.

Источник

Как работают Android-приложения в Windows 11? Разбор

Мы все очень ждали презентации Windows 11, но как-то нам ее подпортили. Незадолго до презентации слили рабочий билд и поэтому во время ивента ничего по-настоящему нового мы не увидели. Кроме одной вещи: Android-приложения на винде!

Вот это было действительно неожиданно. И мы даже успели немного порадоваться, но потом сразу возникли вопросы. А зачем это нужно и как это вообще будет работать?

Ведь не так давно Microsoft сильно облажались со своей Windows на архитектуре ARM, в которой очень плохо работали x86-приложения. А если у них ничего не получилось тогда, то по какой причине получится сделать фактически тоже самое сейчас, но только наоборот?

Разбираясь в этих вопросах мы буквально прозрели. И поняли, что на самом деле у Microsoft очень далеко идущие планы.

Поэтому сегодня мы узнаем как работает Rosetta от Microsoft, а заодно разберемся, чем эмулятор отличается от транслятора? Узнаем, как Windows стал на Линуксом? И поразмышляем о том, как Microsoft планируют завоевать мир?

Эмуляторы

Начнем с небольшой теоретической части. Программы общаются с процессором при помощи определенного набора инструкций. И для каждой архитектуры этот набор инструкций разный. Поэтому для того, чтобы запустить приложение, написанное под архитектуру ARM на процессоре Intel с архитектурой x86 надо как-то пояснить процессору, что от него хочет чужеродная программа.

Сделать это можно разными способами. И один из самых распространённых — эмуляция.

Например, эмуляторов Android под Windows есть огромное множество. Но в чём же тогда проблема и зачем придумывать что-то еще?

Дело в том, что эмуляторы — неэффективны. По большому счету, эмулятор — это программа, которая прикидывается железом. То есть эмулятор — это софт, который пытается имитировать аппаратную часть платформы.

Программа, засунутая в эмулятор, даже «не понимает», что сейчас она находится в чужеродной среде. Она как Нео внутри «Матрицы». Вроде вокруг реальный мир, но иногда закрадываются сомнения. Потому что-то там подлагивает, подглючивает, ложки гнутся. Ну вы понимаете. А происходит это потому, что эмуляция несёт огромные накладные расходы.

Представьте, чтобы софт 100% правильно работал вам нужно эмулировать целый процессор и поэтому эмуляторы работают медленно.

И ладно, если речь идет про какую-нибудь простенькую восьмибитную консоль типа Dendy. Такие эмуляторы не смотря на тотальную неэффективность, будут работать быстро даже на смартфоне времен Windows Mobile. Но вот эмулировать какой-нибудь процессор Intel куда сложнее.

Отсюда и тормоза в Windows на ARM. Ведь Microsoft использовал именно эмулятор для запуска x86-приложений. Кстати, эмулятор назывался WOW64, но получилось совсем не WOW, как вы знаете.

Более того, до сих пор в Windows на ARM не поддерживается эмуляция 64-битных приложений, только 32-битных, то есть именно x86, а не x64, что еще сильнее усугубляет ситуацию. Но этому есть объяснение.

Эмулятор WOW64 изначально был придуман для запуска 32-битных приложений на 64-битной Windows, то есть под важную задачу Microsoft даже эмулятор новый не сделали, а скорее всего просто модифицировали старый.

Но в прошлом году Microsoft обещали, что поддержка 64-битных приложений появится, и очень скоро. И возможно она будет реализована совсем по-другому.

Читайте также:  Флеш анимация для андроида

Как, спросите вы? Давайте для примера вспомним как это сделал Apple при переходе с процессоров Intel на свои собственные чипы на архитектуре ARM. При помощи невероятной штуки под названием Rosetta 2.

Ведь там на ARM’е каким-то чудесным образом запускаются x86-приложения практически без потери производительности.

Транслятор

Что такое Rosetta 2? По научному, — это двоичный транслятор, то есть переводчик. Rosetta просто переводит набор инструкций одной архитектуры в другую и всё.

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

Поэтому когда пользователь открывает приложения он уже работает с нативным кодом, который исполняется без каких-либо дополнительных издержек. И в итоге все работает почти также быстро, как на родном железе!

Но, естественно, всё не так радужно! Иначе никто бы не собирал разные версии приложений под разные архитектуры. У трансляторов есть серьёзные недостатки.

Во-первых, перевести весь исходный код, исполняемый для целевой архитектуры — это весьма непростая задача, а в большинстве случаев просто невозможная. Некоторые части исполняемого кода доступны лишь во время использования приложения. Поэтому такие части транслируются динамически, «прямо на лету».

И этот процесс называется Just In Time компиляцией. Или JIT-компиляцией.

Естественно, это накладный процесс, но даже его можно оптимизировать. Результирующую последовательность динамического кода можно кешировать. А к фрагментам кода можно применить агрессивную оптимизацию. Поэтому в некоторых случаях, переведенный под другую архитектуру, но при этом оптимизированный код может выполняться даже быстрее оригинального.

И этот эффект я сам постоянно наблюдаю на новых Mac. Например, неадаптированный Блендер, через Rosetta работал быстрее, чем нативно на моем MacBook Pro 16. Но и за это приходится платить. Как думаете чем? Вашим SSD-диском. Переведенный код занимает много места, а динамическое кэширование изнашивает ресурс SSD. В особенности, такой эффект наблюдается на тяжеловесных программах, которые еще не пересобрали под ARM. Поэтому, приходится выбирать либо быстрая работа, либо долгоживущий SSD.

Intel Bridge

Но почему мы так долго говорим про Apple, если мы тут Windows 11 обсуждаем?

Дело в том, что для запуска Android-приложений в новой Windows, Microsoft решили сделать, примерно тоже самое, что сделали купертиновцы.

Вместе с Intel они разработали технологию Intel Bridge, которую они сами называют пост-компилятор. Но, по сути, это такой же двоичный транслятор.

Microsoft описывает эту технологию так:

«Создается нативное прокси-приложение которое, выступает мостиком между моделью приложения Android и моделью Windows приложения».

Иными словами, как и с Rosetta. Приложение будет переведено в нативный код еще на этапе установки. А недоступные фрагменты будут транслироваться на лету.

А с учетом того, что Android-приложения в своей массе достаточно простые почти не возникает сомнений, что с переводом будет всё в порядке.

В случае Windows, трансляция кода с x86 на ARM — это не основная сложность. Ведь тут еще и несовместимость на уровне ОС.

Android и Windows — это совершенно разные системы. Android основан на модифицированном ядре Linux, а в будущем планирует перейти на чистое ядро Linux. А Windows — это просто Windows. С Linux у Windows нет ничего общего. Так каким же образом тогда будут запускаться Android-приложения?

И вот тут неожиданный момент. Оказывается, еще в 2016 году Microsoft представили подсистему Windows для Linux, Windows Subsystem for Linux или WSL — Windows subsystem for Linux.

Это была специальная подсистема которая позволяла запускать Linux приложения в среде Windows. Система работала хорошо, но медленно, так как она работала поверх ядра Windows NT.

Запросы системы Linux переводились в запросы, понятные ядру Windows, и только потом отправлялись дальше. Это было долго.

Но в 2019 году анонсировали вторую версию подсистемы WSL 2, в которой ядро Linux работает параллельно ядру Windows, что ускорило работу системы в двадцать раз и фактически сделало Windows наполовину Linux.

g

То есть вы правильно поняли, WSL работает и на Windows 10, просто её нужно ставить отдельно. А вот в Windows 11 подсистема Linux будут встроена из коробки.

Как понимаете, наличие полноценного рабочего ядра Linux позволило Microsoft добиться максимальной совместимости с Android-приложениями.

По описанию Microsoft Android-приложения будут вести себя также как и обычные приложения Windows и этому можно верить:

  • Они будут открываться в отдельном окне
  • Можно будет закрепить приложение на панели задач
  • Будет полноценная поддержка: клавиатуры, мыши, тача и даже Bluetooth-наушников.
  • Более того — можно будет перекидываться файлами между Windows и Android-приложениями.
  • При этом уже сейчас Android поддерживает сборку универсальных APK, в которую можно запаковать бинарники как для ARM, так и для x86 архитектур? для чего нужно поставить одну галочку при сборке (разработчики исправьте меня в комментах если я не прав). Поэтому в каких-то случаях может Android-приложения даже не надо будет пропускать через транслятор Intel Bridge.
Читайте также:  Как узнать свою прошивку android

Да и вообще Android нынче уходит от классических APK и переходит на AAB, но в эту тему мы сейчас не будем углубляться.

Тем не менее, к реализации Android-приложений на Windows остаются вопросы.

Во-первых, что будет с поддержкой Google Play Сервисов? Скорее всего её не будет. Поэтому многие приложения, будут работать неполноценно, либо не будут работать вовсе.

И второй вопрос. А зачем это вообще всё надо? Ведь мобильными приложением на компе пользоваться просто не удобно.

Допустим, на MacBook я могу поставить массу приложений с iOS, но делать этого не хочется. Да на многих Windows-ноутбуках сенсорные экраны, но все равно.

Тогда зачем была проделана вся эта огромная работа по интеграции Linux в Windows, созданию транслятора Intel Bridge, доработки всей этой штуки под Android-приложения?

Будущее Windows

И тут мы готовы высказать смелое предположение. Нам кажется, что поддержка Android приложений это один из этапов полного отказа от ядра Windows NT и перехода на ядро Linux.

Да, это звучит дико. Но во-первых, не мы одни так думаем. Раньше такую же мысль высказал уважаемый человек, евангелист Open Source Эрик Реймонд.

Смотри сами как всё логично:

В мире почти все ОС основаны либо на Unix (как Mac OS) или Linux (Ubuntu, Android и прочее) и только Windows одна такая особенная сидит на своём ядре Windows NT, с которым куча проблем.

Во-первых, его нужно развивать на, что уходит много денег. А Linux-ядро бесплатное.

Во-вторых, в самом ядре куча уязвимостей, которые постоянно нужно прикрывать заплатками.

В-третьих, у Windows ничего не получилось в мобильном сегменте.

В-четвертых, Microsoft уже потратили много лет и ресурсов на создание подсистемы Linux под Windows.

Поэтому переход на ядро Linux вполне логичный шаг. Смотрите, как это может выглядеть:

Сначала мы все переходим на Windows 11 на архитектуре x86. И потихоньку привыкаем, что на Windows нормально работают Android-приложения.

Параллельно, благодаря стараниям Apple, все пилят софт под ARM архитектуру, отчего выигрывает и Microsoft. Поэтому мы потихоньку начинаем переходить на ARM Windows. На которой Android-приложения чувствует себя вообще как родные.

Постепенно Linux ядро становится основной средой, а Windows второстепенной.

А потом ядро Windows NT выпиливается, и Windows становится графической оболочкой для Linux. Ну а на ядре Windows NT остаются работать только серверы и различное оборудование, где наследие старой Windows никак не искоренить.

Это, конечно самый смелый сценарий. Тем не менее, он вполне возможен.

Но даже если этого не произойдёт. В любом случае поддержка Android-приложений — это очень интересный ход. И для Windows на ARM он точно будет полезен, вспоминая планшеты например!

Выводы

Ну и напоследок про сам Windows 11. Мы немного поигрались с новой Windows и у нас сложилось двоякое отношение.

С одной стороны, Windows 11 — это просто «десятка» с новой графической оболочкой. И это немного разочаровывает. Ведь если откинуть ядро Linux, которое теперь будет идти из коробки. Кроме дизайна под капотом не так многое поменялось, зато с совместимостью драйверов вроде проблем нет. Более того, до старого интерфейса, по-прежнему, очень легко добраться.

Тем не менее новый интерфейс действительно симпатичный и понятный.

В нем множество крутых фич как с меню «Пуск», так и с окнами. Привыкаешь к нему буквально за 10 минут. После чего возвращаться к старому скину совершенно не хочется. Еще раз — получилось красиво и удобно! А значит переход на новую Windows пройдет безболезненно и пользователи в целом останутся довольны. А это уже победа…

А там еще можно вспомнить про новый магазин без комиссии для разработчиков с блэкджеком. Но это уже совсем другая история и другие планы Microsoft по завоеванию мира магазинов приложений и ответ лаунчерам.

Источник

Оцените статью