Windows Package Manager
- 1 year ago
- 0
- 0
Android Package (APK) — формат файла приложения Android , используемый операционной системой Android и множеством других операционных систем на базе Android для распространения и установки мобильных приложений , мобильных игр и промежуточного программного обеспечения .
Файлы APK могут быть сгенерированы и подписаны из Android App Bundle .
APK аналогичен другим пакетам приложений, таким как APPX в Microsoft Windows или Deb в операционных системах, основанных на Debian. Чтобы создать APK файл, программа для Android сперва компилируется с помощью инструментов, таких как Android Studio или Visual Studio, а затем все её части упаковываются в один контейнерный файл. APK содержит весь скомпонованный программный код (например, файлы .dex ), а так же ресурсы, активы, сертификаты и файл манифеста. Как и в случае со многими файловыми форматами, файлы APK могут иметь любое выбранное имя, но, для распознавания файла как приложения для андроид, может понадобиться указание расширения файла .
Большинство реализаций безопасности Android позволяют пользователям вручную устанавливать файлы APK только после того, как они включили параметр «Неизвестные источники», который разрешает установку из источников, отличных от надёжных, наподобие Google Play . Это сделано для предотвращения неопытных пользователей от различных классов шпионских и троянских программ , которые маскируются под легитимные приложения. Включение функции установки из неизвестных источников можно сделать по многим причинам, например, во время разработки приложений, чтобы установить приложения, которых нет в магазине, или установить более старую версию существующего приложения .
На мероприятии во время анонса Windows 11 в июне 2021 года, Microsoft продемонстрировала новую подсистему Windows для Android ( Windows Subsystem for Android, WSA ), которая реализует поддержку Android Open Source Project (AOSP) и позволит пользователям запускать Android приложения в Windows. Microsoft подтвердила, что пользователи смогут загружать sideload-приложения Android (не имеющие официального выпуска), а также устанавливать их .
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 и выше
x86
: скомпилированный код только для процессоров
x86
x86_64
: скомпилированный код только для процессоров
x86-64
mips
armeabi
res
: директория, содержащая ресурсы, не скомпилированные в resources.arsc (см. ниже).
assets
: директория, содержащая активы приложений, которые могут быть извлечены с помощью
AssetManager
.
AndroidManifest.xml
: дополнительный файл манифеста Android, описывающий имя, версию, права доступа и библиотеки приложения. Этот файл может быть в двоичном формате XML Android, который может быть преобразован в удобночитаемый текст XML с помощью таких инструментов, как AXMLPrinter2, apktool или Androguard.
classes.dex
: классы, скомпилированные в
формате файла dalvik executable,
понятном
виртуальной машине Dalvik
и
среде выполнения Android
.
resources.arsc
: файл, содержащий предварительно скомпилированные ресурсы, например двоичный XML.