AppX
AppX — это формат упаковки и развёртывания приложений для операционной системы Windows, представленный корпорацией Microsoft вместе с выходом Windows 8 в 2012 году. AppX является основным форматом для установки и распространения приложений из Магазина Windows (Microsoft Store), а также для так называемых «универсальных приложений Windows» (Universal Windows Platform, UWP). Формат представляет собой контейнер, основанный на технологии Open Packaging Conventions (OPC), аналогичной форматам DOCX и ZIP, и обеспечивает изолированную среду выполнения приложения, контроль над его ресурсами и упрощённый процесс обновления.
История
Разработка формата AppX началась как часть стратегии Microsoft по созданию единой платформы для приложений, работающих на различных устройствах с Windows — от настольных компьютеров до планшетов, смартфонов и игровых консолей Xbox. Первая публичная версия формата была представлена в Windows 8, где он заменил более старые технологии установки, такие как MSI (Windows Installer) и установщики сторонних разработчиков. AppX стал обязательным форматом для приложений, распространяемых через Магазин Windows, который также был впервые введён в этой версии.
В Windows 8.1 и Windows 10 формат был расширен и получил название AppX для UWP-приложений. В Windows 10 также появилась поддержка пакетов AppX для классических приложений Win32 через технологию Desktop Bridge (Project Centennial), позволяющую упаковывать традиционные программы в контейнер AppX для упрощённого развёртывания и управления.
В Windows 11 формат AppX остаётся основным для приложений из Microsoft Store, однако также поддерживается альтернативный формат MSIX, который является эволюцией AppX и обеспечивает обратную совместимость с MSI и AppX.
Технические характеристики
Структура пакета
Пакет AppX представляет собой ZIP-архив (с расширением .appx или .msix), содержащий все файлы приложения, метаданные и манифест. Ключевые компоненты:
- Манифест приложения (
AppxManifest.xml) — XML-файл, описывающий идентификатор приложения, его зависимости, разрешения, точки входа, визуальные элементы (иконки, название) и возможности интеграции с системой. - Файлы приложения — исполняемые файлы, библиотеки, ресурсы, изображения, локализованные строки и другие данные.
- Блок-карта (
AppxBlockMap.xml) — файл, содержащий хеши (SHA-256) всех файлов пакета, используемый для проверки целостности и поддержки потоковой загрузки. - Подпись — цифровая подпись, удостоверяющая подлинность пакета и его издателя.
Изоляция и безопасность
Приложения, установленные в формате AppX, выполняются в изолированной среде (песочнице), что ограничивает их доступ к системным ресурсам и данным других приложений. Каждое приложение получает уникальный идентификатор безопасности (SID) и работает в собственном контейнере. Для доступа к функциям, таким как камера, микрофон, геолокация или файловая система, приложение должно явно запросить соответствующие разрешения в манифесте, которые затем подтверждаются пользователем при установке или первом запуске.
Управление версиями и обновления
Пакет AppX содержит номер версии, что позволяет системе автоматически обновлять приложения через Магазин Windows. Обновления могут быть инкрементальными (загружаются только изменённые файлы), что снижает трафик и время установки. Система также поддерживает откат к предыдущей версии в случае неудачного обновления.
Классификация
По типу приложения
- UWP-приложения — универсальные приложения, написанные с использованием Windows Runtime API, которые могут работать на различных устройствах с Windows 10 и выше.
- Приложения Win32, упакованные через Desktop Bridge — классические настольные программы, упакованные в формат AppX для упрощённого развёртывания и управления.
- Приложения из Microsoft Store — любые приложения, распространяемые через официальный магазин Microsoft, включая как UWP, так и упакованные Win32-приложения.
По способу распространения
- Пакеты из Microsoft Store — загружаются и устанавливаются через магазин, автоматически проверяются на вредоносный код и подписываются Microsoft.
- Сторонние пакеты (Sideloading) — устанавливаются вручную из файлов
.appxили.msix, требуют включения режима разработчика или специальной политики в корпоративных средах. - Корпоративные пакеты — распространяются через системы управления мобильными устройствами (MDM) или групповые политики в организациях.
Применение
Формат AppX широко используется в следующих сценариях:
- Магазин Windows (Microsoft Store) — основной способ распространения приложений для пользователей Windows 8, 10 и 11. По состоянию на 2024 год в магазине доступно более 1 миллиона приложений, включая такие популярные, как Spotify, Adobe Photoshop Elements, TikTok и многие игры.
- Корпоративное развёртывание — организации используют AppX для централизованной установки и обновления приложений на компьютерах сотрудников, что упрощает управление и повышает безопасность.
- Разработка и тестирование — разработчики используют пакеты AppX для тестирования приложений перед публикацией, а также для распространения бета-версий через каналы Windows Insider.
- Виртуализация приложений — AppX поддерживает потоковую загрузку (streaming), позволяя запускать приложения до полной загрузки всех файлов, что ускоряет первый запуск.
Преимущества и недостатки
Преимущества
- Изоляция и безопасность — приложения работают в песочнице, что снижает риск заражения системы вредоносным ПО.
- Простота установки и удаления — установка не требует прав администратора (в большинстве случаев), а удаление полностью очищает систему от файлов приложения.
- Автоматические обновления — приложения обновляются через Магазин Windows без участия пользователя.
- Поддержка различных устройств — UWP-приложения могут адаптироваться к разным размерам экранов и типам ввода (сенсор, мышь, клавиатура).
Недостатки
- Ограниченная функциональность — изоляция ограничивает доступ к системным ресурсам, что может быть проблематично для сложных приложений, требующих глубокой интеграции с ОС.
- Зависимость от Магазина Windows — для обновлений и некоторых функций требуется подключение к интернету и учётная запись Microsoft.
- Сложность для разработчиков — создание UWP-приложений требует изучения новых API и инструментов, что может быть затратно для небольших команд.
- Проблемы с совместимостью — некоторые старые приложения Win32 не могут быть упакованы в AppX без значительных изменений.
Интересные факты
- Формат AppX основан на Open Packaging Conventions (OPC), который также используется в форматах Office Open XML (DOCX, XLSX, PPTX) и XPS.
- Первое приложение, выпущенное в формате AppX для Windows 8, было приложение «Погода» от Microsoft, которое стало одним из предустановленных в новой версии ОС.
- В 2021 году Microsoft представила формат MSIX, который является преемником AppX и поддерживает как UWP, так и Win32-приложения, а также обратную совместимость с MSI и AppX.
- Формат AppX поддерживает «потоковую установку» — приложение может быть запущено до завершения загрузки всех файлов, что ускоряет первый запуск.
- В Windows 10 и 11 пакеты AppX могут быть установлены только из доверенных источников (Магазин Windows или подписанные корпоративные пакеты), что повышает безопасность, но ограничивает свободу пользователя.
Источники
- Microsoft Docs. «App packages and deployment». Windows App Development documentation.
- Microsoft Docs. «What is an app package?». Windows UWP documentation.
- Wikipedia. «AppX». Дата обращения: 2024.
- MSDN Magazine. «Introduction to AppX packaging». 2012.
- Microsoft. «Windows 8: A new app model». Build 2012 conference materials.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →