APK

Из Википедии, свободной энциклопедии

APK

APK (англ. Android Package Kit, рус. Пакет Инструментов Android)[1] — формат архивных исполняемых файлов-приложений для Android. Каждое приложение Android скомпилировано и упаковано в один файл, который включает в себя весь код приложения (.DEX-файлы), ресурсы, активы (assets), файл манифеста AndroidManifest.xml и нативные библиотеки (jniLibs). Файл приложения может иметь любое имя, но расширение должно быть .APK, например myAppFile.apk.

Краткие факты Расширение, MIME-тип ...
APK
Thumb
Расширение .apk
MIME-тип application/vnd.android.package-archive
Разработчик Google
Тип формата система управления пакетами, архив
Содержится в Android
Расширен из JAR
Развит в .aab
Закрыть

Файлы с данным расширением хранятся в магазинах приложений (например, Google Play, Huawei AppGallery, F-Droid, Amazon Appstore и тд.) и загружаются с его помощью в устройство для их использования или устанавливаются пользователем вручную.

Файлы этого формата не шифруются, являются подмножеством формата архива ZIP.

Каждый .APK‑файл — это сжатый архив для исполнения в виртуальной машине Dalvik (до Android 4.4-5) или ART (от Android 4.4-5) который может быть установлен только на операционной системе Android.

Установка APK-файлов[2] из «сторонних» источников может представлять определённый риск - множество сайтов бесплатно распространяют изменённые версии популярных приложений и игр, в некоторые из них могут быть добавлены вредоносные функции, такие как: отправка платных SMS, воровство данных, шифрование устройства, слежка и т.д.[3][4]

Создание

APK аналогичен другим пакетам приложений, таким как APPX в Microsoft Windows или Deb в Debian. Чтобы создать APK файл, программа для Android сперва компилируется с помощью инструментов, таких как Android Studio[5] или Visual Studio, а затем все её части упаковываются в один контейнерный файл. APK содержит весь скомпонованный программный код (например, файлы .dex), а также ресурсы, активы, сертификаты и файл манифеста[6]. Как и в случае со многими файловыми форматами, файлы APK могут иметь любое выбранное имя, но, для распознавания файла как приложения для андроид, может понадобиться указание внутреннего названия этого приложения, такого как, например, в папке sdcard/android/data[7][8]. По этому пути хранятся не сильно важные для приложения данные, основные же лежат в /data/app/~~abrakadabraPrilozhenia==/имя_файла-novayaAbrakadabra==

Содержание файла

Суммиров вкратце
Перспектива

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: директория, содержащая скомпилированный код, зависимый от платформы, и разделена на несколько поддиректорий[9]:
    • arm64-v8a: скомпилированный код для процессоров на архитектуре ARMv8
    • armeabi-v7a: скомпилированный код для процессоров на архитектуре ARMv7
    • x86_64: скомпилированный код для процессоров на архитектуре x86-64/amd64
    • x86: скомпилированный код для процессоров на архитектуре x86/i386
    • armeabi: скомпилированный код для процессоров на архитектуре ARMv5 (устарел с NDK r17[10][11])
    • mips: скомпилированный код для процессоров на архитектуре MIPS (устарел с NDK r17)
  • res: директория, содержащая ресурсы, не скомпилированные в resources.arsc (см. ниже).
  • assets: директория, содержащая активы приложений, которые могут быть извлечены с помощью AssetManager .
  • AndroidManifest.xml: дополнительный файл манифеста Android, описывающий имя, версию, права доступа и библиотеки приложения. Этот файл может быть в двоичном формате XML Android, который может быть преобразован в удобочитаемый текст XML с помощью таких инструментов как AXMLPrinter2, APKtool или Androguard.
  • classes.dex: классы, скомпилированные в формате файла dalvik executable, понятном виртуальной машине Dalvik и среде выполнения Android .
  • resources.arsc: файл, содержащий предварительно скомпилированные ресурсы, например двоичный XML.

AAB

Краткие факты Android App Bundle, Расширение ...
Android App Bundle
Thumb
Расширение .aab
Разработчик Google
Тип формата Упакованное приложение
Содержится в Android
Расширен из .apk
Закрыть

По сути его развитие в Android App Bundle (рус. Связка Android Приложений) не изменило APK — это всё тот же APK, но только со всем необходимым пользователю и устройству:

Единственное место где используется AAB, это Google Play. Если пользователь изменит язык, то со стороны сервера потребуются дополнительные ресурсы для скачивания. И как можно понять из этого всего AAB нужен, чтобы сэкономить место в памяти и трафик, ведь ненужные инструкции процессора и размеры интерфейса не будут использованы в принципе, но память всё равно занимают.

Без AAB, APK может поддерживать несколько иностранных языков, до четырёх разных архитектур процессора и несколько разрешений экрана.

См. также

Примечания

Литература

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.