Разница между APK, package file и SDK file в Android — простое руководство

APK — это установочный файл приложения (.apk), package file обычно синоним APK, а SDK — набор инструментов для разработки (эмуляторы, компиляторы, библиотеки). Ниже — что внутри, когда что использовать и как практично работать с каждым типом файла.

Что такое APK / package file и из чего он состоит

APK (Android Package) — это ZIP‑архив с расширением .apk, подписанный разработчиком. Внутри:

  • classes.dex — скомпилированный байткод;
  • res/ и resources.arsc — ресурсы (XML, изображения);
  • AndroidManifest.xml — метаданные (permissions, activity);
  • lib/*.so — нативные библиотеки;
  • META-INF — подпись.

Как установить:

  • На устройстве: открыть .apk или через файловый менеджер (включить установку из «неизвестных источников» для сторонних пакетов).
  • По USB: adb install app.apk. Совет: в 2020‑х Google рекомендует .aab (App Bundle) для Play — он генерирует оптимизированные APK под устройство.

Package file и APK в 99% случаев — одно и то же: термин «package» — официальное название формата.

Скачивайте APK только из доверенных источников — подпись и содержимое могут быть изменены злоумышленниками.

Что такое SDK file и как с ним работать

SDK (Software Development Kit) — это не один файл, а набор инструментов: command‑line tools, platform‑tools (ADB), build‑tools, API‑платформы, эмуляторы и библиотеки (AAR/JAR).

Быстрые практические шаги:

  1. Установите Android SDK через Android Studio или скачайте command‑line tools и распакуйте в ~/Android/Sdk.
  2. Добавьте в PATH: export PATH=$PATH:~/Android/Sdk/cmdline-tools/latest/bin и platform‑tools.
  3. Установите пакеты: sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0".
  4. Сборка приложения: в корне проекта ./gradlew assembleRelease.
  5. Подписание для релиза: используйте keystore (keytool для создания, Gradle — для подписи).

SDK важен для сборки, тестирования на эмуляторе и доступа к API; он занимает гигабайты, но позволяет автоматизировать релизы и тесты.

Когда и какой файл использовать

  • Пользователю: APK — для установки или бета‑тестов (sideloaд).
  • Разработчику: SDK — для разработки, сборки и тестирования; итоговый продукт — APK или AAB.
  • Команде: делитесь AAR для библиотек, используйте CI для сборки подписанных APK/AAB.

Частые ошибки

  • App not installed: несовпадение подписи или конфликт версий — удалите старую версию или подпишите корректно.
  • SDK not found: проверьте ANDROID_HOME/ANDROID_SDK_ROOT и PATH.
  • Missing build‑tools: запустите sdkmanager для установки нужной версии.
  • Ошибки при adb install: включите USB‑отладку и подтвердите доверие к компьютеру.

FAQ

  • Нужен ли мне SDK для установки APK? Нет — SDK нужен разработчикам; обычному пользователю достаточно APK/AAB.
  • Чем AAB лучше APK? AAB позволяет Play генерировать оптимизированные APK под конкретное устройство, уменьшая размер загрузки.
  • Как конвертировать AAB в APK для установки? Используйте bundletool локально (генерация .apks, затем extract/install), но для публикации в Play Store предпочтительнее загружать AAB.

С этими практическими инструкциями вы быстро поймёте, где APK — это установщик, а SDK — инструменты для создания этого установщика.