14

Trong phần trình bày của Paresh Mayani tại SpeakerDeck (https://speakerdeck.com/pareshmayani/lazy-android-developers-be-productive) ông nói rằng nó tốt hơn để sử dụng OkHttp hoặc Retrofit thay vì AsyncTask với DefaultHttpClient.Tại sao tôi nên sử dụng OkHttp thay vì android HttpClient và AsyncTask

Câu hỏi của tôi là lý do tại sao?
Tại sao chúng nhanh hơn?
Không phải là những thư viện dựa trên các lớp học android mặc định?
Sự khác nhau giữa OkHttp và Retrofit là gì?

Cảm ơn!

Trả lời

15

Như mọi khi, kỹ thuật là cân bằng các thương mại để xây dựng giải pháp tốt nhất cho các yêu cầu của bạn.

Sử dụng thư viện thay vì nền tảng là một ví dụ hay. API của nền tảng đã tồn tại trong một thời gian khá lâu và vì lý do tương thích, nhóm Android có ít linh hoạt hơn trong việc thay đổi các giao diện đó. Một thư viện không có những ràng buộc đó; ví dụ, nếu máy chủ hỗ trợ OkHttp có thể sử dụng giao thức SPDY cho độ trễ thấp hơn, nén, ghép kênh, v.v., có thể làm cho ứng dụng Android của bạn phản hồi nhanh hơn.

OkHttp và trang bị thêm - là các dự án từ Square - có thể hoạt động cùng nhau. Chúng cũng là các thư viện Java thông thường, vì vậy chúng không phụ thuộc vào/dựa trên Android. OkHttp xử lý các chi tiết kết nối HTTP cấp thấp hơn, trong khi Retrofit đơn giản hóa bằng cách sử dụng các API REST. Retrofit có thể được sử dụng trên đầu trang của OkHttp, nhưng nó không được yêu cầu.

Kiểm tra các trang web của dự án, chúng cũng được lưu trữ trên github.

http://square.github.io/okhttp/

http://square.github.io/retrofit/

Các vấn đề liên quan