Мы используем Проект библиотеки Androidдля совместного использования основных классов и ресурсов в разных сборках (целях) нашего приложения Android. Проекты Android для каждой конкретной цели ссылаются на проект основной библиотеки (за кулисами Eclipse создает и ссылается на jar-файл из указанного проекта библиотеки).
Переопределить такие ресурсы, как изображения и макеты XML, очень просто. Файлы ресурсов, размещенные в целевом проекте, такие как значок приложения или макет XML, автоматически переопределяют ресурсы основной библиотеки с тем же именем при сборке приложения. Однако иногда класс необходимо переопределить, чтобы включить целевое поведение. Например, экран целевых настроек Amazon не может содержать ссылку на страницу приложения Google Play, что требует внесения изменений в файл preferences.xml проекта Amazon и класс активности предпочтений.
Цель состоит в том, чтобы уменьшить количество дублирующегося кода среди целевых проектов, удаляя как можно больше целевого кода из основной библиотеки. Мы предложили несколько подходов к реализации логики, специфичной для разных целей:
Существуют ли другие стратегии для переопределить или расширить класс проекта библиотеки Android? Каковы некоторые из лучших практик для совместного использования и расширения общих классов между целевыми приложениями Android?