Ответ 1
Начиная с версии 3, Guice кэширует отражающие объекты для повышения производительности. Там, по крайней мере, одна ошибка против dalvik, чтобы ускорить поиск аннотаций, но текущая производительность работоспособна.
Как разработчик Java, я привык к тому, что в приложениях есть инъекция зависимостей. Для Android, тем не менее, я особенно опасаюсь производительности. Каковы последствия для использования Guice в приложении для Android? Я предполагаю, что есть некоторые накладные расходы, но достаточно ли это, что я должен избегать использования Guice?
Мое использование этого, скорее всего, будет заключаться в том, чтобы вставить несколько общих объектов в различные действия.
Начиная с версии 3, Guice кэширует отражающие объекты для повышения производительности. Там, по крайней мере, одна ошибка против dalvik, чтобы ускорить поиск аннотаций, но текущая производительность работоспособна.
Я бы не использовал DI в android, поскольку Google предлагает: http://developer.android.com/training/articles/memory.html#DependencyInjection
Кинжал решает некоторые проблемы с синхронизацией, но все еще оставляет память без реальной выгоды.
Roboguice (и Guice) может значительно ухудшить время запуска приложения. Мое среднее и еще не полное приложение заняло почти 15 секунд, чтобы начать работу с HTC EVO 4g.
Взгляните на Dagger как альтернативу, которая не должна обеспечивать практически никаких накладных расходов на запуск.
Вы должны использовать Dagger 2 для проектов Android, если вы заинтересованы в производительности.
Кинжал 2 не использует отражение для сканирования кода вашего приложения. Кинжалы статические, время компиляции означает, что его можно использовать в приложениях Android без лишних затрат времени на использование или использование памяти.