Поделиться через


Подсистема Windows для Android™️

Подсистема Windows для Android™️ позволяет устройству Windows 11 запускать приложения для Android, доступные в Amazon Appstore. Android является товарным знаком Google LLC. Это руководство поможет разработчикам, которые заинтересованы в создании приложений для настольных устройств Windows и оптимизации работы с операционной системой Windows.

Внимание

Начиная с 5 марта 2025 г. подсистема Windows для Android™ и Amazon Appstore больше не доступны в Microsoft Store.

Настройка среды разработки

Чтобы протестировать приложение Android в среде компьютера Windows, нужно выполнить некоторые действия.

Предварительные условия

Требования к устройству.

Установка Amazon Appstore

Microsoft Store автоматически установит подсистему Windows для Android™️ в фоновом режиме, когда будет выполнено одно из двух следующих действий пользователя:

  1. Установите Amazon Appstore из Microsoft Store. Щелкните Получить, чтобы начать установку приложения.
  2. Установка приложения Android из Microsoft Store в первый раз, при этом также установится Amazon Appstore.

Затем приложение Amazon Appstore появится в меню Windows 11 и будет доступно на поиске, предлагая каталог приложений Android. Приложение подсистема Windows для Android ™️, которое позволяет управлять параметрами и функциями мобильного приложения, также появится в меню .

Снимок экрана: страница Microsoft Store с кнопкой

Примечание.

Amazon Appstore в Windows (требование для запуска приложений Android в Windows 11) доступно в следующих регионах.

Параметры подсистемы Windows для Android™️

Чтобы изменить параметры подсистема Windows для Android ™️, перейдите к разделу "Запуск > всех приложений > подсистема Windows для Android ™️". Дополнительные сведения о конкретных возможностях приложения "Параметры" см. в статье Управление параметрами для мобильных приложений в Windows.

Снимок экрана: параметры приложения Latte

Тестирование и отладка

Для тестирования и отладки приложения на устройстве с Windows 11 с помощью подсистема Windows для Android ™️ требуются следующие действия по настройке.

Включение режима разработчика в приложении "Параметры" для Windows

Сначала необходимо включить режим разработчика. Откройте параметры подсистема Windows для Android ™️. После открытия включите режим разработчика в разделе "Дополнительные параметры".

Подключитесь к Подсистеме Windows для Android™ чтобы отлаживать

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

  1. Запустите приложение Android, установленное с помощью Amazon Appstore.

  2. Вы можете подключиться с adb connect с помощью следующей команды (необходимо установить adb):

    adb connect 127.0.0.1:58526
    

Подключение к тестовому устройству

Чтобы подключиться к тестовому устройству (с установлена Windows Subsystem для Android™️) в той же сети с Windows или Mac:

  1. На тестовом устройстве (где установлен подсистема Windows для Android ™️) откройте окно PowerShell и определите IP-адрес тестового устройства, выполнив команду:

    ipconfig
    
  2. С помощью терминала устройства отладки, где установлены Android Studio и пакет SDK для Android (Mac или Windows), введите команду:

    adb connect <TEST DEVICE IP ADDRESS>:58526
    

<TEST DEVICE IP ADDRESS> можно найти в выходных данных ipconfig на тестовом устройстве. Вы также можете развертывать и отлаживать приложения с помощью Android Studio.

Сведения об использовании Android Debug Bridge (ADB) для подключения рабочей станции разработчика непосредственно к устройству Android, чтобы установить пакеты и оценить изменения, см. в статье Android Debug Bridge в документации Android Open Source Project.

Отладка приложения

Хотя приложения нужно устанавливать с помощью Amazon Appstore, отладка приложения Android на устройстве Windows возможна с помощью APK (пакет приложений Android) и ADB (Android Debug Bridge).

Чтобы выполнить отладку APK с помощью ADB:

  1. Выполните указанные выше шаги, чтобы подключиться к виртуальной машине Windows Subsystem for Android™️.

  2. Установите APK, используя команду adb install: adb install app-debug.apk.

    Ожидаемые выходные данные:

    Performing Streamed Install
    Success
    
  3. Уведомление об успешном установке приложения появится в меню уведомлений Windows, и приложение запустится после выбора.

Создание универсальных пакетов APK

™️ подсистема Windows для Android использует технологию Intel Bridge для включения приложений Arm на процессорах x86. Приложения Arm будут работать на процессорах на основе Arm в родной среде. Использование уровня эмуляции приводит к снижению производительности. Для обеспечения оптимальной производительности отправьте приложение для архитектур x86–64 и ARM64.

Вопросы, связанные с совместимостью ввода для устройств Windows

Есть несколько уникальных методов ввода, для поддержки которых, вероятно, понадобится обновить код приложения Android, предназначенный для портативных устройств, чтобы обеспечить совместимость при выполнении на настольном устройстве Windows с помощью Amazon Appstore.

Ввод с клавиатуры

При использовании полей ввода текста, обрабатываемых методом ввода с помощью виртуальной экранной клавиатуры (IME), например EditText, приложения должны работать ожидаемым образом. (Класс EditText в документации Android.)

Нажатия клавиш, которые платформа не может предсказать, приложениям придется обрабатывать самостоятельно. Если это уже реализовано в приложении, дополнительные действия не требуются.

Например, некоторые игры наряду с сенсорным входом могут уже поддерживать перемещение с помощью клавиатуры — с использованием клавиш w,a, s и d.

Ниже приведены особенности использования клавиатуры, которые разработчики должны учитывать при обновлении кода для поддержки устройств Windows 11:

  • клавиша Enter
  • навигация с помощью клавиш со стрелками и клавиши TAB;
  • изменение цвета выделения выбранного элемента;
  • сочетания клавиш с использованием CTRL.

Дополнительные сведения о том, как оптимизировать эти сценарии ввода с клавиатуры на настольных устройствах, см. в документации Android:

Входные данные мыши

При создании приложения для устройств Windows разработчикам следует рассмотреть возможность изменения кода, чтобы обеспечить поддержку следующих особенностей ввода данных с помощью мыши:

  • Щелчок правой кнопкой мыши
  • всплывающие подсказки и текст, отображающийся при наведении указателя мыши;
  • эффекты наведения
  • действия колесика мыши;
  • Перетаскивание и отпускание

Ввод с помощью мыши, аналогично вводу с клавиатуры, следует реализовать согласно официальном рекомендациям по приложениям Android. Это означает, что необходимо использовать класс InputDevice с константой SOURCE_MOUSE. Дополнительные сведения о том, как оптимизировать эти сценарии ввода с помощью мыши на настольных устройствах, см. в документации по Android:

Управление окнами и изменение размера

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

Минимальные требования к экрану

Windows 11 применяет минимальное требование разрешения экрана 720p (1280x720) с >экраном 9".

Леттербоксинг и пилларбоксинг

Если пропорции размера окна не соответствуют размерам экрана устройства, на котором отображается окно, в результате могут наблюдаться такие эффекты, как леттербоксинг (ширина окна больше его высоты, т. е. оно длиннее по горизонтали) или пилларбоксинг (ширина окна меньше его высоты, т. е. оно длиннее по вертикали). В результате полосы размещаются по бокам окна, чтобы расположить его по центру. Эти панели могут иметь светлую или тёмную тематику в зависимости от выбранных параметров системы. Это будет происходить по мере необходимости только тогда, когда приложение Android прикреплено или развернуто, позволяя Android-приложениям использовать расширенные функции прикрепления в Windows и встроиться в оконную модель.

Пример леттербоксинга и пилларбоксинга с пустыми полосами, центрующими окно

Дополнительные факторы, которые следует учитывать при изменении размера

При изменении приложения Android для поддержки запуска на устройстве Windows 11 в отношении управления окнами и изменения размера необходимо учитывать следующее:

  • начальный размер запуска
  • Измерения окна
    • границы содержимого
    • произвольное изменение размера;
  • Ориентация экрана

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

События жизненного цикла приложения

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

Сведения о событиях жизненного цикла см. в документации по Android. Чаще всего вы хотите использовать onStop событие, а не onPauseonUserLeaveHint события. На самом деле, многие реализации Android с несколькими окнами не доставляют уведомление onUserLeaveHint, и поэтому любая бизнес-критическая логика, которая может находиться в этом обработчике событий, не будет вызываться на этих платформах, включая Windows Subsystem for Android™️.

Жизненный цикл виртуальной машины

™️ подсистема Windows для Android использует виртуальную машину, которая обеспечивает совместимость с Платформа AOSP и устройства, такие как клавиатура, мыши, сенсорный ввод, перо и т. д.

Существует три возможных состояния для виртуальной машины, работающей с подсистемой Windows для Android™️.

  1. Бег
  2. Легкий режим сна активируется после отсутствия активности приложений в течение 3 минут. деактивируется при выполнении пользователем действия или при появлении уведомления от приложения.
  3. Неактивность: активируется после отсутствия активности приложения в течение 7 минут.

Переходы между этими состояниями вызываются действиями пользователя, например запуском или взаимодействием с приложением Android или уведомлением от приложения. Приложения Android приостанавливаются, а затем останавливаются после свертывания их окна.

Схема жизненного цикла виртуальной машины, показывающая режимы

Свойства виртуальной машины

Ниже перечислены свойства виртуальной машины подсистема Windows для Android ™️. Не рекомендуется прописывать в коде эти значения, так как это может привести к несовместимости в будущем.

Свойство Значение
Build.MANUFACTURER Корпорация Майкрософт
Build.MODEL Подсистема для Android(TM)
Build.VERSION.SDK_INT 33
Build.BOARD окна

Перенаправление в приложения Windows

Подсистема Windows для Android™ автоматически перенаправляет интенты для файлов и распространенных схем URI к соответствующему обработчику файлов и протоколов Windows по умолчанию (если совпадают несколько фильтров интентов, пользователи видят параметр "Приложение по умолчанию для Windows" в диалоговом окне выбора). Поддерживаемые намерения файлов включают ACTION_VIEW, ACTION_EDIT, ACTION_SEND и ACTION_SEND_MULTIPLE, которые копируют файл в папку Загрузки Windows перед его открытием. Поддерживаемые интенты URI включают ACTION_VIEW для схем http/https и ACTION_VIEW и ACTION_SENDTO для схемы mailto.

Приложения Android также могут вручную перенаправляться в приложения Windows с помощью пользовательских схем URI. Задайте действие намерения com.microsoft.windows.LAUNCH_URI и добавьте строковой параметр в намерение с именем com.microsoft.windows.EXTRA_URI, используя пользовательский универсальный код ресурса (URI) в качестве значения. Например, чтобы запустить приложение "Калькулятор Windows" из приложения Android (Java):

Intent intent = new Intent("com.microsoft.windows.LAUNCH_URI");
intent.putExtra("com.microsoft.windows.EXTRA_URI", "ms-calculator:");
 
try {
    startActivity(intent);
} catch (ActivityNotFoundException e) {
    // Not running in Windows Subsystem for Android&trade;️ (or running on an older build that did not contain this feature).
}

Безопасность

Как драйверы Windows режима ядра, так и приложения Windows, работающие на среднем уровне целостности (IL), могут проверять произвольные контейнеры Android и память приложений Android. В краткосрочной перспективе не планируется добавлять обнаружение мошенничества, макросов, ботов и подозрительного поведения.

Разработчики, которые выполнят запрос getSecurityLevel, получат SECURITY_LEVEL_SW_SECURE_CRYPTO. Дополнительные сведения о getSecurityLevel см. в справочнике по API Android.

Удаление подсистемы Windows для Android™️

Вы можете удалить подсистема Windows для Android ™️, но обратите внимание, что все связанные приложения также будут удалены.

  • Удаление Amazon Appstore приведет к удалению подсистемы Windows для Android и всех других Android-приложений.
  • При удалении приложения из Amazon Appstore будет удалено только это приложение (как и в случае приложений для Windows).
  • Удаление подсистемы Windows для Android™️ приведет к удалению Amazon Appstore и всех приложений Android.

Устранение неполадок

При возникновении проблем, связанных с Amazon Appstore на Windows, выполните следующие действия по устранению неполадок:

  1. Выберите Windows Search на панели задач Windows.
  2. Найдите "Amazon Appstore" и щелкните правой кнопкой мыши значок Amazon Appstore.
  3. Выберите "Параметры приложения" в раскрывающемся списке.
  4. Выберите "Хранилище и кэш" и щелкните "Очистить хранилище" и "Очистить кэш".
  5. Вернитесь и выберите "Принудительно остановить".
  6. Закройте окно параметров Amazon Appstore.
  7. Запустите Amazon AppStore заново.

Дополнительные действия по устранению неполадок, связанных с приложением "Параметры подсистемы Windows для Android™️", или чтобы оставить отзыв через Центр отзывов, см. в статье «Устранение неполадок и вопросы и ответы для мобильных приложений в Windows».