Estou envolvido no desenvolvimento do aplicativo Android, que é um cliente móvel bastante "grosso" para um serviço da Web. Ele se comunica fortemente com o servidor, mas também possui muita lógica interna. Então, decidi usar alguns recursos da Google Guava
biblioteca para simplificar o processo de desenvolvimento. Aqui está uma lista de recursos nos quais estou muito interessado: coleções imutáveis, utilitários básicos, extensões de coleções, açúcar e expressões idiomáticas de programação funcional ( common.collect
e common.base
), utilitários primitivos ( common.primitives
), utilitários de hash ( common.hash
), utilitários simultâneos (futuros e AsyncFunction
). Coisas que não quero usar no Android: common.cache
(veja a pergunta abaixo), common.eventbus
(temos melhores bibliotecas específicas do Android para isso, como Otto ), common.io
(podemos usar okio para Android agora).
Li que o uso do Guava para Android pode desacelerar significativamente o processo de compilação e também diminuir o desempenho de todo o tempo de execução: Desempenho ruim com o Guava Cache no Android (neste caso, é razoável e não há necessidade de usar o cache do Guava para Android) e Adicionando o Google Projeto Goiaba para Android - diminui significativamente a compilação
Portanto, é eficiente usar a biblioteca Guava no projeto Android ou essa biblioteca foi projetada para ser usada apenas para o desenvolvimento no servidor, e devo usar soluções padrão? Quaisquer explicações serão muito apreciadas.
Respostas:
(Grande demais para comentar, por isso posto uma resposta.) Pessoalmente, uso toda a biblioteca Guava em todos os projetos Java e quando não tenho problemas de desempenho significativos e com perfil adequado . Se você tem, por exemplo, problemas de memória como no ambiente Android, pode usar o ProGuard para obter apenas essas partes do Guava realmente necessárias.
Além disso, existem muitos aplicativos Android usando o Guava - não apenas os pequenos, como o Google Search e o Youtube, que vêm diretamente do Google.
(Você também deve ver a nota de compatibilidade .)
fonte