Melihat perspektif Volley di sini adalah beberapa keuntungan untuk kebutuhan Anda:
Volley, di satu sisi, benar-benar fokus pada penanganan permintaan HTTP kecil dan individu. Jadi jika penanganan permintaan HTTP Anda memiliki beberapa keanehan, Volley mungkin memiliki pengait untuk Anda. Jika, di sisi lain, Anda memiliki kekhasan dalam penanganan gambar Anda, satu-satunya pengait yang Anda miliki adalah ImageCache . "Bukan apa-apa, tapi juga tidak banyak!" tetapi memiliki lebih banyak keuntungan lain seperti Setelah Anda mendefinisikan permintaan Anda, menggunakannya dari dalam fragmen atau aktivitas tidak menimbulkan rasa sakit tidak seperti AsyncTasks paralel
Pro dan kontra Volley:
Jadi apa yang baik tentang Volley?
Bagian jaringan bukan hanya untuk gambar. Voli dimaksudkan untuk menjadi bagian integral dari ujung belakang Anda. Untuk proyek baru yang didasarkan pada layanan REST sederhana, ini bisa menjadi kemenangan besar.
NetworkImageView lebih agresif tentang pembersihan permintaan daripada Picasso, dan lebih konservatif dalam pola penggunaan GC. NetworkImageView mengandalkan secara eksklusif pada referensi memori yang kuat, dan membersihkan semua data permintaan segera setelah permintaan baru dibuat untuk ImageView, atau segera setelah itu ImageView bergerak dari layar.
Performa. Posting ini tidak akan mengevaluasi klaim ini, tetapi mereka jelas berhati-hati untuk bijaksana dalam pola penggunaan memori mereka. Volley juga berupaya untuk melakukan batch panggilan balik ke utas utama untuk mengurangi pengalihan konteks.
Volley rupanya memiliki masa depan juga. Periksa RequestFuture jika Anda tertarik.
Jika Anda berurusan dengan gambar terkompresi resolusi tinggi, Volley adalah satu-satunya solusi di sini yang bekerja dengan baik.
Volley dapat digunakan dengan Okhttp (Okhttp versi baru mendukung NIO untuk kinerja yang lebih baik)
Volley bermain bagus dengan siklus hidup Aktivitas.
Masalah dengan Volley:
Karena Volley baru, beberapa hal belum didukung, tetapi sudah diperbaiki.
Permintaan Multi Bagian (Solusi: https://github.com/vinaysshenoy/enhanced-volley )
kode status 201 dianggap sebagai kesalahan, Kode status dari 200 hingga 207 adalah respons yang berhasil sekarang. (Tetap: https://github.com/Vinayrraj/CustomVolley )
Pembaruan: dalam rilis terbaru Google volley, bug kode Status 2XX diperbaiki sekarang! Terima kasih kepada Ficus Kirkpatrick!
itu kurang didokumentasikan tetapi banyak orang yang mendukung voli di github, dokumentasi seperti java dapat ditemukan di sini . Di situs web pengembang android, Anda dapat menemukan panduan untuk Mengirimkan Data Jaringan Menggunakan Volley . Dan kode sumber voli dapat ditemukan di Google Git
Untuk memecahkan / mengubah Kebijakan Pengalihan Volley Framework gunakan Volley dengan OkHTTP (CommonsWare disebutkan di atas)
Anda juga dapat membaca gambar Membandingkan Volley ini dengan Picasso
Retrofit:
Ini dirilis oleh Square , Ini menawarkan sangat mudah untuk menggunakan REST API (Perbarui: Voila! Dengan dukungan NIO)
Pro Retrofit:
Dibandingkan dengan Volley, kode REST API Retrofit singkat dan memberikan dokumentasi API yang sangat baik dan memiliki dukungan yang baik di masyarakat! Sangat mudah untuk ditambahkan ke dalam proyek.
Kita dapat menggunakannya dengan pustaka serialisasi apa pun, dengan penanganan kesalahan.
Pembaruan:
- Ada banyak perubahan yang sangat bagus di Retrofit 2.0.0-beta2
- versi 1.6 dari Retrofit dengan OkHttp 2.0 sekarang tergantung pada Okio untuk mendukung java.io dan java.nio yang membuatnya lebih mudah untuk mengakses, menyimpan dan memproses data Anda menggunakan ByteString dan Buffer untuk melakukan beberapa hal pintar untuk menghemat CPU dan memori. (FYI: Ini mengingatkan saya pada perpustakaan OIN Koush dengan dukungan NIO!)
Kita dapat menggunakan Retrofit bersama dengan RxJava untuk menggabungkan dan membuat panggilan REST menggunakan rxObservables untuk menghindari rantai panggilan balik yang jelek (untuk menghindari panggilan balik neraka !!) .
Kontra Retrofit untuk versi 1.6:
Fungsionalitas penanganan kesalahan terkait memori tidak baik (dalam Retrofit / OkHttp versi lama) tidak yakin apakah itu ditingkatkan dengan Okio dengan dukungan Java NIO.
Bantuan threading minimum dapat mengakibatkan panggilan balik neraka jika kita menggunakan ini dengan cara yang tidak benar.
(Semua Kontra di atas telah dipecahkan dalam versi baru Retrofit 2.0 beta)
================================================== ======================
Memperbarui:
Android Async vs Volley vs Retrofit tolok ukur kinerja (milidetik, nilai lebih rendah lebih baik):
(FYI di atas Retrofit Benchmarks info akan membaik dengan dukungan java NIO karena versi baru OKhttp bergantung pada perpustakaan NIO Okio)
Dalam ketiga tes dengan berbagai pengulangan (1 - 25 kali), Volley berkisar antara 50% hingga 75% lebih cepat. Retrofit bekerja dengan kecepatan 50% hingga 90% lebih cepat daripada AsyncTasks, mencapai titik akhir yang sama beberapa kali. Pada Dashboard test suite, ini diterjemahkan menjadi memuat / mem-parsing data beberapa detik lebih cepat. Itu adalah perbedaan dunia nyata yang sangat besar. Untuk membuat tes adil, waktu untuk AsyncTasks / Volley termasuk JSON parsing sebagai Retrofit melakukannya untuk Anda secara otomatis.
RetroFit Menangkan tes benchmark!
Pada akhirnya, kami memutuskan untuk menggunakan Retrofit untuk aplikasi kami. Tidak hanya sangat cepat, tetapi juga sangat cocok dengan arsitektur yang ada. Kami dapat membuat antarmuka Panggilan Balik induk yang secara otomatis melakukan penanganan kesalahan, caching, dan pagination dengan sedikit atau tanpa upaya untuk API kami. Untuk menggabungkan Retrofit, kami harus mengganti nama variabel kami agar model kami sesuai dengan GSON, menulis beberapa antarmuka sederhana, menghapus fungsi dari API lama, dan memodifikasi fragmen kami untuk tidak menggunakan AsyncTasks. Sekarang kami memiliki beberapa fragmen yang sepenuhnya dikonversi, itu cukup tidak menyakitkan. Ada beberapa rasa sakit dan masalah yang terus meningkat yang harus kami atasi, tetapi secara keseluruhan semuanya berjalan lancar. Pada awalnya, kami mengalami beberapa masalah teknis / bug, tetapi Square memiliki komunitas Google+ yang fantastis yang dapat membantu kami melewatinya.
Kapan menggunakan Volley ?!
Kita dapat menggunakan Volley ketika kita perlu memuat gambar dan juga mengkonsumsi REST API !, sistem antrian panggilan jaringan diperlukan untuk banyak permintaan n / w pada saat yang sama! juga Volley memiliki penanganan kesalahan terkait memori yang lebih baik daripada Retrofit!
OkHttp dapat digunakan dengan Volley, Retrofit menggunakan OkHttp secara default! Memiliki dukungan SPDY , koneksi pooling, caching disk, kompresi transparan! Baru-baru ini, telah mendapat beberapa dukungan java NIO dengan perpustakaan Okio .
Sumber, kredit: volley-vs-retrofit oleh Mr. Josh Ruesch
Catatan: Tentang streaming tergantung pada jenis streaming yang Anda inginkan seperti RTSP / RTCP.