#android
#Android
Вопрос:
Каков уникальный идентификатор приложения для Android? Это имя пакета? Могут ли быть два приложения с одинаковыми названиями пакетов на одном устройстве?
Ответ №1:
Это две разные вещи: пакет Java и пакет приложений для Android. Второй идентификатор должен быть уникальным.
Об этом есть хорошая статья здесь
Комментарии:
1. @SeanCheey спасибо, что нашли проблему со ссылкой! Я одобрил вашу правку, поскольку это был полезный вклад, но для дальнейшего использования вы часто можете найти старое содержимое таких ссылок через web.archive.org , который я использовал для восстановления ссылки в ее предыдущем состоянии, не содержащем спама.
Ответ №2:
Да, имя пакета является уникальным идентификатором для приложения Android в Market.
Нет, в маркете / на устройстве не может быть двух приложений с одинаковым названием пакета.
Комментарии:
1. Спасибо за ответ. И что произойдет, если я установлю приложение из apk-файла с именем пакета, который уже используется другим приложением на устройстве?
2. Установка нового приложения завершится ошибкой. Рынок запретит загрузку приложения с уже существующим именем пакета. таким образом, единственный случай, когда это может произойти, — это когда вы загружаете из пользовательских местоположений.
Ответ №3:
Я хотел бы добавить одно небольшое уточнение, которое здесь не упоминалось.
Хотя не может быть двух приложений с одинаковым именем пакета, в одном приложении может быть несколько действий запуска, которые пользователь может видеть в приложении запуска. Например, стандартное приложение «Карты» (пакет «com.google.android.apps.maps») имеет несколько функций запуска, таких как «Local», «Navigation», «Maps». Для пользователя не имеет значения, реализованы ли эти «приложения» (или действия, с точки зрения разработчика) в одном пакете приложений или нет.
Название действия («com.google.android.maps.MapsActivity») сам по себе тоже не уникален, потому что любой может создать приложение с уникальным именем пакета и активностью, расположенной в java package com.google.android.maps, под названием MapsActivity.
Таким образом, если вы хотите найти уникальный идентификатор для всех этих действий запуска, вам следует использовать комбинацию имени пакета приложения («com.google.android.apps.maps») и названия действия («com.google.android.maps.MapsActivity»).
Ответ №4:
Уникальным идентификатором для приложений Android теперь является applicationId
поле в build.gradle
файле. Устройства будут определять, является ли приложение обновлением существующего приложения или новым приложением на основе этого поля.
Комментарии:
1. Я уже загрузил приложение для создания кроссвордов размером 9×9 ячеек с
applicationid:com.drulapp.padashri
иpackage-name:com.drulapp.padashri
(т. Е. во всем исходном коде и вAndroidManifest.xml
). Могу ли я использовать идентификатор приложения, подобныйcom.drulapp.padashri.seven
для кроссворда размером 7×7 ячеек, с неизмененным именем пакета (конечно, скопировав всю папку приложения и изменив идентификатор приложения и детали подписи?2. меня также беспокоит, как обеспечивается внутреннее хранилище, если имена пакетов одинаковы, а applicationid отличается.
Ответ №5:
Имя пакета должно быть другим, вы не можете загрузить приложение с таким же именем пакета, как у существующего.