Mirando la perspectiva de Volley aquí hay algunas ventajas para su requerimiento:
Volley, por un lado, está totalmente enfocado en manejar pequeñas solicitudes HTTP individuales. Entonces, si su manejo de solicitudes HTTP tiene algunas peculiaridades, Volley probablemente tiene un enganche para usted. Si, por otro lado, tiene una peculiaridad en el manejo de su imagen, el único gancho real que tiene es ImageCache . "¡No es nada, pero tampoco es mucho!". pero tiene más otras ventajas como Una vez que defina sus solicitudes, usarlas desde un fragmento o actividad es indoloro, a diferencia de AsyncTasks paralelas
Pros y contras de Volley:
Entonces, ¿qué tiene de bueno Volley?
La parte de redes no es solo para imágenes. Volley está destinado a ser una parte integral de su back-end. Para un proyecto nuevo basado en un servicio REST simple, esto podría ser una gran victoria.
NetworkImageView es más agresivo con respecto a la limpieza de solicitudes que Picasso, y más conservador en sus patrones de uso de GC. NetworkImageView se basa exclusivamente en fuertes referencias de memoria y limpia todos los datos de solicitud tan pronto como se realiza una nueva solicitud para un ImageView, o tan pronto como ImageView se mueve fuera de la pantalla.
Actuación. Esta publicación no evaluará esta afirmación, pero claramente se han cuidado de ser juiciosos en sus patrones de uso de memoria. Volley también hace un esfuerzo para realizar devoluciones de llamadas por lotes al hilo principal para reducir el cambio de contexto.
Al parecer, Volley también tiene futuros. Echa un vistazo a RequestFuture si estás interesado.
Si se trata de imágenes comprimidas de alta resolución, Volley es la única solución aquí que funciona bien.
Volley se puede usar con Okhttp (la nueva versión de Okhttp admite NIO para un mejor rendimiento)
Volley juega bien con el ciclo de vida de la Actividad.
Problemas con Volley:
dado que Volley es nuevo, todavía no se admiten algunas cosas, pero está solucionado.
Solicitudes de varias partes (Solución: https://github.com/vinaysshenoy/enhanced-volley )
el código de estado 201 se toma como un error, el código de estado de 200 a 207 son respuestas exitosas ahora. (Solucionado: https://github.com/Vinayrraj/CustomVolley )
Actualización: en la última versión de Google Volley, el error de los códigos de estado 2XX está solucionado ahora ¡Gracias a Ficus Kirkpatrick!
está menos documentado, pero muchas de las personas están apoyando la volea en github, aquí se puede encontrar documentación similar a Java . En el sitio web para desarrolladores de Android, puede encontrar una guía para la transmisión de datos de red con Volley . Y el código fuente de voley se puede encontrar en Google Git
Para resolver / cambiar la Política de redireccionamiento de Volley Framework, use Volley con OkHTTP (CommonsWare mencionado anteriormente)
También puedes leer esta imagen que compara la carga de Volley con Picasso
Retrofit:
Es lanzado por Square , esto ofrece API REST muy fáciles de usar (Actualización: ¡Voila! Con soporte NIO)
Ventajas de la modificación:
En comparación con Volley, el código REST API de Retrofit es breve y proporciona una excelente documentación API y tiene un buen soporte en las comunidades. Es muy fácil agregar a los proyectos.
Podemos usarlo con cualquier biblioteca de serialización, con manejo de errores.
Actualización:
- Hay muchos cambios muy buenos en Retrofit 2.0.0-beta2
- la versión 1.6 de reequipamiento con OkHttp 2.0 depende ahora de Okio al apoyo java.io y java.nio que hace que sea mucho más fácil de acceder, almacenar y procesar los datos mediante ByteString y Buffer de hacer algunas cosas inteligentes para ahorrar la CPU y la memoria. (FYI: ¡Esto me recuerda a la biblioteca OIN de Koush con soporte NIO!)
Podemos usar Retrofit junto con RxJava para combinar y encadenar llamadas REST usando rxObservables para evitar cadenas de devolución de llamada feas (¡para evitar el infierno de devolución de llamada!) .
Contras de Retrofit para la versión 1.6:
La funcionalidad de manejo de errores relacionada con la memoria no es buena (en versiones anteriores de Retrofit / OkHttp) no estoy seguro si se ha mejorado con el soporte de Okio con Java NIO.
La asistencia mínima de subprocesos puede resultar en un infierno de devolución de llamadas si lo usamos de manera incorrecta.
(Todos los inconvenientes anteriores se han resuelto en la nueva versión de Retrofit 2.0 beta)
================================================== ======================
Actualizar:
Pruebas de rendimiento de Android Async vs Volley vs Retrofit (milisegundos, menor valor es mejor):
(Para su información anterior, la información de los puntos de referencia de actualización mejorará con la compatibilidad con Java NIO porque la nueva versión de OKhttp depende de la biblioteca NIO Okio)
En las tres pruebas con varias repeticiones (1 - 25 veces), Volley fue de 50% a 75% más rápido. La modernización registró un impresionante 50% a 90% más rápido que las AsyncTasks, alcanzando el mismo punto final la misma cantidad de veces. En el conjunto de pruebas del Tablero, esto se tradujo en cargar / analizar los datos varios segundos más rápido. Esa es una gran diferencia en el mundo real. Para que las pruebas sean justas, los tiempos para AsyncTasks / Volley incluyeron el análisis JSON como Retrofit lo hace por usted automáticamente.
RetroFit gana en la prueba de referencia!
Al final, decidimos utilizar Retrofit para nuestra aplicación. No solo es ridículamente rápido, sino que combina bastante bien con nuestra arquitectura existente. Pudimos crear una interfaz de devolución de llamada principal que realiza automáticamente el manejo de errores, el almacenamiento en caché y la paginación con poco o ningún esfuerzo para nuestras API. Para fusionarnos en Retrofit, tuvimos que cambiar el nombre de nuestras variables para que nuestros modelos fueran compatibles con GSON, escribir algunas interfaces simples, eliminar funciones de la API anterior y modificar nuestros fragmentos para no usar AsyncTasks. Ahora que tenemos algunos fragmentos completamente convertidos, es bastante indoloro. Hubo algunos dolores de crecimiento y problemas que tuvimos que superar, pero en general todo salió bien. Al principio, nos encontramos con algunos problemas técnicos / errores, pero Square tiene una fantástica comunidad de Google+ que pudo ayudarnos a superarlo.
¿Cuándo usar Volley?
¡Podemos usar Volley cuando necesitemos cargar imágenes, así como consumir API REST! ¡también Volley tiene mejor manejo de errores relacionados con la memoria que Retrofit!
OkHttp se puede usar con Volley, Retrofit usa OkHttp de forma predeterminada. Tiene soporte SPDY , agrupación de conexiones, almacenamiento en caché de disco, compresión transparente. Recientemente, obtuvo cierto soporte de Java NIO con la biblioteca Okio .
Fuente, crédito: volley-vs-retrofit por el Sr. Josh Ruesch
Nota: Acerca de la transmisión depende del tipo de transmisión que desee, como RTSP / RTCP.