Android application package
Android Package (APK)[1] — формат файла приложения Android, используемый операционной системой Android и множеством других операционных систем на базе Android для распространения и установки мобильных приложений, мобильных игр и промежуточного программного обеспечения .
APK | |
---|---|
Расширение |
. |
MIME-тип |
application/vnd.android.package-archive |
Разработчик | |
Тип формата | Упакованное приложение |
Содержит |
Android: Мобильные приложения Windows 11: Приложения рабочего стола для WSA |
Расширен из | JAR |
Файлы APK могут быть сгенерированы и подписаны из Android App Bundle .[2]
Обзор
APK аналогичен другим пакетам приложений, таким как APPX в Microsoft Windows или Deb в операционных системах, основанных на Debian. Чтобы создать APK файл, программа для Android сперва компилируется с помощью инструментов, таких как Android Studio[3] или Visual Studio, а затем все её части упаковываются в один контейнерный файл. APK содержит весь скомпонованный программный код (например, файлы .dex), а так же ресурсы, активы, сертификаты и файл манифеста. Как и в случае со многими файловыми форматами, файлы APK могут иметь любое выбранное имя, но, для распознавания файла как приложения для андроид, может понадобиться указание расширения файла.[4][5][6]
Большинство реализаций безопасности Android позволяют пользователям вручную устанавливать файлы APK только после того, как они включили параметр «Неизвестные источники», который разрешает установку из источников, отличных от надёжных, наподобие Google Play. Это сделано для предотвращения неопытных пользователей от различных классов шпионских и троянских программ, которые маскируются под легитимные приложения. Включение функции установки из неизвестных источников можно сделать по многим причинам, например, во время разработки приложений, чтобы установить приложения, которых нет в магазине, или установить более старую версию существующего приложения.[7]
Использование в других операционных системах
На мероприятии во время анонса Windows 11 в июне 2021 года, Microsoft продемонстрировала новую подсистему Windows для Android (Windows Subsystem for Android, WSA), которая реализует поддержку Android Open Source Project (AOSP) и позволит пользователям запускать Android приложения в Windows. Microsoft подтвердила, что пользователи смогут загружать sideload-приложения Android (не имеющие официального выпуска), а также устанавливать их.[8]
Содержание упакованного приложения
APK файл — ZIP-архив, который обычно содержит следующие файлы и директории:
- Директория
META-INF
:MANIFEST.MF
: файл манифеста- Сертификат приложения.
CERT.SF
: Список ресурсов и подпись SHA-1 соответствующих строк в MANIFEST.MF; Например:Signature-Version: 1.0 Created-By: 1.0 (Android) SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE= ... Name: res/layout/exchange_component_back_bottom.xml SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w= Name: res/drawable-hdpi/icon.png SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
lib
: директория, содержащая скомпилированный код, зависимый от платформы; lib разделён на несколько субдиректорий:armeabi-v7a
: скомпилированный код только для всех процессоров на базе ARMv7 и вышеarm64-v8a
: скомпилированный код только для всех процессоров на базе ARMv8 arm64 и выше[9]x86
: скомпилированный код только для процессоров x86x86_64
: скомпилированный код только для процессоров x86-64иmips
устарели с версии NDK r17[10][11]armeabi
res
: директория, содержащая ресурсы, не скомпилированные в resources.arsc (см. ниже).assets
: директория, содержащая активы приложений, которые могут быть извлечены с помощьюAssetManager
.AndroidManifest.xml
: дополнительный файл манифеста Android, описывающий имя, версию, права доступа и библиотеки приложения. Этот файл может быть в двоичном формате XML Android, который может быть преобразован в удобночитаемый текст XML с помощью таких инструментов, как AXMLPrinter2, apktool или Androguard.classes.dex
: классы, скомпилированные в формате файла dalvik executable, понятном виртуальной машине Dalvik и среде выполнения Android .resources.arsc
: файл, содержащий предварительно скомпилированные ресурсы, например двоичный XML.
Примечания
- Application Fundamentals (англ.). Android Developers. Дата обращения: 3 декабря 2018.
- Peters. Google is moving away from APKs on the Play Store (англ.). The Verge (30 июня 2021). Дата обращения: 15 августа 2021.
- Application Studio (англ.). Android Developers.
- Inside the Android Application Framework (video). Google Sites.
- Hatem Ben Yacoub. Tips: How to install apk files on Android Emulator . Open Ha Magazine (20 April 2018). Дата обращения: 17 июля 2021. Архивировано 26 мая 2012 года.
- The Structure of Android Package (APK) Files . OPhone SDN. OPhone Software Developer Network (17 November 2010). Архивировано 8 февраля 2011 года.
- Unknown Sources: Everything you need to know! . Android Central (27 July 2018).
- Parmar. Microsoft confirms Android apps will run on all Windows 11 PCs . Windows Latest (27 июня 2021). Дата обращения: 28 июня 2021.
- ABI Management | Android Developers . developer.android.com. Дата обращения: 2018-06-16.02.2022.
- Android ABIs | Android NDK (англ.). Android Developers. — «Note: Historically the NDK supported ARMv5 (armeabi), and 32-bit and 64-bit MIPS, but support for these ABIs was removed in NDK r17.». Дата обращения: 14 августа 2020.
- Dan. Changelog r17 (англ.). GitHub (Sep 5, 2018). — «Support for ARMv5 (armeabi), MIPS, and MIPS64 has been removed. Attempting to build any of these ABIs will result in an error.». Дата обращения: 14 августа 2020.