Android и зависимость от инъекций
Я искал вокруг, зря, некоторую информацию об использовании контейнера инъекций зависимостей в разработке Android. В частности, как переопределить создание Activity
таким образом, который также будет работать при возвращении из-за смерти (по какой-либо причине).
Есть ли у кого-нибудь опыт в этой области?
Ответы
Ответ 1
Похоже, вы можете использовать Google Guice 2.0 с Android. Вы также можете посмотреть roboguice.
Edit:
Spring теперь также доступен для Android
Edit:
Roboguice теперь устарел. Вы можете попробовать Toothpick, как указано в комментариях разработчика за Зубочисткой.
Ответ 2
Наиболее подходящей библиотекой инъекций для зависимостей Android является Dagger by Square. Оба Spring и Guice предназначены для приложений Java, а не для Android. Если ваше единственное требование - простое управление зависимостями, Dagger - лучший вариант и имеет поддержку JSR-330.
Ответ 3
Вы также можете рассмотреть Spring ME. Хотя я изначально предназначен для Java ME, я видел отчеты от людей, использующих его для Android. Выгода будет заключаться в том, что у вас есть знакомая модель программирования (Spring) без штрафа: Spring У меня есть 0k footprint.
Ответ 4
Если вы используете Spring в других проектах, вы не будете очень довольны Spring для Android (это только библиотека REST с поддержкой Auth), Spring ME (полностью другой рабочий процесс и уменьшенный набор функций) или Крошечный Spring (например, только Spring -подобная конфигурация).
Однако вы можете попробовать мой проект RoboSpring. Из описания:
RoboSpring является (реальным) портом Spring Framework для платформы Android. Кроме того, он предлагает предварительную поддержку функциональности, введенной RoboGuice, например, инъекции. Просмотр ссылок на действия и многое другое. RoboSpring основан на версии 3.1.0 RELEASE Spring core, beans, контексте и компонентах aop. Он предлагает следующие функции:
- Настроить компоненты приложения с помощью файла конфигурации Spring
(XML)
- Освоить компоненты Android с помощью beans из контекста приложения Spring.
- Внесите контекст приложения Android в свой Spring Beans.
- Ввести представления в действия.
- ... и многое другое
https://github.com/dthommes/RoboSpring
Ответ 5
Существует также новый проект Spring для Android: Tiny Spring. Он решает самые основы конфигурации XML, но не делает все, что делает Spring.