Идентификаторы Android R создаются интегрированной средой разработки (Android Studio или Eclipse ADT).
Они идентичны между сборками?
Если да, будут ли они одинаковыми, если сгенерированы на разных машинах?
Идентификаторы Android R создаются интегрированной средой разработки (Android Studio или Eclipse ADT).
Они идентичны между сборками?
Если да, будут ли они одинаковыми, если сгенерированы на разных машинах?
Во-первых, идентификаторы Android генерируются не IDE, а aapt, инструментом командной строки, который запускается во время сборки. Да, IDE в конечном итоге запускает его, но это не строго часть Android Studio, это часть пакета инструментов сборки.
Номера в основном назначаются в алфавитном порядке, поэтому идентификаторы ресурсов будут идентичными для одного и того же проекта, но не в том случае, если вы измените дерево файлов ресурсов. Я только готов гарантировать, что на той же файловой системе, операционной системе и версии инструментов сборки. Если вы измените любой из них, все ставки будут сняты.
В конечном счете, полагаться на это было бы действительно плохой идеей, потому что однажды кто-то сломает ее, изменив проект, возможно, раньше, чем позже.
Я довольно подробно изучил это несколько лет назад, когда писал декомпилятор APK для исправления ресурсов.
android.R.id.*
, являются постоянными. Например.android.R.id.list
будет иметь то же значение в API 22, что и в API 4. Это неверно для любых идентификаторов, определенных в вашем проекте или библиотеках, которые использует ваш проект (R.id.*
). - person Eugen Pechanec   schedule 27.03.2015