Совместимость со стилем/версией темы Android XML с учетом безопасности разработки с Eclipse/lint

Похоже, что лучший способ разработки приложения для Android на сегодняшний день — указать android-17 в project.properties вместе с minSdkVersion «что вам подходит» и targetSdkVersion 17 в манифесте.

В этой конфигурации стандартные проверки lint будут уведомлять о любых вызовах API, которые доступны только в версиях API выше «что угодно», и можно использовать отражение и т. д. для динамической поддержки новых функций, если таковые имеются.

Однако в этой настройке, по крайней мере, без дополнительной настройки, атрибуты стиля и темы в XML могут быть не помещены в соответствующую папку, например ссылка на элементы «Holo» в папке ресурсов по умолчанию, когда «что угодно» меньше 11. он же Соты.

Кажется, приложения не будут падать, если они столкнутся с неизвестными атрибутами стиля XML. LogCat покажет ошибку, например «Стиль содержит ключ с неверной записью».

Не уверен, проверяется ли весь стиль при запуске приложения; если это так, то, безусловно, можно запустить приложение один раз для каждой версии API, чтобы проверить наличие проблем. Однако это не совсем желательно. Кроме того, стили и темы — не единственные ресурсы, зависящие от версии.

Есть ли способ заставить lint проверять ресурсы в целом на соответствие minSdkVersion и API версии XY для папки *-vXY? Может ли кто-нибудь пролить свет на это?


person class stacker    schedule 08.12.2012    source источник


Ответы (1)


К счастью, с текущей (обновленной) конфигурацией это перестало быть проблемой, потому что среда разработки справляется с ситуацией именно так, как должна.

Пример:

project.properties:

target=android-11

AndroidManifest.xml:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />

Теперь вы можете использовать стиль и атрибуты темы API 8 XML везде, а также атрибуты стиля и темы API 11 XML в -v11 подпапках.

Работает с Eclipse Juno Service Release 1, Android SDK Tools 21.1 и Android SDK Platform-tools 16.0.1.

person class stacker    schedule 02.04.2013