Расширение имени файла | .apk , .apks , .aab , .xapk , .apkm ,.akp |
---|---|
Тип интернет-СМИ | application/vnd.android.package-archive |
Тип формата | Формат упаковки |
Контейнер для |
|
Расширенный от | БАНКА |
Android Package с расширением файла apk [1] — это формат файла , используемый операционной системой Android и рядом других операционных систем на базе Android для распространения и установки мобильных приложений , мобильных игр и промежуточного программного обеспечения . Файл, использующий этот формат, может быть создан из исходного кода, написанного на Java или Kotlin .
Файлы APK могут быть созданы и подписаны из Android App Bundles . [2]
APK аналогичен другим пакетам программного обеспечения, таким как APPX в Microsoft Windows , APP для HarmonyOS или пакет Debian в операционных системах на базе Debian . Чтобы создать файл APK, программа для Android сначала компилируется с помощью такого инструмента, как Android Studio [3] или Visual Studio , а затем все ее части упаковываются в один файл-контейнер. Файл APK содержит весь код программы (например, файлы .dex ), ресурсы, активы, сертификаты и файл манифеста . Как и в случае со многими форматами файлов, файлы APK могут иметь любое необходимое имя, но может потребоваться, чтобы имя файла заканчивалось расширением файла для его распознавания как такового. [4] [5] [6]
Большинство реализаций Android позволяют пользователям вручную устанавливать файлы APK только после включения параметра «Неизвестные источники», который разрешает установку из источников, отличных от доверенных, таких как Google Play . Это можно сделать по многим причинам, например, во время разработки приложений, чтобы установить приложения, которых нет в магазине, или установить более старую версию существующего приложения. [7]
Blackberry Limited поддерживала приложения Android 4.1 Jelly Bean и выше через Android Runtime до Blackberry 10, поддержка которой сейчас прекращена, вплоть до обновления прошивки 10.2.1 в январе 2014 года. [8] 18 июня 2014 года BlackBerry объявила об официальных отношениях с Amazon.com , в результате чего обновление 10.3 объединило Amazon Appstore .
На Build 2015 компания Microsoft также анонсировала среду выполнения Android для Windows 10 Mobile, известную как «Astoria», которая позволит приложениям Android работать в эмулируемой среде с минимальными изменениями и иметь доступ к API платформы Microsoft, таким как Bing Maps и Xbox Live, в качестве практически готовых замен эквивалентных Google Mobile Services . Google Mobile Services и некоторые основные API будут недоступны, а приложения с «глубокой интеграцией в фоновые задачи» будут плохо поддерживать среду. [9] [10]
25 февраля 2016 года, после того как уже отложили его в ноябре 2015 года, [11] [12] Microsoft объявила, что «Astoria» будет отложена, утверждая, что она излишня для собственного инструментария Windows Bridge, поскольку iOS уже является основной целью для разработки мобильных приложений. Компания также поощряла использование продуктов от Xamarin (который они приобрели накануне) для разработки многоплатформенных приложений с использованием языка программирования C# вместо этого. [13] [14] Части Astoria были использованы в качестве основы для платформы Windows Subsystem for Linux (WSL) на ПК-версии Windows 10. [15]
9 августа 2019 года HarmonyOS вышла с совместимостью APK через базу AOSP с ядром Linux на HarmonyOS 1.0 для телевизоров, а 2 июня 2021 года версия HarmonyOS 2.0 была расширена до смартфонов и планшетов до версии Galaxy Edition в системе HarmonyOS NEXT для следующей итеративной бета-версии HarmonyOS 5 для коммерческой версии, которая начнется во втором квартале, в июне 2024 года. [16] [17] [18] [19] [20]
На мероприятии по анонсу Windows 11 в июне 2021 года Microsoft продемонстрировала новую подсистему Windows для Android (WSA), которая обеспечит поддержку Android Open Source Project (AOSP) и позволит пользователям запускать приложения Android на своих рабочих столах Windows. Microsoft подтвердила, что пользователи смогут загружать приложения Android в Windows и что можно будет устанавливать файлы APK, загруженные из сторонних источников. [21] 5 марта 2024 года Microsoft объявила о прекращении поддержки своих приложений Android в подсистеме Windows 11 к 5 марта 2025 года в рамках своих усилий по снижению поддержки подсистемы из ядра Windows NT , отказавшись от совместимости приложений Android apk, включая приложения Android из Amazon App Store . [22]
В декабре 2021 года Google объявила о планах по переносу игр для Android на Windows в 2022 году. [23] [24]
Файл APK представляет собой ZIP-архив , который обычно содержит следующие файлы и каталоги:
META-INF
каталог:MANIFEST.MF
: файл манифестаCERT.SF
: Список ресурсов и дайджест SHA-1 соответствующих строк в файле MANIFEST.MF; например:Подпись-Версия: 1.0Создано: 1.0 (Android)SHA1-дайджест-манифест: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=...Имя: res/layout/exchange_component_back_bottom.xmlSHA1-дайджест: eACjMjESj7Zkf0cBFTZ0nqWrt7w=Имя: res/drawable-hdpi/icon.pngSHA1-дайджест: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
lib
: каталог, содержащий скомпилированный код, зависящий от платформы, например, собственные библиотеки, которые можно загрузить через JNI ; каталог разделен на несколько каталогов внутри него:armeabi-v7a
: скомпилированный код только для всех процессоров на базе ARMv7 и вышеarm64-v8a
: скомпилированный код только для всех процессоров на базе ARMv8 arm64 и выше [25]x86
: скомпилированный код только для процессоров x86x86_64
: скомпилированный код только для процессоров x86-64mips
armeabi
res
: каталог, содержащий ресурсы, не скомпилированные в resources.arsc (см. ниже).assets
: каталог, содержащий ресурсы приложений, которые можно получить с помощью AssetManager
.AndroidManifest.xml
: Дополнительный файл манифеста Android, описывающий имя, версию, права доступа, ссылочные файлы библиотеки для приложения. Этот файл может быть в двоичном XML Android , который можно преобразовать в понятный человеку текстовый XML с помощью таких инструментов, как AXMLPrinter2, Apktool M или Androguard.classes.dex
: Классы, скомпилированные в формате файла dex , выполняемые Android Runtime (или виртуальной машиной Dalvik, используемой в Android 4.4 KitKat ).resources.arsc
: файл, содержащий предварительно скомпилированные ресурсы, например, двоичный XML.Примечание: Исторически NDK поддерживал ARMv5 (armeabi), а также 32- и 64-битные
MIPS
, но поддержка этих ABI была удалена в NDK r17.
Поддержка ARMv5 (armeabi), MIPS и MIPS64 удалена. Попытка построить любой из этих
ABI
приведет к ошибке.