![Windows Subsystem for Android | Embarcadero RAD Studio Delphi C++Builder Blogs windows subsystem for android 3](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Windows-Subsystem-for-Android-8079461-2357578.jpg?resize=1140%2C694&ssl=1)
Подсистема Windows для Android (WSA) интегрирует собственные приложения Android в рабочий стол Windows 11. В этом посте вы узнаете, как установить и настроить подсистему Windows для Android для использования в разработке программного обеспечения. Разработчикам будет намного проще воспроизвести это с помощью инструментов Windows для разработчиков .
Читайте дальше, чтобы узнать, что требуется для запуска WSA, а также что требуется для его таргетинга из вашей разработки Android. Подсистема Windows для Android доступна для общедоступной предварительной версии в Windows 11. Ко мне присоединился специальный неожиданный гость: Скотт Хансельман .
Смотрите полный повтор на YouTube
Table of Contents
Андроид на винде?
- Подсистема Windows для Android (WSA) запускает приложения Android в Windows 11.
- Запускает Android 11 за кулисами
- Похоже на: Подсистема Windows для Linux (WSL)
- Поставляется с Amazon Appstore (пока только для США)
- Для использования Amazon Appstore требуется учетная запись Amazon.
- Позволяет поддерживать режим разработчика и загружать неопубликованные приложения.
- Приложения для Android находятся в меню «Пуск»
- Только в Виндовс 11
- WSA использует виртуальную машину (VM)
Требования к оборудованию
- Требуется SSD
- Я не смог запустить его на виртуальной машине
- В Windows x64 (Intel или AMD) используется уровень взаимодействия.
- В Windows ARM64 он работает изначально
- Windows 11 применяет минимальное требование к экрану: разрешение 720p (1280×720) с экраном> 9 дюймов.
![Android016176918 | Embarcadero RAD Studio Delphi C++Builder Blogs android01 6176918 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android01-6176918-3764157.jpg?resize=387%2C136&ssl=1)
Документация по системным требованиям
WSA support.microsoft.com/windows/f8d0abb5-44ad-47d8-b9fb-ad6b1459ff6c
Windows 11 support.microsoft.com/windows/86c11283-ea52-4782-9efd-7674389a7ba3
Установка WSA
![Android027199513 | Embarcadero RAD Studio Delphi C++Builder Blogs android02 7199513 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android02-7199513-5752792.jpg?w=750&ssl=1)
- Подсистема Windows для Android доступна для общедоступной предварительной версии в Windows 11.
- Установите магазин приложений Amazon из магазина Microsoft.
- В качестве альтернативы просто установите приложение для Android из магазина Microsoft.
- docs.microsoft.com/en-us/windows/android/wsa/ & support.microsoft.com/windows/f8d0abb5-44ad-47d8-b9fb-ad6b1459ff6c
Жизненный цикл ВМ WSA
![Android034969074 | Embarcadero RAD Studio Delphi C++Builder Blogs android03 4969074 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android03-4969074-3194369.jpg?w=750&ssl=1)
- Существует три возможных состояния виртуальной машины, на которой запущены приложения с подсистемой Windows для Android:
- Бег
- Легкая дремота: после отсутствия активности в приложении в течение 3 минут. Деактивировано действиями пользователя или уведомлением приложения.
- Не работает: после активности в течение 7 минут.
- Переходы между этими состояниями запускаются активностью пользователя, приложением Android или уведомлением приложения.
- Приложения Android приостанавливаются, а затем останавливаются, когда их окно свернуто.
- Документы docs.microsoft.com/en-us/windows/android/wsa/
Представление
![Android046221899 | Embarcadero RAD Studio Delphi C++Builder Blogs android04 6221899 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android04-6221899.png?resize=750%2C242&ssl=1)
- Данные на этой диаграмме собраны из предоставленных пользователями результатов Geekbench 5 CPU из браузера Geekbench: browser.geekbench.com
- Источники:
Тест производительности Passmark
![Android057822183 | Embarcadero RAD Studio Delphi C++Builder Blogs android05 7822183 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android05-7822183-9928632.jpg?w=750&ssl=1)
- Источники: PassMark PerformanceTest Mobile
Отчет об оборудовании
![Android068432563 | Embarcadero RAD Studio Delphi C++Builder Blogs android06 8432563 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android06-8432563.png?resize=750%2C256&ssl=1)
Примечания: Из Geekbench 5
Разрешение основано на размере окна приложения Android
320 PPI при работе в масштабе 200 %
160 PPI при работе в масштабе 100 %.
Настройки и режим разработчика
![Android076743286 | Embarcadero RAD Studio Delphi C++Builder Blogs android07 6743286 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android07-6743286-5199269.jpg?w=750&ssl=1)
- Запустите подсистему Windows для Android
- Прокрутите вниз и включите режим разработчика
- Скопируйте IP-адрес
- Используйте ADB для подключения -> подключение adb172.24.203.234
- Необязательный:
- Подключайтесь с других локальных компьютеров через указанный вами IP-адрес и порт
- Управление настройками Android по ссылке
- Примечание:
- Подсистема может работать «по мере необходимости» или «непрерывно».
- Файлы позволяют просматривать, но не передавать файлы
Копание в деталях
![Android088895456 | Embarcadero RAD Studio Delphi C++Builder Blogs android08 8895456 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android08-8895456.png?resize=750%2C310&ssl=1)
Кто такой Гудини?
- Собственный мост ARM для x86 от Intel.
- Не так много официальной публичной информации.
- Также используется в Intel Chromebook и эмуляторах настольных компьютеров, таких как BlueStacks и NOX.
- Считывает коды операций ARM и создает соответствующее поведение в x86.
- binfmt_misc (Miscellaneous Binary Format) Функция ядра Linux передает ARM в Houdini.
- Связанные файлы на WSA
- /system/lib64/libhoudini.so
- /system/lib/libhoudini.so
- /vendor/lib/libhoudini.so
- /vendor/lib64/libhoudini.so
- /proc/sys/fs/binfmt_misc
- /поставщик/и т.д./binfmt_misc/arm64_dyn
- /vendor/etc/binfmt_misc/arm64_exe
- /vendor/etc/binfmt_misc/arm_dyn
- /vendor/etc/binfmt_misc/arm_exe
Неопубликованная загрузка
- Подключиться: adb подключить<ip>
- Проверить соединение: устройства adb
- Установить: adb install -r —no-streaming<apk-файл>
- Удалить: adb shell pm uninstall -kcom.embarcadero.ИмяПроекта
- Запустить приложение: adb shell am start -ncom.embarcadero.ИмяПроекта/com.embarcadero.firemonkey.FMXNativeActivity
- Приложение Kill/Stop: adb shell am force-stop com.embarcadero.ProjectName
- Открыть оболочку: adb -d shell
- Push-файл: adb push <локальное имя файла> /storage/emulated/0/Download
- Файл извлечения: adb pull /storage/emulated/0/Download <локальное имя файла>
Таргетинг из Delphi и RAD Studio IDE
![Android098753876 | Embarcadero RAD Studio Delphi C++Builder Blogs android09 8753876 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android09-8753876-6573538.jpg?w=750&ssl=1)
- Один проект FMX уже может быть нацелен на Windows или Android.
- WSA находится в предварительной версии и еще не полностью поддерживается Delphi, но это нас не остановит….
- Подключитесь к ADB, и тогда он появится в IDE.
- Приложения FireMonkey либо не запускаются, либо сообщают об ошибке «Ваше устройство Android не поддерживает выбранную архитектуру платформы».
- Неопубликованная загрузка!
- Компиляция для Android 64
- adb install -r – без потоковой передачи FireMonkeyApp.apk
- Также сделать изменяемый размер
Изменение размера вашего приложения для Android
![Android104036795 | Embarcadero RAD Studio Delphi C++Builder Blogs android10 4036795 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android10-4036795-1284497.jpg?w=750&ssl=1)
- Изменить AndroidManifest.Template.xml
<приложение Android: resizeableActivity =«правда»>
- Обратите внимание: если у вас есть несколько приложений Android в одной папке, они используют один и тот же файл AndroidManifest.Template.xml .
- Позволяет Android-приложению FMX изменять размер, как ожидалось.
Автоматизация руководства
![Android112170348 | Embarcadero RAD Studio Delphi C++Builder Blogs android11 2170348 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android11-2170348.png?resize=750%2C392&ssl=1)
- Добавьте manualadb.bat в меню инструментов IDE.
- Инструменты -> Инструменты настройки -> Добавить
- С параметрами: $PATH($EXENAME) $NAMEONLY($PROJECT)
- Источник: gist.github.com/jimmckeeth/3a453ccdb1a387644ca137b499d01879
Мобильные сниппеты
![Android131010219 | Embarcadero RAD Studio Delphi C++Builder Blogs android13 1010219 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android13-1010219-3973463.jpg?w=750&ssl=1)
![Android127163568 | Embarcadero RAD Studio Delphi C++Builder Blogs android12 7163568 2](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2022/03/Android12-7163568.png?resize=396%2C245&ssl=1)
- Расположение должно быть включено в Windows для работы в WSA.
- Уведомление появляется на рабочем столе и может разбудить WSA
Больше информации
- Слайды вебинара, ссылки, повтор: blogs.embarcadero.com/?p=134192
- Развертывание ADB GIST: gist.github.com/jimmckeeth/3a453ccdb1a387644ca137b499d01879
- Вводный блог: blogs.windows.com/windows-insider/2021/10/20/introduction-android-apps-on-windows-11-to-windows-insiders/
- Подсистема Windows для документов Android: docs.microsoft.com/en-us/windows/android/wsa/
- Примечания к выпуску WSA: docs.microsoft.com/en-us/windows/android/wsa/release-notes .
- Требования к оборудованию WSA: support.microsoft.com/windows/f8d0abb5-44ad-47d8-b9fb-ad6b1459ff6c
- Мобильные приложения для Windows: support.microsoft.com/windows/abed2335-81bf-490a-92e5-fe01b66e5c48 .
- Видео от Скотта на WSA: https://youtu.be/FN6zON_zKd8
- Скотт Хансельман онлайн: www.hanselman.com , www.hanselminutes.com и @shanselman
- Незначительное отношение к ARM: демистификация Intel Houdini Брайана Хонга с DefCon 29
- Видео: https://youtu.be/9oQ5XjA1aq0 Слайды: https://bit.ly/3IzoMkM
Следующие шаги
- Запустите пробную версию RAD Studio embarcadero.com/products/rad-studio/start-for-free
- Получить Community Edition embarcadero.com/products/delphi/starter
- Ознакомьтесь со специальными предложениями embarcadero.com/radoffer
- Подпишитесь на YouTube youtube.com/c/EmbarcaderoTechnologies
- Следите за нами в Твиттере twitter.com/embarcaderotech
- Нравится нам на Facebook facebook.com/embarcaderotech
- Подпишитесь на нас в LinkedIn linkedin.com/company/embarcadero-technologies
- Читайте наш блог blogs.embarcadero.com
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition