[Android] So sánh ưu, nhược điểm của 2 thư viện load ảnh Glide và Picasso

Đăng bởi: Admin | Lượt xem: 2580 | Chuyên mục: Android

Glide và Picasso là 2 trong những thư viện load ảnh phổ biến nhất khi lập trình ứng dụng Android. Nếu chỉ sử dụng một cách đơn thuần, thì chúng hầu như giống nhau đến 90%. Tuy nhiên, cả hai đều rất khác nhau trong cách tải hình ảnh, lưu trữ hình ảnh và tải chúng vào bộ nhớ.


Glide và Picasso là 2 trong những thư viện load ảnh phổ biến nhất khi lập trình ứng dụng Android. Nếu chỉ sử dụng một cách đơn thuần, thì chúng hầu như giống nhau đến 90%. Tuy nhiên, cả hai đều rất khác nhau trong cách tải hình ảnh, lưu trữ hình ảnh và tải chúng vào bộ nhớ.

Ta hãy cùng so sánh hai thư viện này.

1. Import thư viện:

Cả hai Picasso và Glide là trên jcenter. Bạn chỉ có thể dễ dàng import nó vào dependency của dự án của mình như bên dưới:

Picasso

  dependencies {
     compile 'com.squareup.picasso: picasso: 2.5.1'
 }

Glide

  dependencies {
     compile 'com.github.bumptech.glide: lướt: 3.5.2'
     compile 'com.android.support:support-v4:22.0.0'
 }

2. Chất lượng hình ảnh:

Chất lượng hình ảnh giữa hai thư viện có thể không quá khác nhau, nhưng Picasso được biết đến với chất lượng hình ảnh tốt hơn. Như bạn có thể thấy ở các hình ảnh bên dưới, Glide có một số pixel cứng và không mượt như Picasso.

Tuy nhiên, đây không hẳn là nhược điểm của Glide, vì như chúng ta đã biết, với ứng dụng Android thông thường, hình ảnh chỉ cần ở mức chấp nhận được, vừa giảm thiểu dung lượng cho app, vừa giảm thời gian tải ảnh.

3. Disk Caching

Cả hai thư viện đều hỗ trợ lưu ảnh trong disk. Chúng tải hình ảnh từ Url và lưu trữ hình ảnh đó trên disk bằng cách lưu vào bộ nhớ cache.

Nhưng có một số khác biệt về cách lưu trữ hình ảnh trong bộ nhớ cache Picasso tải hình ảnh và lưu trữ nó với kích thước đầy đủ ở bộ nhớ cache, khi ta có yêu cầu lấy ảnh thì nó trả về hình ảnh với chất lượng đầy đủ nhưng lại thay đổi kích thước cho khớp với ImageView.

Glide thì khác, nó tải hình ảnh về, nó thay đổi kích thước của hình ảnh như với ImageView và sau đó lưu trữ vào bộ nhớ cache. Glide có thể lưu nhiều hình ảnh với kích thước khác nhau trong bộ nhớ cache, điều đó cũng một phần tăng kích thước của cache Khi ta có các ImageView có các kích thước khác nhau.

Tóm lại, Picasso chỉ lưu một kích thước duy nhất của hình ảnh đó ở cache, và là kích thước đầy đủ. Trong khi Glide lưu trữ từng file riêng cho từng ImageView.

4. Memory

Mặc định Glide sử dụng cấu hình RGB_565 trong khi Picasso tải hình ảnh trong cấu hình ARGB_8888 để tải bitmap vào bộ nhớ.

Nhìn vào biểu đồ thì ta có thể thấy Glide dùng bộ nhớ hiệu quả hơn Picasso (8M so với 13M). Dựa vào những phần trước, điều này tương đối dễ hiểu.

5. Thời gian tải ảnh

Để lấy cùng một hình ảnh về thì có vẻ Picasso nhanh hơn Glide. Vì Picasso sau khi tải ảnh về nó đẩy trực tiếp kích thước đầy đủ của ảnh đó vào bộ nhớ trong khi Glide thay đổi kích thước của hình ảnh theo ImageView. Điều đó cần một chút thời gian để thay đổi kích thước hình ảnh.

6. Kết luận

Đây là bảng so sánh cụ thể 2 thư viện:

Cả 2 thư viện đều có những ưu và nhược điểm riêng. Tuy nhiên, đối với mình, từng trải nghiệm cả 2 thư viện thì cá nhân mình cảm thấy có thiện cảm hơn đối với Glide. Cách Glide tải một hình ảnh vào bộ nhớ và làm bộ nhớ đệm là tốt hơn so với Picasso mà để cho một hình ảnh được tải nhanh hơn. Ngoài ra, nó cũng giúp ngăn chặn một ứng dụng bị OutOfMemoryError liên tục. Tải GIF Animation là một tính năng cung cấp bởi Glide mà Picasso không có. 

Tài liệu tham khảo:

  • http://code24h.com/thu-vien-load-anh-trong-android-phan-2-su-khac-nhau-giua-glide-va-picasso-d28471.htm
  • https://yourwebsitefirst.com/picasso-vs-glide-advantage-disadvantage/
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!



Khóa học liên quan

Khóa học: Android

Học Kotlin cơ bản
Số bài học:
Lượt xem: 17611
Đăng bởi: Admin
Chuyên mục: Android

Học lập trình Flutter cơ bản
Số bài học:
Lượt xem: 58506
Đăng bởi: Admin
Chuyên mục: Android

Lập trình Android cơ bản
Số bài học:
Lượt xem: 22990
Đăng bởi: Admin
Chuyên mục: Android