Разница между 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).
Быстрые практические шаги:
- Установите Android SDK через Android Studio или скачайте command‑line tools и распакуйте в ~/Android/Sdk.
- Добавьте в PATH: export PATH=$PATH:~/Android/Sdk/cmdline-tools/latest/bin и platform‑tools.
- Установите пакеты: sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0".
- Сборка приложения: в корне проекта ./gradlew assembleRelease.
- Подписание для релиза: используйте 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 — инструменты для создания этого установщика.