Как понять и оперативно найти package name (applicationId) в Android
Package name (applicationId) — это уникальный идентификатор Android‑приложения, который используется системой и магазином приложений для различения пакетов. Он нужен для публикации, обновлений и ссылок: два приложения с одинаковым ID не могут сосуществовать, а изменение ID после релиза фактически создаёт новое приложение.
Что это и зачем нужно
Package name традиционно выглядел как обратный домен: com.company.appname. Сейчас важно различать два понятия:
- package (пакет Java/Kotlin) — пространство имён в коде.
- applicationId — финальный идентификатор, который встраивается в APK и используется системой/магазином.
applicationId задаётся в сборке и может отличаться от исходных Java-пакетов — это удобно для переименований, флейворов и тестовых сборок (applicationIdSuffix). Изменять applicationId после релиза нельзя без создания нового приложения в магазине.
Выберите окончательный applicationId в начале проекта и зафиксируйте в README: смена после публикации создаст новый идентификатор в магазине.
Где найти в проекте (Android Studio / Gradle)
- Откройте
app/build.gradle(илиbuild.gradle.kts) — в блокеdefaultConfigищите:
defaultConfig {
applicationId "com.example.myapp"
...
}
- Если нет явного
applicationId, проверьтеmanifest— атрибутpackage="..."вAndroidManifest.xmlзадаёт базовый пакет, но финальный ID формируется Gradle. - Для модулей и флейворов проверьте
productFlavorsиapplicationIdSuffix— итоговый ID складывается из них. - Через UI: правой кнопкой на модуле → Open Module Settings → Properties (иногда отображается Package name).
Для отладки можно посмотреть логи: запустите приложение и фильтруйте adb logcat по PackageManager или имени процесса.
Где найти в APK и на устройстве
- В Android Studio: Build → Analyze APK → откройте APK → смотрите
AndroidManifest.xml— атрибутpackage="com.example.app"покажет ID. - Команда в терминале:
aapt dump badging your-app.apk | grep package
# вывод: package: name='com.example.app' versionCode='1' ...
- На устройстве (без root): Настройки → Приложения → выберите приложение → подробности (на некоторых оболочках показывается package name). Или используйте
adb:
adb shell pm list packages | grep <часть_имени>
# или для конкретного приложения:
adb shell pm list packages -f | grep <keyword>
- Для системных ссылок и маркета используют схему типа
market://details?id=com.example.appили аналог в URL магазина — поidможно найти запись приложения.
Не меняйте package name/applicationId вручную в установленном приложении — это приведёт к конфликтам и невозможности обновления.
Где искать — быстрый обзор
| Инструмент | Где смотреть | Что даёт |
|---|---|---|
| Android Studio | app/build.gradle, Analyze APK | Точный applicationId и Manifest |
| Терминал | aapt, adb | Быстрый вывод из APK или установленных пакетов |
| Устройство | Настройки → Приложения | Установленный package name (в некоторых прошивках) |
Частые ошибки
- Попытка установить новый APK поверх старого с другим applicationId → "App not installed".
- Ожидание, что
packageвAndroidManifest.xmlвсегда совпадает с applicationId (может отличаться). - Неучтённый
applicationIdSuffixв debug-сборке — тестовый пакет отличается от релизного.
FAQ
- Можно ли изменить applicationId после релиза?
Да, но приложение в магазине станет новым — старые пользователи не получат обновления. - Как быстро проверить, с каким ID установлено приложение на устройстве?
Черезadb shell pm list packages | grep <keyword>или в настройках приложения (если оболочка показывает). - Где задавать разные ID для debug/release?
Вbuild.gradleиспользуйтеbuildTypesиproductFlavorsсapplicationIdSuffixили явнымapplicationId.
С package name вы всегда однозначно идентифицируете приложение — храните его в документации проекта и проверяйте при сборке и публикации.