Я занимаюсь разработкой приложения для Android, которое представляет собой довольно «толстый» мобильный клиент для веб-службы. Он активно взаимодействует с сервером, но также имеет много внутренней логики. Итак, я решил использовать некоторые возможности Google Guava
библиотеки, чтобы упростить процесс разработки. Вот список функций, которые меня очень интересуют: неизменяемые коллекции, базовые утилиты, расширения коллекций, сахар и идиомы функционального программирования ( common.collect
и common.base
), утилиты примитивов ( common.primitives
), утилиты хеширования ( common.hash
), параллельные утилиты (фьючерсы и AsyncFunction
). Вещи, которые я не хочу использовать в Android: common.cache
(см. Вопрос ниже), common.eventbus
(у нас есть лучшие библиотеки для Android, такие как Otto ), common.io
(мы можем использовать okio для Android сейчас).
Я читал, что использование Guava для Android может значительно замедлить процесс компиляции, а также снизить общую производительность во время выполнения: Плохая производительность с Guava Cache на Android (в этом случае это разумно, и нет необходимости использовать кеш Guava для Android) и Добавление Google Проект Guava to Android - значительно тормозит сборку
Итак, эффективно ли использовать библиотеку Guava в проекте Android или эта библиотека предназначена для использования только для разработки на стороне сервера, и я должен использовать стандартные решения? Будем очень признательны за любые объяснения.
Ответы:
(Слишком много для комментария, поэтому я отправляю ответ.) Лично я использую всю библиотеку Guava в каждом проекте Java, и когда у меня нет значительных и правильно профилированных проблем с производительностью. Если у вас, например, есть проблемы с памятью, как в среде Android, вы можете использовать ProGuard, чтобы получить только те части Guava, которые вам действительно нужны.
Более того, есть много приложений для Android, использующих Guava, и не только маленькие, например, Google Search и Youtube, которые исходят напрямую от Google.
(Вы также должны увидеть примечание о совместимости .)
источник