Ответ 1
У меня такая же компоновка, и это работает для меня, как и ожидалось.
В библиотеке есть layout/class с этой ссылкой на строковые ресурсы:
<TextView android:id="@+id/studentSinceLabel">
Библиотека предоставляет значение по умолчанию в файле strings.xml:
<string name="studentSinceLabel">Student Since</string>
Основное приложение имеет это значение в своих строках .xml:
<string name="studentSinceLabel">Client Since</string>
Когда я даю значение для этого ресурса в основных приложениях strings.xml, я вижу "Client Since", когда приложение запускается, когда я удаляю его из основных приложений strings.xml, я вижу значение из библиотеки, "Студент с".
Кажется, это ожидаемое поведение основано на моем чтении здесь: http://developer.android.com/tools/sdk/eclipse-adt.html
Соответствующая цитата из приведенной выше ссылки:
В тех случаях, когда идентификатор ресурса определен как в приложении, так и в библиотеке, инструменты обеспечивают, чтобы ресурс, объявленный в приложении, получил приоритет и что ресурс в проекте библиотеки не был скомпилирован в приложение .apk. Это дает вашему приложению гибкость в использовании или переопределении любых типов поведения ресурсов или значений, которые определены в любой библиотеке.