저는 웹 서비스를위한 다소 “두꺼운”모바일 클라이언트 인 Android 애플리케이션 개발에 참여하고 있습니다. 서버와 많이 통신하지만 내부 논리도 많이 있습니다. 그래서 Google Guava
개발 과정을 단순화하기 위해 라이브러리의 일부 기능을 사용하기로 결정했습니다 . 다음은 제가 매우 관심을 갖고있는 기능 목록입니다. 변경 불가능한 컬렉션, 기본 유틸리티, 컬렉션 확장, 함수형 프로그래밍 설탕 및 관용구 ( common.collect
및 common.base
), 기본 유틸리티 ( common.primitives
), 해싱 유틸리티 ( common.hash
), 동시 유틸리티 (미래 및 AsyncFunction
). Android에서 사용 하고 싶지 않은 것 : common.cache
(아래 질문 참조), common.eventbus
( Otto 와 같은 더 나은 Android 전용 라이브러리 common.io
가 있습니다 ), ( okio 를 사용할 수 있습니다 . Android 용).
: 나는 안드로이드 구아바를 사용하는 것은 상당히 느린 다운 컴파일 과정은 또한 전체 런타임 성능 감소시킬 수 있음을 읽을 수
안드로이드에 구아바 캐시와 나쁜 성능 (이 합리적이며, 안드로이드 구아바의 캐시를 사용할 필요가 없습니다이 경우) 및
추가 구글 Guava to Android 프로젝트-빌드 속도가 크게 느려집니다.
그렇다면 Android 프로젝트에서 Guava 라이브러리를 사용하는 것이 효율적 입니까? 아니면이 라이브러리가 서버 측 개발 에만 사용되도록 설계되었는데 표준 솔루션을 사용해야합니까? 어떤 설명이라도 대단히 감사하겠습니다.
답변
(댓글이 너무 커서 답변을 게시합니다.) 개인적으로 저는 모든 Java 프로젝트에서 전체 Guava 라이브러리를 사용하며 중요하고 적절하게 프로파일 링 된 성능 문제 가 없을 때 사용 합니다. 예를 들어 Android 환경에서와 같은 메모리 문제가있는 경우 ProGuard 를 사용 하여 실제로 필요한 Guava의 이러한 부분 만 얻을 수 있습니다 .
또한 Guava를 사용하는 Android 앱이 많이 있습니다. Google에서 직접 제공하는 Google 검색 및 Youtube와 같은 작은 앱뿐 아니라
( 호환성 정보 도 표시되어야합니다 .)