Zajmuję się tworzeniem aplikacji na Androida, która jest raczej „grubym” klientem mobilnym dla usługi WWW. Bardzo dobrze komunikuje się z serwerem, ale ma też dużo wewnętrznej logiki. Postanowiłem więc skorzystać z niektórych funkcji Google Guava
biblioteki, aby uprościć proces programowania. Oto lista funkcji, które bardzo mnie interesują: niezmienne kolekcje, narzędzia podstawowe, rozszerzenia kolekcji, cukier i idiomy programowania funkcjonalnego ( common.collect
i common.base
), narzędzia prymitywne ( common.primitives
), narzędzia haszujące ( common.hash
), narzędzia współbieżne (futures i AsyncFunction
). Czego nie chcę używać w Androidzie: common.cache
(patrz pytanie poniżej), common.eventbus
(mamy do tego lepsze biblioteki dla Androida, takie jak Otto ), common.io
(możemy użyć okio dla Androida teraz).
Czytałem, że używanie Guava na Androida może znacznie spowolnić proces kompilacji, a także obniżyć wydajność całego środowiska uruchomieniowego: Zła wydajność z Guava Cache na Androidzie (w tym przypadku jest to rozsądne i nie ma potrzeby używania pamięci podręcznej Guava dla Androida) i Dodanie Google Projekt Guava to Android - znacznie spowalnia kompilację
Czy więc efektywne jest korzystanie z biblioteki Guava w projekcie na Androida, czy też ta biblioteka jest przeznaczona tylko do programowania po stronie serwera i powinienem korzystać ze standardowych rozwiązań? Wszelkie wyjaśnienia będą bardzo mile widziane.
Odpowiedzi:
(Za duży na komentarz, więc zamieszczam odpowiedź). Osobiście używam całej biblioteki Guava w każdym projekcie Java i kiedy nie mam znaczących i odpowiednio sprofilowanych problemów z wydajnością. Jeśli masz na przykład problemy z pamięcią, jak w środowisku Android, możesz użyć ProGuard, aby uzyskać tylko te części guawy, których naprawdę potrzebujesz.
Co więcej, istnieje wiele aplikacji na Androida korzystających z Guavy - nie tylko tych małych, np. Google Search i Youtube, które pochodzą bezpośrednio od Google.
(Powinieneś również zapoznać się z uwagą dotyczącą zgodności .)
źródło