Уникальный идентификатор приложения для Android

Каков уникальный идентификатор приложения для Android? Это имя пакета? Могут ли быть два приложения с одинаковыми именами пакетов на одном устройстве?

Есть две разные вещи: пакет Java и пакет приложений для Android. Второй должен быть уникальным.

Здесь есть хорошая статья об этом

Да, имя пакета является уникальным идентификатором для приложения Android на рынке.

Нет, не может быть двух приложений с таким же именем пакета на рынке / на устройстве.

Я хотел бы добавить одно небольшое разъяснение, которое здесь не упоминалось.

Хотя не может быть двух приложений с одним и тем же именем пакета, в одном приложении, которое пользователь может увидеть в приложении для запуска, может быть несколько действий по запуску. Например, стандартное приложение «Карты» (пакет «com.google.android.apps.maps») имеет несколько операций запуска, таких как «Локальный», «Навигация», «Карты». Для пользователя не имеет значения, реализуются ли эти «приложения» (или действия, в терминах разработчика) в одном пакете приложений или нет.

Название активности («com.google.android.maps.MapsActivity») также не является уникальным, поскольку каждый может создать приложение с уникальным именем пакета и активностью, находящейся в пакете java com.google.android.maps, называемом MapsActivity.

Таким образом, если вы хотите найти уникальный идентификатор для всех этих действий, вы должны использовать комбинацию имени пакета приложения («com.google.android.apps.maps») и имени активности («com.google.android.maps. MapsActivity ").

Имя пакета должно быть другим, вы не можете загрузить приложение с таким же именем пакета, как и существующее.

Уникальным идентификатором для приложений Android теперь является поле applicationId в файле build.gradle . Устройства будут определять, является ли приложение обновлением существующего приложения или нового приложения на основе этого поля.