Picasso v / s Imageloader v / s Fresco vs Glide [닫기]

결과:

  1. Picasso v / s ImageLoader의 차이점
  2. GLIDE 라이브러리에 대한 정보는 여기 …
  3. 최근 페이스 북은 프레스코 라는 새로운 이미지 라이브러리를 발표

질문 :

  1. Picasso v / s Imageloader v / s Fresco의 차이점은 무엇입니까?
  2. 우리는 언제 글라이드를 사용할 수 있습니까
  3. 사용하기 가장 좋은 라이브러리는 어느 것입니까?
  4. 각 도서관마다 고유 한 의미가 있다면 무엇입니까?


답변

저는 Fresco 프로젝트 엔지니어 중 한 사람입니다. 분명히 나는 ​​편견입니다.

그러나 당신은 그것에 대해 내 말을 할 필요가 없습니다. Fresco, Picasso, UIL, Glide 및 Volley Image Loader의 5 가지 라이브러리의 성능을 나란히 비교할 수있는 샘플 앱을 출시했습니다. GitHub 리포지토리 에서 구할 수 있습니다 .

또한 Fresco는 Maven Central에서로 사용할 수 있음을 지적해야합니다 com.facebook.fresco:fresco.

Fresco는 Picasso, UIL 및 Glide에 아직없는 기능을 제공합니다.

  1. 이미지는 Java 힙에 저장되지 않지만 ashmem 힙에 저장됩니다. 중간 바이트 버퍼도 기본 힙에 저장됩니다. 따라서 응용 프로그램에서 사용할 수있는 메모리가 훨씬 더 많이 남습니다. OutOfMemoryErrors의 위험을 줄입니다. 또한 가비지 수집 앱의 양을 줄여 성능을 향상시킵니다.
  2. 웹 브라우저에서와 같이 프로그레시브 JPEG 이미지를 스트리밍 할 수 있습니다.
  3. 중앙뿐만 아니라 모든 지점에서 이미지를자를 수 있습니다.
  4. JPEG 이미지는 기본적으로 크기를 조정할 수 있습니다. 이렇게하면 이미지 크기를 줄이려고 할 때 OOMing 문제를 피할 수 있습니다.

다른 많은 것들이 있지만 ( 우리의 문서 참조 ) 가장 중요합니다.


답변

이것은 매우 의견에 기반한 질문이라는 점을 명심하십시오. 그래서 나는 피오르드 제작을 중단하고 빠른 테이블을 만들었습니다.

많은 매개 변수에서 라이브러리 비교는 어렵습니다. 프레스코는 새로운 메모리 수준 최적화가 많이 있기 때문에 Fresco를 제외하고는 거의 똑같은 일을합니다. 따라서 특정 매개 변수를 알려면 내 경험에 따라 비교를 참조하십시오.

Fresco를 가장 적게 사용한 결과, 현재 익스플로잇에 계속 사용하고 이해함에 따라 대답이 발전 할 수 있습니다. 는 used personally완성 된 응용 프로그램에 한 번 도서관이어야를 사용하는 데있다.

* 참고-Fresco는 이제 WebP 애니메이션뿐만 아니라 GIF도 지원합니다


답변

프레스코 소스 | 외부 사이트
(-)
-라이브러리의 큰 크기
-뷰가있는 콜백 없음, 비트 맵 매개 변수
-SimpleDraweeView는 wrap_content를 지원하지 않습니다
.-캐시의 큰 크기
(+)
-매우 빠른 이미지 로더 (작은 이미지 및 중간 이미지의 경우)
-많은 기능 (스트리밍, 그리기 도구, 메모리 관리 등)
-XML로 직접 설정 가능 (예 : 둥근 모서리)
– GIF 지원
– WebP 형식과 애니메이션 WebP 형식 지원

피카소 소스 | 오프 사이트
(-)
-인터넷에서 큰 이미지를 ListView
(+) 로 느리게로드
-라이브러리의 Tinny 크기
-작은 크기의 캐시
-간단한 사용
-UI가 고정되지 않음
-WebP 지원

글라이드 소스

(-)
– 큰 라이브러리의 크기
(+)
– 캐시의 주석 크기를
사용 간단한 –
– GIF 지원
– WebP 형식 지원
– ListView에로 인터넷에서 빠른 로딩 큰 이미지
UI가 동결되지 않은 –
– BitmapPool 재사용 메모리 및 따라서 적은 GC 이벤트

Universal Image Loader 소스

(-)
-제한된 기능 (제한된 이미지 처리)
-27.11.2015 이후 프로젝트 지원이 중단되었습니다
(+)
-라이브러리의 Tinny 크기
-간단한 사용


Xamarin이
아닌 Java 용 SGS2 (Android 4.1) (WiFi 8.43Mbps) 공식 버전에서 테스트했습니다!
2015 년 10 월 19 일

나는 글라이드를 선호합니다.
자세한 내용은 여기를 참조 하십시오 . 글라이드
로 외부 저장소 (SD 카드)에 캐시를 쓰는 방법 .


답변

이 답변은 완전히 내 의견입니다

대답

  1. Picasso는 이미지 로더를 사용하기 쉽고 이미지 로더와 동일합니다. Fresco는 이미지 로딩에 다른 접근 방식을 사용하지만 아직 사용하지는 않았지만 네트워크에서 이미지를 가져 와서 캐싱 한 다음 이미지를 표시하는 솔루션처럼 보입니다. 피카소 / 이미지 로더 / 글라이드와 같은 다른 방법은 네트워크에서 이미지를 가져 와서 캐싱하는 화면에 이미지를 표시하는 것입니다.

  2. 글라이드는 피카소와 어느 정도 상호 교환을 시도합니다. 피카소가 만들어 졌을 때 HTTP 사양을 따르고 서버가 캐싱 정책을 결정하고 전체 크기로 캐시하고 필요에 따라 크기를 조정할 수 있다고 생각합니다. 글라이드는 HTTP 사양을 따르는 것과 동일하지만 풀 사이즈 이미지 대신 크기가 조정 된 이미지를 캐시하고 RGB_8888 대신 RGB_565로 이미지를 표시하는 등의 다른 가정을함으로써 더 작은 메모리 공간을 차지하려고합니다. 두 라이브러리 모두 기본 설정의 전체 사용자 정의를 제공합니다.

  3. 어떤 라이브러리가 가장 사용하기 가장 좋은지 말하기는 어렵습니다. Picasso, Glide 및 Imageloader는 모두 기본 설정으로 사용하기 쉬운 존경받는 테스트 라이브러리입니다. Picasso와 Glide 모두 이미지를로드하고 자리 표시 자 및 오류 이미지가있는 한 줄의 코드 만 필요합니다. 동작을 사용자 정의 할 때 많은 작업이 필요하지 않습니다. Picasso와 Glide보다 오래된 라이브러리 인 Imageloader도 마찬가지입니다. 그러나 그것을 사용하지 않았으므로 성능 / 메모리 사용량 / 사용자 정의에 대해 많이 말할 수는 없지만 github에서 readme를 보면 나에게도 인상적입니다. 비교적 사용 및 설정이 쉽습니다. 따라서이 3 개의 라이브러리 중 하나를 선택하면 잘못된 결정을 내릴 수 없으며 개인적인 취향의 문제입니다.페이스 북 SDK가 여전히 공식적으로 mavenCentral에 릴리스 되지 않은 것처럼 2014 년 9 월 이후로 sdk를 페이스 북에 사용하지 않았으며 2014 년 10 월 mavenCentral의 첫 번째 버전을 온라인에 올린 것처럼 보입니다. 그것에 대한 좋은 의견.

  4. 3 개의 큰 이름 라이브러리 사이에는 큰 차이가 없다고 생각합니다. 눈에 띄는 유일한 것은 프레스코이지만 그것은 다른 접근 방식을 가지고 있고 새롭고 전투 테스트를 거치지 않았기 때문입니다.


답변

글라이드 나 피카소 모두 완벽하지는 않습니다. 글라이드가 이미지를 메모리에로드하고 캐싱하는 방식은 이미지가 훨씬 빠르게로드되는 피카소보다 낫습니다. 또한 앱이 인기있는 OutOfMemoryError를 방지하는 데 도움이됩니다. GIF 애니메이션 로딩은 글라이드에서 제공하는 킬링 기능입니다. 어쨌든 피카소는 글라이드보다 품질이 좋은 이미지를 디코딩합니다.

어느 것을 선호합니까? 피카소를 매우 오랫동안 사용했지만 이제는 글라이드를 선호한다는 것을 인정해야합니다. 그러나 비트 맵 형식을 ARGB_8888로 변경하고 글라이드가 전체 크기 이미지와 크기를 먼저 캐시하도록 권장합니다. 나머지는 당신의 일을 훌륭하게 할 것입니다!

  • 피카소와 글라이드의 방법 수는 각각 840과 2678입니다.
  • 피카소 (v2.5.1)의 크기는 약 118KB이고 글라이드 (v3.5.2)의 크기는 약 430KB입니다.
  • 글라이드는 크기별로 캐시 된 이미지를 생성하는 반면, 피카소는 전체 이미지를 저장하고 처리하므로로드시 글라이드에서는 더 빠르게 표시되지만 더 많은 메모리를 사용합니다.
  • 글라이드는 기본적으로 메모리를 덜 사용 RGB_565합니다.

피카소의 경우 1 팔레트 도우미 .

Picasso vs Glide post에 대해 많이 이야기하는 게시물이 있습니다.


답변

나는 Picasso, Universal Image Loader 및 Glide에서 수행 한 벤치 마크 를 당신과 공유하고 싶습니다 : https://bit.ly/1kQs3QN

Fresco는 테스트를 실행하는 프로젝트의 경우 Drawee 뷰 때문에 레이아웃을 리팩터링하고 싶지 않기 때문에 벤치 마크에서 벗어났습니다.

내가 권장하는 것은 사용자 정의, 메모리 소비 및 크기와 방법 사이의 균형 때문에 Universal Image Loader 입니다.

작은 프로젝트 가 있다면 글라이드를 방문 하거나 Fresco를 사용해보십시오.