Идентификаторы ресурсов и устройства

#java #android #r.java-file

#java #Android #r.java-файл

Вопрос:

Мой вопрос для всех, кто может ответить, касается сгенерированных идентификаторов ресурсов в проектах Android. Я знаком с тем, что это такое, и что они автоматически создаются для меня.

Мне интересно, будет ли какой-либо конкретный номер ресурса, то есть фактическое целочисленное значение, согласованным на всех устройствах, когда приложение для Android будет опубликовано на рынке. Я предполагаю, что да, ресурсы именно такие: окончательные (общедоступные статические конечные) числа, которые устройство использует для сопоставления и отслеживания ресурсов. Таким образом, тогда казалось бы, что числовые значения должны быть одинаковыми для каждой установки (а также никогда не изменятся). Например, если у меня есть:

 public static final int button1=0x7f020011;
 

в R.java , будет ли это число одинаковым для всех устройств, на которых устанавливается приложение из marketplace? Или каждое конкретное устройство может иметь свое собственное уникально определенное целочисленное значение, которое используется для ссылки на ресурс «button1»?

Если бы кто-нибудь мог предложить мне разъяснения или дополнительную информацию по этому вопросу, это было бы очень ценно.

Спасибо.

Ответ №1:

Мне интересно, будет ли какой-либо конкретный номер ресурса, то есть фактическое целочисленное значение, согласованным на всех устройствах, когда приложение для Android будет опубликовано на рынке.

ДА. Они являются частью вашего приложения.

Таким образом, тогда казалось бы, что числовые значения должны быть одинаковыми для каждой установки (а также никогда не изменятся).

Они могут меняться между сборками, поскольку они генерируются в коде как часть вашего приложения.

в R.java , будет ли это число одинаковым для всех устройств, на которых устанавливается приложение из marketplace?

Они будут согласованы для всех, у кого установлена определенная версия вашего приложения. Разные версии вашего приложения могут иметь разные номера, и ваши пользователи будут использовать разные версии вашего приложения, поскольку не все обязательно будут получать каждое обновление, как только оно станет доступно.